Supla Button

User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

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:[email protected]/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.
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

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
You do not have the required permissions to view the files attached to this post.
User avatar
wojtas567
Posts: 2334
Joined: Sun Apr 03, 2016 7:16 pm
Location: Olsztyn

Post

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: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

A po co Ci GPIO16? On do szczęścia nie jest potrzebny.
User avatar
wojtas567
Posts: 2334
Joined: Sun Apr 03, 2016 7:16 pm
Location: Olsztyn

Post

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

Post

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.
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

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:[email protected]/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: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

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_190432.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
Duch__
Posts: 2199
Joined: Wed Aug 24, 2016 7:26 pm
Location: Opole
Been thanked: 6 times

Post

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.

Return to “Projekty użytkowników”