autohuttli/sph_inverter.yaml

330 lines
8.1 KiB
YAML
Raw Permalink Normal View History

number:
- platform: modbus_controller
modbus_controller_id: inverter1
id: remote_on_off
name: "Remote On/Off" # Inverter Off:0, Inverter On:1, BDC Off: 2, BDC On: 3
address: 0
register_type: holding
value_type: U_WORD
min_value: 0
max_value: 3
step: 1
icon: mdi:eye
entity_category: diagnostic
- platform: modbus_controller
modbus_controller_id: inverter1
id: max_output_power
name: "Max Output Power"
address: 3
register_type: holding
value_type: U_WORD
min_value: 0
max_value: 100
step: 1
unit_of_measurement: "%"
entity_category: config
sensor:
- platform: modbus_controller
name: "status_code"
skip_updates: $skip_updates_slow
address: 0
register_type: "read"
internal: true
accuracy_decimals: 0
id: status
- platform: modbus_controller
name: "Input Power"
address: 1
register_type: "read"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:solar-power-variant
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "PV1 voltage"
address: 3
register_type: "read"
unit_of_measurement: V
device_class: voltage
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "PV1 current"
address: 4
register_type: "read"
unit_of_measurement: A
device_class: current
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "PV1 Active power"
id: pv1_power
address: 5
register_type: "read"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "PV2 voltage"
address: 7
register_type: "read"
unit_of_measurement: V
device_class: voltage
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "PV2 current"
address: 8
register_type: "read"
unit_of_measurement: A
device_class: current
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "PV2 Active power"
id: pv2_power
address: 9
register_type: "read"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: modbus_controller
name: "Frequency"
address: 37
register_type: "read"
unit_of_measurement: Hz
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.01
- platform: modbus_controller
name: "Voltage Phase A"
address: 38
register_type: "read"
unit_of_measurement: V
device_class: voltage
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "Current Phase A"
address: 39
register_type: "read"
unit_of_measurement: A
device_class: current
state_class: measurement
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "Power Phase A"
address: 40
register_type: "read"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "Grid Active Power"
address: 35
register_type: "read"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:solar-power
value_type: U_DWORD
accuracy_decimals: 0
filters:
- multiply: 0.1
- platform: template
id: pv_power
name: "PV Active Power"
unit_of_measurement: W
device_class: power
state_class: measurement
icon: mdi:solar-power-variant
accuracy_decimals: 0
lambda: |-
return float((id(pv1_power).state + id(pv2_power).state));
- platform: modbus_controller
name: "Today's generation"
skip_updates: $skip_updates_slow
address: 53
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:solar-power
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "Lifetime generation"
skip_updates: $skip_updates_slow
address: 55
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:solar-power
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "Inverter temperature"
address: 93
register_type: "read"
unit_of_measurement: °C
device_class: temperature
state_class: measurement
entity_category: diagnostic
icon: mdi:thermometer
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
skip_updates: $skip_updates_slow
select:
- platform: modbus_controller
name: "AC charging"
icon: mdi:battery-charging-100
address: 1092
value_type: U_WORD
optionsmap:
"Disabled": 0
"Enabled": 1
skip_updates: $skip_updates_slow
- platform: modbus_controller
name: "Inverter priority"
icon: mdi:arrow-decision-outline
address: 1044
value_type: U_WORD
optionsmap:
"Load first": 0
"Battery first": 1
"Grid first": 2
skip_updates: $skip_updates_slow
text_sensor:
- platform: template
name: "Status state"
icon: mdi:eye
entity_category: diagnostic
lambda: |-
if ((id(status).state) == 1) {
return {"Normal"};
} else if ((id(status).state) == 0) {
return {"Standby"};
} else if ((id(status).state) == 2) {
return {"Discharge"};
} else if ((id(status).state) == 3) {
return {"Fault"};
} else if ((id(status).state) == 4) {
return {"Flash"};
} else if ((id(status).state) == 5) {
return {"PV Charging"};
} else if ((id(status).state) == 6) {
return {"AC Charging"};
} else if ((id(status).state) == 7) {
return {"Combined Charging"};
} else if ((id(status).state) == 8) {
return {"Combined Charging & Bypass"};
} else if ((id(status).state) == 9) {
return {"PV Charging & Bypass"};
} else if ((id(status).state) == 10) {
return {"AC Charging & Bypass"};
} else if ((id(status).state) == 11) {
return {"Bypass"};
} else if (id(status).state == 12) {
return {"PV Charge and Discharge"};
} else {
return {"Unknown"};
}
- platform: modbus_controller
name: "Fault code"
address: 105
register_type: "read"
icon: mdi:eye
entity_category: diagnostic
raw_encode: HEXBYTES
lambda: |-
uint16_t value = modbus_controller::word_from_hex_str(x, 0);
switch (value) {
case 0: return std::string("No error");
case 24: return std::string("Auto test failed");
case 25: return std::string("No AC connection");
case 26: return std::string("PV isolation low");
case 27: return std::string("Residual I high");
case 28: return std::string("Output high DCI");
case 29: return std::string("PV voltage high");
case 30: return std::string("AC voltage out of range");
case 31: return std::string("AC frequency out of range");
case 32: return std::string("Module too hot");
// case 1~23 " Error: 99+x
default: return std::string("Fault code: " + to_string(value));
}
return x;