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
Nie ma możliwości podglądu tych fotek - Nie ma uprawnień
https://drive.google.com/drive/folders/1ktFUk_kDXp57R0fNSXFuXejJMOh9RG3X?usp=sharing
Teraz powinno działać
@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
@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?
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.
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)?
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.
@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 ?
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.
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