330 lines
8.1 KiB
YAML
330 lines
8.1 KiB
YAML
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;
|