Autor Thema: Mini Howto für ha-bridge (Alexa FHEM)  (Gelesen 66733 mal)

Offline heikoh81

  • Sr. Member
  • ****
  • Beiträge: 540
Antw:Mini Howto für ha-bridge (Alexa FHEM)
« Antwort #255 am: 31 März 2018, 21:04:03 »
Hallo zusammen,

zu den Posts bzgl. Discover-Problemen:
Auch ich habe regelmäßig mit den Discover-Problemen gekämpft.

Die Lösung war bei mir, unter Bridge Control
Button Press/Call Item Loop Sleep Interval (ms) = 650
sowie
UPNP Send Delay = 650
zu setzen.

Seither läuft die Erkennung sehr zuverlässig.
Gefunden habe ich das in dem Github Issue zur Release Candidate-Entwicklung von 5.2.0, ich finde das issue aber jetzt nicht mehr...

Zu den Posts bzgl. Standalone-Spracherkennung:
Ich denke mal, das wird momentan nicht gehen. Das ist ja sicherlich das Geheimnis von Amazon und die Technik wollen sie erstmal nur auf ihren Servern behalten :-)
Das Problem ist auch vielmehr die Hue-Emulation von HABridge. Ich gehe davon aus, dass Philips & Amazon eng zusammenarbeiten. Wenn die was am Hue-UPNP-Protokoll ändern, ist das mit Amazon abgestimmt, d.h. original Hue-Bridges funktionieren weiterhin.
HABridge muss dann halt immer hinterher programmieren.

Ein ähnliches Problem habe ich jetzt, weil Echo seit neuestem bei "Stelle auf 50%" zunächst noch einen on-Befehl sendet.
Das ist natürlich gar nicht gut für meine Homematic-Aktoren. Darf ich jetzt wieder mit DOIF hinterherprogrammieren mit wait-Timern, die erstmal warten, ob noch ein %-Wert kommt...

Zu den Posts bzgl. FHEM-Integration in HABridge:
Dazu kann ich leider nichts sagen, ich verwende HABridge lediglich zum Aufrufen von FHEM-URLs.
Ich habe alle Devices manuell in HABridge angelegt.

Viele Grüße,
Heiko
« Letzte Änderung: 31 März 2018, 21:08:07 von heikoh81 »
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Allodo

  • Jr. Member
  • **
  • Beiträge: 50
Antw:Mini Howto für ha-bridge (Alexa FHEM)
« Antwort #256 am: 05 Juni 2018, 19:15:13 »
Ich habe heute habridge 5.2.1 installiert und habe so meine Probleme mit den "FHEM DEVICE".

Unter Bridge Devices habe ich unter FHEM Names and IP Addresses folgendes eingegeben und gesichert.
Name: Fhem (Der Name sollte doch eigentlich egal sein, oder?)
IP: IP-Adresse von fhem
Port: Port von fhem (8083)
Username: Username von FHEM
Password: Passwort von FHEM WebUI
Room: habridge (dorthin habe ich alle meine HM-Geräte hinzugefügt)

Wenn ich jetzt den Reiter FHEM-Devices öffne sehe ich aber keine Devices.

Es kommt nur der Fehler:
Get FHEM Devices Error: undefined with status: Server Error - 500

Der Nutzername und Passwort stimmen jedoch. Woran kann das liegen?

Ich hatte vorher einen csrfToken angelegt. Kann es damit zusammenhängen?

Offline sash.sc

  • Hero Member
  • *****
  • Beiträge: 1291
Antw:Mini Howto für ha-bridge (Alexa FHEM)
« Antwort #257 am: 05 Juni 2018, 19:24:57 »
Schalte den mal zum testen aus.

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk

Raspi 2 ; LaCrosse; HomeMatic; 1x TX 29 als Lichtsensor umgebaut;
ESP8622 ;nanoCUL a-fw (433 & 868 MHz); miniCULwlan;
WLANduino 433&868 ; WlanCul

Offline Allodo

  • Jr. Member
  • **
  • Beiträge: 50
Antw:Mini Howto für ha-bridge (Alexa FHEM)
« Antwort #258 am: 05 Juni 2018, 20:48:41 »
@sash.sc
Danke!!!

Es lag am csrfToken ;)

Kaum ist dieser abgeschaltet, waren die Items sofort da :)

Offline a.w.muc

  • Newbie
  • Beiträge: 1
Antw:Mini Howto für ha-bridge (Alexa FHEM)
« Antwort #259 am: 10 Juni 2018, 08:43:10 »
Ich habe mich heute mit der habridge beschäftigt, da mir persönlich die Amazon Developer Geschichte zu aufwendig ist (obwohl ich Sie fertig installiert und kurz im Einsatz hatte).
Die ha-bridge simuliert Alexa einen HUE-Adapter vor, der automatisch (ohne zusätzlichen Skill) gefunden wird.

Vorteile:
  • Kein Amazon Developer Account notwendig, einfachere (lokale) Einrichtung
  • Kein (external->internal) Portforwarding von Amazon zu FHEM notwendig
  • Keine Skills in der Alexa App notwendig
  • Amazon Echo/Dot findet die virtuelle HUE-Bridge im lokalen Netzwerk automatisch (Spracheingabe: "Alexa, Geräte suchen")
Nachteile:
  • Keine erweiterten Aktionen/Nachfragen (Interaktionen) möglich

Unterstützte Alexa Smarthome Sprachbefehle (Onlinehilfe): https://alexa.amazon.de/spa/index.html?#help/node/201749260

Vorraussetzungen:

Ich habe bei mir die ha-bridge Installation aus sicherheitsgründen auf separater VM (schlankes "Blank" Debian Jessie) virtualisiert.
Die Anleitung kann nicht 1 zu 1 bei anderen Vorraussetzungen gelten !
NEWS: Ab Version 4.5 lässt sich das Webinterface mit Benutzername und Kennwort absichern ! Mehr dazu hier: https://github.com/bwssytems/ha-bridge/wiki/Security-Configuration
Zusätzlich wurde meine ha-bridge mit iptables abgesichert. Mehr dazu auf Seite3: https://forum.fhem.de/index.php?topic=66920.msg598432#msg598432

Ich selbst lasse die ha-bridge auf dem Standard Port (80) laufen, ändern kann man dies nach erstem Start/Stop des Services in der Datei "habridge.config" Datei, oder einfach im Webinterface Reiter "Bridge-Control" unter "Web Server Port". Die Portänderung des Webinterfaces (falls notwendig), sollte vor dem anlegen der Devices erfolgen, auch die Anpassung des "Device DB Path and File" nach "/etc/habridge/data" erachte ich als sinnvoll.

FHEM-Server: Eigene FHEMWEB Instanz für die habridge
Aufgrund des csrfToken und eventuell aktiviertem HTTPS von FHEM WEB muss für die habridge eine eigene WEBhabridge Instanz erstellt werden.
In diesem Beispiel auf Port 8088, Zugriff erlaubt nur für localhost und der ha-bridge selbst (IP: 192.168.1.10).
define WEBhabridge FHEMWEB 8088 global
attr WEBhabridge csrfToken none
attr WEBhabridge allowfrom 127.0.0.1|192.168.1.10

Voraussetzung: Installation von java8-jdk:
Wer die habridge auf breits bestehendem System installiert, hat java meist schon installiert, prüfen mit:
(Ausgabe von meinem Debian Stretch Host:)
java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)

Variante-1: Aus dem Debian Repository (Open jdk):
apt-get install openjdk-8-jdk-headless --no-install-recommends
Variante-2: (Oracle jdk)
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
apt-get update
apt-get install oracle-java8-installer
apt-get install oracle-java8-set-default

ha-bridge: Installation der ha-bridge (Kurzform):
Zuerst sehen wir nach der aktuellen Versionsnummer, diese finden wir auf dieser Seite: https://github.com/bwssytems/ha-bridge/releases
Dann müssen wir die x.x im nachfolgenden wget Code mit der aktuellen Release Nummer ersetzen.
mkdir -p /opt/habridge /etc/habridge /etc/habridge/data
wget https://github.com/bwssytems/ha-bridge/releases/download/v4.x.x/ha-bridge-4.x.x.jar -O /opt/habridge/ha-bridge.jar
Für ein Update der ha-bridge Version einfach die wget-Zeile (mit URL der neuen Version) nochmals ausführen, zuvor jedoch mit [service habridge stop] den Daemon beenden.

ha-bridge: Daemon einrichten (systemd):
nano /etc/systemd/system/habridge.serviceInhalt:
[Unit]
Description=HA Bridge
Wants=network.target
After=network.target

[Service]
Type=simple

ExecStart=/usr/bin/java -jar -Dconfig.file=/etc/habridge/habridge.config /opt/habridge/ha-bridge.jar

[Install]
WantedBy=multi-user.target

Daemon starten, Autostart konfigurieren:
systemctl daemon-reload
systemctl start habridge.service
systemctl enable habridge.service

Nach dem erfolgreichen starten kann man mit dem anlegen der Devices/Geräte per Webinterface beginnen,
klicke dazu auf den Button Add/Edit Siehe angehängtes Bild !

Info: Egal welches Devices angelegt wird, geschaltet wird immer per "HTTP URL Command" Aufruf.
In der ha-bridge Konfiguration kann eine URL für On, Dimmmen und Off angegeben werden.
Beispiel, ein Homematic Dimmer:
Ein: (Alexa, schalte Wohnzimmer Licht ein)
http://fhem.domain.net:8088/fhem?cmd=set%20wz.lampe_Sw%20onDimmen: (Alexa, stelle Wohnzimmer Licht auf 30 Prozent)
http://fhem.domain.net:8088/fhem?cmd=set%20wz.lampe_Sw%20pct%20${intensity.percent}Aus: (Alexa, schalte Wohnzimmer Licht aus)
http://fhem.domain.net:8088/fhem?cmd=set%20wz.lampe_Sw%20off
Was muss bei Add/Edit eingetragen werden ? Siehe angehängtes Bild !
Ich schreibe hier nur die Felder die ich ausgefüllt habe, mit dem Beispiel von Wohnzimmer Dimmer von oben:
Name: Wohnzimmer Licht (mit diesem Namen findet Alexa das Device )
Map Type: HTTP Device
On Items:
Type: HTTP Device
Target Item: Hier wird die "Command HTTP URL" (Befehl) für den FHEM Server eingetragen !


Das wars eigentlich auch schon :-)

Tips und Stolperfallen:
  • Nach anlegen der Devices auf "http://alexa.amazon.de" unter Smarthome auf Geräte suchen klicken, oder einfach per Spracheingabe mit "Alexa, Geräte suchen"
  • Command URLs am besten vorab manuell per Browser testen
  • Devices können mit Edit/Copy auch unter neuem Namen gespeichert werden, so ist man erheblich schneller und muss nicht bei jedem neuen Decives alles neu eintragen
  • Harmony-Hub, IP kann im Reiter Bridge-Control eingetragen werden. Ich musste die habridge danach neustarten, erst danach waren die "Harmony Activities" und "Harmony Devices" im WebGui gefüllt
  • Geräte die in der ha-bridge gelöscht werden, werden NICHT in der Alexa App gelöscht, Sie müssen Online (http://alexa.amazon.de >: unter Smarthome) gelöscht werden ("Alle verwerfen").

Logitech Harmony Hub
Der Harmony Hub kann auch direkt ohne FHEM geschaltet werden.
Variante1 per habridge -> FHEM -> HarmonyHub
Also zB. für Aktion Fernsehen: "Alexa, schalte Fernseher ein" und "Alexa, schalte Fernseher aus"
On Items
Type: HTTP Device
http://fhem.domain.net:8088/fhem?cmd=set%20hub.wz%20activity%20Fernsehen

Off Items
Type: HTTP Device
http://fhem.domain.net:8088/fhem?cmd=set%20hub.wz%20activity%20PowerOff

Variante2 direkt per habridge -> HarmonyHub
In diesem Beispiel heisst mein eingetragener Hub unter Bridge-Devices "hub.wz", Meine Activity ist Fernsehen (ID: 10292300)
Am einfachsten im Reiter "Harmony Activities" auf "Build Item" klicken, so wird das Device schon angelegt, es muss nur noch der gewünschte Name vergeben werden
On Items
Type: Harmony Activity
Target Item: {"name":"10292300","hub":"hub.wz"}

Off Items
Type: Harmony Activity
Target Item: {"name":"-1","hub":"hub.wz"}


Aufruf einer SUB/Funktion in 99_myUtils
Das Stichwort lautet hier URL Encoder !
Das funktioniert nicht:
http://fhem.domain.net:8088/fhem?cmd={AlleLichterAus}
Das funktioniert:
http://fhem.domain.net:8088/fhem?cmd=%7BAlleLichterAus%7D
Backup der ha-bridge Konfiguration:
In der WebGUI können ganz einfach per Klick auf  "Bridge Device DB Backup" und Klick auf "Backup Device DB" Backupdateien erstellt werden.
Diese werden standardmässig im Pfad /data gespeichert.
Dieser Pfad kann jedoch im Reiter "Bridge-Control" unter "Device DB Path and File" angepasst werden (Aktuelle Konfiguration: device.db, Backups: device.db-%TIMESTAMP%).
(In meinem Fall ist das dort wo Linux Konfigurationen auch hingehören: "/etc/habridge/data")