[Neues Modul] LaMetric

Begonnen von Eragos, 13 Juli 2017, 21:21:09

Vorheriges Thema - Nächstes Thema

Eragos

Als Kickstarter Backer habe ich seit einiger Zeit ein LaMetric Display. Da die ersten Firmware Versionen nur einen Server Push konnten, hatte ich mir bisher eine private App gebaut, die mir einige FHEM Infos angezeigt hat. Mittlerweile hat die Firmware auch eine API für lokalen Push. Ich habe mich einmal hingesetzt und ein FHEM Modul dazu geschrieben. Vielleicht kann der eine oder andere ja gebrauchen.

Hier einmal ein Beispiel GIF (wie man Bilder hier einfügt, hab ich noch nicht gefunden)

Aktuell lasse ich bei mir die Innentemperatur, Außentemperatur und Wetterkondition als Icon, sowie die Uhrzeit im 5 Sekundentakt rollieren. Diese Standardanzeige wird von Ereignissen wie Telefonanruf oder anderen Ereignissen unterbrochen.

Um euer Display anzusprechen ist ein Api-Key notwendig. Diesen könnt ihr einsehen, indem ihr euch als Developer registriert. Eventuell muss das Device dort noch hinterlegt werden. Das ist bei mir aber schon zu lange her 8) Der Api-Key ist danach unter MyDevices zu finden.

Folgende Funktionen sind bereits integriert:
* Senden von Nachrichten an das Display
* Per Nachricht können Icon, Sound, Durchläufte und natürlich der Nachrichtentext angepasst werden.
* Die Benachrichtigungsart ist einstellbar (none, info, alert)
* Die Nachrichtenpriorität kann frei gewählt werden (info, warning, critical)
* Die Lebenszeit der Nachrichten in der Benachrichtigungsqueue kann eingestellt werden.
* Es sind alle Icons aus der LaMetric Icon Gallery möglich. Ebenfalls könnt ihr euch dort eigene erstellen.
* Die Lautstärke, Displayhelligkeit und -Modus können eingestellt werden.
* Einige Default-Einstellungen können über Attribute gesetzt werden.


Bei der Erstellung des Devices gilt ist folgende Syntax:
define <name> LaMetric <IP> <api key>

Danach kann auch schon die erste Nachricht versendet werden:
set LaMetric1 msg The lazy fox jumps over the quick brown dog

Um für jede Nachricht ein eigenes Icon oder einen anderen Benachrichtigungssound anzugeben, nutzt man z.B. folgende Syntax:
set LaMetric1 msg "The lazy fox jumps over the quick brown dog" sound=cat icon=i1134

Weitere Beispiele und ausführlichere Infos findet ihr in der (aktuell nur englischen) Commandref zu dem Modul.

Über Feedback, konstruktive Kritik und/oder Anregungen würde ich mich freuen.

Thyraz

Hallo Eragos.

Das Bild von Dropbox endet bei mir mit einem 404 Error.

Gibt übrigens noch ein weiteres LaMetric Modul für FHEM:
https://forum.fhem.de/index.php/topic,25107.0.html

Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Eragos

Danke dir für die beiden Hinweise  :)

Die Bild URL habe ich angepasst.
Das andere Modul hatte ich gar nicht gesehen. Schaue ich mir aber mal an.

ares

Zitat von: Eragos am 13 Juli 2017, 21:21:09
Eventuell muss das Device dort noch hinterlegt werden.
Das Device wird bei der Inbetriebnahme automatisch angelegt.

Zitat von: Eragos am 13 Juli 2017, 21:21:09
Aktuell lasse ich bei mir die Innentemperatur, Außentemperatur und Wetterkondition als Icon, sowie die Uhrzeit im 5 Sekundentakt rollieren.
Wie steuerst Du aktuell Deine Standardanzeige? Komplett über fhem (auch die Zeit) oder weiterhin mit Standard- und privaten Apps?

