Seite 1 von 1

Items rules Alexa - Wahl des Eingangskanals beim Yamaha Verstärker

Verfasst: 13. Apr 2018 16:02
von martin_aus_Ddorf
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

Re: Items rules Alexa - Wahl des Eingangskanals beim Yamaha Verstärker

Verfasst: 16. Apr 2018 15:53
von martin_aus_Ddorf
Huhu?

Kein Experte hier?
Dass ich das schon prinzipiell richtig mache, scheint sich zu bestätigen.

Könnte denn jemand bitte 1x auf die Regeln schauen?
Im Wesentlichen soll ja eine Regel aufgerufen werden, wenn ein Item angesprochen wurde (Switch Yamaha_Bluetooth_ein).
In der Regel sollen dann wieder verschieden Items aufgerufen werden (Verstärker an und Line-in = HDMI2)

Könnt ihr mir bitte sagen:
1.) Habe ich die Dateien der Rules und Items richtig benannt?
Also home.items und home.rules, oder ist das komplett egal, Hauptsache die Endungen sind richtig?
(ursprünglich hatte ich mich in meinem ersten Posting zu dem Thema mit den Dateinamen vertan. Das habe ich nun korrigiert.)

2.) Wie schreibe ich die Bedingung in der Rule auf, wenn ein Item aus der home.items als Auslöser dienen soll?
Umgangssprachlich wäre das ja "wenn der Schalte mit dem Namen Yamaha_Bluetooth_ein aufgerufen wurde, dann... "
Wie setzte ich das als Syntax um?

3.) wie rufe ich Items in der Rule Datei auf?
Im Augenblick steht da "Switch Yamaha_Power "Power [%s]" <switch> { channel=".....a3:Main_Zone:zone_channels#power" }".
Das beschreibt vermutlich einen Schalter, aber ich möchte ja einen Schalter ->betätigen, den Verstärker einschalten.
Ich möchte also keinen Schalter beschreiben, sondern einen Tastendruck auf einen Schalter.
Wie beschreibe ich das denn in der Rule Datei?


Könnt ihr mir bitte bei diesen drei Fragen aufs Pferd helfen?
Ganz lieben dank!

Grüße
Martin

Re: Items rules Alexa - Wahl des Eingangskanals beim Yamaha Verstärker

Verfasst: 17. Apr 2018 11:01
von seppy
Hi,
ich versuche es mal. Zum einen gehören die Item Definitionen in die Item files:

Code: Alles auswählen

Switch Yamaha_Bluetooth_ein "Blauzahn-Ein" ["Switchable"]
Switch Yamaha_Power "Yamaha" ["Switchable"] {channel="yamahareceiver:zone:5f9ec1b3_ed59_1900_4530_00a0de9f8fa3:Main_Zone:zone_channels#power"}
String Yamaha_Input "Input [%s]" <video> { channel="yamahareceiver:zone:5f9ec1b3_ed59_1900_4530_00a0de9f8fa3:Main_Zone:zone_channels#input" }
Das sieht damit erstmal gut aus. Jetzt zu den Regeln, hier fehlt bei Dir so wie ich das sehe der Bezug auf die Items:

Code: Alles auswählen

rule "Yamaha_Bluetooth_ein"
when 
	Item	Yamaha_Bluetooth_ein changed from OFF to ON
then
	// Schalte Receiver an
	Yamaha_Power.sendCommand(ON)
	// Setze Input Channel
	Yamaha_Input.sendCommand("HDMI"")
end
Versuche mal damit weiterzukommen.

Grüße,
Seppy

Re: Items rules Alexa - Wahl des Eingangskanals beim Yamaha Verstärker

Verfasst: 17. Apr 2018 17:47
von martin_aus_Ddorf
perfekt!
Danke dir!

Das hat auf Anhieb geklappt!
Das WHEN Statement habe ich noch leicht abgeändert:

Code: Alles auswählen

 Item Yamaha_Bluetooth received update
Somit habe ich einen Schalter, der immer ein geschaltet werden kann - es ist halt nicht gesichert, dass ich die Geräte auch wieder per openHAB ausschalte..


Danke dir!!
Beste Grüße
Maritn

Re: Items rules Alexa - Wahl des Eingangskanals beim Yamaha Verstärker

Verfasst: 18. Apr 2018 11:04
von seppy
Perfekt!