FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: dfo231 am 17 September 2023, 14:25:42

Titel: Switch mit zwei Zuständen aus unterschiedlichen Reading
Beitrag von: dfo231 am 17 September 2023, 14:25:42
Hallo Leute

Ich komme einfach nicht weiter, vielleicht geht es nicht was ich will, aber ich hoffe das ihr euch auskennt.

Ich habe ein Geschirrspüler der Button im Tablet UI soll das machen:

- Beim Antippen Ein oder Ausschalten
- Wenn der Geschirrspüler aktiv ist das Icon drehen lassen sonst bei Aus grau, und eingeschaltet und drehen orange.
- Wenn die Netzwerkverbindung weg ist, rotes Ausrufezeichen.

readings sind State mit On/Off, und running mit on/off

hier mein Code, ich habe versucht es übereinander zu legen:

<div class="cell bigger"
data-type="switch"
data-device="Geschirrspueler"
data-hide="running"
data-hide-on="off"
data-icon='["oa-scene_dishwasher","oa-scene_dishwasher fa-spin"]'
data-background-colors='["#505050","orange"]'
>
<div class="cell big"
data-type="switch"
data-device="Geschirrspueler"
data-background-icon="fa-circle"
data-get-on="On"
data-get-off="Off"
data-set-on="On"
data-set-off="Off"
data-icon='["oa-scene_dishwasher","oa-scene_dishwasher"]'
data-colors='["black","black"]'
data-background-colors='["#505050","orange"]'
>


hier was schon funktioniert, nur ohne drehen das Icon.

<div class="cell bigger"
data-type="switch"
data-device="Geschirrspueler"
data-icon='["oa-scene_dishwasher warn","oa-scene_dishwasher"]'
data-warn="Netzwerk"
data-warn-on="Offline"
data-warn-off="Online"
data-background-icon="fa-circle"
data-get-on="On"
data-get-off="Off"
data-set-on="On"
data-set-off="Off"
data-icon='["oa-scene_dishwasher","oa-scene_dishwasher"]'
data-colors='["black","black"]'
data-background-colors='["#505050","orange"]'
>

Titel: Aw: Switch mit zwei Zuständen aus unterschiedlichen Reading
Beitrag von: TomLee am 17 September 2023, 15:15:02
Komm nicht ganz mit, ist es so gemeint:

    <div
        data-type="switch"
        data-device="Geschirrspueler"
        data-states='["On","Off"]''
        data-icons='["oa-scene_dishwasher warn fa-spin","oa-scene_dishwasher"]'
        data-colors='["black","black"]'
        data-warn="Netzwerk"
        data-warn-on="Offline"
        data-warn-off="Online"
        data-background-icon="fa-circle"
        data-get-on="On"
        data-get-off="Off"
        data-set-on="On"
        data-set-off="Off">
  </div>

edit:

Falscher Forumbereich, nicht FHEMWEB, TabletUI wäre der richtige gewesen, kannst du immer noch dorthin verschieben (unten links)
Titel: Aw: Switch mit zwei Zuständen aus unterschiedlichen Reading
Beitrag von: dfo231 am 17 September 2023, 19:13:21
Hallo TomLee

Deine Code ist besser als meiner, nur funktioniert der nicht so ganz wie ich es möchte.

ich möchte beim Geschirrspüler wenn das reading "running" auf on geht das sich dann erst das Icon dreht,
solange "running" auf off steht soll das icon einfach nur organe leuchten, oder wenn ausgeschaltet in grau.

das mit running und on/off und icon drehen bekomme ich nicht hin.
Titel: Aw: Switch mit zwei Zuständen aus unterschiedlichen Reading
Beitrag von: TomLee am 17 September 2023, 19:29:19
Ich bastele mir in FTUI auch nur immer was zusammen, ich weiß nicht ob man diese Bedingung direkt in FTUI umsetzen kann.

Mein erster Gedanke ist jetzt erstmal ein userreadings in FHEM mit drei Zuständen. Einer für On, einer für On und running und einer für Off. Diese drei Zustände würd ich dann mit data-states und data-icons umsetzen.
Titel: Aw: Switch mit zwei Zuständen aus unterschiedlichen Reading
Beitrag von: dfo231 am 17 September 2023, 21:32:43
TomLee deine Idee ist gut, ich habe nun versucht das mit den Userreadings zu lösen:

