I started to reverse engineer the LNS protocol that is used by some Midea mini-splits (full write-up). Turns out, the data line that connects the IDU and ODU carries all kind of interesting data:
I’d like to feed this into Home Assistant, but I’d rather not deal with line voltage to capture it. My 220V units use one of the hot wires as the reference for the data line. So instead I looked at the diagnostic port on the ODU inverter board, which runs at 5V.
Unfortunately, the lines are idle when nothing’s connected to the port:
[can’t attach more than 1 image - i’ll post this image as separate response]
Once I connect the Midea inverter tester, digital signals start appearing:
[can’t attach more than 1 image - i’ll post this image as separate response]
The mechanics of the protocol are now fully understood. I was also able to whip up a prototype to capture the telemetry from the diagnostic bus using an ESP32 and a level-shifter:
I’m now convinced that this is a reliable and safe way to capture telemetry.
Next steps: Identify the meaning of the individual bytes and their encoding and create a custom ESPHome component to feed this data into Home Assistant.
The inverter tester made it straight-forward to track down the meaning and encoding of the attributes that it supports. I now understand the protocol well enough to fully emulate the IDU / ODU query functionality.
I haven’t mapped the bus voltage. Related: I start to wonder whether Input voltage is actually a different voltage. Since it goes way too high for a line voltage reading.
I haven’t mapped IPM temperature either since it’s not a setting that is exposed from the inverter tester.