[erledigt]Problem mit "Button"-Widget

Begonnen von stoxx, 14 April 2016, 17:48:38

Vorheriges Thema - Nächstes Thema

stoxx

Hallo,
habe gerade Schwierigkeiten bei der Verwendung des Button-Widgets:
Ich würde gerne erreichen, dass bei Klick auf den Button ein fhem-Befehl ausgeführt wird. Gleichzeitig soll die Farbe des Button-Icons den Wert eines Readings anzeigen: grün bei false, rot bei true.

Hier der Code:


<div data-type="button" data-device="Test" data-get="Reading"
     data-get-on="true"
     data-get-off="false"
     data-icon="fa-leaf" 
     data-on-color="Crimson"
     data-off-color="SeaGreen"
     data-off-background-color="#2a2a2a"
     data-on-background-color="#2a2a2a"
     data-fhem-cmd="set MyTTS tts okay"
>


Drücke ich nun den Button, färbt sich das Icon rot und bleibt solange rot, bis ich einen Refresh der Seite mache. Dann ist der Button wieder grün.
Hat jemand eine Idee, was ich falsch mache? Habe die aktuelle Version des Widgets..
Danke und Gruss
stoxx
FHEM 5.8 auf Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave ..

setstate

Ergänze mal
data-set-on="true" und data-set-off="false"

stoxx

Okay...
Jetzt schaut es so aus:

data-get-on="true"
data-get-off="false"
data-set-on="true"
data-set-off="false"

Trotzdem gleiches Phänomen :Fhem Befehl wird ausgeführt, Symbol färbt sich rot und bleibt so... bis zum refresh
FHEM 5.8 auf Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave ..

setstate

Es sieht so aus, als wären deine Sachen nicht verknüpft.

Seite wird gestartet, dein Button nimmt den Status von Test:Reading an. Du schreibst grün, also ist das Reading gleich "false" <- ok
Du drückst den Button, er nimmt den Status 'on' an und wird damit rot. <- passt
Gleichzeitig sendest du ein festes Kommando "set MyTTS tts okay", was sich meines Erachtens nicht direkt auf das Device "Test" auswirkt, ausser du hast ein notify darauf im FHEM definiert.
An Test wird nichts gesendet, da du ja data-fhem-cmd benutzt.

stoxx

Ich habe mich an diese Doku gehalten:

https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/button

Ich möchte eigentlich keinen Wert "schreiben", der Button soll lediglich den Wert lesen und farblich wiedergeben. Und wenn man den Button drückt, einen ganz anderen davon unabhängigen fhem Befehl senden...
Laut der Beschreibung oben wäre das doch das richtige Widget, oder nicht ..??
FHEM 5.8 auf Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave ..

setstate

So klappt das leider nicht. Damit das funktioniert, muss man das lokale Setzen des Status beim Klicken verhindern. Du willst nur passiv auf das Reading reagieren. Aber Schicken willst du das FHEM Command. Das Verhindern des Sendens erreicht man mit data-set-on="" respektive data-set-off="" Im Code sind das aber zwei verschiedene Pfade. Beides geht nicht. Die folgende Lösung ersetzt das data-fhem-cmd durch ein einfache JS onClick. Somit hast du beides

<div data-type="switch" data-device="dummy1"
     data-get-on="1"
     data-get-off="0"
     data-set-on=""
     data-set-off=""
     data-icon="fa-leaf"
     data-on-color="red"
     data-off-color="green"
     data-off-background-color="#2a2a2a"
     data-on-background-color="#2a2a2a"
     onClick="setFhemStatus('set MyTTS tts okay')"></div>

stoxx

Super, so funktioniert alles bestens!!
Danke!
FHEM 5.8 auf Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave ..