da ich schon viele Ideen, Module, Skripte, usw. von Euch nutzen durfte, möchte ich Euch heute etwas zurück geben.
Ich habe soeben die erste (hoffentlich nutzbare) Version meines ersten IPSymcon Moduls fertig gestellt. Bitte verzeiht wenn es nicht ganz den üblichen Konventionen entspricht, meine besten Entwickler Tage liegen schon etwas länger zurück und das ist mein erster Versuch ein Modul für IPSymcon zu schreiben.
Long Story short: Ich bin LaMetric Time Fan (LaMetric Time - clock for smart home and office) und habe schon lange nach einer solchen Lösung im Zusammenhang mit IPSymcon gesucht. Leider kostet die LaMetric Time einiges, aber sie ist nach meiner Meinung Ihr Geld wert.
Was kann man nun mit dem Modul machen?
Beliebige Texte an die LaMetric senden, inkl. Icon und Sound wenn gewünscht.
Lautstärke einstellen.
Helligkeit und Helligkeitssensor einstellen.
Bluetooth ein und aus stellen und den Namen des Bluetoothmoduls setzen.
Konfigurations Daten von der LaMetric auslesen und in IPS Variablen schreiben.
Mehr gibt leider die API der LaMetric noch nicht her, es soll aber bald eine Erweiterung der Funktionalität geben.
Alle API Aufrufe gehen direkt auf die LaMetric im internen Netz. Die Cloud API wird nicht verwendet.
Hier findet Ihr das Modul und auch eine kleine Anleitung:
Wenn auf einer der Sonos Boxen ein neues Lied gespielt wird, zeigt die entsprechende LaMetric den Titel und den Interpreten an. Somit gleicht LaMetric den Umstand aus, dass Sonos kein Display hat.
Wenn ein Anruf auf meiner Fritzbox eingeht wird der Anrufername auf der LaMetric angezeigt.
LaMetric erinnert mich an Termine.
LaMetric zeigt die Wetterinformationen an, damit ich den Kindern sagen kann was sie anziehen müssen wenn sie raus gehen.
Und natürlich --> Die meiste Zeit zeigt sie einfach die Zeit an
LaMetric kann aber noch deutlich mehr. Schaut Euch einfach mal die Webseite des Herstellers an (siehe oben).
Fragen bitte hier in den Thread. Leider kann ich nicht täglich hier reinschauen, ich werde aber versuchen in der Anfangszeit so oft wie möglich nach zu sehen.
Es würde mich freuen wenn jemand, der auch eine LaMetric hat, das Modul testen könnte und hier im Forum Feedback geben könnte. Vielen Dank
Ich habe heute das Modul um einen Alarm Befehl erweitert. Der Unterschied zu Notification sind die unterschiedlichen Sounds, das der Sound beliebig oft wiederholt werden kann und das der Alarm an der LaMetric bestätigt werden muss.
Natürlich ist die Priorität auch höher als die des LM_notification Befehls.
Viel Spass damit
Schöne Grüße,
Dennis
— snip 8< : Zitat aus der Doku — Einen Alarm auf einer LaMetric Time ausgeben
Ein Alarm wird solange angezeigt bis er an der LaMetric bestätigt wird. Evtl. vorher die Lautstärke mit LM_volume(instanz-id, volume);setzen.
notification
Die Nachricht die angezeigt werden soll.
icon
Die Nummer des Icons mit führendem „i“. Die zur Verfügung stehenden Icons können unter LaMetric: Web eingesehen werden. Wenn kein Icon angezeigt werden soll kann das entsprechende Feld leer gelassen werden. „“ sind notwendig.
sound
Unter Notifications — LaMetric 1.6.0 documentation findet sich eine Liste an Sounds. Nur die der alarm id funktionieren. Wenn kein Sound abgespielt werden soll kann das entsprechende Feld leer gelassen werden. „“ sind notwendig.
repeat
Wie häufig der Sound gespielt werden soll. 0 = bis der Alarm auf der LaMetric bestätigt wird.
Mit LM_chart(instanz-id, data); lassen sich Graphen auf der LaMetric zeichnen und mit LM_progressbar(instanz-id, start, current, end, unit); lässt sich ein Fortschrittsbalken darstellen.
ich habe das Modul um einen neuen Befehl erweitert: LM_apps(Instanz_ID, kommando);
Bisher kann man nur auf die nächste oder vorherige App wechseln. Sobald Smart Atoms die erweiterte API Dokumentiert, werde ich weitere Funktionen einbauen.
Feedback kommt bald, habe mir einen gebrauchten LaMetric gekauft und werde in den nächsten Wochen mit Deinem Modul basteln
Herzlichen Dank im voraus uns das Teil zur Verfügung zu stellen
Kleine Anregung : In Bezug auf Text Nachrichten hätte ich gerne Zugriff auf die folgenden Parameter
repeat – defines the number of times sound must be played. If set to 0 sound will be played until notification is dismissed. By default the value is set to 1.
cycles – the number of times message should be displayed. If cycles is set to 0, notification will stay on the screen until user dismisses it manually or you can dismiss it via the API (DELETE /api/v2/device/notifications/:id). By default it is set to 1.
Wäre toll wenn das Modul entsprechend erweitert werden könnte
Nochmals herzlichen Dank für das Modul
PS. Sehe gerade das „Repeat“ bei der Alarm Funktion bereits implementiert wurde
gerne kann ich der „cycles“ Parameter einbauen. Das ginge sehr schnell
Aber wäre es vielleicht nicht besser einfach eine LM_alarmDelete($id); Funktion zu bauen und den Alarm darüber zu löschen? Dann kann auch die Zeit festgelegt werden oder auch bei einer Aktion (z.B. Taste Alarm aus wurde gedrückt).
Dauert länger einzubauen, ist aber die flexiblere Lösung denke ich.
Ja, ich hab da auch schon ein paar Dinge gefunden die ich überarbeiten könnte. Ich schau mal, wenn ich die nächste Zeit etwas Zeit habe schreibe ich ein paar Sachen um.
Ich sollte den API Key vorher prüfen lassen. Wie Chris schon geschrieben hat, das Modul bedarf noch ein paar Optimierungen. Aber ich bin fleissig am Lernen. War mein erstes Modul. Inzwischen habe ich schon ein paar andere und habe ein paar „Lessons learned“
Ich werde erstmal die Notofication Delete Funktion für BestEx einbauen und dann schaue ich mal das ich das Modul generell überarbeite.
Schöne Grüße,
Dennis
p.s. Heute ist meine dritte LaMetric angekommen. Meine Motivation das Modul weiter zu entwickeln ist also hoch Ich warte gespannt auf die Dokumentation der API Erweiterung. Dann kann ich auch weitere Funktionen einbauen.
Auch fragt er nun die Länge des API Keys ab und meldet das evtl. Leerzeichen vorhanden sind. Wenn jemand weiss wie man Property-Variablen setzten kann (hab nix in der Doku gefunden) würde ich die auch einfach auf Leerzeichen filtern.
Ich habe dies allerdings nicht in den Master Branch aufgenommen, sondern habe einen Branch development erstellt. Bitte einmal den Branch auf development stellen und auf Updates prüfen und dann updaten. Bitte nicht vergessen den Symcon Dienst zu restarten, da neue Funktionen hinzu gekommen sind. Wenn ein, zwei Leute das ganze erfolgreich getestet haben, dann nehme ich die Neuerungen in den master Zweig auf.
Folgendes ist neu:
Der LM_alarm(); Befehl gibt nun die Notification-ID des Alarms zurück.
Einen Alarm löschen
Der Befehl löscht einen Alarm mit einer speziefischen ID.
LM_resetalarm(instanz-id, notification-id);
instanz-id
Die Objekt-ID der LaMetric Time.
notification-id
Eindeutige Notification-ID. Die ID wird als return Wert beim ausführen des LM_alarm(); Befehls zurückgegeben. Die ID zählt bei jedem Alarm eins hoch. Die aktuelle ID des angezeigten Alarms kann mit LM_getalarmid(instanz-id,); abgefragt werden.
>> Das muss in „public function ApplyChanges()“ - damit wird bei jedem Klick auf „Übernehmen“ in der Modul-Instanz der API-Key gelesen und „umgeschrieben“.
EDIT: Die Änderung sieht man optisch erst, wenn man die Modul-Instanz schließt und wieder neu öffnet!