Sterowanie Supla głosem a'la komputer ze Star Trek
-
- Posts: 1299
- Joined: Wed Nov 09, 2016 8:00 am
- Location: Wojkowice
Czekam z niecierpliwością
-
- Posts: 2256
- Joined: Fri Oct 28, 2016 10:56 pm
- Location: Kraków
W dużym obrazku działa to tak:
Inspirację czerpałem z:
Tam piszą, że możńa taką samą funkcjonalność osiągnąć za pomocą Automate (https://play.google.com/store/apps/deta ... mate&hl=pl) ale ta aplikacja jest tak potężna że liczba możliwości konfiguracji mnie póki co pokonała. Sposób działania jednak pozostanie ten sam.
Jak wydłubię coś co działa w 100% dobrze to napiszę szczegółowe how-to.
- Google Now reaguje na nasze "Ok, Google" i zaczyna nas słuchać
- Jak wysłucha co mamy do powiedzenia przetwarza to na tekst
- Autovoice (https://play.google.com/store/apps/deta ... oice&hl=pl) sprawdza, czy przypadkiem to co rozpoznał Google Now nie jest komendą i jeśli jest - przekazuje informację do Taskera
- Tasker (https://play.google.com/store/apps/deta ... kerm&hl=pl) sprawdza co to za komenda i jeśli coś spasowało to wykonuje akcję do niej przypisaną
- Akcja to żądanie HTTP do jednego z supla-scripts by @fracz, które np. włącza lub wyłącza jakiś kanał bądź scenę
- supla-scripts komunikuje się z API SUPLA Cloud wysyłając żądaną akcję
- SUPLA Cloud przekazuje to do SUPLA server
- SUPLA Server wysyła odpowiednie komendy do urządzeń
- Dzieje się
I BAM! Sąsiad stoi i patrzy na Star Treka parkującego w garażu 11-letnim citroenem.Ok, Google, otwórz garaż, zamknij bramę wjazdową i włącz piec
Inspirację czerpałem z:
- http://lifehacker.com/how-to-create-cus ... 1282209195
- http://www.androidcentral.com/hands-fre ... ice-part-1
Tam piszą, że możńa taką samą funkcjonalność osiągnąć za pomocą Automate (https://play.google.com/store/apps/deta ... mate&hl=pl) ale ta aplikacja jest tak potężna że liczba możliwości konfiguracji mnie póki co pokonała. Sposób działania jednak pozostanie ten sam.
Jak wydłubię coś co działa w 100% dobrze to napiszę szczegółowe how-to.
-
- Posts: 1299
- Joined: Wed Nov 09, 2016 8:00 am
- Location: Wojkowice
Dzięki pobawie się coby zaparkować mojego 22-letniego Dodge'a na placu uruchamiając co bądź głosem. Hehhehhe....
Szkoda, że dzieli nas taka odleglość bo z chęcią napiłbym się z Wami dobrego piwa.
Może kiedyś dojdzie do jakiegoś zlotu użytkowników Supli
Szkoda, że dzieli nas taka odleglość bo z chęcią napiłbym się z Wami dobrego piwa.
Może kiedyś dojdzie do jakiegoś zlotu użytkowników Supli
-
- Posts: 2256
- Joined: Fri Oct 28, 2016 10:56 pm
- Location: Kraków
-
- Posts: 1754
- Joined: Wed Jun 29, 2016 5:04 pm
- Location: Oświęcim
No poprostu BAJKA!!!
Każde urządzenie elektryczne działa o wiele lepiej jeśli podłączysz je do prądu.
-
- Posts: 2256
- Joined: Fri Oct 28, 2016 10:56 pm
- Location: Kraków
Na początku upewniamy się czy w Androidzie mamy Google Now. W tym celu przytrzymujemy długo "domek" i powinny się pokazać jakieś śmieciowe informacje. Jak uruchamiacie to pierwszy raz to będzie się pytać o jakieś pozwolenia to na wszystko tak.
Następnie klikamy w przycisk w lewym górnym rogu i idziemy do Ustawienia > Wyszukiwanie głosowe. Aby "Ok, Google" działało na każdym ekranie a nie tylko przy włączonej aplikacji Google Now, trzeba ustawić język angielski jako główny a dodatkowo język polski. W tym celu wybieramy "Języki", zaznaczamy oprócz polskiego także "English (UK)" i zatwierdzamy zmianę. Jeśli się zapyta czy chcemy ustawić angielski jako główny to tak, chcemy tak zrobić.
Następnie wybieramy opcję niżej "Wykrywanie OK, Google" i zaznaczamy tam opcję "Na dowolnym ekranie" co tak jak opis mówi - umożliwi wykrywanie komend zawsze gdy ekran jest włączony lub gdy urządzenie się ładuje. W tym momencie aplikacja może poprosić o nagranie trzy razy wzorca "OK, Google" żeby was dobrze rozpoznawało. Próbowałem nagrać "OK, Supla" ale nie chciało Na dwóch urządzeniach miałem na tym etapie problem że nie chciało przechodzić do kolejnego kroku nagrywania - restart urządzenia pomaga i konfigurację można ukończyć. Na koniec zaznacz jeszcze następną opcję "Twoje wyniki", która umożliwi wykonywanie komend nawet gdy telefon jest zablokowany (jeśli oczywiście chcesz żeby tak było).
Wyjdź teraz do ekranu głównego i upewnij się że jak powiesz "OK, Google" to włącza się rozpoznawajka.
Teraz pobierz i skonfiguruj skrypty supla https://github.com/fracz/supla-scripts na swojej malinie / serwerze, tak jak do tej pory. Jak już masz zainstalowane to zrób tam git pull.
Oprócz podstawowej konfiguracji skryptów stwórz także plik voice/config.php w którym ustalisz na jaką komendę ma się co dziać. Przykład:
Jak widzicie, możemy zdefiniować wiele komend i akcji które na komendę mają się wykonać. Może też być wiele wariantów tej samej komendy, dzięki czemu można ustalić kilka komend głosowych z tym samym rezultatem. Przykład wyżej. Notacja akcji jak w scenach viewtopic.php?f=9&t=2059 czyli na jedną komendę może reagować kilka kanałów. Ważne, by kodowanie tego pliku było UTF-8, bo pewnie polskie znaki w komendach u nas się będą zdarzać.
Jak już mamy skrypty, pozostaje wysyłanie komendy powiedzianej do Google Now do skryptu i zacznie wszystko banglać.
W tym celu instalujemy Automate https://play.google.com/store/apps/deta ... b.automate Następnie wybieramy przycisk z ludkami na górze (automate na początku pyta się co chwile i chce "instalować" jakieś uprawnienia, do sieci, karty sd itp - pozwalać). Następnie klikamy przycisk lupy do szukania i szukamy "Supla". Powinno wyszkoczyć "SUPLA Voice" - instalujemy (https://llamalab.com/automate/community/flows/12342).
Jak się zainstaluje to z ekranu głównego aplikacji otwieramy SUPLA Voice, włączamy ołówek na górze (edytuj) > Flowchart, i powinny się pojawić trzy bloki algorytmu automate:
W bloku o nazwie "Set variable scriptsUrl to..." wpisujemy w cudzysłowach adres, gdzie dostępne są zainstalowane skrypty bez slasha na końcu, np:.
Jeżeli skrypty są chronione hasłem, należy login i hasło podać w konfiguracji drugiego widocznego bloku o nazwie "HTTP Request" w polu BASIC AUTHORIZATION ACCOUNT.
Zatwierdzamy wszystkie zmiany fajkami aż dochodzimy do ekranu SUPLA Voice:
I tutaj z góry na dół wciskamy wszystkie "Install permission" oraz "Install accessibility service". To drugie jest po to by komendy działały na ekranie blokady. W okienku które się tam pojawi ma być "Automate - Włączone".
Wciskamy "Start". Od tej pory Automate obserwuje co "wgadujemy" do Google Now i wysyła to co wgadaliśmy do skryptu supla.
No to teraz
Debugowanie:
Jeśli coś nie działa, zobaczcie logi w Automate (jak się otworzy szczegóły SUPLA Voice to tam są). Jeśli coś tam się pojawia to znaczy że komunikacja Google Now <-> Automate działa. Jeśli jest coś na czerwono to znaczy że jest jakiś problem po HTTP (złe hasło? zły adres?).
Jeśli tam jest ok - można w konfiguracji flowchart w tym samym bloku co wcześniej ustawić, żeby zapisywał odpowiedź skryptu do pliku. To też może pomóc.
Następnie klikamy w przycisk w lewym górnym rogu i idziemy do Ustawienia > Wyszukiwanie głosowe. Aby "Ok, Google" działało na każdym ekranie a nie tylko przy włączonej aplikacji Google Now, trzeba ustawić język angielski jako główny a dodatkowo język polski. W tym celu wybieramy "Języki", zaznaczamy oprócz polskiego także "English (UK)" i zatwierdzamy zmianę. Jeśli się zapyta czy chcemy ustawić angielski jako główny to tak, chcemy tak zrobić.
Następnie wybieramy opcję niżej "Wykrywanie OK, Google" i zaznaczamy tam opcję "Na dowolnym ekranie" co tak jak opis mówi - umożliwi wykrywanie komend zawsze gdy ekran jest włączony lub gdy urządzenie się ładuje. W tym momencie aplikacja może poprosić o nagranie trzy razy wzorca "OK, Google" żeby was dobrze rozpoznawało. Próbowałem nagrać "OK, Supla" ale nie chciało Na dwóch urządzeniach miałem na tym etapie problem że nie chciało przechodzić do kolejnego kroku nagrywania - restart urządzenia pomaga i konfigurację można ukończyć. Na koniec zaznacz jeszcze następną opcję "Twoje wyniki", która umożliwi wykonywanie komend nawet gdy telefon jest zablokowany (jeśli oczywiście chcesz żeby tak było).
Wyjdź teraz do ekranu głównego i upewnij się że jak powiesz "OK, Google" to włącza się rozpoznawajka.
Teraz pobierz i skonfiguruj skrypty supla https://github.com/fracz/supla-scripts na swojej malinie / serwerze, tak jak do tej pory. Jak już masz zainstalowane to zrób tam git pull.
Oprócz podstawowej konfiguracji skryptów stwórz także plik voice/config.php w którym ustalisz na jaką komendę ma się co dziać. Przykład:
Code: Select all
<?php
return [
[
'commands' => [
'włącz światło w sypialni',
'ciemno jak w budzie'
],
'action' => 'turnOn,123|turnOn,124',
'feedback' => 'światło w sypialni zostało włączone',
],
[
'commands' => [
'wyłącz światło w sypialni',
'ale tu jara'
],
'action' => 'turnOff,123',
],
[
'commands' => [
'otwórz bramę wjazdową',
'zatrzymaj bramę wjazdową',
'zamknij bramę wjazdową',
],
'action' => 'openClose,1234',
]
];
Jak już mamy skrypty, pozostaje wysyłanie komendy powiedzianej do Google Now do skryptu i zacznie wszystko banglać.
W tym celu instalujemy Automate https://play.google.com/store/apps/deta ... b.automate Następnie wybieramy przycisk z ludkami na górze (automate na początku pyta się co chwile i chce "instalować" jakieś uprawnienia, do sieci, karty sd itp - pozwalać). Następnie klikamy przycisk lupy do szukania i szukamy "Supla". Powinno wyszkoczyć "SUPLA Voice" - instalujemy (https://llamalab.com/automate/community/flows/12342).
Jak się zainstaluje to z ekranu głównego aplikacji otwieramy SUPLA Voice, włączamy ołówek na górze (edytuj) > Flowchart, i powinny się pojawić trzy bloki algorytmu automate:
W bloku o nazwie "Set variable scriptsUrl to..." wpisujemy w cudzysłowach adres, gdzie dostępne są zainstalowane skrypty bez slasha na końcu, np:
Code: Select all
"https://twojamalina.eu/supla-scripts
Jeżeli skrypty są chronione hasłem, należy login i hasło podać w konfiguracji drugiego widocznego bloku o nazwie "HTTP Request" w polu BASIC AUTHORIZATION ACCOUNT.
Zatwierdzamy wszystkie zmiany fajkami aż dochodzimy do ekranu SUPLA Voice:
I tutaj z góry na dół wciskamy wszystkie "Install permission" oraz "Install accessibility service". To drugie jest po to by komendy działały na ekranie blokady. W okienku które się tam pojawi ma być "Automate - Włączone".
Wciskamy "Start". Od tej pory Automate obserwuje co "wgadujemy" do Google Now i wysyła to co wgadaliśmy do skryptu supla.
No to teraz
i niech się wam wszystkie bramy otworząOk, Google, dojeżdżam do domu
Debugowanie:
Jeśli coś nie działa, zobaczcie logi w Automate (jak się otworzy szczegóły SUPLA Voice to tam są). Jeśli coś tam się pojawia to znaczy że komunikacja Google Now <-> Automate działa. Jeśli jest coś na czerwono to znaczy że jest jakiś problem po HTTP (złe hasło? zły adres?).
Jeśli tam jest ok - można w konfiguracji flowchart w tym samym bloku co wcześniej ustawić, żeby zapisywał odpowiedź skryptu do pliku. To też może pomóc.
You do not have the required permissions to view the files attached to this post.
Last edited by fracz on Mon May 22, 2017 6:15 am, edited 1 time in total.
-
- Posts: 1299
- Joined: Wed Nov 09, 2016 8:00 am
- Location: Wojkowice
Zrobiłem wszystko wg instrukcji, ale na hasło "OK, Google Włącz światło w salonie" otwierają mi się wyniki wyszukiwania słów kluczowych Google.
W logach niby wszystko OK, a nie bangla
Co może być nie tak?
W logach niby wszystko OK, a nie bangla
Co może być nie tak?
-
- Posts: 2256
- Joined: Fri Oct 28, 2016 10:56 pm
- Location: Kraków
Wyszukanie w Google nastąpi zawsze - tak. Google Now nie wie że wykorzystujemy go na lewo.
Jeśli logi Automate pokazują że request do skryptów sie wykonał, to upewnij sie że plik konfiguracyjny jest w UTF-8, lub na początku spróbuj komendę bez polskich znaków i zobacz czy wtedy zadziała.
Jeśli logi Automate pokazują że request do skryptów sie wykonał, to upewnij sie że plik konfiguracyjny jest w UTF-8, lub na początku spróbuj komendę bez polskich znaków i zobacz czy wtedy zadziała.
-
- Posts: 1299
- Joined: Wed Nov 09, 2016 8:00 am
- Location: Wojkowice
Automate pokazuje, że request się wykonał, kodowanie to UTF-8, bez polskich znaków też próbowałem i cisza.
-
- Posts: 2256
- Joined: Fri Oct 28, 2016 10:56 pm
- Location: Kraków
W ustawieniach bloczka Request w Automate wybierz opcję Response > Save to file i wskaż np. główny katalog karty pamięci. Potem, jak powiesz mu jakąś komendę i Automate wykona request, powinien na telefonie pojawić się plik o nazwie "voice" zawierający odpowiedź skryptu.