Sterowanie Supla głosem a'la komputer ze Star Trek

Masz pomysł na funkcjonalność lub koncepcję na rozwój projektu. Opisz wszystko tutaj.
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Na githubie oraz w Automate wrzuciłem nową wersję rozwiązania, która nowych ficzurów nie dodaje, ale wprowadza kilka usprawnień:
  • Komendy są przesyłane teraz poprawnie przez POST, więc nie ma już limitu na długość komendy
  • Zauważyłem, że czasem Google Now podaje tylko początek wypowiedzianego rozkazu ignorując dalszą część (np. czasem jak powiedziałem "włącz światło" to tylko "włącz" zostało złapane); przy nowym algorytmie w Automate jest to naprawione
  • Czasem Google Now dwukrotnie powiadamiał o rozpoznaniu komendy, co w przypadku np. otwierania bramy skutkowało tym że zaczynała się otwierać po czym się zatrzymywała (komenda openClose została wykonana dwukrotnie); nowa wersja rozwiązuje ten problem
  • W Automate dodałem sporo logów dzięki temu widać co się dzieje (gdzie wysyłane są rozkazy, ile komend faktycznie się wykonuje itp)
  • Uprościłem (wydaje mi się) konfigurację Automate.
Aby mieć nową wersję skryptów trzeba pobrać zarówno zmiany z Githuba jak i uaktualniony SUPLA Voice z Automate.

Flow w Automate po pobraniu trzeba dokonfigurować tak jak poprzednio, ale wystarczy tylko w pierwszym bloku (Set variable ...) wpisać adres skryptów w cudzysłowach a w drugim (HTTP Request...) pod BASIC AUTHORIZATION ACCOUNT wpisać dane do logowania, jeśli hasło jest w skryptach włączone.
You do not have the required permissions to view the files attached to this post.
Zybi
Posts: 1511
Joined: Sun Jun 26, 2016 4:24 pm

Post

Również zaczynam zabawę w Star Treka.
Zacznę od tego, że skrypty action i temperature z przeglądarki mi działają.
Nie działają mi natomiast komendy głosowe. Mam pytanie odnośnie poprawności zapisu w REQUEST URL.
Ma być taki:

Code: Select all

"https://twojamalina.eu/supla-scripts/voice?command=" ++ base64Encode(recognized)
czy taki:

Code: Select all

"https://twojamalina.eu/supla-scripts/voice/?command=" ++ base64Encode(recognized)
różnica to slash po voice.
User avatar
slawek
Posts: 2685
Joined: Mon Mar 14, 2016 11:48 pm
Location: Biała Podlaska

Post

Ma być bez slasha
TEORIA jest wtedy gdy wszystko wiemy i nic nie działa
PRAKTYKA jest wtedy gdy wszystko działa a my nie wiemy dlaczego
My łączymy teorię z praktyką czyli nic nie działa i nikt nie wie dlaczego
User avatar
slawek
Posts: 2685
Joined: Mon Mar 14, 2016 11:48 pm
Location: Biała Podlaska

Post

zrób git pull i pobierz nową wersję flow... to co napisałeś jest już nieaktualne
TEORIA jest wtedy gdy wszystko wiemy i nic nie działa
PRAKTYKA jest wtedy gdy wszystko działa a my nie wiemy dlaczego
My łączymy teorię z praktyką czyli nic nie działa i nikt nie wie dlaczego
Zybi
Posts: 1511
Joined: Sun Jun 26, 2016 4:24 pm

Post

slawek wrote: Sun May 21, 2017 5:52 pm zrób git pull i pobierz nową wersję flow... to co napisałeś jest już nieaktualne
Dzięki Sławek - działa.
Jutro będę szpanował przed sąsiadami.
andras
Posts: 636
Joined: Fri Dec 30, 2016 5:51 pm
Has thanked: 2 times
Been thanked: 4 times

Post

Witam
Mam problem , nie wykonują się komendy w logu automate jest

2017-06-11 14:18:33.627 USER 459@20: Recognized command: OK Google Ile jest stopni w domu
2017-06-11 14:18:33.628 INFO 459@18: Expression true?
2017-06-11 14:18:33.628 INFO 459@16: Variable set
2017-06-11 14:18:33.629 INFO 459@17: Variable set
2017-06-11 14:18:33.631 INFO 459@9: Fork
2017-06-11 14:18:33.699 INFO 459@2: Google Now voice command
2017-06-11 14:18:33.721 USER 466@23: Sending command: OK Google Ile jest stopni w domu
2017-06-11 14:18:33.721 INFO 466@3: HTTP request
2017-06-11 14:18:33.885 USER 466@25: Script response: (command: OK Google Ile jest stopni w domu)
2017-06-11 14:18:33.886 INFO 466@12: Expression true?
2017-06-11 14:18:33.886 USER 466@24: Empty script response
2017-06-11 14:18:33.886 INFO 466@0: Stopped at end

w configu mam


'commands' => [
'ile jest stopni w domu'
],
'action' => 'get,28429',
'feedback' => 'w domu jest {{temperature}} stopni',
],
co może być przyczyną , na początku skrypt mi działał , coś przekombinowałem i nie wiem co :(
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Skrypt odpowiada pustością więc tak jakby nie złapał żadnej komendy z configu.

Wklej cały config jaki masz, może jest jakiś syntax error (możesz na priv jak nie chcesz tu) ;-)
andras
Posts: 636
Joined: Fri Dec 30, 2016 5:51 pm
Has thanked: 2 times
Been thanked: 4 times

Post

Dzięki już poszło po resecie telefonu
ale nie wykonuje mi komendy z bramą , a w scenach działa

w tym samym configu zapytanie o temperaturę działa
<?php
return [
[
'commands' => [
'otwórz bramę'
,
'action' => 'openClose,28421',
'feedback' => 'brama wykonałem ',
],

'commands' => [
'włącz światło w sypialni'
],
'action' => 'turnOn,123',
'feedback' => 'światło w sypialni zostało włączone',
],
[
'commands' => [
'wyłącz światło w sypialni'
],
'action' => 'turnOff,123',
'feedback' => 'światło w sypialni zostało wyłączone',
],
[
'commands' => [
'czy światło w sypialni jest włączone'
],
'action' => 'get,123',
'feedback' => 'światło w sypialni jest {{on}}',
],
[
'commands' => [
'ile jest stopni w sypialni'
],
'action' => 'get,28429',
'feedback' => 'w sypialni jest {{temperature}} stopni',
],
];

a automate w logu :

2017-06-11 19:26:55.830 USER 522@20: Recognized command: Otwórz bramę
2017-06-11 19:26:55.835 INFO 522@18: Expression true?
2017-06-11 19:26:55.835 INFO 522@16: Variable set
2017-06-11 19:26:55.836 INFO 522@17: Variable set
2017-06-11 19:26:55.836 INFO 522@9: Fork
2017-06-11 19:26:55.914 INFO 522@2: Google Now voice command
2017-06-11 19:26:55.927 USER 548@23: Sending command: Otwórz bramę
2017-06-11 19:26:55.928 INFO 548@3: HTTP request
2017-06-11 19:26:56.203 USER 548@25: Script response: {"matchedActions":0,"feedback":""} (command: Otwórz bramę)
2017-06-11 19:26:56.204 INFO 548@12: Expression true?
2017-06-11 19:26:56.204 INFO 548@26: Variable set
2017-06-11 19:26:56.205 INFO 548@28: Expression true?
2017-06-11 19:26:56.206 USER 548@30: No actions matched
2017-06-11 19:26:56.209 INFO 548@0: Stopped at end
2017-06-11 19:26:56.759 USER 522@20: Recognized command: Otwórz bramę
2017-06-11 19:26:56.760 INFO 522@18: Expression true?
2017-06-11 19:26:56.762 USER 522@19: Ignored repeated command: Otwórz bramę
2017-06-11 19:26:56.762 INFO 522@2: Google Now voice command
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

Nawiasowanie się popsuło. Tutaj masz poprawiony config:

Code: Select all

<?php
return [
    [
        'commands' => [
            'otwórz bramę'
        ],
        'action' => 'openClose,28421',
        'feedback' => 'brama wykonałem ',
    ],
    [
        'commands' => [
            'włącz światło w sypialni'
        ],
        'action' => 'turnOn,123',
        'feedback' => 'światło w sypialni zostało włączone',
    ],
    [
        'commands' => [
            'wyłącz światło w sypialni'
        ],
        'action' => 'turnOff,123',
        'feedback' => 'światło w sypialni zostało wyłączone',
    ],
    [
        'commands' => [
            'czy światło w sypialni jest włączone'
        ],
        'action' => 'get,123',
        'feedback' => 'światło w sypialni jest {{on}}',
    ],
    [
        'commands' => [
            'ile jest stopni w sypialni'
        ],
        'action' => 'get,28429',
        'feedback' => 'w sypialni jest {{temperature}} stopni',
    ],
];

Seba5120
Posts: 318
Joined: Mon Oct 31, 2016 1:33 pm

Post

Jak w powiadomieniach ustawić taką regułę:
Powiadomienie o otwartej bramie, sprawdzaj i powiadamiaj co 5 minut między 22:00 a 6:00
Ustawiam kanał w zmiennej: $garageGateSensor = 123;
i co dalej?

A co w przypadku gdy są dwie bramy?
$garageGateSensor1 = 123;
$garageGateSensor2 = 456;


Pozdrawiam ;)

Return to “Pomysły i koncepcje”