Nie działa automatyczne wykonywanie scen w oparciu o zmianę stanu kanałów

Awatar użytkownika
fracz
Posty: 2256
Rejestracja: pt paź 28, 2016 10:56 pm
Lokalizacja: Kraków

Wypuściłem update skryptów - biorę się za ten temat jako następny, ale pewnie dopiero po weekendzie.
Awatar użytkownika
lukfud
Posty: 2091
Rejestracja: czw lis 23, 2017 11:33 pm
Lokalizacja: Warszawa

fracz pisze: pt lut 25, 2022 2:48 pm Wypuściłem update skryptów - biorę się za ten temat jako następny, ale pewnie dopiero po weekendzie.
tak, zaktualizowałem już.
https://www.facebook.com/groups/supladiy/
bob_
Posty: 43
Rejestracja: pn wrz 28, 2020 5:49 am

Cześć,

czy jest szansa, że coś ruszy w temacie?
marik_te
Posty: 31
Rejestracja: czw maja 13, 2021 2:50 pm

Witam. Jest może jakiś update do tematu? Bo nie ukrywam, że automatyzacja by się przydała działająca
marik_te
Posty: 31
Rejestracja: czw maja 13, 2021 2:50 pm

U mnie wygląda że ruszyło. Zmieniłem tylko adres http://suplascripts/api/state-webhook na https://xxxxxxxxx/api/state-webhook. Gdzie xxx to jest adres domeny, gdzie postawione są skrypty.
fracz pisze: czw lut 17, 2022 9:23 am No to jedźmy z testami. Ewoluuje pewnie z tego prosty poradnik, ale potrzebuję od Was testów "w terenie".

