Seite 1 von 1

Echo Control Binding Aktion triggern

Verfasst: 30. Jan 2019 19:38
von Stenico
Hallo zusammen, mein erster Beitrag hier.
Ich setze als Heimautomations-Zentrale eine LOXONE ein und möchte dies auch aktuell nicht ändern (bin sehr zufrieden, WAF ist hoch);
Parallel dazu habe ich ein Multiroom-System bestehend aus 10 Amazon Echos zusammengestellt, das teils via Deckenlautsprechern und zentralem Verstärker die einzelnen Räume beschallt. Via Sprache funktioniert der Teil auch schon soweit (Alexa, spiele Hitradio Ö3 auf (Gruppe) Wohnung | Alexa, spiele Bibi Blocksberg im Kinderzimmer).

Ich möchte folgendes erreichen:
Ich möchte als Reaktion auf einen (virtuellen) Switch in der LOXONE die Echos triggern, daß ein Alarm ausgegeben wird, oder eine bestimmte Radiostation abgespielt wird, lauter, leiser, stop, Alarm, Wecker usw. Somit kann ich dann in der LOXONE meine Logik bauen und beispielsweise einen KNX-Taster im Badezimmer zum starten von Entspannungsmusik definieren.
Ich habe bereits auf einem Raspberry 3 Openhabian installiert, die LOXONE und die ECHO CONTROL Bindings installiert und kann sowohl die Loxone als auch die Echos wie gewünscht über die Paper-GUI steuern. Jede Änderung in der LOXONE wird in der PaperGUI bereits dargestellt - in die andere Richtung funktioniert die Steuerung auch. War erfreulich einfach die Einrichtung - die Autokonfiguration von openHAB ist beeindruckend.

Wie bekomme ich es nun hin, daß eine Aktion der LOXONE einen Befehl in Richtung Alexas auslöst?
Ich habe es bereits mit einer Regel versucht, aber das klappt nicht und ich erkenne nicht wieso.
Ich habe im rules Ordner eine Datei default.rules angelegt mit folgendem Inhalt:

Code: Alles auswählen

rule "Alexa_ALARM on" when thing "loxone:miniserver:123F456789C0:12A34567-1234-1A2B-ABCDEFFEDBC12345" changed to ON then amazonechocontrol:echo:1234567:A123BC1181753DEF_StartCommand.sendCommand('Weather') end
Den Namen des Loxone thing habe ich 1:1 übernommen, den Namen vom Alexa-Thing habe ich noch "_StartCommand("Weather")" angehängt. Ich vermute hier irgendwo den Fehler.

Re: Echo Control Binding Aktion triggern

Verfasst: 30. Jan 2019 23:31
von udo1toni
Die Idee ist gut, aber ...

openHAB arbeitet mit mehreren Abstraktionsebenen. Die erste ist die Abstraktion der Hardware. Das passiert bei OH2-Addons mittels Bridges und Things. Eine Bridge ist dabei die Schnittstelle zu einem "Bus", das Thing steht für ein einzelnes Device an diesem Bus. Jedes Thing hat Channel. Diese Channel enthalten die eigntliche Schaltinformation. z.B. hast Du ein REG (Reiheneinbaugerät) mit mehreren Relais. Je Relais gibt es dann einen Channel, so dass man jedes Relais über einen eigenen Channel steuern kann.

In openHAB gibt es eine zweite Abstraktionsebene, die Items. Um in openHAB einen Channel zu beeinflussen, muss man den Channel mit einem Item verlinken. openHAB erstellt automatisch Links, sofern der Simple Mode aktiviert ist.
Unterhalb des Things kannst Du die Liste der Channel einsehen, pro Channel kannst Du alle Items sehen, die mit dem Channel verlinkt sind.

Innerhalb einer Rule kannst Du nur auf Items Bezug nehmen. (Im Trigger-Teil einer Rule gibt es noch ein paar weitere Trigger, die teilweise auch direkt auf Things verweisen, diese betreffen aber den Status des Things, nicht der Channel. Es gibt auch einen Channel Trigger, der bezieht sich aber ausschließlich auf Event Channel). Du brauchst die Items.

Deine Rule sieht dann ungefähr so aus, wie von Dir gedacht:

Code: Alles auswählen

rule "Alexa Alarm"
when
    Item AlarmLoxone received command
then
    if(receivedCommand == ON)
        echo.sendCommand("AlarmOn")
    else if(receivedCommand == OFF)
        echo.sendCommand("AlarmOff")
end
Dabei wäre dann das Item AlarmLoxone ein Switch Item, welches mit dem passenden Channel verlinkt ist, das Item echo stünde für ein Echo oder auch eine Gruppe von Echos.

Re: Echo Control Binding Aktion triggern

Verfasst: 30. Jan 2019 23:54
von Stenico
Herzlichen Dank Udo/Toni?

Ich dachte ich komme ohne items über die Runden - und da keine angelegt wurden wäre das der einfachste Weg gewesen. Ich erstelle dann mal entsprechende items und versuche mein Glück nach Deinem Beispiel.

Danke und lg
Nico