Połączenie Domoticza z asystentem google home z użyciem NODE RED (darmowo)

Instalacja Node-Red:

Włączamy putty logujemy się do naszego raspberry pi i w terminalu uruchamiamy komendę:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

Dodajemy do autostartu node-red:

sudo systemctl enable nodered.service

Link do oficjalnej strony

Po zainstalowaniu Node-Red robimy restart raspberry, ale możemy też w Domoticzu użyć opcji uruchom ponownie.

Adres ip Node Red
localhost:1880
http://192.168.0.100:1880/ <<to mój adres

Zainstalujmy dodatkowe Pakiety do node-red:

Manage pallete:

Instalujemy:

node-red-contrib-googlehome
oraz
node-red-contrib-tasmota

 

Po zainstalowaniu dodatków może być konieczne zrestartowanie raspberry pi.

Wersja Angielska


Tworzymy konto

Po stworzeniu konta możemy się zalogować i zacząć dodawać nasze urządzenia. Pamiętajcie, że urządzenia nie mogą mieć polskich nazw, bo google po angielsku nie rozumie języka polskiego.

Na naszym telefonie potrzebujemy dwie aplikacje:

Aplikacja do konfigurowania asystenta głosowego (zazwyczaj jest już zainstalowana)

Aplikacja Google Home (do głośników google, ale również do telefonu)

W Aplikacji Google (tej 1) wchodzimy>> więcej>> ustawienia>> asystent google>> sterowanie domem i dodajemy usługę NR-GAB (logując się danymi z konta, które stworzyliśmy powyżej.

Natomiast w Aplikacji google home mamy dostęp do stworzonych przez nas puntków (światła, rolety, wentylator itd).

Mamy stworzone urządzenia, ale nie mamy integracji z Domoticzem.

Integracja po HTTP. Dodatkowo dopisałem numerki odnoszące się do głównego obrazka, a pełna legenda będzie pod wszystkimi zdjęciami.

Tak wygląda podłączenie ^

Oznaczenie brązowe pozwala nam edytować login i hasło z strony na której się zarejestrowaliśmy, a żółte to wybór odbiornika u wczesno dodanego na stronie.

Na czerwono oznaczyłem ważny fragment, a poniżej pamiętajcie o ustawieniu dwóch ścieżek.

Tylko jedno zdjęcie dodaje, bo nie różni się on niczym do obu rozwiązań (tylko linkiem)

treść linku:

True
http://192.168.0.100:8080/json.htm?type=command¶m=switchlight&idx=31&switchcmd=On
False
http://192.168.0.100:8080/json.htm?type=command&param=switchlight&idx=31&switchcmd=Off

 

Komunikacja po MQTT. Dodatkowo dopisałem numerki odnoszące się do głównego obrazka, a pełna legenda będzie pod wszystkimi zdjęciami.

Komunikacja po MQTT ^

Oznaczenie brązowe pozwala nam edytować login i hasło z strony na której się zarejestrowaliśmy.

Treść:

if ( msg.payload.params.on === true )
{
msg.payload = true;
}
else if ( msg.payload.params.on === false )
{
msg.payload = false;
}
return msg

 

 

Na żółto jest oznaczony wybór serwera MQTT po prawej stronie jest możliwość edycji (brązowy). W zakładce Device ustawiamy Topic sonoffa.

 

Wysyłanie statusu do Google Home przy zmianie w Domoticzu.

Tak wygląda wysyłanie statusu z domoticza do google home ^

Komunikacja MQTT klikamy na ołówek zaznaczony w brązową ramkę i ustawiamy dane do naszego MQTT. Na żółto oznaczyłem, że będziemy śledzić komunikaty wychodzące z Domoticza.

if (msg.payload.idx == 31)
{
var Newmsg = { "payload" : {"command": "action.devices.commands.OnOff", "params" : {"on" : false } } }
Newmsg.topic = msg.payload.idx
if (msg.payload.nvalue == 1)
{
Newmsg.payload.params.on = true
}
else if (msg.payload.nvalue === 0)
{
Newmsg.payload.params.on = false
}
return Newmsg;
}

Nasze statusy zmieniają się prawidłowo po zmianie w domoticzu razem z google home, ale nie zmieniają się prawidłowo. Jeżeli przełącznik fizyczny zostanie naciśnięty to w domoticzu status się zmieni, ale nie zmieni się w google home, żeby działało to prawidłowo musimy dodać Domoticz/IN

 

 

Wiadomości przetwarzamy, by następnie przekazać ją do google home.

Ustawiamy dane do logowania, a następnie wybieramy o jakie urządzenie chodzi.

 

Kolorem żółtym oznaczyłem ważne pola.
Kolorem brązowym pola do edycji.
Kolorem fioletowym numer zdjęcia odnoszący się do pierwszego zdjęcia z danej kategorii.