Skip to content

Instantly share code, notes, and snippets.

@jabbas
Created March 27, 2026 23:04
Show Gist options
  • Select an option

  • Save jabbas/55ed902656939e1c44010916668dd6db to your computer and use it in GitHub Desktop.

Select an option

Save jabbas/55ed902656939e1c44010916668dd6db to your computer and use it in GitHub Desktop.
ORNO OR-WE-529 three-phase energy meter — ESPHome config + Modbus register map (Waveshare ESP32-S3-RS485-CAN)
esphome:
name: energy-heatpump
friendly_name: Energy HeatPump
area: Boilerroom
on_boot:
priority: -100
then:
- lambda: id(orno_we529)->update();
packages:
base: !include __common/base.yaml
logger: !include __common/logger.yaml
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
logger:
level: INFO
baud_rate: 0
time:
- platform: homeassistant
id: homeassistant_time
uart:
- id: modbus_uart
tx_pin: GPIO17
rx_pin: GPIO18
baud_rate: 9600
parity: NONE
stop_bits: 1
modbus:
id: modbus_1
uart_id: modbus_uart
flow_control_pin: GPIO21
modbus_controller:
- id: orno_we529
address: 0x01
modbus_id: modbus_1
setup_priority: -10
update_interval: 10s
button:
- platform: template
name: "Reset Resettable Energy"
icon: mdi:counter
entity_category: config
on_press:
- lambda: |-
auto cmd = esphome::modbus_controller::ModbusCommandItem
::create_write_single_command(id(orno_we529), 0x2001, 0x3FFF);
id(orno_we529)->queue_command(cmd);
- platform: template
name: "Reset Max Demand"
icon: mdi:chart-bar
entity_category: config
on_press:
- lambda: |-
auto cmd = esphome::modbus_controller::ModbusCommandItem
::create_write_single_command(id(orno_we529), 0x2002, 0xFFA5);
id(orno_we529)->queue_command(cmd);
sensor:
# ── Voltages ────────────────────────────────────────────────────────────────
- id: l1_voltage
name: "L1 Voltage"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0400
value_type: S_DWORD
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
accuracy_decimals: 2
filters:
- multiply: 0.001
- id: l2_voltage
name: "L2 Voltage"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0402
value_type: S_DWORD
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
accuracy_decimals: 2
filters:
- multiply: 0.001
- id: l3_voltage
name: "L3 Voltage"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0404
value_type: S_DWORD
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
accuracy_decimals: 2
filters:
- multiply: 0.001
# ── Currents ─────────────────────────────────────────────────────────────────
- id: l1_current
name: "L1 Current"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0410
value_type: S_DWORD
unit_of_measurement: "A"
device_class: current
state_class: measurement
accuracy_decimals: 2
filters:
- multiply: 0.001
- id: l2_current
name: "L2 Current"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0412
value_type: S_DWORD
unit_of_measurement: "A"
device_class: current
state_class: measurement
accuracy_decimals: 2
filters:
- multiply: 0.001
- id: l3_current
name: "L3 Current"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0414
value_type: S_DWORD
unit_of_measurement: "A"
device_class: current
state_class: measurement
accuracy_decimals: 2
filters:
- multiply: 0.001
# ── Active Power ─────────────────────────────────────────────────────────────
- id: l1_active_power
name: "L1 Active Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x041A
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 0
- id: l2_active_power
name: "L2 Active Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x041C
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 0
- id: l3_active_power
name: "L3 Active Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x041E
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 0
- id: total_active_power
name: "Total Active Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0420
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 0
# ── Apparent Power ───────────────────────────────────────────────────────────
- id: l1_apparent_power
name: "L1 Apparent Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0422
value_type: S_DWORD
unit_of_measurement: "VA"
device_class: apparent_power
state_class: measurement
accuracy_decimals: 0
- id: l2_apparent_power
name: "L2 Apparent Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0424
value_type: S_DWORD
unit_of_measurement: "VA"
device_class: apparent_power
state_class: measurement
accuracy_decimals: 0
- id: l3_apparent_power
name: "L3 Apparent Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0426
value_type: S_DWORD
unit_of_measurement: "VA"
device_class: apparent_power
state_class: measurement
accuracy_decimals: 0
- id: total_apparent_power
name: "Total Apparent Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0428
value_type: S_DWORD
unit_of_measurement: "VA"
device_class: apparent_power
state_class: measurement
accuracy_decimals: 0
# ── Reactive Power ───────────────────────────────────────────────────────────
- id: l1_reactive_power
name: "L1 Reactive Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x042A
value_type: S_DWORD
unit_of_measurement: "var"
device_class: reactive_power
state_class: measurement
accuracy_decimals: 0
- id: l2_reactive_power
name: "L2 Reactive Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x042C
value_type: S_DWORD
unit_of_measurement: "var"
device_class: reactive_power
state_class: measurement
accuracy_decimals: 0
- id: l3_reactive_power
name: "L3 Reactive Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x042E
value_type: S_DWORD
unit_of_measurement: "var"
device_class: reactive_power
state_class: measurement
accuracy_decimals: 0
- id: total_reactive_power
name: "Total Reactive Power"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0430
value_type: S_DWORD
unit_of_measurement: "var"
device_class: reactive_power
state_class: measurement
accuracy_decimals: 0
# ── Frequency ────────────────────────────────────────────────────────────────
- id: frequency
name: "Frequency"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0432
value_type: S_WORD
unit_of_measurement: "Hz"
device_class: frequency
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# ── Power Factors ────────────────────────────────────────────────────────────
- id: l1_power_factor
name: "L1 Power Factor"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0436
value_type: S_WORD
device_class: power_factor
state_class: measurement
accuracy_decimals: 3
filters:
- multiply: 0.001
- id: l2_power_factor
name: "L2 Power Factor"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0437
value_type: S_WORD
device_class: power_factor
state_class: measurement
accuracy_decimals: 3
filters:
- multiply: 0.001
- id: l3_power_factor
name: "L3 Power Factor"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0438
value_type: S_WORD
device_class: power_factor
state_class: measurement
accuracy_decimals: 3
filters:
- multiply: 0.001
- id: total_power_factor
name: "Total Power Factor"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0439
value_type: S_WORD
device_class: power_factor
state_class: measurement
accuracy_decimals: 3
filters:
- multiply: 0.001
# ── Energy — Totals ──────────────────────────────────────────────────────────
- id: total_forward_active_energy
name: "Total Forward Active Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x010E
value_type: S_DWORD
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 2
filters:
- multiply: 0.01
- id: total_reverse_active_energy
name: "Total Reverse Active Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0118
value_type: S_DWORD
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 2
filters:
- multiply: 0.01
- id: total_active_energy
name: "Total Active Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0122
value_type: S_DWORD
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 2
filters:
- multiply: 0.01
- id: total_forward_reactive_energy
name: "Total Forward Reactive Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x012C
value_type: S_DWORD
unit_of_measurement: "kvarh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 2
filters:
- multiply: 0.01
- id: total_reverse_reactive_energy
name: "Total Reverse Reactive Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0136
value_type: S_DWORD
unit_of_measurement: "kvarh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 2
filters:
- multiply: 0.01
# ── Daily Energy ─────────────────────────────────────────────────────────────
- platform: total_daily_energy
name: "Daily Energy"
power_id: total_active_power
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 3
filters:
- multiply: 0.001
- platform: total_daily_energy
name: "L1 Daily Energy"
power_id: l1_active_power
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 3
filters:
- multiply: 0.001
- platform: total_daily_energy
name: "L2 Daily Energy"
power_id: l2_active_power
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 3
filters:
- multiply: 0.001
- platform: total_daily_energy
name: "L3 Daily Energy"
power_id: l3_active_power
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 3
filters:
- multiply: 0.001
# ── Max Demand ───────────────────────────────────────────────────────────────
- id: forward_active_max_demand
name: "Forward Active Max Demand"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0470
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
- id: reverse_active_max_demand
name: "Reverse Active Max Demand"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0478
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
- id: total_active_max_demand
name: "Total Active Max Demand"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0480
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
- id: l1_forward_active_max_demand
name: "L1 Forward Active Max Demand"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x046A
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
- id: l2_forward_active_max_demand
name: "L2 Forward Active Max Demand"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x046C
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
- id: l3_forward_active_max_demand
name: "L3 Forward Active Max Demand"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x046E
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
- id: l1_total_active_max_demand
name: "L1 Total Active Max Demand"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x047A
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
- id: l2_total_active_max_demand
name: "L2 Total Active Max Demand"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x047C
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
- id: l3_total_active_max_demand
name: "L3 Total Active Max Demand"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x047E
value_type: S_DWORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# ── Energy — Resettable ──────────────────────────────────────────────────────
- id: resettable_active_energy
name: "Resettable Active Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x062C
value_type: S_DWORD
unit_of_measurement: "kWh"
device_class: energy
state_class: total
accuracy_decimals: 2
filters:
- multiply: 0.01
- id: resettable_forward_active_energy
name: "Resettable Forward Active Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x062E
value_type: S_DWORD
unit_of_measurement: "kWh"
device_class: energy
state_class: total
accuracy_decimals: 2
filters:
- multiply: 0.01
- id: l1_resettable_active_energy
name: "L1 Resettable Active Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0632
value_type: S_DWORD
unit_of_measurement: "kWh"
device_class: energy
state_class: total
accuracy_decimals: 2
filters:
- multiply: 0.01
- id: l2_resettable_active_energy
name: "L2 Resettable Active Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0638
value_type: S_DWORD
unit_of_measurement: "kWh"
device_class: energy
state_class: total
accuracy_decimals: 2
filters:
- multiply: 0.01
- id: l3_resettable_active_energy
name: "L3 Resettable Active Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x063E
value_type: S_DWORD
unit_of_measurement: "kWh"
device_class: energy
state_class: total
accuracy_decimals: 2
filters:
- multiply: 0.01
# ── Energy — Per Phase ───────────────────────────────────────────────────────
- id: l1_total_active_energy
name: "L1 Total Active Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0500
value_type: S_DWORD
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 2
filters:
- multiply: 0.01
- id: l2_total_active_energy
name: "L2 Total Active Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x0564
value_type: S_DWORD
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 2
filters:
- multiply: 0.01
- id: l3_total_active_energy
name: "L3 Total Active Energy"
platform: modbus_controller
modbus_controller_id: orno_we529
register_type: holding
address: 0x05C8
value_type: S_DWORD
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
accuracy_decimals: 2
filters:
- multiply: 0.01

OR-WE-529 Modbus Register Map

Completely reverse-engineered via live scanning + official XLSX register map from ORNO. Last updated: 2026-03-27


Hardware Setup

Component Value
Board Waveshare ESP32-S3-RS485-CAN
TX pin GPIO17
RX pin GPIO18
Flow control GPIO21 (required)
RS485 terminals A+ (pin 19), B- (pin 20)
Power supply External DC (not USB) — required for RS485 reference

Communication Parameters

Parameter Value
Baud rate 9600
Parity NONE (8N1)
Stop bits 1
Modbus address 1 (default, range 1–247)
Function code reads FC03 and FC04 — both return identical data
Function code writes FC06 (single register), FC10h (multiple registers)

Note: Parity EVEN (used by OR-WE-516) does not work — meter does not respond.


Debugging Journey

The meter registers are at 0x0400+, not at the addresses used by other ORNO meters:

Meter Voltage register Type
OR-WE-516 0x000E FP32
OR-WE-525/526 0x0100 INT32(3+3)
OR-WE-529 0x0400 INT32(3+3)

We exhaustively scanned 0x0000–0xA001 before receiving the official XLSX register map from ORNO. All ranges except 0x0400+ and 0x0100+ energy block return zeros.


Instantaneous Parameters (0x0400 range)

