Google Assistant FHEM Connect

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.

1

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.

2

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.

7

 

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

room

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.

error.gif

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

eventmap

Schlussendlich gab sich der Gassistant geschlagen und übergab das Gerät an meine Google Home App

Screenshot_20190526-185131

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.