Zustand {
if
(ReadingsVal($NAME,"state","") eq "Off") {return 0}
elsif
(ReadingsVal($NAME,"state","") eq "On") {return 1}
elsif
(ReadingsVal($NAME,"running","off") eq "on") {return 2}
elsif
(ReadingsVal($NAME,"running","Off") eq "off") {return 1}
else
{return -1}
}

Leider bekomme ich nur 0 und 1, die 2 will gar nicht kommen, der ließt mir running wohl nicht aus.

Beim Web Ui wollte ich dann machen

data-states='["1","0","2"]''
data-icons='["oa-scene_dishwasher warn","oa-scene_dishwasher","oa-scene_dishwasher fa spin"]'
data-colors='["black","black","black"]'
Titel: Aw: Switch mit zwei Zuständen aus unterschiedlichen Reading
Beitrag von: TomLee am 17 September 2023, 22:57:16
So wäre eine Möglichkeit. Bei dem trigger bin ich mir unsicher ob das jetzt so passt/wie man zwei (noch für running) angibt, da hab ich gerade einen "Hänger".

Zustand:On|Off {
if
(ReadingsVal($name,'state','On') eq 'On' && ReadingsVal($name,'running','On') eq 'On')
{return 2}
elsif
(ReadingsVal($name,'state','Off') eq 'Off') {return 0}
elsif
(ReadingsVal($name,'state','On') eq 'On') {return 1}
}
Titel: Aw: Switch mit zwei Zuständen aus unterschiedlichen Reading
Beitrag von: TomLee am 17 September 2023, 23:11:36
Vlt. kann ja wer anders was zum trigger sagen.
Bestimmt übersehe ich was, es scheint so zu klappen:
Zustand:(On|Off)|running:.*
Titel: Aw: Switch mit zwei Zuständen aus unterschiedlichen Reading
Beitrag von: dfo231 am 18 September 2023, 18:14:55
Hallo TomLee

Für den Rest den die Lösung auch interessiert.

Ich habe die Lösung gefunden, hier der erste Teil
Zustand {
if
(ReadingsVal($NAME,"state","") eq "Off" && ReadingsVal($NAME,"running","Off") eq "off") {return 0}
elsif
(ReadingsVal($NAME,"state","") eq "On" && ReadingsVal($NAME,"running","Off") eq "off") {return 1}
elsif
(ReadingsVal($NAME,"state","") eq "On" && ReadingsVal($NAME,"running","Off") eq "on") {return 2}
else
{return -1}}

Ich hatte auch erst wieder den Knoten, hier ist nun klar definiert welcher von den 3 Zuständen aktiv ist.

<div class="cell bigger"
data-type="switch"
data-device="Geschirrspueler"
data-icon='["oa-scene_dishwasher warn","oa-scene_dishwasher"]'
data-color='["#999","#555"]'
data-background-icon="fa-circle"
data-warn="Netzwerk"
data-warn-on="Offline"
data-warn-off="Online"
data-get="Zustand"
data-set-states='["On","Off"]'
data-states='["0","1","2"]'
data-icons='["oa-scene_dishwasher","oa-scene_dishwasher","oa-scene_dishwasher fa-spin"]'
data-colors='["black","black","black"]'
data-background-colors='["#505050","orange","orange"]'>
</div>

Für Tablet UI hat ich diesen Code, obwohl es hier auch verbessert werden kann, denke ich zumindest.
Titel: Aw: Switch mit zwei Zuständen aus unterschiedlichen Reading
Beitrag von: satprofi am 18 Oktober 2023, 10:25:13
Hallo.
Bin auf der suche nach ähnlicher Lösung auf das hier gestossen.

Habe selbes Problem.
Raspbi3 schaltet meine MQTT-Devices, Raspbi2 sendet Tastenbefehle für Device vom Tablet auf Raspbi3, soweit so gut.
Mein Problem aber jetzt, Raspbi3 schaltet auch selbstständig dieses Device ein/aus. Dies kommt alles beim Raspbi2 auch an. Nur das Icon ändert den Zusatnd nur wenn ich am Tablet ein/aus schalte, aber nicht wenn sich der Zustand über Raspbi3 ändert.
Habe jetzt deinen Vorschlag angewandt, mit userReading, aber es ändert sich nur das Reading. Wo liegt da der Fehler?
<div class="card"><div data-type="switch"
data-device="Taste_Brauchwasserpumpe"
data-get="Zustand"
data-set-states='["on","off"]'
data-states='["0","1"]'
data-icons='["oa-message_socket","oa-message_socket"]'
class="fullsize"></div></div>

LG