Amazon Echo einfache Einbindung in IPS mit der HA Bridge

Hallo zusammen,

aufgrund der gemachten Erfahrungen in der Bastel-Ecke des Forums mit der Einbindung von Amazon Echo in Symcon über die HA Bridge, möchte ich in Abstimmung mit dem Forums-Mitglied drdigital, in diesem Bereich des Forums nochmal seine Anleitung posten.

Diese Anleitung soll eine Übergangslösung darstellen, bis der eigentliche Symcon Skill bei Amazon endlich durch ist bzw. wenn man nicht warten will bis der Skill verfügbar ist, kann man sich dieser Lösung bedienen.
Update: Seit dem 23.02.2017 ist der offizielle Symcon Skill für Amazon Echo verfügbar. Anbei der Link zum Thema im Forum.
Wenn jemand dennoch mit der HA Bridge arbeiten will und dazu Fragen hat, darf er sich natürlich weiterhin gerne melden.

Nun zur Anleitung
Zuerst muss die HA Bridge installiert werden - anbei die Github Adresse:
https://github.com/bwssytems/ha-bridge
Die Bridge muss gestartet sein

Wenn diese läuft, emuliert die HA Bridge im Prinzip eine HUE Bridge.

In der Alexa App gibt es den Bereich Smarthome und dort den Punkt “Meine Geräte”
Dort kann man nach den neuen Geräten suchen lassen.

Diesen Schritt, mit dem Suchen nach Geräten, muss man später ausführen, nachdem man die Devices in der HA Bridge angelegt hat

Der WebServer Port der HA Bridge steht per Default auf Port 80. Dieser Port ist auch der bevorzugte Port, damit die Alexa App auch bei der Geräte-Suche die Devices der HA Bridge finden kann.
Alternativ hat bei anderen Usern auch der Port 81 ohne Probleme funktioniert. Allerdings hat ein Versuch mit dem Port 8080 nicht geklappt.
Wenn man aber Port 80 bei der HA Bridge nutzt, ist damit auch die Voraussetzung für die Funktion mit Google Home gegeben, da dort Port 80 zwingend vorgegeben wird.
In diesem Zusammenhang ist es wichtig zu erwähnen, dass diese Anleitung ebenso mit Google Home funktioniert.

Bevor es losgehen kann, sollte man das Bayaro URL Skript in IPS anlegen, wie von Bayaro in folgendem Post beschrieben:
IP-Symcon - Wie kann ich… 2.0 - Seite 7
Durch diese Lösung von Bayaro wird ermöglicht, dass jedes Skript per URL angesprochen und jede Variable per URL gesetzt werden kann.

Alternative dazu ist, ein Webhook in Symcon anzulegen.
Dies wird hier im Post von kalastaja beschrieben.

Die HA Bridge kann auch mit Json umgehen, aber das habe ich noch nicht zum laufen gebracht.Erstes Beispiel - Licht AN/AUS:
Wir legen dazu zwei Skripte in Symcon an, das eine mit dem Befehl zum Einschalten und das Andere zum Ausschalten. In meinem Beispiel sind das Licht-Buero-An und Licht-Buero-Aus.
Bildschirmfoto 2017-02-13 um 10.13.43.png

Der Inhalt von Licht-Buero-An besipielsweise, ist in meinem Fall:

<?
EIB_Switch(54448 /*[KNX-original\Ergeschoss\Büro EG\Beleuchtung Büro EG Ein/Aus]*/, true);
?>

Die IDs müsst Ihr auf Eure Devices anpassen. Ich habe KNX/EIB, deshalb verwende ich “EIB_Switch”. Bei anderen Lösungen braucht man natürlich auch den passenden Befehl

In der HA Bridge kann man über das Webinterface Einstellungen vornehmen.

Unter Add/Edit kann man ein Device anlegen.
Mein Device habe ich Licht Buero getauft.

Weiter unten muss man dann für das On Item unter Target Item die URL für die Ausführung des Licht-Buero-An-Skripts eingeben.
In meinem Fall ist das

http://192.168.178.8:3777/user/WebhookBY.php?RUNScriptID=49340

