Supla Button

User avatar
Duch__
Posts: 502
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Mon May 14, 2018 8:16 am

Lucas wrote:
Mon May 14, 2018 7:24 am
@Duch__ świetny pomysł. Już kiedyś wspominałem o potrzebie takiego rozwiązania, m.in. do uruchamiania scen tutaj

Tylko mając wszystko oparte o clouda i nie posiadając własnego serwera Supla Scripts rozumiem, że Twoje rozwiązanie się nie sprawdzi?
Sprawdzi się jak najbardziej, to co widzisz na filmie oparte jest o zewnętrzny oficjalny CLOUD i zewnętrzny oficjalny serwer kolegi FRACZ.
tgaweda wrote:
Mon May 14, 2018 8:09 am
Duch__ wrote:
Sun May 13, 2018 4:57 pm
Kolejną bolączką tego rozwiązania jest brak Autoryzacji i konieczność wykorzystania publicznych adresów.
Możesz użyć adresu wymagającego autoryzacji i wywołać go dodając nazwę użytkownika:hasło@ przed supla.fracz.com

Code: Select all

https://username:password@supla.fracz.com/api/scenes/execute/xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Testowałem to rozwiązanie. Niestety w Arduino to tak łatwo nie działa. Na obecną chwilę musi działać bez autoryzacji.
Aktualnie na budowie: 8x SRW-01, 1x ROW-02, SUPLA BUTTON V2.0, 16 x DS na ESP (GUI), Sonoff S20 jak kontroler CWU, Ping IP Socket.

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
User avatar
Duch__
Posts: 502
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Mon May 14, 2018 8:36 am

Jeszcze jedna kwestia o której nie napisałem, a jest istotna.

W celu zapewnienia niskiego poboru energii przez moduł ESP-01 konieczne jest uśmiercenie czerwonej diody LED zainstalowanej fabrycznie na module która sygnalizuje obecność zasilania, nam jest nie potrzebna.
ESP8266 Pins2.png
ESP8266 Pins2.png (546.92 KiB) Viewed 1960 times
Aktualnie na budowie: 8x SRW-01, 1x ROW-02, SUPLA BUTTON V2.0, 16 x DS na ESP (GUI), Sonoff S20 jak kontroler CWU, Ping IP Socket.

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
User avatar
wojtas567
Posts: 1603
Joined: Sun Apr 03, 2016 7:16 pm
Location: Olsztyn

Mon May 14, 2018 8:47 am

A co z GPIO16?
Powinien być podpięty do resetu, 01 go nie ma wyprowadzonego ale możliwe do wykonania 😉
Pozdrawiam
Wojtek
User avatar
Duch__
Posts: 502
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Mon May 14, 2018 8:49 am

A po co Ci GPIO16? On do szczęścia nie jest potrzebny.
Aktualnie na budowie: 8x SRW-01, 1x ROW-02, SUPLA BUTTON V2.0, 16 x DS na ESP (GUI), Sonoff S20 jak kontroler CWU, Ping IP Socket.

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
User avatar
wojtas567
Posts: 1603
Joined: Sun Apr 03, 2016 7:16 pm
Location: Olsztyn

Mon May 14, 2018 8:50 am

Do deep sleepa
Ale zapomniałem, że tu wybudzany jest z przycisku a nie sam OK 😀
Pozdrawiam
Wojtek
User avatar
Duch__
Posts: 502
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Mon May 14, 2018 9:13 am

Dokładnie tak jak piszesz. Wybudzenie następuje poprzez naciśnięcie przycisku RESET. Procesor sam ma "zakaz" samo-restartu, bo inaczej non stop wykonywałby program - sterował urządzeniem. Nadmienię tylko że już myślę nad wersją MULTI-FUNKCJONALNĄ tj. jedne przycisk i klika kliknięć w zależności od wybranej sceny, ale to w wolnych chwilach po pracy.
Aktualnie na budowie: 8x SRW-01, 1x ROW-02, SUPLA BUTTON V2.0, 16 x DS na ESP (GUI), Sonoff S20 jak kontroler CWU, Ping IP Socket.

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
User avatar
fracz
Posts: 1451
Joined: Fri Oct 28, 2016 10:56 pm
Location: Rybna

Mon May 14, 2018 3:13 pm

tgaweda wrote:
Mon May 14, 2018 8:09 am
Możesz użyć adresu wymagającego autoryzacji i wywołać go dodając nazwę użytkownika:hasło@ przed supla.fracz.com

Code: Select all

https://username:password@supla.fracz.com/api/scenes/execute/xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Nieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee! Nie przesyłajcie swojego hasła w URLu nigdy nigdzie nikomu. Po to dałem tam możliwość wygenerowania adresu URL z autoryazcją by było to po ludzku.

Używasz opcji "Wygeneruj cURL z kluczem dostępu" i dostajesz takie coś:

Code: Select all

curl https://supla.fracz.com/api/scenes/execute/e8e0f78d-ec97-44aa-ad6d-f82baf357171 -X GET -m 10000 -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJjbGllbnQiOnsiaWQiOiJlNzg2MzNiNy01ZmJjLTQyODMtYjE2Zi0wNjc0ZmI0MDI2ODcifSwiaXNzIjoiaHR0cHM6XC9cL3N1cGxhLmZyYWN6LmNvbSIsImlhdCI6MTUyNjMxMDEwMSwibmJmIjoxNTI2MzEwMTAxLCJleHAiOjE2ODM5OTAxMDF9._cqiEMNAGz6Gsap7KDlLW2p0MRsY81K7jUpAGgVYfo4"
Twój kod musi naśladować dokładnie to co robi wywołanie cURL, czyli do requestu musi dodać header

Code: Select all

Authorization: Bearer XXXXXXX
gdzie XXX jest wygenerowanym, podpisanym cyfrowo przez serwer "biletem wstępu" do danej sceny. Można sobie go usunąć w panelu. Można nawet zobaczyć przez kogo i dla kogo jest wystawiony na stronie https://jwt.io/

W Twoim kodzie powinno być tak:

Code: Select all

client.println(String("GET ") + url + " HTTP/1.1\r\n" +
               "Host: " + host + "\r\n" +
               "User-Agent: SuplaButtonESP8266\r\n" + 
               "Authorization: Bearer XXX\r\n" + 
               "Connection: close\r\n\r\n");
i ma śmigać. Możesz w swoim programie pozwolić na wklejanie pełnej komendy cURL kopiowaną ze skryptów (wygląda zawsze tak samo) i regexem wyciągać adres URL i token autoryzujący.

BTW, uprzedziliście mnie. Ja obecnie dłubię w wolnych chwilach supla button, ale oparty o przycisk RF i odbiornik na rpi https://botland.com.pl/moduly-radiowe/3 ... results=45

Ale jeszcze mi daleko do filmiku ;-) Natomiast takie rozwiązanie nie powinno powodować żadnych opóźnień na komunikację bo malina czuwa cały czas i nie musi na żądanie łączyć się z wifi.
User avatar
Duch__
Posts: 502
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Mon May 14, 2018 5:13 pm

Działa!!! No to teraz już pełne bezpieczeństwo!!! Dzięki FRACZ!!!

A i obudowa już jest. Jeszcze tylko napis PARTY na przycisku i można odwalić scenę w domu :D :D :D :D
IMG_20180514_190408.jpg
IMG_20180514_190408.jpg (2.8 MiB) Viewed 1898 times
Aktualnie na budowie: 8x SRW-01, 1x ROW-02, SUPLA BUTTON V2.0, 16 x DS na ESP (GUI), Sonoff S20 jak kontroler CWU, Ping IP Socket.

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
User avatar
Duch__
Posts: 502
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole

Mon May 14, 2018 8:18 pm

Zauważyłem jedną przypadłość w kodzie który muszę poprawić. Mianowicie układ przewoziłem między miejsce produkcji, a docelowym i przez przypadek nacisnąłem. Przez 20 min szukał docelowego WIFI. Muszę wprowadzić w kodzie timeout.
Aktualnie na budowie: 8x SRW-01, 1x ROW-02, SUPLA BUTTON V2.0, 16 x DS na ESP (GUI), Sonoff S20 jak kontroler CWU, Ping IP Socket.

Przydatne linki:
viewtopic.php?f=9&t=4160
search.php?keywords=
Post Reply