Start a new topic

Gate HTTP + raspberry Pi = sterowanie głosowe i trendy z czujników

Witam,


piszę tutaj, bo żona nie do końca to rozumie, a dzieci też za małe żeby to ogarnąć :). Dzisiaj udało mi się uruchomić sterowanie głosowe Grentonem oraz serwer, na którym mogę podejrzeć odczyty z różnych czujników (1wire, modbus, analog in).


Potrzebny sprzęt:

- moduł Gate HTTP,

- raspberry PI 3B,

- macierz mikrofonowa ReSpeaker (http://wiki.seeedstudio.com/ReSpeaker_Mic_Array_v2.0/) + obudowa ReSpeaker,

- głośniki komputerowe.


Instalacja:

Malina i głośniki ukryte w suficie podwieszanym, mikrofon w salonie pod sufitem.


Jak to działa:

Wszystko jest zainstalowane na raspberry pi, który przesyła zapytania / żądania do Gate HTTP. W Gate HTTP są zaprogramowane skrypty, które obsługują zapytania / żądania.


1. Sterowanie głosowe

Do detekcji słowa kluczowego (hotword detection) wykorzystuję silnik porcupine (https://github.com/Picovoice/Porcupine), po wykryciu słowa kluczowego (bumblebee - niestety ilość hotwordów jest dość ograniczona, ale działa to lepiej niż Snowboy), nagrywane są 3 sekundy i przesyłane na chmurę Google Cloud (https://cloud.google.com/sdk/), dokładniej do silnika zamiany mowę na tekst (obsługa języka polskiego, https://cloud.google.com/speech-to-text/). Nie ma sensu korzystać z google STT do wykrywania słów kluczowych, bo jest to płatne i ma trochę opóźnienia w przetwarzaniu. Porcupine może działać offline i nie obciąża procesorów maliny. Po odebraniu przetworzonej mowy, w łańcuchu znaków wyszukuję słów kluczowych, np. akcja = zapal / włącz / opuść, zasłoń, podnieś itp, urządzenie = światło, rolety itd, pokój = salon / kuchnia itp. W zależności od wykrytych słów kluczowych, do Gate HTTP jest wysyłanie odpowiednie żądanie (parametry żądania), które steruje odpowiednim urządzeniem Grentona (relay, roller itd).

Dodatkowo, wykorzystuję silnik google zamiany teksu na mowę (obsługuje język polski, https://cloud.google.com/text-to-speech/), który np czyta wartość temperatury z danego pomieszczenia, czy np prognozę pogody na dziś (np. z openweathermap).

Uruchomienie tego zajęło mi tydzień wieczorów (w zależności od tego, jak dzieci szły spać), ale nie jest to żaden rocket science (w Internecie można znaleźć informacje, jak to wszystko zainstalować na malinie). Zaczynam teraz optymalizację mikrofonu i kodu na malinie, ale już teraz czułość wykrywania słów kluczowych jest zadowalająca (nawet przy włączonym telewizorze).


Dodatkowo, jest też możliwość integracji z asystentem google (https://developers.google.com/assistant/sdk/), ale biblioteki nie obsługują jeszcze języka polskiego.


2. Trendy z czujników

Do tego również wykorzystuję mailnę, która odpytuje Gate HTTP co 20 minut o stan wszystkich czujników. Dane te są zapisywane w bazie danych influxdb (https://www.influxdata.com/). Na raspberry jest zainstalowany i uruchomiony serwer Grafana (https://grafana.com/), który pobiera dane z bazy influxdb i wyświetla w przyjazny sposób.


Koszty

Poza zakupem sprzętu, korzystanie z chmury google jest płatne i wynosi w przypadku STT $0.006 / 15 sekund po przekroczeniu bezpłatnych 60 minut miesięcznie (zapytanie 3 sekundowe jest zaokrąglane do 15 sekund) oraz TTS $4.00 USD / 1 milion przeczytanych znaków po przekroczeniu 4 milionów bezpłatnych znaków miesięcznie. Jak widać koszty nie są duże, a możliwości integracji jest pewnie więcej niż przez samo google home, i nie trzeba co chwila mówić hey / ok google. Grafana i influxdb jest bezpłatne do użytku domowego.


Przesyłam zrzut ekranu z działania Grafany.


image



Pozdrawiam


Super rozwiązanie. Jak będę miał czas to spróbuję u siebie. Na razie czekam na asystenta googla po polsku i wtedy na poważnie podejdę do tematu.  

Co do czujników też mam grafanę, fajne narządko, u mnie tylko ta drobna różnica, że gate wypycha dane do bazy.


Co do sterowania głosowego właśnie wczoraj kupiłem asystenta google, i podłączyłem to oczywiście też z wykorzystaniem GATE, pośredniego serwera i Google'wego Dialog flow i Actions tylko wlasnie tu mam pytanie. Czy ktoś ma to jeszcze tak zintegrowane? Moja wątpliwości dotyczy Google Actions, bo mam wrażenie że jako domowy, prywatny użytkownik mogę korzystać tylko "z trybu testowego", na szybko nie znalazłem opcji jakiegoś prywatnego opublikowania Google Actions do własnych celów. Może ktoś już to rozczajał...

Hej Rafał 

Morze wrzucisz jakieś wideo jak działa to sterowanie głosowe...? 

Jak radzi sobie gdy w domu jest na przykład włączony telewizor lub jest hałas? 

Andrzej 

czy mogę prosić o skrypty i informacje jak połączyć z grafina mój gate HTTP.

Witam


Ciekawa instalacja, aczkolwiek jak już zdecydowałeś się na raspberry to jest też inna opcja - uruchomienie Home Assistanta. Daje to ogromne możliwości. HA ma wbudowane API REST, więc bramka grentona jest w stanie się z nim zintegrować. Osobiście zintegrowałem już Home Assistanta z Grentonem i systematycznie przerzucam funkcjonalności Grentona na HA. W tej chwili mam podłączone do HA:

- Blebox'y do sterowania oświetleniem i innymi urządzeniami (np. bramy, furtki)

- Sterowniki RLY-8 do zaworów ogrzewania (Gate nie potrafi ich obsługiwać)

- kilkanaście dodatkowych czujników temperatury na one-wire

- pompę ciepła z interfejsem Luxtronik

- moduły SONOFF

- one-meter (pomiar ilości i kosztów energii elektrycznej)

- integracja z SATEL


Przejście na HA pozwoliło wyeliminować kilka modułów Grentona, tj. moduł analogowy, moduł integracyjny Satel, większość modułów Z-WAVE.

W rezultacie jest prościej, taniej i co najważniejsze wielokrotnie bardziej niezawodnie. Ilość dostępnych integracji w HA jest ogromna dla Grentona jest to nie do osiągnięcia. Jeśli chodzi o sterowanie głosem to HA obsługuje Alexe i asystenta googla z definicji ;-) Szkoda, że grenton nie oferuje kompleksowej integracji z HA.


Pozdrawiam


1 person likes this

Hej.

Jak już zdecydowałeś się na HA to polecam zerknąć na https://www.ai-speaker.com/

Polskie rozwiązanie oraz wsparcie, integracja z Wifi, Zigbee, HA, Satel. Działa lokalnie co znacząco podnosi prywatność i stabilność. A niebawem fajnie się zapowiadający smart głośnik. Do mnie bramka z pilotem i donglem Zigbee już jedzie. W przyszłym tygodniu testy.

Cześć 

Jak już znajdziemy pilota to minus takiego rozwiązania to konieczność naciskania przycisku na pilocie w celu uruchomienia nasłuchiwania komend. 

Sterowanie głosowe powinno być hands free. Inaczej to nie ma sensu. 


Pilot nie jest koniecznością, można używać aplikacji. Co do hands free to kwestia gustu. Ja na przykład wolę zostawić sobie trochę kontroli i nacisnąć przycisk. Ekipa AIS mocno wsłuchuje się w potrzeby użytkowników więc zapewne pójdą za oczekiwaniami. W funkcjach eksperymentalnych są np. hot words. Fajne jest to że projekt dynamicznie się rozwija.

Witam


Ciekawa ta customizacja AIS, pooglądam. Osobiście sądzę, że najciekawszy jest pilot. W moim przypadku potrzebuję sterować jasnością kilku zestawów LED. Tu byłby mocno przydatny. Kwestią problematyczną jest oczywiście ZIGBEE, bo muszę zagwarantować pokrycie praktycznie w całym domu, to wymaga przemyślenia.


Pozdrawiam


Login or Signup to post a comment