All registers: FC03, R/W=R, 2 registers (32-bit), S_DWORD.

Voltage — INT32(3+3), scale ÷1000, unit V

Address ESPHome id Description
0x0400 l1_voltage L1-N Voltage
0x0402 l2_voltage L2-N Voltage
0x0404 l3_voltage L3-N Voltage
0x0406 L1-L2 Line Voltage
0x0408 L2-L3 Line Voltage
0x040A L3-L1 Line Voltage
0x040C L-N Average Voltage
0x040E L-L Average Voltage

Current — INT32(2+3), scale ÷1000, unit A

Address ESPHome id Description
0x0410 l1_current L1 Current
0x0412 l2_current L2 Current
0x0414 l3_current L3 Current
0x0416 N Current
0x0418 Three-phase Vector Sum Current

Active Power — INT32(5+0), scale ×1, unit W

Address ESPHome id Description
0x041A l1_active_power L1 Active Power
0x041C l2_active_power L2 Active Power
0x041E l3_active_power L3 Active Power
0x0420 total_active_power Combined Active Power

Apparent Power — INT32(5+0), scale ×1, unit VA

Address ESPHome id Description
0x0422 l1_apparent_power L1 Apparent Power
0x0424 l2_apparent_power L2 Apparent Power
0x0426 l3_apparent_power L3 Apparent Power
0x0428 total_apparent_power Combined Apparent Power

