Hallo,
ich würde gerne 2 Readings vergleichen. Wenn beide gleich sind, soll ein Player die Musik starten, sind die Werte unterschiedlich, soll eine Playlist gestartet werden.
Die Readings können Strings und/oder Zahlen enthalten.
testStatus2.* {if (Value("Playlist_Wohnzimmer:state") eq (Value("SB_Player_Bad:currentPlaylistName"))) {fhem ("set SB_Player_Bad play")} else {fhem ("set SB_Player_Bad playlists" .ReadingsVal("Playlist_Wohnzimmer","state",""))}}
Bei dem Code greift jedoch nur die erste Bedingung. Das Else hat keine Wirkung, egal ob die beiden Readings gleich sind, oder unterschiedlich.
Hat einer eine Idee?
Gruß
TWART016
Falsche Syntax
Zitat von: CommandREFValue(<devicename>)
gibt den Status eines Gerätes zurück (entsprechend dem Ausdruck in Klammern, den Sie beim List-Befehl sehen).
ReadingsVal(<devicename>,<reading>,<defaultvalue>)
Gibt den Inhalt der "readings" zurück (den Inhalt der in dem "Readings"-Abschnitt von "list device" angezeigt wird)
Oder Du schreibst alles mit fhem Befehle
testStatus2.* IF ([Playlist_Wohnzimmer:state] eq [SB_Player_Bad:currentPlaylistName]) (set SB_Player_Bad play) ELSE (set SB_Player_Bad playlists [Playlist_Wohnzimmer:state])
Natürlich ist die Syntax falsch. War einach schon zu spät ???
Zitat von: amenomade am 03 September 2017, 02:45:01
testStatus2.* IF ([Playlist_Wohnzimmer:state] eq [SB_Player_Bad:currentPlaylistName]) (set SB_Player_Bad play) ELSE (set SB_Player_Bad playlists [Playlist_Wohnzimmer:state])
Die Ansicht gefällt mir deutlich besser. Vielen Dank.