Bei der Standard-Zeit-App vermisse ich die Möglichkeit, das ClockFace per API aus fhem zu ändern. Habe ich da nur etwas übersehen?

Ich würde gerne auch meine Sonos-Titel anzeigen solange die Box läuft. Mit einer App kann auch zwischen Pause und Play gewechselt werden. Wie hast bzw. hattest Du die Informationen von fhem an die private App geschickt oder geht das auch mit Deinem Modul?

Viele Grüße
Manfred

Eragos

Zitat von: ares am 21 Juli 2017, 16:27:40
Das Device wird bei der Inbetriebnahme automatisch angelegt.
Wie steuerst Du aktuell Deine Standardanzeige? Komplett über fhem (auch die Zeit) oder weiterhin mit Standard- und privaten Apps?
Aktuell spiele ich noch mit beidem rum. Die Zeitanzeige habe ich auf Stunden:Minuten begrenzt, da sie ja nicht Sekundengenau ist. Das reicht mir aktuell aus.

Zitat von: ares am 21 Juli 2017, 16:27:40
Bei der Standard-Zeit-App vermisse ich die Möglichkeit, das ClockFace per API aus fhem zu ändern. Habe ich da nur etwas übersehen?
In der API habe ist mit hierzu nichts über den Weg gelaufen. Ich nutze die Standard-Zeit-Appallerdings auch nicht. Sämtliche Anzeigen werden bei mir über FHEM gepuscht. Neben der Rotation aus dem GIF, gibt es bei weiteren Ereignissen zusätzliche Infos.

Mittlerweile habe ich festgestellt, dass die Rotation sauberer über die Private-App läuft. Für alle anderen Nachrichten wird diese dann einfach unterbrochen und läuft danach weiter.
Ich werde die Tage mal schauen, ob man das mit Parametern versehen und veröffentlichen kann. Ansonsten kann ich auch eine kurze Anleitung schreiben, wie man sich selber eine entsprechende App baut.

Zitat von: ares am 21 Juli 2017, 16:27:40
Ich würde gerne auch meine Sonos-Titel anzeigen solange die Box läuft. Mit einer App kann auch zwischen Pause und Play gewechselt werden. Wie hast bzw. hattest Du die Informationen von fhem an die private App geschickt oder geht das auch mit Deinem Modul?

Das SONOS Modul habe ich mit heute auch mal angesehen, läuft aber in meiner Systemkonstellation aktuell nicht. Danach werde ich mal ein wenig SONOS Informationen integrieren.

ares

Zitat von: Eragos am 22 Juli 2017, 18:19:04
Mittlerweile habe ich festgestellt, dass die Rotation sauberer über die Private-App läuft. Für alle anderen Nachrichten wird diese dann einfach unterbrochen und läuft danach weiter.
Ich werde die Tage mal schauen, ob man das mit Parametern versehen und veröffentlichen kann. Ansonsten kann ich auch eine kurze Anleitung schreiben, wie man sich selber eine entsprechende App baut.
Eine Anleitung zum Erstellen der App gibt es bereits direkt von lametric und auf anderen Seiten, die Aktualisierung über curl (ohne fhem) funktioniert bei mir auch problemlos. Was ich allerdings nirgends gelesen habe ist, dass die Channels nicht über "local push url" ignoriert werden und zumindest bei mir nur über den Umweg https://developer.lametric.com funktionieren. Eine fertige Lösung mit Parametern schränkt einen wahrscheinlich nur ein. Mich würde interessieren, wie Du die Rotation aus fhem umgesetzt hast, so dass ich bei der Integration in fhem nicht bei Null angangen muss. Vielleicht kannst Du ja Dein Beispiel als Grundlage zur Verfügung stellen, die Anpassung inkl. Sonos sollte nicht das Problem sein.

ares

Hier eine Kurzanleitung, wie ich die Sonos-App am Beispiel "Wohnzimmer" aktuell umgesetzt habe.

Unter https://developer.lametric.com/ eine Indicator-App erstellen.
1. CREATE APP
1. Select icon: "music note orange big" (#2020)
2. Enter text: "Sonos"
Communication type: Push

2. STORE INFO
App-Icon: "music note orange big" (#2020)
App name: Sonos Wohnzimmer
Short description: Sonos Wohnzimmer (fhem)
Private App: X

Optional wäre es auch noch möglich, z.B. Pause durch die Action-Taste am Sonos-Device auszulösen.

Nachdem die App veröffentlicht wurde kann sie auf die Lametric installiert werden, vorher kopieren wir uns noch folgende 2 Infos:
Local Push URL: https://192.168.123.123:4343/api/v1/dev/widget/update/com.lametric.12345678901234567890123456789012/1
Access token: ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMN==

Wird beim Installieren "Notify" ausgewählt, dann wird bei jedem Liedwechsel der Titel kurz angezeigt und kann durch manuelles Auswählen (Rechts/Links an der Lametric) erneut angezeigt werden.

Danach reicht ein Notify für die Aktualisierung. Die IP, das Sonos-Device (Wohnzimmer) und die Infos von oben müssen natürlich ausgetauscht werden:
define Sonos_Wohnzimmer_LaMetric notify Sonos_Wohnzimmer:infoSummarize2:.* {\
my $text = ReadingsVal("Sonos_Wohnzimmer", 'infoSummarize1', '-');;\
my $transportState = ReadingsVal("Sonos_Wohnzimmer", 'transportState', '-');;\
my $icon = "";;\
$icon = "i2020" if ($transportState eq 'PLAYING');;\
$icon = "i2366" if ($transportState eq 'PAUSED_PLAYBACK');;\
$icon = "i751"  if ($transportState eq 'STOPPED');;\
HttpUtils_NonblockingGet({ \
url         => 'http://192.168.123.123:8080/api/v1/dev/widget/update/com.lametric.12345678901234567890123456789012', \
data        => '{\
"frames": [\
{\
"text": "'.$text.'",\
"icon": "'.$icon.'"\
}\
]\
}',\
header      => {\
'X-Access-Token' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMN=='\
},\
callback    => sub(){}\
});;\
}

Eragos

#7
Ich habe den local push einmal integriert. Die aktuelle Version findest du oben im ersten Post.

Deine App schaut ansonsten schon mal passend aus.

Zusätzliche (aktuell noch undokumentierte Attribute)

* LaMetric_AppPushEndpoint => com.lametric.12345678901234567890123456789012/1
* LaMetric_AppPushToken => ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMN==

Danach kannst du mit

set LaMetric privatemsg Dies ist eine Nachricht icon=a1232
set LaMetric privatemsg Dies ist eine Nachricht ohne Icon icon=none


Sound und so gibt es da nicht, da es bei einer Dauerschleife wohl wenig Sinn macht.

Mein DOIF dazu sieht wie folgt aus:


([Fritzbox_CallMon:event] eq "ring" or [Fritzbox_CallMon:event] eq "connect")
(
   IF ([Fritzbox_CallMon:external_name] eq "unknown")
      ({
         my $call = ReadingsVal("Fritzbox_CallMon","external_number",0);;
         fhem("set LaMetric privatemsg $call icon=a1232");;
         fhem("set do_LaMetric_state -1");;
      })
   ELSE
      ({
         my $call = ReadingsVal("Fritzbox_CallMon","external_name",0);;
         fhem("set LaMetric privatemsg $call icon=a1232");;
         fhem("set do_LaMetric_state -1");;
      })
)

DOELSEIF ([Fritzbox_CallMon:event] eq "disconnect")
({
   my $seconds = ReadingsVal("Fritzbox_CallMon","call_duration",0);;
   my $duration = fSec($seconds);;
   fhem("set LaMetric privatemsg $duration icon=i2077");;
   fhem("set do_LaMetric_state 1");;
})

DOELSEIF ([+00:00:05])
({
   my $temp;;
   my $icon;;
   my $state = ReadingsVal("do_LaMetric_state", "state", "1");;

   if ($state == 0) {
      fhem("set do_LaMetric_state 1");;
   }

   if ($state == 1) {
      $temp = strftime('%H:%M',localtime);;
      $icon = "none";;
      fhem("set LaMetric privatemsg $temp icon=$icon");;
      fhem("set do_LaMetric_state 2");;
   }

   if ($state == 2) {
      $temp = sprintf("%.1f",ReadingsVal("netatmo_outside","temperature",0))."°C";;
      $icon = LaMetricPushWeather(ReadingsVal("yahooWeather","code",0));;
      fhem("set LaMetric privatemsg $temp icon=$icon");;
      fhem("set do_LaMetric_state 3");;
   }

   if ($state == 3) {
      $temp = sprintf("%.1f",ReadingsVal("Heizung_WZ","temperature",0))."°C";;
      $icon = "i1299";;
      fhem("set LaMetric privatemsg $temp icon=$icon");;
      fhem("set do_LaMetric_state 1");;
    }
})


Beim DOIF musst du noch do always setzen.
Den aktuellen Status merke ich mir aktuell im DUMMY Device do_LaMetric_state

Die SONOS Integration kannst du dann über ein notify und set LaMetric msg [SONOS:Reading] machen.

Viele Grüße
Micha

ares

Vielen Dank für die neue Version. Schade, dass es nun zwei Versionen gibt und jede etwas kann, das der anderen fehlt. :-(

Zitat von: Eragos am 24 Juli 2017, 18:00:52
* LaMetric_AppPushEndpoint => com.lametric.12345678901234567890123456789012/1
Der Anfang "com.lametric." ist konstant und könnte entfallen.
Das "/1" habe ich bewusst weg gelassen, da damit bei Updates nichts geändert werden muss.

Was mir nicht gefällt ist, dass ich damit nur eine App steuern kann und auf einen Frame begrenzt bin.

Viele Grüße
Manfred

Thyraz

#9
Wie funktioniert das denn dann mit der App, zeigt die einfach die letzte Nachricht die zur App gepushed wurde dauerhaft an?

edit: Wenn man einen Tastendruck auf den mittleren Taster der Lametric in der private App auswerten wollte, würde das auf alle Fälle übers Internet gehen (Sprich man muss einen Port öffnen), oder geht das auch lokal?

edit2:
Mein Gedanken formen sich gerade erst so langsam. Sorry für die vielen Edits.

An sich gefällt mir die Idee mit der privaten App sehr gut.
Ich hatte im anderen LaMetric Modul ja die "Sticky" Messages eingebaut, welche auch eine Dauerhafte Anzeige ermöglichen.
Am DOIF Beispiel von Eragos sieht man ja aber sehr gut, dass man sowas auch auf Seiten FHEM mit einem DOIF über eine LaMetric App realisieren kann.
Seine Anzeige des Anrufes macht ja genau das: Anzeigen einer Message bis zu einem weiteren Event. Erst dann geht es wie gewohnt weiter.

Sah für mich auf den ersten Blick komplizierter aus, bietet aber eben auch mehr Flexibilität.
Zum Beispiel Eingehender Telefonanruf ist wichtiger als eine "Wäsche ist fertig" Meldung.
Oder bestimmte Anzeigen im Cycle länger anzeigen als andere.

Werde heute Mittag mal testweise auf dieses Modul umsteigen denk ich.

@ares wozu benötigst du denn mehr als einen Frame solang man den aktuellen Frame ja immer wieder neu beschreiben kann?
Oder hättest du gern verschiedene Frame-Typen?
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

ares

Zitat von: Thyraz am 25 Juli 2017, 08:52:57
Wie funktioniert das denn dann mit der App, zeigt die einfach die letzte Nachricht die zur App gepushed wurde dauerhaft an?
Ja, Du bist aber nicht auf eine Nachricht beschränkt. Du kannst in fhem die Anzahl der Nachrichten (frames) auch SPÄTER noch aus fhem ändern und so z.B. mehrere Nachrichten wie in der Wetter-App von LaMetric anzeigen. Damit kannst Du eine eigene Wetter-App mit Werten Deiner Wahl aus fhem basteln und bist nicht auf die fertige Lösung angewiesen. Die App macht also Sinn, wenn es sich nicht um temporäre Einblendungen wie einen Telefonanruf handelt.
Falls Du den Wert lokal setzt hast Du den Nachteil, dass der aktuelle Wert verloren geht, das stört mich aber weniger als meine Daten übers Internet zu schicken.
Channel scheinen nur übers Internet zu funktionieren, so dass Du für die lokale Verwendung im Fall von Sonos pro Player eine App erstellen musst.

Zitat von: Thyraz am 25 Juli 2017, 08:52:57
Wenn man einen Tastendruck auf den mittleren Taster der Lametric in der private App auswerten wollte, würde das auf alle Fälle übers Internet gehen (Sprich man muss einen Port öffnen), oder geht das auch lokal?
Du kannst pro App einen Tastendruck definieren und auch einen lokalen Aufruf hinterlegen wie z.B. bei fest gesetztem Token in fhem:

http://192.168.123.123:8083/fhem?cmd=set%20Sonos_Wohnzimmer%20Pause&fwcsrf=csrf_1234567890ABCDEF&XHR=1


Zitat von: Thyraz am 25 Juli 2017, 08:52:57
Ich hatte im anderen LaMetric Modul ja die "Sticky" Messages eingebaut, welche auch eine Dauerhafte Anzeige ermöglichen.
Die "Sticky" Messages gefallen mir sehr gut, ich zeige das z.B. beim Trocknerende an und lasse die Meldung auch von fhem quittieren. Das ersetzt nicht die App, ausser Du hast nur eine und verzichtest sogar auf die hübsche Uhr.

Zitat von: Thyraz am 25 Juli 2017, 08:52:57
@ares wozu benötigst du denn mehr als einen Frame solang man den aktuellen Frame ja immer wieder neu beschreiben kann?
Damit die Lametric z.B. Temperatur und Luftfeuchtigkeit automatisch passend umschaltet.

Du kannst auch "notify" beim Einrichten am Smartphone setzen, dann wird bei Änderungen automat auf die App umgeschaltet, auch wenn diese gar nicht im automatischen Wechsel konfiguriert ist. Im Fall von Sonos zeigt er so den Titelwechsel bzw. Pause/Play kurz an, der Titel kann aber später bei Bedarf durch manuelles Wechseln der App nochmal angezeigt werden und über die über die Action-Taste hinterlegte Aktion ausgeführt werden, was bei Nachrichten ja nicht klappt. Mehr als eine App bedeutet auch, dass Du mehrere Aktionen auslösen kannst. Leider wird nicht zwischen kurzem und langen Tastendruck unterschieden.

Thyraz

#11
Ok, das mit der lokalen URL ist cool. :)

Ja, das mit "Alles-In-Einer-App" klappt tatsächlich nur, wenn man auf die Original Uhr verzichtet und die Zeitanzeige auch in den Cycle vom DOIF mit aufnimmt.

Ich zeige mir aber bei der Lametric bisher auch keine Sekunden an, da mich die Animation sonst oft ablenkt.
Bin daher evtl. gar nicht so undankbar wenn ich die Flip-Animation bei der Uhr nicht habe.

Temperatur innen/außen würde ich daher auch weit seltener aufrufen als nach 5 Sekunden denke ich (Dafür die Uhrzeit länger anzeigen).

Aber mit dem Reagieren auf Tastendruck könnte man das DOIF ja schön erweitern.
Wird eine Meldung wegen etwas bestimmten Ereignisses (Telefon/Wäsche/...) angezeigt, wird die Meldung durch den Tastendruck vorzeitig quittiert und man kehrt zum normalen Anzeigecycle zurück.
Wird hingegen während des normalen Cycles die Taste gedrückt, wechselt die Anzeige immer zum nächsten Screen. (Uhr -> Temp. Innen -> Temp. Außen --> usw.)

@Eragos: Wenn man die normale Uhr auch noch nutzen wollte, würde es evtl. schon reichen wenn du noch Befehle zum Wechseln zu einer bestimmten App einbauen würdest?
Gibt die API ja auch her, dann könnte man sein DOIF entsprechend erweitern.

edit: Zu Sonos mit nur einer App und einem Frame:
Man könnte das aktuelle Lied ja auch wie die Uhrzeit und Temperaturen im Cycle mit anzeigen um das jederzeit anschauen zu können.
Um beim Liedwechsel dennoch kurz den Titel zu sehen (egal was davor auf dem Screen war) könnte man den ja zusätzlich als Notification mit dem msg Befehl pushen.

Klar: Die Lösung mehrere Apps anzulegen und diese auch noch mit mehreren Frames auszustatten lässt sicher noch eine bessere Bedienung zu.
Gerade auch, da man nicht nur Apps direkt per API anzeigen, sondern auch zu bestimmten Frames darin springen kann.
Aber stellt sie die Frage wie man das Modulseitig umsetzt.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

ares

Hast Du schon eine App erstellt und etwas damit gespielt? Ich denke, damit wird vieles klarer.

Zitat von: Thyraz am 25 Juli 2017, 12:12:05
Ja, das mit "Alles-In-Einer-App" klappt tatsächlich nur, wenn man auf die Original Uhr verzichtet und die Zeitanzeige auch in den Cycle vom DOIF mit aufnimmt.

Ich zeige mir aber bei der Lametric bisher auch keine Sekunden an, da mich die Animation sonst oft ablenkt.
Bin daher evtl. gar nicht so undankbar wenn ich die Flip-Animation bei der Uhr nicht habe.

Temperatur innen/außen würde ich daher auch weit seltener aufrufen als nach 5 Sekunden denke ich (Dafür die Uhrzeit länger anzeigen).

Die Sekunden zeige ich auch nicht an, mag aber die genaue Zeit, den blinkenden Doppelpunkt und die Flip-Animation. Und ich mag es, wenn die Uhr auch ohne fhem funktioniert!
Du kannst die Anzeige-Dauer für die Uhr auch doppelt oder dreimal so lange einstellen.

Zitat von: Thyraz am 25 Juli 2017, 12:12:05
Aber mit dem Reagieren auf Tastendruck könnte man das DOIF ja schön erweitern.
Wird eine Meldung wegen etwas bestimmten Ereignisses (Telefon/Wäsche/...) angezeigt, wird die Meldung durch den Tastendruck vorzeitig quittiert und man kehrt zum normalen Anzeigecycle zurück.
Die Meldungen würde ich weiter wie bisher anzeigen, diese müssen nicht über die App laufen. Die Wäsche wird bei mir ohne dauerhaft angezeigt und kann bereits quittiert werden.

Zitat von: Thyraz am 25 Juli 2017, 12:12:05
Wird hingegen während des normalen Cycles die Taste gedrückt, wechselt die Anzeige immer zum nächsten Screen. (Uhr -> Temp. Innen -> Temp. Außen --> usw.)
Mit mehreren Apps kannst Du sogar vor- und zurück springen und hast immer noch einen zusätzlichen Tastendruck zur Verfügung.


Zitat von: Thyraz am 25 Juli 2017, 12:12:05
@Eragos: Wenn man die normale Uhr auch noch nutzen wollte, würde es evtl. schon reichen wenn du noch Befehle zum Wechseln zu einer bestimmten App einbauen würdest?
Gibt die API ja auch her, dann könnte man sein DOIF entsprechend erweitern.
Das war mein erster Gedanke beim Liedwechsel und funktioniert auch wunderbar. Allerdings kannst Du das auch am Smartphone beim Konfigurieren der App einstellen und musst nicht extra programmieren. Du kannst sogar einen Sound beim Eintreffen neuer Nachrichten hinterlegen.

Zitat von: Thyraz am 25 Juli 2017, 12:12:05
edit: Zu Sonos mit nur einer App und einem Frame:
Man könnte das aktuelle Lied ja auch wie die Uhrzeit und Temperaturen im Cycle mit anzeigen um das jederzeit anschauen zu können.
Um beim Liedwechsel dennoch kurz den Titel zu sehen (egal was davor auf dem Screen war) könnte man den ja zusätzlich als Notification mit dem msg Befehl pushen.
Ich möchte das aber gar nicht im Wechsel sehen, wenn die Box nichts abspielt. Und nur mit einer eigenen App kannst Du zwischen Play und Pause wechseln.

Zitat von: Thyraz am 25 Juli 2017, 12:12:05
Klar: Die Lösung mehrere Apps anzulegen und diese auch noch mit mehreren Frames auszustatten lässt sicher noch eine bessere Bedienung zu.
Gerade auch, da man nicht nur Apps direkt per API anzeigen, sondern auch zu bestimmten Frames darin springen kann.
Aber stellt sie die Frage wie man das Modulseitig umsetzt.
Wie kann man zu bestimmten Frames springen? Den API-Aufruf habe ich nirgends gesehen.


Aus meiner Sicht kann man mit mehreren Apps (mit jeweils mehreren Frames) und zusätzlich Nachrichten mehr verschiedene Wünsche umsetzen, auch wenn nicht jeder alle Möglichkeiten nutzen möchte.

Thyraz

nein, kam leider noch nicht dazu mit eigenen Apps zu spielen.
Ist für heute Abend eingeplant. ;)

Wie gesagt, mehrere Apps klingen cool. :)
Nur die Frage wie man das umsetzt.

Ne Idee die mir dazu:
Einen Aufbau ähnlich den zweistufigen Hardwaremodellen einiger FHEM Module.

Als Grundmodul das bestehende "LaMetric", welches Geräteadresse, Notifications, App-Wechsel, Lautstärke usw. verwaltet.
Ein weiteres Modul "LaMetricApp" von denen es mehrere geben kann?
Dadurch hätte man die Settings zur App und den jeweiligen Key etc. sauber als einzelne Devices in FHEM verwaltet.

Zum aktivieren einzelner Frames:
Die Frames sind doch das, was in der Dev-Doku Widgets genannt wird, oder?
Also bei der Uhr die 2 Screens für Uhrzeit und Datum, oder bei Netatmo die einzelnen Temperaturanzeigen.
http://lametric-documentation.readthedocs.io/en/latest/reference-docs/device-apps.html#activate-specific-widget

Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

ares

Zitat von: Thyraz am 25 Juli 2017, 14:48:56
Die Frames sind doch das, was in der Dev-Doku Widgets genannt wird, oder?
Also bei der Uhr die 2 Screens für Uhrzeit und Datum, oder bei Netatmo die einzelnen Temperaturanzeigen.
Nein, die Uhr ist das Widget (App) und Uhrzeit und Datum sind die Frames. Du kannst auch über die Tasten an der LaMetric nicht die Datumsanzeige erzwingen sondern musst lange genug warten.
Zur Laufzeit kannst Du auch mehrere Frames in der Notification-App setzen, obwohl Du beim Erstellen nur einen Frame angegeben hast.
Alle Frames zusammen haben aber nur einen Button.

Probier es aus, dann wird das alles schnell klar.
Die Channel ignorierst Du bitte, so lange Du nicht über das Internet aktualisieren möchtest.
Und schalte die Uhr auch mal nach dem direkten Aktualisieren aus und wieder ein, Du bekommst dann den ursprünglich definierten Zustand bzw. den Inhalt der letzten Internet-Aktualisierung angezeigt.