Nieudana komunikacj...
 
Powiadomienia
Wyczyść wszystko

Nieudana komunikacja ESP Easy z Domoticz przy użyciu Mosquitto MQTT

12 Wpisów
4 Użytkownicy
1 Reactions
3,138 Wyświetleń
(@blaaaaa)
Wpisów: 6
Bywalec
Autor tematu
 

Witam,

Chciałem zrobić swój pierwszy projekt przy użyciu ESP, domoticza i MQTT, lecz mam problem z komunikacją ESP z MQTT.

Broker MQTT nie widzi mojego ESP. Podając stan wysoki na GPIO 0 w Web ESP widoczna jest zmiana stanu na wejściu, a w MQTT brak jakiejkolwiek informacji o tej zmianie. 

W domoticzu stworzyłem włącznik i jest on widoczny w MQTT. 

ESP: NodeMCU v3 (192.168.1.10)
Firmware: ESP_Easy_mega_20200829_normal_ESP8266_1M
MQTT: Mosquitto MQTT (192.169.1.9:1883)
Server: Raspberry Pi (192.169.1.9)

W liku wrzuciłem screeny. Proszę o pomoc

https://drive.google.com/drive/u/1/folders/1ktFUk_kDXp57R0fNSXFuXejJMOh9RG3X

 
Dodane : 09/09/2020 5:34 pm
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Nie ma  możliwości podglądu tych fotek - Nie ma uprawnień

 
Dodane : 09/09/2020 6:08 pm
(@blaaaaa)
Wpisów: 6
Bywalec
Autor tematu
 

@isom

https://drive.google.com/drive/folders/1ktFUk_kDXp57R0fNSXFuXejJMOh9RG3X?usp=sharing

Teraz powinno działać

 
Dodane : 09/09/2020 6:14 pm
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

@blaaaaa Jak rozumiem z tych zrzutów chcesz z domoticz załączyć np LED podłączony do ESP ?

GPIO 16 bym zmienił na początek zabawy np na GPIO 12 (D6) to po pierwsze 

Jeżeli chodzi o sterownie z domoticz przekaźnikiem czy diodą podłączoną do ESP to tak jak zrobiłeś przy mqtt nie zadziała 

Trzeba do GPIO do którego jest podłączony odbiornik przypisać zamiast Switch input , Output - Domoticz MQTT Helper gdzie ustawisz tylko IDX z domoticz

Potem dodać na dowolnym GPIO , które nic nie będzie robić Switch input  ustawić mu identyczny IDX i wtedy będzie działać.

Stan tego wirtualnego GPIO będzie czytany przez Output - Domoticz MQTT Helper i na jego podstawie będzie zmieniał stan w domoticzu i odwrotnie

 

 
Dodane : 09/09/2020 7:06 pm
(@blaaaaa)
Wpisów: 6
Bywalec
Autor tematu
 

@isom
To co ustawiłem na screenach miało za zadanie odczytywać stan wejścia tzn. sprawdzać czy włącznik światła jest w pozycji ON lub OFF. Później chciałem na innym ESP ustawić sterowanie przekaźnikiem od oświetlenia.

Zrobiłem tak jak napisałeś: Ustawiłem GPIO 12 jako załączenie oświetlenia (sterowanie przekaźnikiem: Output - Domoticz MQTT Helper), i nadałem mu IDX: 1 (ten sam co w Domoticzu), następnie dodałem odczytywanie wejścia na GPIO 13 (odczyt pozycji łącznika oświetlenia: Switch Input - Switch) z tym samym IDX: 1. Niestety nie zauważyłem oczekiwanych stanów na wyjściu GPIO 12.

Z tego co zauważyłem, myślę że problem tkwi w komunikacji pomiędzy ESP a MQTT. Wnioskuję to z tego, że po podaniu stanu wysokiego na GPIO 13 (wcześniej miałem tak na GPIO 16), w "czacie" MQTT nie zauważyłem żadnych nowych logów. Tak jakby nie było komunikacji pomiędzy urządzeniem a interfejsem protokołu. Chyba, że odczyt z ESP nie jest wysyłany na "czat"? 

W zakładce Controlers mam identyczne ustawienia jak na przesłanych screenach.

IP: 192.168.1.9  PORT: 1883  - adres IP malinki i port MQTT

Zauważyłem, że jest do ustawienia w opcjach urządzenia z zakładki Controllers, "Controller user ID" i mam to ustawione fabrycznie na "%sysname%_%unit%",
Czy tak to powinno wyglądać?

Czy może ktoś zauważył jakiś inny problem przez który komunikacja nie działa?

 
Dodane : 09/09/2020 8:50 pm
(@blaaaaa)
Wpisów: 6
Bywalec
Autor tematu
 

Przed chwilą zobaczyłem że po wpisaniu do przeglądarki : http://192.168.1.10/control?cmd=GPIO,13,1   (IP ESP) pojawia się :

{
"log": "GPIO 13 Set to 1",
"plugin": 1,
"pin": 13,
"mode": "output",
"state": 1
}

Ok

Lecz na stronie Web ESP: http://192.168.1.10/devices , nie widać zmiany stanu na wyjściu GPIO 13, cały czas pokazuje mi wartość 0.

 
Dodane : 09/09/2020 9:18 pm
(@blaaaaa)
Wpisów: 6
Bywalec
Autor tematu
 

Sprawdziłem co wpada do MQTT i nasłuchując "domoticz/in" dostaję informację o zmianach stanu wejść ESP, lecz pod tym tematem nie wpada żadna informacja z Domoticza.

Wiosek:

Są ustawione inne tematy w domoticzu i ESP. 

W ESP widziałem, że ten temat można zmienić to w ustawieniach "CONTROLLERS" -> "Domoticz MQTT", natomiast w domoticzu mam ustawiony "The Things Network (MQTY/CAYENNELPP) with LAN interface" i nie widzę tam możliwości zmiany tego tematu.

1. Czy dobrze ustawiłem mqtt w domoticzu? 

2. Czy domoticz faktycznie wystawia i odbiera informacje przez MQTT pod tematami "domoticz/in" (odbiera) i "domoticz/out" (wysyła)?

 
Dodane : 13/09/2020 1:46 pm
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

A czemu nie tak ?

 mqtt
 
Dodane : 13/09/2020 1:55 pm
blaaaaa reacted
(@blaaaaa)
Wpisów: 6
Bywalec
Autor tematu
 

Dzięki @isom.

Już działa, zmieniłem typ sprzętu na "MQTT Client Gaytway with LAN interface" i bangla :).

Tylko zauważyłem kolejny problem. Po wysterowaniu IDX 1 z ESP zmienia się stan GPIO 13 (wysterowałem go fizycznie i jest monitoring przycisku) nie zmienia mi się stan wyjścia (przekaźnik od oświetlenia) na innym GPIO (14) dodanym z IDX 1. 

Szczerze powiedziawszy jeszcze tego nie analizowałem tylko chciałem poinformować, że działa mi już komunikacja.

 
Dodane : 13/09/2020 3:04 pm
(@przemo)
Wpisów: 18
Praktykant
 
Dodane przez: @isom

@blaaaaa Jak rozumiem z tych zrzutów chcesz z domoticz załączyć np LED podłączony do ESP ?

GPIO 16 bym zmienił na początek zabawy np na GPIO 12 (D6) to po pierwsze 

Jeżeli chodzi o sterownie z domoticz przekaźnikiem czy diodą podłączoną do ESP to tak jak zrobiłeś przy mqtt nie zadziała 

Trzeba do GPIO do którego jest podłączony odbiornik przypisać zamiast Switch input , Output - Domoticz MQTT Helper gdzie ustawisz tylko IDX z domoticz

Potem dodać na dowolnym GPIO , które nic nie będzie robić Switch input  ustawić mu identyczny IDX i wtedy będzie działać.

Stan tego wirtualnego GPIO będzie czytany przez Output - Domoticz MQTT Helper i na jego podstawie będzie zmieniał stan w domoticzu i odwrotnie

 

To by znaczyło że w ESP32 38PIN połowa portów IO jest nie wykorzystana bo pelni funkcje portów virtualnych. Czy da się zarządzać pinami poprzez mqtt tak zeby do kazdego mieć dostęp ?

 
Dodane : 16/06/2022 1:10 pm
Mariusz
(@mariusz-2)
Wpisów: 228
Weteran Donator 2K23
 
Dodane przez: @isom

Jeżeli chodzi o sterownie z domoticz przekaźnikiem czy diodą podłączoną do ESP to tak jak zrobiłeś przy mqtt nie zadziała 

Trzeba do GPIO do którego jest podłączony odbiornik przypisać zamiast Switch input , Output - Domoticz MQTT Helper gdzie ustawisz tylko IDX z domoticz

Potem dodać na dowolnym GPIO , które nic nie będzie robić Switch input  ustawić mu identyczny IDX i wtedy będzie działać.

Stan tego wirtualnego GPIO będzie czytany przez Output - Domoticz MQTT Helper i na jego podstawie będzie zmieniał stan w domoticzu i odwrotnie

 

To ogólna zasada, czy dotyczy sytuacji kiedy  z poziomu domoticz sterujemy przekaźnikiem i mamy również podłączony button pod  Esp ?

Post mnie zainteresował bo sam mam podobną sytuację, ale u mnie tylko domoticz steruje załącz/wyłącz przekaźnik. Nie mam przycisku na Esp, którym mógłby wyzwolic piny na przekaźnik. Oczywiście stan "State" w esp/devices zmienia się adekwatnie do wydanej komendy pod akcją załącz/wyłącz w domoticz.

 
Dodane : 17/06/2022 1:32 pm
isom
 isom
(@isom)
Wpisów: 5170
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
 

Od dawna nie używam tego firmware , nie wiem jakie zmiany zaszły w nowych wersjach , praca tego MQTT-Helper była powiązana z przełącznikiem 

 
Dodane : 19/06/2022 10:53 pm
Udostępnij: