Hey everyone,
I’ve been reverse-engineering the RS485 protocol used by my FCHAO off-grid inverter and put together an ESPHome external component to monitor it and control power ON/OFF.
ESPHome external component - FCHAO off-grid inverter
GitHub - christian-dascoli00/ESPHome-FCHAO-inverter · GitHub
Tested on the 3000W 24V model
What it does:
-
Reads output power, AC voltage , DC/battery voltage, and internal temperature over RS485 (RJ-45 port)
-
Can run either as a replacement for the inverter’s native external display, or passively alongside it on the same bus
-
ON/OFF switch support (requires a transistor, or you can just use the inverter’s physical button and skip that part)
Requirements:
- ESP32/ESP8266 with a MAX485 module wired to the inverter’s RS485 port
Example config:
external_components:
- source:
type: git
url: https://github.com/christian-dascoli00/ESPHome-FCHAO-inverter.git
ref: main
components: [fchao_inverter]
uart:
tx_pin: GPIO25 # Your choice
rx_pin: GPIO26 # Your choice
baud_rate: 9600
fchao_inverter:
- id: inverter1
update_interval: 1s # Your choice
flow_control_pin: GPIO27 # Your choice
sensor:
- platform: fchao_inverter
ac_voltage:
name: "Inverter AC Voltage"
power:
name: "Inverter Power"
dc_voltage:
name: "Inverter DC Voltage"
temperature:
name: "Inverter Temperature"
switch:
- platform: gpio
pin: GPIO13 # Your choice
name: "Inverter"
Full setup instructions, wiring diagram and example are in the repo README.
It’s MIT licensed and provided as-is. This was built entirely through reverse engineering.
If anyone has a different FCHAO variant and the request packet doesn’t match, or just wants to contribute, I’d love to hear from you.
Happy to answer questions or help if anyone’s got one of these inverters sitting around!