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

User avatar
fracz
Posts: 2274
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków

Post

Wypuściłem update skryptów - biorę się za ten temat jako następny, ale pewnie dopiero po weekendzie.
User avatar
lukfud
Posts: 2266
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa

Post

fracz wrote: Fri Feb 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_
Posts: 43
Joined: Mon Sep 28, 2020 5:49 am

Post

Cześć,

czy jest szansa, że coś ruszy w temacie?
marik_te
Posts: 34
Joined: Thu May 13, 2021 2:50 pm

Post

Witam. Jest może jakiś update do tematu? Bo nie ukrywam, że automatyzacja by się przydała działająca
marik_te
Posts: 34
Joined: Thu May 13, 2021 2:50 pm

Post

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 wrote: Thu Feb 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

    Code: Select all

    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:

    Code: Select all

    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
Posts: 35
Joined: Wed Aug 15, 2018 11:17 pm

Post

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
Posts: 230
Joined: Sat Mar 10, 2018 7:32 pm

Post

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
Posts: 34
Joined: Thu May 13, 2021 2:50 pm

Post

Czy uzywacie swojego serwera supli? Bo wpisany adres domeny musi byc identyczny jak adres domeny w konfiguracji supla cloud.
Lukil
Posts: 82
Joined: Sat Feb 06, 2021 1:35 pm

Post

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
Posts: 82
Joined: Sat Feb 06, 2021 1:35 pm

Post

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?

Return to “SUPLA Scripts”