Items rules Alexa - Wahl des Eingangskanals beim Yamaha Verstärker
Verfasst: 13. Apr 2018 16:02
Hallo zusammen,
seit ein paar Tagen lese ich mich in die openHab Dokumentation ein, denn ich möchte meinen Yamaha Verstärker nicht nur per Alexa einschalten (das funktioniert bereits), sondern auch den richtigen Eingangskanal (z.B. HDMI2) mitgeben. Die einzelnen Items kann ich in PaperUI unter Control aufrufen und meinen Verstärker damit steuern.
Könnt ihr bitte 1x schauen, ob ich das Prinzip verstanden habe?
Prinzipiell baue ich mir für Alexa ein Item (A), was eine Rule (B) auslöst und diese dann wieder verschiedene Items auslöst - in meinem Fall "Power On-Item" und "Input-Item" = HDMI2.
Ist das vom Ansatz richtig?
Konkret:
A. Item für Alexa (das klappt sogar schon):
Datei ..../openHAB/conf/items/home.items
Switch Yamaha_Bluetooth_ein "Blauzahn-Ein" ["Switchable"]
zur Info: In dieser Datei steht auch noch:
Switch Yamaha_Power "Yamaha" ["Switchable"] {channel="yamahareceiver:zone:5f9ec1b3_ed59_1900_4530_00a0de9f8fa3:Main_Zone:zone_channels#power"}
--> damit kann ich auf Stichwort "Yamaha" den Verstärker ein und ausschalten.
Und das hier brauche ich wohl auch noch für die Regel (s.u.):
String Yamaha_Input "Input [%s]" <video> { channel="yamahareceiver:zone:5f9ec1b3_ed59_1900_4530_00a0de9f8fa3:Main_Zone:zone_channels#input" }
Oder ist das Unsinn?
B. Die Regel
Datei ..../openHAB/conf/rules/home.rules
Das folgende habe ich mir aus der Beispieldoku des Yamaha Bindings zusammen gereimt. Ist bestimmt gruselig..

rule "Yamaha_Bluetooth_ein"
when
Item Yamaha_Input changed
then
var input = Yamaha_Input.state
if (input != NULL) {
if (Yamaha_Input.state == "HDMI2" != NULL) {
input = "HDMI2"
} }
Yamaha_Bluetooth_ein.postUpdate(new StringType(input))
end
Und weil ich erst mal ganz einfach starten wollte, habe ich die Regel geändert und nur auf das Power Item beschränkt:
rule "Yamaha_Bluetooth_ein"
Switch Yamaha_Power "Power [%s]" <switch> { channel="yamahareceiver:zone:5f9ec1b3_ed59_1900_4530_00a0de9f8fa3:Main_Zone:zone_channels#power" }
end
Klappt aber auch nicht... :-/
Mache ich grundsätzlich was falsch, oder "nur" in der Item oder Rule Datei?
Sind die Dateien eigentlich richtig benannt? Oder kann ich die auch Haus.item und Yamaha.rules nennen? Gibt es einen Debugger oder so was - damit ich sehen kann an welcher Stelle es hapert?
Vermutlich habt ihr schon gemerkt, dass ich kein Programmierer bin. Wenn ihr Expertenwissen in Sachen Fotografie benötigt, bin ich euer Man. Hier versuche ich Hilfe von euch zu bekommen.
Eine Idee?
Beste Grüße
Martin
seit ein paar Tagen lese ich mich in die openHab Dokumentation ein, denn ich möchte meinen Yamaha Verstärker nicht nur per Alexa einschalten (das funktioniert bereits), sondern auch den richtigen Eingangskanal (z.B. HDMI2) mitgeben. Die einzelnen Items kann ich in PaperUI unter Control aufrufen und meinen Verstärker damit steuern.
Könnt ihr bitte 1x schauen, ob ich das Prinzip verstanden habe?
Prinzipiell baue ich mir für Alexa ein Item (A), was eine Rule (B) auslöst und diese dann wieder verschiedene Items auslöst - in meinem Fall "Power On-Item" und "Input-Item" = HDMI2.
Ist das vom Ansatz richtig?
Konkret:
A. Item für Alexa (das klappt sogar schon):
Datei ..../openHAB/conf/items/home.items
Switch Yamaha_Bluetooth_ein "Blauzahn-Ein" ["Switchable"]
zur Info: In dieser Datei steht auch noch:
Switch Yamaha_Power "Yamaha" ["Switchable"] {channel="yamahareceiver:zone:5f9ec1b3_ed59_1900_4530_00a0de9f8fa3:Main_Zone:zone_channels#power"}
--> damit kann ich auf Stichwort "Yamaha" den Verstärker ein und ausschalten.
Und das hier brauche ich wohl auch noch für die Regel (s.u.):
String Yamaha_Input "Input [%s]" <video> { channel="yamahareceiver:zone:5f9ec1b3_ed59_1900_4530_00a0de9f8fa3:Main_Zone:zone_channels#input" }
Oder ist das Unsinn?
B. Die Regel
Datei ..../openHAB/conf/rules/home.rules
Das folgende habe ich mir aus der Beispieldoku des Yamaha Bindings zusammen gereimt. Ist bestimmt gruselig..

rule "Yamaha_Bluetooth_ein"
when
Item Yamaha_Input changed
then
var input = Yamaha_Input.state
if (input != NULL) {
if (Yamaha_Input.state == "HDMI2" != NULL) {
input = "HDMI2"
} }
Yamaha_Bluetooth_ein.postUpdate(new StringType(input))
end
Und weil ich erst mal ganz einfach starten wollte, habe ich die Regel geändert und nur auf das Power Item beschränkt:
rule "Yamaha_Bluetooth_ein"
Switch Yamaha_Power "Power [%s]" <switch> { channel="yamahareceiver:zone:5f9ec1b3_ed59_1900_4530_00a0de9f8fa3:Main_Zone:zone_channels#power" }
end
Klappt aber auch nicht... :-/
Mache ich grundsätzlich was falsch, oder "nur" in der Item oder Rule Datei?
Sind die Dateien eigentlich richtig benannt? Oder kann ich die auch Haus.item und Yamaha.rules nennen? Gibt es einen Debugger oder so was - damit ich sehen kann an welcher Stelle es hapert?
Vermutlich habt ihr schon gemerkt, dass ich kein Programmierer bin. Wenn ihr Expertenwissen in Sachen Fotografie benötigt, bin ich euer Man. Hier versuche ich Hilfe von euch zu bekommen.
Eine Idee?
Beste Grüße
Martin