|
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 |