Damit wird das On item mit dieser URL verknüpft. Die IP-Adresse 192.168.178.8 ist durch die IP-Adresse Eures eigenen Symcon-Servers zu ersetzen.
Gleiches macht man auch mit dem Off Item. Dort steht mein Target Item, entsprechend zum passenden Licht-Buero-Aus-Skript, auf

http://192.168.178.8:3777/user/WebhookBY.php?RUNScriptID=25834

Nicht vergessen den grünen Button “Add” zu drücken, wenn man die Target Items anlegt!
Außerdem muss man, wenn man fertig ist, noch den Button “Add Bridge Device” drücken, damit alles gespeichert wird.

Das sieht dann in etwa so aus:

Jetzt kann man über die Buttons “Test ON” und “Test OFF” schon die Funktion testen.
Wenn das klappt, muss man nur noch die Alexa App nochmal nach den Geräten suchen lassen und kann dann die Sprachsteuerung nutzen.

Hier kann ich sagen: “Alexa, Licht Buero einschalten” oder “Alexa, Licht Buero An”. Es wird beides verstanden und ausgeführt.

Hilfsvariable setzen mit der HA Bridge und Beispiel Rolladen:

Erstellen einer Hilfsvariable, deren Wert über die HA Bridge per Sprache gesetzt wird
Screenshot_2017-02-13 13.51.16_KXt1Ii.png

Typ: INTEGER auswählen
Bildschirmfoto 2017-02-13 um 13.51.57.png

Ergebnis ist eine neue Integer Hilfsvariable mit einer ID, die wir gleich brauchen. Bei mir ist es die ID 13635

Dann in der HA Bridge unter Add/Edit wieder ein Device anlegen

Diesem Device habe ich den Rufnamen “Rollladen Buero” gegeben.

Weiter unten muss man dann für das Dim Item unter Target Item die URL für das Setzen der gerade erstellten Hilfsvariable (ID 13635) eingeben.

In meinem Fall ist das wie folgt:

http://192.168.178.8:3777/user/WebhookBY.php?SETVarID13635=&SETVarVALUE=${intensity.percent}

Wieder nicht vergessen den grünen Button “Add” zu drücken, wenn man die Target Items anlegt!
Außerdem muss man, wenn man fertig ist, noch den Button “Add Bridge Device” drücken, damit alles gespeichert wird.

Das sieht dann in etwa so aus:

Jetzt kann man über den Buttons “Test Dim” schon die Funktion testen.
Wenn das klappt, muss man nochmal die Alexa App nach den Geräten suchen lassen und kann dann die Sprachsteuerung nutzen.

Die Hilfsvariable kann jetzt schon mit z.B. “Alexa, Rollladen Buero auf xx%” oder ”Alexa setze Rolladen Buero auf xx%” oder “Alexa, dimme Rollladen Buero auf xx%” gesetzt werden.

Damit die Hilfsvariable nun den Rolladen fahren kann,
muss man unter der oben angelegten Hilfsvariable ein Skript mit folgendem Inhalt anlegen


<?
SC_Move(36940 /*[KNX-original\Ergeschoss\Büro EG\Shutter Control EG Büro]*/, $_IPS['VALUE']);
?>

Ich arbeite mit dem Shutter Control Modul von Symcon. Deshalb sieht der Befehl “SC_Move” so aus.
Die ID 36940 ist mein Shutter Control vom Rollladen Büro.

Das Ereignis triggert die Änderung der Hilfsvariable. Also wenn sich der Wert der Hilfsvariable ändert, wird das Skript ausgeführt und das Skript holt sich den zu sendenden Wert von der Hilfsvariable.

Der Rollladen kann jetzt mit z.B. “Alexa, Rollladen Buero auf xx%” oder ”Alexa setze Rolladen Buero auf xx%” oder “Alexa, dimme Rollladen Buero auf xx%” gefahren werden.

Ich hoffe, die Anleitung ist verständlich.

