Anleitung für Google Assistant Flow mit Node Red + Tasmota

  • [h1][Anleitung] Verbindung von Google Assistant per Node Red mit einer Tasmota Steckdose[/h1]
    [h2]Was brauche ich?[/h2]
    1. Node Red als Docker
    [xattach=43422]Einstellungen im Unraid Interface[/xattach]

    1a. MQTT Docker als Server
    [xattach=43424]Einstellungen im Unraid Interface[/xattach]

    2. Google Assistant + Google Account
    3. Account hier als gbridge Ersatz: https://googlehome.hardill.me.uk/register
    4. Device erstellen dort:
    [xattach=43423]Einstellung für eine Tasmota Steckdose[/xattach]

    [h2] Einstellungen in der Google Home App[/h2]
    1. neues Device erstellen
    2. Funktioniert mit Google auswählen
    3. Anbieter NR-GAB suchen und mit dem Account koppeln
    [infobox]Neue Devices werden automatisch hinzugefügt sobald ihr sie auf der oberen Webseite registriert habt, denkt bitte dran sie auch den richtigen Raum zuzuteilen.[/infobox]

    [h2]Einstellungen in Node Red[/h2]
    Standardmäßig erreicht ihr nachdem ihr den Docker gestartet habt Node Red unter: IP:1880
    Ganz oben Rechts auf die drei Balken -> Settings -> Language: German auswählen :) -> nach einen Druck auf F5 ist Node Red auch deutsch.
    An selber Stelle unter den Punkt Palette geht ihr dann auf das installieren Tab und installiert folgende Pakete:
    node-red-contrib-googlehome
    node-red-dashboard
    node-red-contrib-tasmota

    [h2]Einstellungen in Tasmota[/h2]
    Ich hab nun eine einfache Sonoff Basic genommen, die kann nur an und aus.
    Als erstes richtet man dort die MQTT Verbindung ein.

    [xattach=43426]Unter Wohnzimmer ist hier das Licht zu erreichen, zusätzlich ist oben noch der Server angegeben[/xattach]
    Das wars da praktisch schon.

    [h2]Flow erstellen in Node Red[/h2]
    So jetzt wirds ein wenig kompliziert.
    In meinem Beispiel hab ich vorne den Google Home als Input. Die erste Funktion wandelt das nun in einen Schaltbefehl um. Dann kommt der Tasmota Schalter - zu dem parallel noch ein Switch Element fürs Dashboard ist.
    Und dann noch eine Funktion die, falls man den Schalter ohne Google Home umstellt übers Dashboard die Sache an Google Home meldet.

    Google Home Input:
    Davon ausgehend das ihr das Device bereits auf der Webseite eingerichtet habt fügt ihr den Button nun zu und geht in die Eigenschaften.
    Bei Google-conf müsst ihr erstmal einen Account einmalig hinzfügen und dort eure Logindaten von der Webseite eintragen.
    Nachdem ihr das gemacht habt sollte in der Reihe daunter auch schon das Device sichtbar sein.

    Wichtig ist "Auto Acknowledge" auch mit zu markieren, sonst meldet Google immer das das Device nicht erreichbar ist.

    Funktion Schalten:
    Nun wirds ein wenig kompliziert. Wir fangen nun den Schaltbefehl ab von Google Home und wandeln ihn so um das das Schaltelement ihn verarbeiten kann.
    Dies erwartet als msg.payload die Werte True oder False.
    Von Google Home kommt aber nur action.devices.commands.OnOff mit dem Parameter on = true.
    Das nur zur Verdeutlichung, hier ist der Quellcode der da reinmuss.

    Code
    if (msg.payload.command == "action.devices.commands.OnOff") {
        if (msg.payload.params.on) {
            msg.payload = true;
             return msg;
    }
    else {
        msg.payload = false;
             return msg;
    }
    }

    Tasmota Schalter:

    Oben ist wieder ein Stift neben MQTT Server, den müssen wir beim ersten Mal wieder benutzen. Dort tragen wir dann die Werte für unseren MQTT Server ein. Ich hab das jetzt komplett ohne Logins gemacht, deshalb ist das ganze auch sehr einfach.

    Nachdem wir das bestätigt haben können wir den Server auswählen.
    Hier geben wir den Namen des Devices ein was wir oben in der Tasmota Firmware angegeben haben.

    Switch Element:
    Das ist nun unser Schalter fürs Dashboard, so das wir das auch im Webinterface öffnen können.
    Ich habe hier bereits eine Gruppe fürs Dashboard erstellt so das der Schalter dort sein wird. Das Dashboard selber werde ich nicht erklären.
    Wichtig ist das ihr das Pass through für die msg ausschaltet, weil sonst der Schalter die Tasmota immer wieder abschalten wird weil das Element sich nicht schnell genug ändert.

    Funktion Zurückmelden:
    Wie oben angemerkt erwartet Google Home nun die Schaltebfehle anders als wie wir sie aus den anderen Schaltelementen bekommen. Deshalb wandeln wir diese nun wieder zurück.


    Es geht bestimmt auch schöner, wichtig ist hier das hier das Element action.devices.commands.OnOff den richtigen on Parameter zurück bekommt.

    Google Home Response Element:

    Ihr wählt praktisch dasselbe aus wie beim Eingangselement. Das ist denke ich selbsterklärend.


    Anmerkung:
    Anders als bei jedem anderen Assistenten lädt die Google Home App nicht den neuen Status, bzw zeigt ihn richtig an. Ihr müsst erst aus den Schalter raus gehen und ihn wieder öffnen. Dann stimmt auch der Status.

    Sagen wir einfach, da hat Google Mist gebaut. Vieleicht gibts auch noch einen weiteren Parameter den man übergeben kann der zu einen Reload bei der App führt. Wer weiß?


    Viel Spaß damit! :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!