Push-Widget: unterschiedliche Readings für get und set

Begonnen von Ralf.E, 28 Dezember 2016, 18:38:56

Vorheriges Thema - Nächstes Thema

Ralf.E

Moin,

ich versuche gerade ein Push-Widget dazu zu überreden für data-set ein anderes Reading zu verwenden wie für data-get.

Das Widget zeigt den aktuellen Status eines Fensters (auf/zu) und beim Anklicken soll ein von "onoff" abweichendes Reading "myNotificationEnabled" gesetzt werden. Prinzipiell funktioniert das soweit, aber beim Anklicken des Push-Widget wechselt das Icon auf den ON state (entsprechend Fenster offen), obwohl das Fenster weiterhin geschlossen ist.

<div class="big"
data-type="push"
data-device="gwc_Fenster" data-get="onoff" data-get-on="1" data-get-off="0"
data-cmd="setreading" data-set="myNotificationEnabled" data-set-on="0"
data-icon="ftui-window"
data-on-color="tomato">
</div>


Hat wer ggf. einen anderen Lösungsansatz?

Gruß Ralf
Rpi4> FHEM, TabletUI, Z-Wave, EnOcean, Hue, HmIP via Debmatic

Ralf.E

Habe gerade eine mögliche Antwort in https://forum.fhem.de/index.php/topic,57950.msg495512.html gefunden: Den Farbwert für data-on-color als RGB-Wert angeben.

Aber das Icon spiegelt noch nicht den richtigen Zustand dar...

Rpi4> FHEM, TabletUI, Z-Wave, EnOcean, Hue, HmIP via Debmatic

Ralf.E

Da ich nicht so wirklich weiter komme möchte ich nochmal nach einer möglichen Lösung fragen:

Aktuell verwende ich ein Symbol-Widget, um den Status eines Fenster anzuzeigen (auf/zu). Wenn das Fenster geöffnet ist wird nach 10 Minuten auf dem Tablet ein Hinweis (Audio) ausgegeben, dass das Fenster noch offen ist. Diesen Hinweis möchte durch ein Klick/Push auf das Symbol deaktivieren können.

Meine ersten Versuche mit einem Push-Widget erlauben zwar das deaktivieren des Hinweises, aber gleichzeitig ändert sich der Status des Icons und zeigt nicht mehr den tatsächlichen Zustand des Fensters an.

Hat wer ggf. eine andere Lösung wie in meinem ersten Posting genannt?

Gruß Ralf
Rpi4> FHEM, TabletUI, Z-Wave, EnOcean, Hue, HmIP via Debmatic

setstate

Push kann keine Zustand anzeigen. Dazu muss man Switch benutzen.

Also beim Code des ersten Postings

data-type="switch" anstatt data-type="push"

Ralf.E

Zitat von: setstate am 02 Januar 2017, 10:23:07
data-type="switch" anstatt data-type="push"

Ok, wäre dann:

<div class="big"
    data-type="switch"
    data-device="tst_dummy"
    data-get="state" data-get-on="0" data-get-off="1"
    data-cmd="setreading" data-set="myNotificationEnabled" data-set-on="1"
    data-on-color="white" data-off-color="#2a2a2a"
    data-on-background-color="firebrick" data-off-background-color="#505050"
    data-icon="ftui-window"
    data-background-icon="fa-circle">
</div>


Mit obigen Beispiel ändert sich dann bei einem Klick aber auch der angezeigte Zustand, obwohl das entsprechende Reading (hier 'state') nicht verändert wird. Wie lässt sich das lösen?

Rpi4> FHEM, TabletUI, Z-Wave, EnOcean, Hue, HmIP via Debmatic

setstate

... is ja verzwickt. Das geht zur Zeit tatsächlich nur über den Umweg mit dem onClick


<div class="big"
    data-type="symbol"
    data-device="dummy3"
    data-get-on="0" data-get-off="1"
    onClick="ftui.setFhemStatus('setreading dummy3 myNotificationEnabled 1')"
    data-on-color="white" data-off-color="#2a2a2a"
    data-on-background-color="firebrick" data-off-background-color="#505050"
    data-icon="ftui-window"
    data-background-icon="fa-circle">
</div>

setstate

ich habe nun Push auch voll update-fähig gemacht. Somit geht dieser Code jetzt auch


<div class="big" data-type="push"
       data-device="dummy3"
       data-get="state"
       data-get-on="0"
       data-get-off="1"
       data-cmd="setreading"
       data-set="myNotificationEnabled"
       data-set-on="1"
       data-on-color="white"
       data-off-color="#2a2a2a"
       data-on-background-color="firebrick"
       data-off-background-color="#505050"
       data-icon="ftui-window"
       data-background-icon="fa-circle">
  </div>

Ralf.E

Zitat von: setstate am 02 Januar 2017, 21:12:01
ich habe nun Push auch voll update-fähig gemacht. Somit geht dieser Code jetzt auch

Oh, vielen Dank für diese Änderung!

Lässt sich auch noch das Verhalten ändern, dass das Widget automatisch den angezeigten "get-state" ändert?

Bei einem Klick auf das Widget während es den off-state (data-get-off trifft zu) anzeigt, wird kurz der on-state ein- und wieder ausgeblendet - zumindest aus meiner Perspektive Ok und dieses ein-/ausblenden ist eine gute Rückmeldung.

Die onClick-Variante geht auch, aber es fehlt ein Feedback.

Bei einem Klick auf das Widget während es den on-state (data-get-on trifft zu) anzeigt, wechselt das Widget in den off-state und verbleibt dort - zeigt also nicht mehr den Zustand von data-get an. Vielleicht durch das ein-/ausblenden bedingt?

Wenn data-get und data-set auf dasselbe reading zeigen, im Sinne der Responsiveness vermutlich gewollt...

Danke
Ralf
Rpi4> FHEM, TabletUI, Z-Wave, EnOcean, Hue, HmIP via Debmatic

setstate

Ist jetzt optimiert, der Push kehrt nach dem Drücken zu seinem vorherigen Zustand zurück. Für die Farben müssen aber RBG Werte benutzt werden. Mit den HTML Color-Namen, wie 'white' kann der Fade-Effekt nicht berechnet werden.

Ralf.E

Zitat von: setstate am 03 Januar 2017, 12:34:30
Ist jetzt optimiert, der Push kehrt nach dem Drücken zu seinem vorherigen Zustand zurück. Für die Farben müssen aber RBG Werte benutzt werden. Mit den HTML Color-Namen, wie 'white' kann der Fade-Effekt nicht berechnet werden.

Super! Vielen Dank
Rpi4> FHEM, TabletUI, Z-Wave, EnOcean, Hue, HmIP via Debmatic