Alternative Möglichkeit zur Bearbeitung der HA Bridge Konfig (device.db) mit Texteditor
Für diejenigen, die lieber mit einem Texteditor arbeiten, kann die Konfiguration der HA Bridge
auch mit einem Texteditor erfolgen.
Hierzu ist die Datei device.db zu bearbeiten.
Vorteil dieser Methode ist, dass man nur das nötigste in der Konfigurationsdatei hat.
Also nicht wundern, wenn diese anders aussieht, als die durch das Webinterface erstellte Konfig.

Die oben zwei aufgeführten Beispiele sehen im Texteditor so aus.

[
{
"id":"1",
"name":"Licht Buero",
"deviceType":"switch",
"offUrl":"[{\"item\":\"http://192.168.178.8:3777/user/WebhookBY.php?RUNScriptID\u003d25834\"}]",
"onUrl":"[{\"item\":\"http://192.168.178.8:3777/user/WebhookBY.php?RUNScriptID\u003d49340\"}]"
},
{
"id":"2",
"name":"Rollladen Buero",
"deviceType":"switch",
"offUrl":"",
"dimUrl":"[{\"item\":\"http://192.168.178.8:3777/user/WebhookBY.php?SETVarID\u003d13635\u0026SETVarVALUE\u003d${intensity.percent}\"}]",
"onUrl":""
}
]

Durch copy and paste kann die device.db einfach erweitert werden.

Wichtig ist hier nur, dass die Änderungen in der HA Bridge erst nach einem Neustart sichtbar sind.

Spracherkennung:
Betreffend der Spracherkennung und der verwendbaren Sprachbefehle, gibt es die Möglichkeit sich in diesem Thread auszutauschen

Fragen zu dieser Anleitung bitte im passenden Thread in der Bastel-Ecke stellen.
Amazon Echo zum Schalten von IP-Symcon Variablen per ESP8266 oder Wemos D1 mini

Ist eigentlich der Ausdruck des PDF, meine Erfahrungen sind, es gibt Probleme mit dem vorgeschlagenen Port 81, mein Raspi3 will nicht damit nicht arbeiten.
Portänderung unter der HA Bridge funktionierte bei mir nicht, hat die Bridge nicht gespeichert/ausgeführt.

Das Aufsetzen unter Windows und Port 80 funktioniert, aber das Werte verschicken leider nicht richtig, bei meinen Versuchen hat die HA Bridge Instance „Werte“ den digitalen Teil beschrieben.

Ich schreibe es, weil diese Erfahrungen anderen Usern Zeit sparen könnte.
Gruß Helmut

Hallo Helmut,
hattest Du auch mal versucht den Port in der habridge.config zu ändern und dann die HA Bridge neu zu starten?
Also nicht den Port im Webinterface der HA Bridge ändern, sondern wirklich mit einem Text Editor in der habridge.config.

Ja, das ist zum Teil richtig. Hier lassen sich Änderungen allerdings besser einfügen und die Anleitung verändern.
Weiterhin sind drdigital und ich Deinem Hinweis nachgegangen, dass in den Screenshots des PDF-Dokuments andere Target-Adressen standen, als im Text der Anleitung.
Die Screenshots wurden dementsprechend angepasst und stimmen mit dem Text in der Anleitung überein.

Gruß, Nico.

Ändern des Ports geht in der /etc/systemd/system/habridge.service.
Über das Webinterfache geht das bei mir auch nicht.
@Helmut
Wenn das ändern der Datei nicht geht dann hast Du den Editor wahrscheinlich nicht mit Root-Rechten gestartet.
Probier mal ein „sudo nano /etc/systemd/system/habridge.service“
In der kurzen Datei ist der Port angegeben, den kannst Du dann ändern.
Am bestern vorher mit „sudo systemctl stop habridge.service“ die Bridge stoppen, nach der Änderung mit „sudo systemctl start habridge.service“ wieder starten.
Port 80 würde ich nicht nehmen, das ist der Standard-Port für http und es ist nur eine Frage der Zeit bis sich da was in die Quere kommt.

Hallo, sieht interessant aus, ich scheitere aber schon beim Webhook:

http://xx.xx.xx.xx:3777/user/WebhookBY.php?RUNScriptID=34169

