Poszukuję pomocy w sprawie integracji licznika energii elektrycznej Sinotimer DTS6619 (z komunikacją po RS485 MODBUS RTU) z Home Assistant. Do integracji wykorzystałem dwa zestawy: 1) Wemos D1 mini i konwerter TTL RS485 oraz 2) ESP32-WROOM-32D i konwerter TTL RS485. Podłączyłem TX-TXD oraz RX-RXD. Moduły przygotowałem z wykorzystaniem ESPHome, niestety bez powodzenia. Logi oraz pliki yaml załączone. Proszę o pomoc w lokalizacji błędów konfiguracyjnych modułów. Wsad przygotowałem bazując na:
Zamień podłączenie esp-modułRS Tx-RxD, RX-TxD. Przy prawidłowym podłaczeni na module RS powinna mrugać Led Rx. W odpowiedzi na zapytanie licznika powinien mrugnąc led Tx.
Jeśli nie mruga Tx to zamien zaciski AB.
W logach widać, że nie ma komunikacji.
Reszty nie sprawdzałem bo jak dla mnie to zaminiłeś linie RxTx.
Z opisem tych pinów bywa różnie.
Dziękuję za odzew. Sprawdziłem i przy połączeniu Tx-TxD, Rx-RxD na module RS mruga Rx, jak zmieniłem na Tx-RxD, RX-TxD mrugała Tx. W logach cały czas otrzymuję komunikat “Modbus command to device=2 register=0x00 countdown=0 no response received - removed from send queue”.
Na liczniku adres 002.
Bez schematu modułu trudno jest jednoznacznie coś doradzić.
Ponieważ to ESP inicjuje komunikację (licznik sam nic nie wysyła) to podłączenie przy którym miga led RX jest najbardziej prawdopodobnie prawidłowe.
Po tym zapytaniu licznik powinien odpowiedzieć mrugnięciem led TX.
Jeśli tak się nie dzieje to może byś niewłaściwa polaryzacja linii RS485 (zaciski AB), długie nieskręcone przewody lub brak opornika przy liczniku (120ohm) - ten opornik jest najmniej prawdopodobny.
Druga przyczyna to źle ustawione parametry transmisji, ID modułu lub nieodpowiednia adresacja rejestrów. Masz wiarygodną dokumentację dla tego licznika?
To jest zbyt dużo niewiadomych i trzeba pewne rzeczy ustalić za pomocą innych metod.
Na początek potestowałbym licznik na stole za pomocą konwertera RS485<>USB i programy do obsługi modbus. Sprawdzisz wtedy adresację, ID, parametry transmisji.
Później możesz próbować to przełożyć na ESPHome zaczynają od odczytu jednego rejestru.
Nie chce mi się kolejny raz tematu licznik modbus rozbierać do samego spodu, bo metoda dla każdego licznika jest taka sama i na pewno na forum jest opisana.
Ja bym spróbował choćby z modułem ESP-01s, który nie ma mostka USB-UART, bo oba te na zdjęciach (Wemos D1 czy tam jego klon i NodeMCU lub klon) mają do TX i RX ESP podłączony na stałe mostek USB-UART, który może przeszkadzać w komunikacji.
Jeśli nie masz, to częściowym sprawdzeniem może być niepodłączanie pinu RX modułu ESP. Odczytów oczywiście nie będzie ale jeśli to o czym pisze @szopen jest przyczyną będą mrugać oba ledy RX,TX. Mostek może podciągać trwale do jednego stanu i transmisja między licznikiem może być tylko jej nie “widać”.
Poprawka - ten drugi to jakiś ESP32, on ma dwa UARTy, więc można użyć ten UART, który nie jest połączony z mostkiem USB, oczywiście trzeba to prawidłowo skonfigurować (w YAMLu jest akurat użyty ten co jest połączony z mostkiem)
Serdecznie dziękuję za pomoc. Twoja podpowiedź rozwiązała problem z komunikacją. Zamiana w ESP32 na UART2 (GPIO16 RX i GPIO17 TX) spowodowała, że ruszyło z kopyta. Jeszcze raz dziękuję za zaangażowanie, poświęcony czas i jestem pod wrażeniem wiedzy.