Hallo liebes Forum,
ich versuche gerade ein Notify zu erstellen, welches meinen TV über CEC vom Raspberry pi aus anschaltet, wenn an meinem AV-Receiver der Input FireTv eingestellt ist. Das Schalten des TV's mittels Schalter funktioniert mit folgendem Code:
define TV dummy
define notify_TV_on notify TV:on {{`echo "on 0" | sudo cec-client -s -d 1`}}
define notify_TV_off notify TV:off {{`echo "standby 0" | sudo cec-client -s -d 1`}}
Ich scheitere jedoch an der Einbindung der Abfrage vermute ich... Wahrscheinlich ein doofer Syntax Fehler, wäre cool wenn jemand kurz drüber schauen würde... Achso: Falls nicht abgefragt werden kann soll der default Wert Spotify eingesetzt werden, da dafür der TV nicht an sein muss. Danke schonmal im Voraus :)
Hier der Code:
define notify_TV_on_AVR notify {\
if (ReadingsVal("AVR","input","spotify")eq "fireTv"){\
{{`echo "on 0" | sudo cec-client -s -d 1`}}\
}\
}
define <name> notify <pattern> <command>
ich sehe keine pattern im 3. notify
und den Sinn der drei geschweiften Klammern hintereinander verstehe ich auch nicht 8)
if (ReadingsVal("AVR","input","spotify")eq "fireTv"){{{`echo "on 0" | sudo cec-client -s -d 1`}}}
Ist die If-Beziehung nicht quasi die Pattern? Die Klammern sind überflüssig, hast du recht. Kann mir jemand auf die Sprünge helfen? Habe da anscheinend etwas nicht richtig verstanden.
Hallo,
danke dir Dave90 für deine notify für an und aus.
Damit funktioniert meine av Receiver Steuerung endlich wunderbar :)
@hankyzoolander: Das freut mich, ich habe mein Problem auch gelöst. Es funktioniert nun mit dem Folgenden Code, wobei ich noch die Bedingung setzen musste, dass der TV aus sein muss, da er sonst in eine Endlosschleife verfällt ;)
define notify_TV_on_AVR notify AVR {if(ReadingsVal("AVR","input","spotify")eq "fireTv" && Value("TV") eq "off") {fhem ("set TV on")} }
Alternativ kann man auch das Modul DOIF verwenden, wenn man das mag. Da ist die deutsche Commandref sehr umfangreich.