Parse error: in C:\IP-Symcon\webfront\user\WebhookBY.php on line 2

Script gibt es, die gleiche Fehlermeldung erscheint beim Abfragen von Variablen.

kann jemand helfen ?

Sabl

Hast Du das Bayaro script unter user drin?

Gesendet von meinem SM-N920C mit Tapatalk

Ja, ist im Verzeichnis

Bei mir läuft alles unter Windows

Sorry keine Fragen bin schon weg

Hallo drdigital,

ich habe mal ne kurze Verständnis Frage:

Ich arbeite mit Symcon 4.1. Dort gibt es bereits als Kerninstanz einen Webhook. Muss ich denn dann trotzdem das Webhook-Script von Bayaro nutzen, oder kann ich direkt mit der Kerninstanz arbeiten?

Viele Grüße,

Burkhard

Hallo Burki24,
nicht unbedingt, Du kannst auch die Methode von kalastaja aus diesem Post verwenden.

Hallo,

Vielen Dank für diese Super anleitung.
Kann mit dieser methode auch zb Gesagt bekommen wieviel Grad es im Wohnzimmer sind?
Wie müsst der Script dann ausehen?

Gruss,

Nein. Kein Rückkanal (leider). Das gibt wohl weder der Smarthome Skill noch die HA Bridge her.

Wenn man parallel noch Sonos hat,
dann könnte man Alexa Fragen und über Sonos die Ansage bekommen.

Aber Standalone kann es der Echo bis dato noch nicht,
ich gehe aber davon aus, dass da bestimmt noch was nachgeliefert wird.

Hallo drdigital,

vielen Dank für die Infos. Bis zum erscheinen des Symcon-Skills habe ich mich jedoch nun entschlossen, die gesamte Voice-Steuerung erstmal über ioBroker zu machen. Hier gibt es bereits einen Skill und die Umsetzung ist mega einfach.

Viele Grüße,

Burkhard

Mit einem Smarthome Skill geht das nicht. Wenn man einen eigenen Custom Skill und Funktion schreibt kann Echo natürlich auch jede Rückmeldung geben wenn die passende Frage gestellt wurde.

Hallo,

Ich habe jetzt 4 Echo’s in verschiedenen Räumen, was mich daran stört ist das ich das Licht in jedem Raum mit Licht Wohnzimmer, Licht Schlafzimmer, Licht Bad usw. benennen muss.
Gibt es da eine Möglichkeit die Echo’s aufzuteilen damit jeder Echo einen Raum zugeordnet wird und ich nur mehr „Alexa Licht An“ sagen muss und die Aktion in dem jeweiligen Raum ausgeführt wird wo der Echo steht?

Wie löst Ihr das?

Du kannst in der HA Bridge in den Bridge Devices für den HTML-Aufruf jeweils eine IP-Beschränkung angeben. D.h. Du kannst Bridge Devices Aktionen definieren welche nur von bestimmten Echos oder Dots ausgeführt werden dürfen. Ausprobiert habe ich das allerdings noch nicht.

Hi zusammen,

da ich auch nicht mehr warten möchte bis der „offizielle“ Skill rauskommt und der Echo seit 2 Wochen rumsteht habe ich mich mal an der HA Bridge probiert. Tolle Anleitung und mit wenig Aufwand/Zeit lief erstmal alles.

Heute wollte ich nun alle Geräte „sauber“ anlegen und jetzt habe ich folgendes Problem. Alexa sagt immer das er unter dem gesagten Namen mehrere Geräte hat.

Ich habe „Licht Hauseingang“, „Licht Schlafzimmer“ und „Licht Partyraum“ angelegt. Auf die Nachfrage welches Geät ich meine - nochmal z.B: „Licht Partyraum“ antworte funktioniert es, aber immer nur auf Nachfrage???

Ich habe die Geräte vom ersten „Edit/Copy“ gemacht und dann den Namen geändert und „Add Bridge Device“ gedrückt. Darf man das nicht und muss alle Geräte sauber über „Add/Edit“ anlegen?

Danke Heiko