Reactive Power — INT32(5+0), scale ×1, unit var

Address ESPHome id Description
0x042A l1_reactive_power L1 Reactive Power
0x042C l2_reactive_power L2 Reactive Power
0x042E l3_reactive_power L3 Reactive Power
0x0430 total_reactive_power Combined Reactive Power

Frequency — INT16(2+1), scale ÷10, unit Hz

Address ESPHome id Description
0x0432 frequency L1 Frequency
0x0433 L2 Frequency
0x0434 L3 Frequency
0x0435 Combined Frequency

Power Factor — INT16(1+3), scale ÷1000

Address ESPHome id Description
0x0436 l1_power_factor L1 Power Factor
0x0437 l2_power_factor L2 Power Factor
0x0438 l3_power_factor L3 Power Factor
0x0439 total_power_factor Combined Power Factor

Active Max Demand — INT32(6+1), scale ÷10, unit W

Address ESPHome id Description
0x046A l1_forward_active_max_demand L1 Forward Active Max Demand
0x046C l2_forward_active_max_demand L2 Forward Active Max Demand
0x046E l3_forward_active_max_demand L3 Forward Active Max Demand
0x0470 forward_active_max_demand Combined Forward Active Max Demand
0x0472 L1 Reverse Active Max Demand
0x0474 L2 Reverse Active Max Demand
0x0476 L3 Reverse Active Max Demand
0x0478 reverse_active_max_demand Combined Reverse Active Max Demand
0x047A l1_total_active_max_demand L1 Total Active Max Demand
0x047C l2_total_active_max_demand L2 Total Active Max Demand
0x047E l3_total_active_max_demand L3 Total Active Max Demand
0x0480 total_active_max_demand Combined Total Active Max Demand

Energy Parameters

All energy registers: FC03, R only, 2 registers (32-bit), S_DWORD, INT32(6+2), scale ÷100, unit kWh or kvarh.

Combined Energy (0x010E range)

