psvanstrom / esphome-uh50reader

ESPHome custom component for communicating with Landis+Gyr T550 (UH50) heat/cold meters and reading usage data
MIT License
7 stars 2 forks source link

Would it also work with an T230? #2

Open PanicMan opened 1 year ago

PanicMan commented 1 year ago

Hello, thank a lot for the Project! I'm trying already since a long time to read out my L&G UH T230 Meter: grafik https://www.manualslib.com/manual/1590596/LandisPlusgyr-Ultraheat-T230.html I'm using that head: https://www.ebay.de/itm/353940190756 I tried also your code, first no change, then I add additional line to the wakeup sequence, no difference, TX to D4, RX to RX, the sequence is send, I can see it with my handy-cam. What do you think, should it work with my Meter too? And with my Head? I also tried to wake up the Meter with the Button, also no response... Anything else what I can try? Thanks, Jack

psvanstrom commented 1 year ago

Hi!

I'm not sure to be honest, but since it has an optical interface and supports IEC 62056-21 I'm sure it should be able to get it to work.

Perhaps the starting wake-up sequence is different? In this project the mention a start sequence of 65 zero-characters, perhaps try to modify the array at https://github.com/psvanstrom/esphome-uh50reader/blob/main/uh50reader.h#L27 and see if that has any effect?

PanicMan commented 1 year ago

Yeah, thanks, I can try that... Also that part that I have to wait some time is strange:

Especially battery powered meters require a wake-up sequence to be sent before further communication on the optical IEC 62056-21 interface. In most cases, sending a string of 65 zero-characters ('\0') should do the trick, followed by a pause of 1.5 seconds. If serial data is sent asynchronously, make sure you also wait for the data to be sent, which probably requires a total waiting time of 2.7 seconds after sending the wake-up string.

I'm not sure, but it seems your reader is listening right after sending the wakeup. Should I wait here for an specific time or just wait for that "available()" flag? And if wait, how, is there any "sleep(ms);" command?