Zum Glück bleibt die Zeit ja niemals stehen und analog zum Alexa-Skill (Fhem Connector) gibt es auch einen eignen Skill für den Google Assistant.
Wie gut das Ganze funktioniert und ob man sich künftig dann den Umweg über IFTTT mit samt der Installation eines Reverse-Proxys sparen kann – das probiere ich hier einfach mal aus.
Bevor es los geht, muss natürlich erstmal einiges eingerichtet werden. Das FHEM Wiki
gibt dabei den Takt an.
Installation
Voraussetzung zur Installation ist ein Nodejs – Server. Wie man Diesen einrichtet findet sich z.B. im Thema Zigbee 2 MQTT / Xiaomi MQTT Device.
Das Betriebssystem und Fhem sind jeweils auf den aktuellsten Stand zu bringen. Auch ein Backup kann nie schaden.
sudo apt update && apt -y upgrade
In der Fhem-Kommandozeile
backup
update all
Mein Server brauchte danach mal wieder einen Neustart
sudo reboot now
und dann konnte es auch schon mit der Installation von gassistant-fhem losgehen, dazu im Terminal
sudo npm install -g gassistant-fhem --unsafe-perm
eingeben und die Installation starten.
Mit der Arbeit im Terminal war es das dann auch schon.
exit
Gassistant-Device
Unter Fhem wird nun noch ein neues Device angelegt, dazu in der Weboberfläche
define gassistant gassistant
eingeben. Natürlich darf man das Device nach Belieben benennen.
In den Readings sieht man nun schon, dass der gassistant auf eine Log-In URL wartet – entgegen der Angaben im Wiki habe ich die Log-In URL erst bekommen, nachdem ich meinen Benutzernamen + Passwort für das Fhem-Webinterface hinterlegt hatte.
Über die Attribute ist das mit
attr gassistant gassistantFHEM-auth Benutzername:Passwort
schnell gemacht. Die Log-In URL war anschließend direkt abrufbar. In einem neuen Tab kann man sich mit seinem Google-Konto anmelden und erhält im Anschluss einen Auth-Code, der dem gassistant per
set gassistant authcode *code*
mitgeteilt wird.
Sofern alles geklappt hat, sollte unter dem Reading gassistant-fhem-connection nun connected angezeigt werden.
Google-Home App
Hier muss man noch den Skill aktivieren, dazu öffnet man die App und fügt den Dienst hinzu.
Devices Fhem Google Home
Um ein Gerät aus Fhem in die Google Home App zu bringen kann man sich nun ein Gerät aussuchen und setzt es (zusätzlich) in den Raum „GoogleAssistant“. Eine Liste unterstützter Geräte findet man hier.
Ich habe zum Testen eine Osram Smart Plug genommen.
In Fhem ist Diese als „Steckdose_1“ bezeichnet und befindet sich im Raum „XiaomiMQTTDevice“ (in diesem Raum sind alle meine Zigbee2Mqtt Devices untergebracht, die derzeit keine Funktion haben).
attr Steckdose_1 room GoogleAssistant,XiaomiMQTTDevice
Der Gassistant, oder wie auch immer ihr es benannt habt, prüft nun regelmäßig die, in dem Raum befindlichen Geräte und synchronisiert das Ganze mit eurem Google Home Konto.
Entsprechende Geräte tauchen dann automatisch in der Google Home App auf und können auch per Sprachbefehl getriggert werden.
Falls es ein Problem mit einem Gerät gibt, kann man dies im Logfile des Gasisstant leicht nachvollziehen.
Im Fall meiner Steckdose musste ich noch ein EventMap-Attribut anlegen und dem Gassistant sagen, um welchen Gerätetyp es sich handelt:
attr Steckdose_1 genericDeviceType outlet
attr eventMap on:on off:off
Schlussendlich gab sich der Gassistant geschlagen und übergab das Gerät an meine Google Home App
Fazit
Dominik, dem Ersteller, gebührt sowohl Respekt, als auch Dank für seine tolle Arbeit. Der Gassistant ist leicht zu installieren und komfortabel zu verwalten. Ein absoluter Mehrwert für jede Fhem-Instanz und jeden Google Home Nutzer.
Um auf die Frage am Eingang des Beitrags zurückzukommen: Ja, man kann sich den Umweg über IFTTT sparen. Somit ist es auch nicht mehr zwingend notwendig einen Reverse-Proxy anzulegen und seinen Server mit einer Portfreigabe potentiell angreifbar zu machen.