Address ESPHome id Description
0x010E total_forward_active_energy Total Forward Active Energy (kWh)
0x0118 total_reverse_active_energy Total Reverse Active Energy (kWh)
0x0122 total_active_energy Total Active Energy (kWh)
0x012C total_forward_reactive_energy Total Forward Reactive Energy (kvarh)
0x0136 total_reverse_reactive_energy Total Reverse Reactive Energy (kvarh)

Per-Phase Energy (0x0500 range)

Address ESPHome id Description
0x0500 l1_total_active_energy L1 Total Active Energy (kWh)
0x0564 l2_total_active_energy L2 Total Active Energy (kWh)
0x05C8 l3_total_active_energy L3 Total Active Energy (kWh)

Resettable Energy (0x062C range)

state_class: total (not total_increasing — can be reset). Reset via register 0x2001.

Address ESPHome id Description
0x062C resettable_active_energy Total Resettable Active Energy (kWh)
0x062E resettable_forward_active_energy Resettable Forward Active Energy (kWh)
0x0632 l1_resettable_active_energy L1 Resettable Active Energy (kWh)
0x0638 l2_resettable_active_energy L2 Resettable Active Energy (kWh)
0x063E l3_resettable_active_energy L3 Resettable Active Energy (kWh)

Meter Configuration Parameters (0x1000 range)

Address R/W Description Known value
0x1000 R/W Serial number (6 registers, FC10h)
0x1003 R/W Modbus ID (1–247) 1
0x1004 R SW version 301 (3.01)
0x1005 R HW version 401 (4.01)
0x1006 R FW checksum 0x5B61
0x1007 R/W Time: year/month/day/week/hour/min/sec (4 registers, FC10h, BCD)
0x100B R/W LCD scroll time (0–99s, 0=disabled) 5
0x100C R/W Baud rate (6=9600, 7=19200, 8=38400, 9=115200) 6
0x100D R/W Parity (0=none, 1=odd, 2=even) 0
0x100E R/W Stop bit (1=1bit, 2=2bit) 1
0x100F R/W Combined code (1=Fwd, 2=Rev, 3=Fwd+Rev, 4=Fwd-Rev) 3
0x1010 R/W Demand mode (0=Interval, 1=Slip) 0
0x1011 R/W Demand cycle (1–30 min) 15
0x1016 R/W LCD button password (0000–9999) 0000
0x1017 R/W SO output rate (imp/kWh) 1000
0x1018 R/W Meter running time (write 0 to reset, FC10h)
0x101A R/W Timing current (mA, FC10h) 20

Note on 0x1007 (time write): Writing returns Modbus exception 3 (Illegal Data Value). This register may be read-only in FW 3.01 or require a specific unlock sequence not documented.


Write-Only Command Registers

Address Value Effect
0x2001 0x3FFF Reset ALL resettable energy counters (bits 0–13)
0x2001 0xA5xx Reset selective resettable energy (bitmask in low byte)
0x2002 0xFFA5 Reset ALL max demand values
0x2002 0xA5xx Reset selective max demand (bitmask in low byte)

ESPHome Implementation

Device: energy-heatpump.yaml

47 sensors total:

Group Count
Voltage (L1/L2/L3) 3
Current (L1/L2/L3) 3
Active Power (L1/L2/L3/Total) 4
Apparent Power (L1/L2/L3/Total) 4
Reactive Power (L1/L2/L3/Total) 4
Frequency 1
Power Factor (L1/L2/L3/Total) 4
Energy totals (forward/reverse/total active + reactive) 5
Energy per phase (L1/L2/L3) 3
Resettable energy (total/forward/L1/L2/L3) 5
Daily energy (Total/L1/L2/L3) 4
Max demand (forward/reverse/total + per phase) 9

2 buttons:

  • Reset Resettable Energy → writes 0x3FFF to 0x2001
  • Reset Max Demand → writes 0xFFA5 to 0x2002

Settings:

  • update_interval: 10s
  • flow_control_pin: GPIO21
  • Force update on boot: id(orno_we529)->update()
  • Logger level: INFO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment