Hauptmenü

4-fach Schalter

Begonnen von musicnrw, 19 April 2017, 12:30:32

Vorheriges Thema - Nächstes Thema

musicnrw

Hallo zusammen,
ich bin gerade dabei, im Tablet UI ein Schalter-Array zu erstellen mit 4 Buttons (auf Basis des Switch-Widgets).
Sinn des ganzen: Ich möchte die Möglichkeit haben, 4 verschiedene Heizplänze je nach Wohnungsnutzung an die Homematic-Thermostate zu senden. Das versenden gelingt mittlerweile. Es geht mir jetzt darum, dass der Button, der zuletzt gedrückt wurde um den entsprechenden Plan zu senden, auch dauerhaft, also bis zum Betätigen eines anderen Buttons aktiviert, also farblich anders dargestellt wird.
Der Code für das 4-fach-Schalterarray sieht im wesentlichen so aus:
<div>
<div data-type="switch" data-device="dummy1" data-get-off="!on" data-set-off="" data-icon="fa-home" data-get-on="Home"></div>
<div>Home</div>
<div data-type="switch" data-device="dummy1" data-get-off="!on" data-set-off="" data-icon="fa-bed" data-fhem-cmd="attr hm configTempFile WE_zuhause.cfg,WE_nichtzuhause.cfg,UrlaubIn.cfg,UrlaubOut.cfg";"set hm tempListG restore"> <div>WE_zuhause</div>
<div data-type="switch" data-device="dummy1" data-get-off="!on" data-set-off="" data-icon="fa-car" data-fhem-cmd="attr hm configTempFile WE_nichtzuhause.cfg,WE_zuhause.cfg,UrlaubIn.cfg,UrlaubOut.cfg";"set hm tempListG restore"> <div>WE_nichtzuhause</div>
........
</div>


Wie gesagt, die Übermittlung der Heizzeiten klappt, nur funktioniert die Darstellung der 4 Buttons des 4-fach-Schalterarrays nicht so richtig. Der zuletzt gedrückte Button, und nur der, soll solange hervorgehoben sein, bis ein anderer gedrückt wird.

Wie kann ich das schaffen?

rabehd

Du musst das auch irgendwo speichern. Oder wie weißt du nach einem Neustart welcher Plan gerade im Device ist? Was ist, wenn es von einem anderen Ort geschaltet wird?

Meine Idee (ohne es nachgeprüft zu haben)
Das Widget für den Anwesenheitsstatus als Basis
Setzen des "Heizplanstatus"
Ändern des Heizplanstatus triggert notify, welches den Heizplan überträgt

Mal so als mein Ansatz
Auch funktionierende Lösungen kann man hinterfragen.

musicnrw

Danke schonmal für den Ansatz. Leider sind meine FHEM-Kenntnisse nach zu gering, als dass ich daraus eine funktionierende Lösung "stricken" könnte.
Muss ich eine Dummy-Variable als Speicher für den zuletzt gewählten Status verwenden und diese dann auslesen, um den "richtigen" Button zu highlighten?
Wie sieht das Notify dann aus? Ich denke es muss mehrere IF-Abfragen beinhalten, die die Dummy-Variable auf den gesetzten Inhalt checken und demnach entsprechende Kommandos an FHEM senden?

Ein paar Codezielen wären echt super, die mir auf die Sprünge helfen!

rabehd

Ich habe mir Deine Beschreibung nochmal durchgelesen. Ich denke da müssen wir anderes ran.
Du möchtest bei jeder Änderung der Wohnungsnutzung die Heizprofile ändern? Damit geht es gar nicht darum welches Heizprofil aktiv ist, sondern welches Profil der Wohnungsnutzung aktiv ist. Hier wäre das Stichwort "Anwesenheit" der Anfang. Der Anwesenheitsstatus muss natürlich irgendwo hinterlegt sein. Eine Änderung dieses Status löst das notify zum Versenden des Heizprofiles aus. Klar hier sind ein paar if's notwendig.
Welches Heizprofil aktiv ist scheint für mich uninteressant, da es ja am Anwesenheitsstatus hängt. Der lässt sich gut in Tablet UI visualisieren.

Hilft Dir das?
Mit einem richtigen Konzept kann man über die Umsetzung diskutieren.
Die 4-Button-Lösung erscheint mir keine schöne Lösung.

Immer die Frage stellen: Was ist der Auslöser dafür/wofür?
Auch funktionierende Lösungen kann man hinterfragen.