Powiadomienia
Wyczyść wszystko

Współpraca AFE z serwerem Domoticz

9 Wpisów
2 Użytkownicy
0 Reactions
3,587 Wyświetleń
isom
Wpisów: 5180
 isom
Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
(@isom)
Szef wszystkich szefów
Dołączył: 7 lat temu

Miałem ostatnio trochę więcej czasu , więc postanowiłem bardziej się przyjrzeć współpracy oprogramowania AFE z serwerem domoticz. Do tej głębszej analizy skłonił mnie też wątek o aktualizacji stanu  przełącznika i problemy z tym związane.

Podstawowy problem jaki pojawił się w moich testach , to brak reakcji serwera na polecenia wysyłane z linii komend , w czym rzecz

  o ile komenda  http://<espip>/?device=relay&name=switch&command=on&source=domoticz

ustawiła przekaźnik modułu  na On  , to wysłana z poziomu okna przeglądarki , lub innej aplikacji niż domoticz  nie zmieniła  statusu przełącznika na pulpicie domoticza .

Nie wiem co moduł ESP wysyła do domoticza po zmianie stanu swojego GPIO , ale na pewno to co wysyła jest niezrozumiałe dla serwera.

Bazując na dokumentacji domoticza , wysłałem do serwera komendę zawierającą nr IDX przełącznika przypisanego do tego ESP na potrzeby testu  IDX = 10

http://<serwerip>:port/json.htm?type=command&param=switchlight&idx=10&switchcmd=On  i stan przełącznika na pulpicie domoticza się zaktualizował .

 Oczywiście z wiadomych względów moduł na tą komendę nie zareagował .

Ponieważ nie umiem napisać firmware , wgrałem do modułu espeasy  i  powyższa komenda wpisana z dowolnej przeglądarki zmieniła stan GPIO w ESP , oraz stan w domoticzu .

Wysłałem  http://<serwerip>:port/json.htm?type=devices&rid=10  

Dostałem aktualny stan przełącznika .

Wydaje mi się , że trzeba by przerobić firmware , a potem  dopiero myśleć  o aktualizacji stanu , bo na tą chwilę nawet podłączony i dobrze działający moduł ESP może się rozmijać ze stanem pokazywanym przez serwer .

8 Odpowiedzi
1 Reply
adrian
Admin Zasłużony dla Forum, Patron Strony
(@adrian)
Dołączył: 11 lat temu

Szefu
Wpisów: 4035

Tę komendę trzeba używać tylko z Domoticz. W komendzie dodany jest dodatkowy parametr source=domoticz, który eliminuje problem niekończącej się pętli zmiany statusów opisanej tutaj

http://<espip>/?device=relay&name=switch&command=on&source=domoticz

Działa to właśnie tak, że urządzenie po jej otrzymaniu nie wysyła statusu do domoticz.

Z poza Domoticz , np z przeglądarki komenda sterująca to 

http://<espip>/?device=relay&name=switch&command=on

Wszystkie komendy HTTP opisane sa tutaj

 

Odpowiedz
isom
Wpisów: 5180
 isom
Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
(@isom)
Szef wszystkich szefów
Dołączył: 7 lat temu

To zapytam inaczej , bo chyba się nie zrozumieliśmy

Na jakiej podstawie zmienia się stan ikony w domoticzu , po zmianie stanu GPIO przy użyciu przycisku ręcznego ?

Odpowiedz
adrian
Wpisów: 4035
Admin Zasłużony dla Forum, Patron Strony
(@adrian)
Szefu
Dołączył: 11 lat temu

Po zmianie stanu GPIO przypisanego do sterowania przekaźnikiem

  • stan przekaźnika zmieniany jest na stan przeciwny do stanu z przed zmiany stanu GPIO
  • jeśli API Domoticz jest włączone w konfiguracji urządzenia
  • Odczytywany jest stany przekaźnika (STATE)
  • Odczytywany jest IDX, adres serwera domoticz, porty itp zapisane w konfiguracji AFE
  • Wysyłana jest komenda HTTP do Domoticz 

http://<serwerip>:port/json.htm?type=command&param=switchlight&idx=IDX&switchcmd=STATE  

pozdrawiam

Odpowiedz
isom
Wpisów: 5180
 isom
Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
(@isom)
Szef wszystkich szefów
Dołączył: 7 lat temu

Wielkie dzięki za bardzo precyzyjną odpowiedz 🙂 Podejrzewam , że soft esp...y robi to na podobnej zasadzie , z tą różnicą ,że wysłanie komendy  http://<serwerip>:port/json.htm?type=command&param=switchlight&idx=X&switchcmd=On

i komendy  http://<espip>/control?cmd=GPIO,X,1, Robi taką samą robotę realizując zmianę stanu przekaźnika  i zmianę statusu ikony w domoticz

dodatkowo odłączony moduł od zasilania wali errorami w logach , co ułatwia ocenę sytuacji , moduł z AFE po odłączeniu od zasilania wali error tylko po wysłaniu komendy ON- OFF

 

Błędy wyłączonego sonoffa
Sorry muszę trochę Cię pomęczyć bo szkoda mi rezygnować z AFE a za stary jestem żeby uczyć się kompilowania firmware
Odpowiedz
1 Reply
adrian
Admin Zasłużony dla Forum, Patron Strony
(@adrian)
Dołączył: 11 lat temu

Szefu
Wpisów: 4035

męcz, męcz :-), jak coś można usprawniać to ja jestem chętny - tylko może trochę potrwać bo czasu mało 😉

Odpowiedz
isom
Wpisów: 5180
 isom
Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Autor tematu
(@isom)
Szef wszystkich szefów
Dołączył: 7 lat temu

Nic nie musi być na już , tym bardziej że jak coś się zrobi za szybko to można robić dwa razy .  Przy automatyce cierpliwość to skarb 🙂  Pamiętam jak na jednym esp chciałem za wszelką cenę ogarniać po 7 przekaźników i wyszło tak , że potem to wszystko przerabiałem ,żeby uzyskać sensowną funkcjonalność .

Wracając do tematu analizowałeś może logikę firmware esp... ? Z czego wynika , że w easy nie ważne z jakiego poziomu wysłana komenda obsługuje i GPIO i serwer a w AFE trzeba użyć podstawowej komendy w przeglądarce, a z poziomu domoticza trzeba dopisywać source=domoticz ?

Odpowiedz
1 Reply
adrian
Admin Zasłużony dla Forum, Patron Strony
(@adrian)
Dołączył: 11 lat temu

Szefu
Wpisów: 4035

Nie analizowałem jak działa  EspEasy (jak rozumiem)

a sprawdź czy jak nie przełączysz w tym module z EspEasy kilka razy bardzo szybko przekaźnikiem za pomocą GPIO to nie wpadnie Ci w pętlę. 

 

Odpowiedz
Strona 1 / 2
Udostępnij: