ESPHome + KL8300 (KL8-3H-FACE3) — Sniffing UART to retrieve water temperature / spa data

On my version, I haven't found true bidirectional communication on the LCD connector. The LCD receives information such as segments, LEDs, icons, the displayed temperature, pump status, heating, filtration, panel status, etc.

The keypad control section doesn't use this LCD connector on my version. It uses the 8-pin KEY connector. The keypad isn't a simple contact to GND; it's a true matrix scanned by the Holtek microcontroller.

Decoding table observed on my KL8300:


Note: the exact values ​​may vary depending on the panel or controller version. The safest approach is to capture data with several known states: panel ON/OFF, pump 1 ON/OFF, pump 2 ON/OFF, heating ON/OFF, LED ON/OFF, then compare the changing bytes.

To verify if there is truly bidirectional communication on your version, you need to check if the DIO line is sometimes released by the controller board and controlled by the display. If there is only one DATA line and no separate MISO, bidirectional communication is only possible if DIO goes into high impedance during certain phases. In my capture, I did not observe this phase on the LCD bus: only writing to the display.