Rozwiązujemy nastepujący problem: skrypty i supla są uruchomione jako kontenery dockerowe działające w tej samej sieci dockerowej (w plikach .yml jest wskazanie na tę samą sieć, np. webproxy). Logujesz się do skryptów za pomocą Personal Access Tokenu, bez konfiguracji OAuth. Do tej pory nie było możliwe, by bez zewnętrznej domeny webhooki powiadomiły skrypty o zmianach stanu kanałów. Od wersji Clouda v2.3.37 staje się to możliwe.
  1. Zaloguj się w skryptach i w swoim koncie znajdź swój identyfikator użytkownika. skrypty-id.png
  2. Ustal swoje hasło do hooków i zahashuj je za pomocą SHA1 (http://www.sha1-online.com/ wpisz jakieś hasło, mogą być totalnie przypadkowe znaki, ale zapamiętaj je na chwilę, kliknij HASH, dostaniesz 40-znakowy ciąg, który zaraz będzie potrzebny);
  3. Przejdź do linii komend gdzie uruchomione są dockery, przejdź do katalogu supla-scripts/docker i wykonaj poniższe polecenie, podmieniając TWOJE_HASLO_PRZED_HASHOWANIEM oraz TWOJ_ID_UZYTKOWNIKA

    Kod: Zaznacz cały

    source .env
    docker exec suplascripts-db mysql -u suplascripts --password=$DATABASE_PASSWORD suplascripts -e "UPDATE users SET webhookToken='TWOJE_HASLO_PRZED_HASHOWANIEM' WHERE id='TWOJ_ID_UZYTKOWNIKA'"
    
  4. Przejdź do katalogu supla-docker i wykonaj tam polecenie:

    Kod: Zaznacz cały

    docker-compose exec -u www-data supla-cloud php bin/console supla:user:webhook
    
  5. W interaktywnej komendzie podaj kolejno: twój adres e-mail z Clouda, adres http://suplascripts/api/state-webhook, a jako access token podaj 40-znakowy hash uzyskany wcześniej. Powinna pojawić się informacja o sukcesie. webhook-success.png
  6. Zaloguj się w skryptach tak jak do tej pory, przejdź do historii kanałów. Włącz/wyłącz jakieś urządzenie za pomocą aplikacji SUPLA, odśwież logi. Jeśli wpis w historii się pojawi - to znaczy że działa.
Jak udowodnimy, że działa, to kroki 2 i 3 będą bardziej zautomatyzowane.

Dawajcie znać, co nie działa.
unikat74
Posty: 35
Rejestracja: śr sie 15, 2018 11:17 pm

Witam

Walczę żeby uruchomić webhook ale jakoś z marnym skutkiem

Dwie instancje instalowane od zera na docker suplascript 4.5.4 i suplacloud 22.07 do tego działający docker nginxproxymanager z kluczami ssl. Podstawa Ubuntu 22 na mini PC.

Autoryzacja między script a cloud przez token

I tutaj ładne wszystko działa, oprócz akcji na zmianę stanu.

Wykonałem to co jest powyżej w wątku w pierwszej kolejności wykorzystującą token przy loginie w script "Access Token dla webhooków"
na cloud kończyło się sukcesem ale nie działało

Następnie wykonałem to samo ale już generując sha1 niby wszystko skończyło się sukcesem na konsoli ale nadal nie działa,
próbę powtórzyłem z z http i https dla IP dockera suplasript (jeden serwerek z cloud) dla domeny zew

Chę monitorować kontrakton z bramy ZAMEL ROW-02 aby w nocy włączać podświetlenie garażu.
Jeżeli otworzę bramę, a w web script odświeżę czujnik ręcznie i dam wykonaj scene to dzieje się wszystko jak należy.

Ale z automatu nie działa.

Nie wiem jak zweryfikować czy integracja webhook działa prawidłowo.

wyzwalanie w oparciu o stan
{{not state(74).hi}} ----- supla script tak go widzi Sensor (normal open) ID74 samą bramę widzi Relay ID72 próbowałem też z ID 72

Warunek wykonania
{{not state(74).hi and state(74).connected}}

i to prowadzi do odpalenia kolejnej sceny w której sprawdzam godziny i czy podświetlenie jest on / not on i tyle.

Rozbiłem to na dwa kroki sugerując się wypowiedziami na forum.

Pozdrawiam
slavo_s2k
Posty: 225
Rejestracja: sob mar 10, 2018 7:32 pm

Jak wygląda sytuacja na dziś? Właśnie postawiłem scripts lokalnie obok Clouda i nie działa mi historia stanów oraz wykonywanie scen w oparciu o zmianę stanu kanału, w pierwszym logowaniu użyłem token, czy to oznacza że wszystko od nowa?
marik_te
Posty: 31
Rejestracja: czw maja 13, 2021 2:50 pm

Czy uzywacie swojego serwera supli? Bo wpisany adres domeny musi byc identyczny jak adres domeny w konfiguracji supla cloud.
Lukil
Posty: 79
Rejestracja: sob lut 06, 2021 1:35 pm

Ręce już mi opadają ;-)
Spędziłem około 40 godzin i nie udało mi się tego uruchomić w sieci lan nie działają sceny.
Robię dokładnie jak jest opisane tu!
https://github.com/fracz/supla-scripts/ ... d-instance
To nie działa.

Jak można powiązać supla script by działały sceny poprawnie?
Lukil
Posty: 79
Rejestracja: sob lut 06, 2021 1:35 pm

Udało się do wszystko uruchomić w sieci LAN
Działa bez serwera proxy, na jednym adresie IP.
supla docker + SUPLA Scripts
Działa automatyczne wykonywanie scen w oparciu o zmianę stanu kanałów.
Przekierowując port działa tez z zewnętrznego IP.
Podpisując certyfikat strona otworzy się poprawnie.

Czy komuś przyda się opis jak to poskładać by działało?

Za bardzo nie mogę zrozumieć po co ten serwer proxy? czemu on ma służyć w tym przypadku?
ODPOWIEDZ

Wróć do „SUPLA Scripts”