Modbus Anenji ESP

Modbus Inverter Anenji

Pinii sunt alegerea voastra ! Puteti scoate anumiti senzori care nu va folosesc !
substitutions:
name: inv
device_description: "Monitor Anenji inverter via RS485"
esphome:
name: ${name}
friendly_name: Anenji work
comment: ${device_description}
# ESP board
esp32:
board: az-delivery-devkit-v4
framework:
type: arduino
# Enable Home Assistant API
api:
reboot_timeout: 60s
encryption:
key: "j1sQbRW1BCRnNixaf00567o+CGBaNuHE0+tCbj0="
ota:
platform: esphome
# Enable Home Assistant Mqtt
#mqtt:
# broker: !secret mqtt_broker
# username: !secret mqtt_username
# password: !secret mqtt_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "ESP_Inv_iRQ"
password: "123654"
# Enable fallback hotspot (captive portal) in case wifi connection fails
web_server:
port: 80
auth:
username: admin
password: admin
button:
- platform: restart
name: WiFi Anenji Reboot
captive_portal:
logger:
level: DEBUG
time:
- platform: sntp # Folosește NTP pentru sincronizarea orei
# UART CONFIG
uart:
id: modbus_uart
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 9600
stop_bits: 1
parity: NONE
modbus:
- id: modbus0
uart_id: modbus_uart
modbus_controller:
- id: smg0
address: 0x01
modbus_id: modbus0
command_throttle: 200ms
update_interval: 60s
# - id: chint_meter
# address: 0x02
# modbus_id: modbus0
# command_throttle: 200ms
# update_interval: 5s
sensor:
####################################################################
- platform: total_daily_energy
name: "${name} PV energy today"
restore: true
icon: mdi:counter
power_id: smg0_pv_average_power
filters:
# Multiplication factor from W to kW is 0.001
- multiply: 0.001
unit_of_measurement: kWh
# Fault code ULong 100 2 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} fault code"
address: 100
register_type: holding
value_type: U_DWORD
accuracy_decimals: 0
# Warning code ULong 108 2 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} warning code"
address: 108
register_type: holding
value_type: U_DWORD
accuracy_decimals: 0
# Operation Mode UInt 201 1 R 0: Power On
# 1: Standby
# 2: Mains
# 3: Off-Grid
# 4: Bypass
# 5: Charging
# 6: Fault
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} operation mode id"
address: 201
register_type: holding
value_type: U_WORD
accuracy_decimals: 0
# Effective mains voltage 0.1V Int 202 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} ac voltage"
address: 202
register_type: holding
value_type: S_WORD
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# Mains Frequency 0.01Hz Int 203 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} ac frequency"
address: 203
register_type: holding
value_type: S_WORD
unit_of_measurement: "Hz"
device_class: frequency
state_class: measurement
accuracy_decimals: 2
filters:
- multiply: 0.01
# Average mains power 1W Int 204 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} mains power"
address: 204
register_type: holding
value_type: S_WORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 0
# Effective inverter voltage 0.1V Int 205 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} inverter voltage"
address: 205
register_type: holding
value_type: S_WORD
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# Effective inverter current 0.1A Int 206 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} inverter current"
address: 206
register_type: holding
value_type: S_WORD
unit_of_measurement: "A"
device_class: current
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# Inverter frequency 0.01Hz Int 207 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} inverter frequency"
address: 207
register_type: holding
value_type: S_WORD
unit_of_measurement: "Hz"
device_class: frequency
state_class: measurement
accuracy_decimals: 2
filters:
- multiply: 0.01
# Average inverter power 1W Int 208 1 R Positive numbers indicate inverter output, negative numbers indicate inverter input
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} inverter power"
address: 208
register_type: holding
value_type: S_WORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 0
# Inverter charging power 1W Int 209 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} inverter charging power"
address: 209
register_type: holding
value_type: S_WORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 0
# Output effective voltage 0.1V Int 210 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} output voltage"
address: 210
register_type: holding
value_type: S_WORD
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# Output effective Current 0.1A Int 211 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} output Current"
address: 211
register_type: holding
value_type: S_WORD
unit_of_measurement: "A"
device_class: current
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# Output frequency 0.01Hz Int 212 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} output frequency"
address: 212
register_type: holding
value_type: S_WORD
unit_of_measurement: "Hz"
device_class: frequency
state_class: measurement
accuracy_decimals: 2
filters:
- multiply: 0.01
# Output active power 1W Int 213 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} output active power"
address: 213
register_type: holding
value_type: S_WORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 0
# Output apparent power 1VA Int 214 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} output apparent power"
address: 214
register_type: holding
value_type: S_WORD
unit_of_measurement: "VA"
device_class: apparent_power
state_class: measurement
accuracy_decimals: 0
# Battery average voltage 0.1V Int 215 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} battery voltage"
address: 215
register_type: holding
value_type: S_WORD
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# Battery average Current 0.1A Int 216 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} battery Current"
address: 216
register_type: holding
value_type: S_WORD
unit_of_measurement: "A"
device_class: current
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# Battery average power 1W Int 217 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} battery power"
address: 217
register_type: holding
value_type: S_WORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 0
# PV average voltage 0.1V Int 219 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} pv voltage"
address: 219
register_type: holding
value_type: S_WORD
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# PV average current 0.1A Int 220 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} pv current"
address: 220
register_type: holding
value_type: S_WORD
unit_of_measurement: "A"
device_class: current
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# PV average power 1W Int 223 1 R
- platform: modbus_controller
modbus_controller_id: smg0
id: smg0_pv_average_power
name: "${name} pv power"
address: 223
register_type: holding
value_type: S_WORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 0
# PV charging average power 1W Int 224 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} pv charging power"
address: 224
register_type: holding
value_type: S_WORD
unit_of_measurement: "W"
device_class: power
state_class: measurement
accuracy_decimals: 0
# Load percentage 1% Int 225 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} load percentage"
address: 225
register_type: holding
value_type: S_WORD
unit_of_measurement: "%"
# device_class: battery
state_class: measurement
accuracy_decimals: 0
# DCDC Temperature 1°C Int 226 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} dcdc temperature"
address: 226
register_type: holding
value_type: S_WORD
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
accuracy_decimals: 0
# Inverter Temperature 1°C Int 227 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} inverter temperature"
address: 227
register_type: holding
value_type: S_WORD
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
accuracy_decimals: 0
# Battery state of charge 1% UInt 229 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} battery state of charge"
address: 229
register_type: holding
value_type: U_WORD
unit_of_measurement: "%"
device_class: battery
state_class: measurement
accuracy_decimals: 0
# Battery average current 0.1A Int 232 1 R Positive number means charging, negative number means discharging
#- platform: modbus_controller
# modbus_controller_id: smg0
# name: "${name} battery current"
# address: 232
# register_type: holding
# value_type: S_WORD
# unit_of_measurement: "A"
# device_class: current
# state_class: measurement
# accuracy_decimals: 1
# filters:
# - multiply: 0.1
# Inverter charging average current 0.1A Int 233 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} inverter charging current"
address: 233
register_type: holding
value_type: S_WORD
unit_of_measurement: "A"
device_class: current
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
# PV charging average current 0.1A Int 234 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} pv charging current"
address: 234
register_type: holding
value_type: S_WORD
unit_of_measurement: "A"
device_class: current
state_class: measurement
accuracy_decimals: 1
filters:
- multiply: 0.1
######## REMOVED ##########
# Rated power W Uint 643 1 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} rated power"
address: 643
register_type: holding
value_type: U_WORD
unit_of_measurement: "W"
device_class: power
# state_class: measurement
accuracy_decimals: 0
select:
# Output Mode Uint 300 1 R/W 0: Single, 1: Parallel, 2: 3 Phase-P1, 3: 3 Phase-P2, 4: 3 Phase-P3
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} output mode"
use_write_multiple: true
address: 300
value_type: U_WORD
optionsmap:
"Single": 0
"Parallel": 1
"Phase P1": 2
"Phase P2": 3
"Phase P3": 4
# Output priority Uint 301 1 R/W 0: Utility-PV-Battery, 1: PV-Utility-Battery, 2: PV-Battery-Utility
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} output priority"
use_write_multiple: true
address: 301
value_type: U_WORD
optionsmap:
"Utility-PV-Battery (UTI)": 0
"PV-Utility-Battery (SOL)": 1
"PV-Battery-Utility (SBU)": 2
"PV-Utility-Battery (SUB)": 3
# Input voltage range Uint 302 1 R/W 0: Wide range, 1: Narrow range
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} input voltage range"
use_write_multiple: true
address: 302
value_type: U_WORD
optionsmap:
"Wide range": 0
"Narrow range": 1
# Buzzer mode Uint 303 1 R/W 0: Mute in all situations, 1: Sound when the input source is changed or there is a specific warning or fault, 2: Sound when there is aspecific warning or fault, 3: Sound when fault occurs
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} buzzer mode"
use_write_multiple: true
address: 303
value_type: U_WORD
optionsmap:
"Silent": 0
"Beep on input source changes, warnings and faults": 1
"Beep on warnings and faults": 2
"Beep on faults": 3
# LCD backlight Uint 305 1 R/W 0: Timed off, 1: Always on
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} lcd backlight"
use_write_multiple: true
address: 305
value_type: U_WORD
optionsmap:
"Timed off": 0
"Always on": 1
# Battery charging priority Uint 331 1 R/W 0: Utility priority, 1: PV priority, 2: PV is at the same level as the Utility, 3: Only PV charging is allowed
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} battery charging priority"
use_write_multiple: true
address: 331
value_type: U_WORD
optionsmap:
"Utility priority": 0
"PV priority": 1
"PV is at the same level as the Utility": 2
"Only PV charging is allowed": 3
# Turn on mode Uint 406 1 R/W 0: Can be turn-on locally or remotely, 1: Only local turn-on, 2: Only remote turn-on
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} turn on mode"
use_write_multiple: true
address: 406
value_type: U_WORD
optionsmap:
"Local and remotely turn-on allowed": 0
"Local turn-on only": 1
"Remote turn-on only": 2
switch:
# LCD automatically returns to the homepage Uint 306 1 R/W 0: Do not return automatically, 1: Automatically return after 1 minute
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} lcd automatically returns to the homepage"
use_write_multiple: true
address: 306
register_type: holding
bitmask: 1
# Energy-saving mode Uint 307 1 R/W 0: Energy-saving mode is off, 1: Energy-saving mode is on
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} energy-saving mode"
use_write_multiple: true
address: 307
register_type: holding
bitmask: 1
# Overload automatic restart Uint 308 1 R/W 0: Overload failure will not restart, 1: Automatic restart after overload failure
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} overload automatic restart"
use_write_multiple: true
address: 308
register_type: holding
bitmask: 1
# Over temperature automatic restart Uint 309 1 R/W 0: Over temperature failure will not restart, 1: Automatic restart after over-temperature fault
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} over temperature automatic restart"
use_write_multiple: true
address: 309
register_type: holding
bitmask: 1
# Overload transfer to bypass enabled Uint 310 1 R/W 0: Disable, 1: Enable
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} overload transfer to bypass enabled"
use_write_multiple: true
address: 310
register_type: holding
bitmask: 1
# Battery Eq mode is enabled Uint 313 1 R/W 0: Disable, 1: Enable
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} battery Eq mode is enabled"
use_write_multiple: true
address: 313
register_type: holding
bitmask: 1
# Remote switch Uint 420 1 R/W 0: Remote shutdown, 1: Remote turn-on
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} remote switch"
use_write_multiple: true
address: 420
register_type: holding
bitmask: 1
text_sensor:
# Fault code ULong 100 2 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} fault"
address: 100
register_type: holding
register_count: 2
response_size: 4
raw_encode: HEXBYTES
lambda: |-
static const uint8_t FAULTS_SIZE = 27;
static const char *const FAULTS[FAULTS_SIZE] = {
"Over temperature of inverter module", // 0000 0000 0000 0000 0000 0000 0000 0001 (1)
"Over temperature of DCDC module", // 0000 0000 0000 0000 0000 0000 0000 0010 (2)
"Battery over voltage", // 0000 0000 0000 0000 0000 0000 0000 0100 (3)
"PV module over temperature", // 0000 0000 0000 0000 0000 0000 0000 1000 (4)
"Output short circuit", // 0000 0000 0000 0000 0000 0000 0001 0000 (5)
"Inverter over voltage", // 0000 0000 0000 0000 0000 0000 0010 0000 (6)
"Output over load", // 0000 0000 0000 0000 0000 0000 0100 0000 (7)
"Bus over voltage", // 0000 0000 0000 0000 0000 0000 1000 0000 (8)
"Bus soft start timed out", // 0000 0000 0000 0000 0000 0001 0000 0000 (9)
"PV over current", // 0000 0000 0000 0000 0000 0010 0000 0000 (10)
"PV over voltage", // 0000 0000 0000 0000 0000 0100 0000 0000 (11)
"Battery over current", // 0000 0000 0000 0000 0000 1000 0000 0000 (12)
"Inverter over current", // 0000 0000 0000 0000 0001 0000 0000 0000 (13)
"Bus low voltage", // 0000 0000 0000 0000 0010 0000 0000 0000 (14)
"Reserve (Bit 15)", // 0000 0000 0000 0000 0100 0000 0000 0000 (15)
"Inverter DC component is too high", // 0000 0000 0000 0000 1000 0000 0000 0000 (16)
"Reserve (Bit 17)", // 0000 0000 0000 0001 0000 0000 0000 0000 (17)
"The zero bias of output current is too large", // 0000 0000 0000 0010 0000 0000 0000 0000 (18)
"The zero bias of inverter current is too large", // 0000 0000 0000 0100 0000 0000 0000 0000 (19)
"The zero bias of battery current is too large", // 0000 0000 0000 1000 0000 0000 0000 0000 (20)
"The zero bias of PV current is too large", // 0000 0000 0001 0000 0000 0000 0000 0000 (21)
"Inverter low voltage", // 0000 0000 0010 0000 0000 0000 0000 0000 (22)
"Inverter negative power protection", // 0000 0000 0100 0000 0000 0000 0000 0000 (23)
"The host in the parallel system is lost", // 0000 0000 1000 0000 0000 0000 0000 0000 (24)
"Synchronization signal abnormal in the parallel system", // 0000 0001 0000 0000 0000 0000 0000 0000 (25)
"The battery type is incompatible", // 0000 0010 0000 0000 0000 0000 0000 0000 (26)
"Parallel versions are incompatible", // 0000 0100 0000 0000 0000 0000 0000 0000 (27)
};
std::string values = "";
uint32_t mask = modbus_controller::dword_from_hex_str(x, 0);
if (mask) {
for (int i = 0; i < FAULTS_SIZE; i++) {
if (mask & (1 << i)) {
values.append(FAULTS[i]);
values.append(";");
}
}
if (!values.empty()) {
values.pop_back();
}
}
return values;
# Warning code ULong 108 2 R
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} warning"
address: 108
register_type: holding
register_count: 2
response_size: 4
raw_encode: HEXBYTES
lambda: |-
static const uint8_t WARNINGS_SIZE = 19;
static const char *const WARNINGS[WARNINGS_SIZE] = {
"(R)", // 0000 0000 0000 0000 0000 0000 0000 0001 (1)
"Mains waveform abnormal", // 0000 0000 0000 0000 0000 0000 0000 0010 (2)
"Reserve (Bit 2)", // 0000 0000 0000 0000 0000 0000 0000 0100 (3)
"Grid low volt", // 0000 0000 0000 0000 0000 0000 0000 1000 (4)
"Grid over freq", // 0000 0000 0000 0000 0000 0000 0001 0000 (5)
"Grid low freq", // 0000 0000 0000 0000 0000 0000 0010 0000 (6)
"PV low volt", // 0000 0000 0000 0000 0000 0000 0100 0000 (7)
"Over temp", // 0000 0000 0000 0000 0000 0000 1000 0000 (8)
"Battery low volt", // 0000 0000 0000 0000 0000 0001 0000 0000 (9)
"Battery is not connected", // 0000 0000 0000 0000 0000 0010 0000 0000 (10)
"Overload", // 0000 0000 0000 0000 0000 0100 0000 0000 (11)
"Battery Eq charg", // 0000 0000 0000 0000 0000 1000 0000 0000 (12)
"Battery undervolt", // 0000 0000 0000 0000 0001 0000 0000 0000 (13)
"Output power derating", // 0000 0000 0000 0000 0010 0000 0000 0000 (14)
"Fan blocked", // 0000 0000 0000 0000 0100 0000 0000 0000 (15)
"PV energy is too low to use", // 0000 0000 0000 0000 1000 0000 0000 0000 (16)
"Parallel communication interrupted", // 0000 0000 0000 0001 0000 0000 0000 0000 (17)
"Output mode of Single and Parallel systems inconsistent", // 0000 0000 0000 0010 0000 0000 0000 0000 (18)
"Battery voltage difference of parallel system is too large", // 0000 0000 0000 0100 0000 0000 0000 0000 (19)
};
std::string values = "";
uint32_t mask = modbus_controller::dword_from_hex_str(x, 0);
if (mask) {
for (int i = 0; i < WARNINGS_SIZE; i++) {
if (mask & (1 << i)) {
values.append(WARNINGS[i]);
values.append(";");
}
}
if (!values.empty()) {
values.pop_back();
}
}
return values;
# Operation Mode UInt 201 1 R 0: Power On, 1: Standby, 2: Mains, 3: Off-Grid, 4: Bypass, 5: Charging, 6: Fault
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} operation mode"
address: 201
register_type: holding
raw_encode: HEXBYTES
lambda: |-
uint16_t value = modbus_controller::word_from_hex_str(x, 0);
switch (value) {
case 0: return std::string("Power On");
case 1: return std::string("Standby");
case 2: return std::string("Mains");
case 3: return std::string("Off-Grid");
case 4: return std::string("Bypass");
case 5: return std::string("Charging");
case 6: return std::string("Fault");
}
return std::string("Unknown");
number:
# Output voltage 0.1V Uint 320 1 R/W
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} output voltage"
use_write_multiple: true
address: 320
register_type: holding
value_type: U_WORD
min_value: 0.0
# max_value: 100.0
step: 0.1
unit_of_measurement: "V"
lambda: "return x * 0.1f;"
write_lambda: |-
return x * 10.0f;
# Output frequency setting 0.01Hz Uint 321 1 R/W
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} output frequency setting"
use_write_multiple: true
address: 321
register_type: holding
value_type: U_WORD
min_value: 0.0
# max_value: 100.0
step: 0.01
unit_of_measurement: "Hz"
lambda: "return x * 0.01f;"
write_lambda: |-
return x * 100.0f;
# Battery overvoltage protection point 0.1V Uint 323 1 R/W
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} battery overvoltage protection point"
use_write_multiple: true
address: 323
register_type: holding
value_type: U_WORD
min_value: 0.0
# max_value: 100.0
step: 0.1
unit_of_measurement: "V"
lambda: "return x * 0.1f;"
write_lambda: |-
return x * 10.0f;
# Max charging voltage 0.1V Uint 324 1 R/W
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} max charging voltage"
use_write_multiple: true
address: 324
register_type: holding
value_type: U_WORD
min_value: 0.0
max_value: 100.0
step: 0.1
unit_of_measurement: "V"
lambda: "return x * 0.1f;"
write_lambda: |-
return x * 10.0f;
# Floating charging voltage 0.1V Uint 325 1 R/W
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} floating charging voltage"
use_write_multiple: true
address: 325
register_type: holding
value_type: U_WORD
min_value: 0.0
# max_value: 100.0
step: 0.1
unit_of_measurement: "V"
lambda: "return x * 0.1f;"
write_lambda: |-
return x * 10.0f;
# Battery discharge recovery point in mains mode 0.1V Uint 326 1 R/W
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} battery discharge recovery point in mains mode"
use_write_multiple: true
address: 326
register_type: holding
value_type: U_WORD
min_value: 0.0
# max_value: 100.0
step: 0.1
unit_of_measurement: "V"
lambda: "return x * 0.1f;"
write_lambda: |-
return x * 10.0f;
# Battery low voltage protection point in mains mode 0.1V Uint 327 1 R/W
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} battery low voltage protection point in mains mode"
use_write_multiple: true
address: 327
register_type: holding
value_type: U_WORD
min_value: 0.0
# max_value: 100.0
step: 0.1
unit_of_measurement: "V"
lambda: "return x * 0.1f;"
write_lambda: |-
return x * 10.0f;
# Battery low voltage protection point in off-grid mode 0.1V Uint 329 1 R/W
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} battery low voltage protection point in off-grid mode"
use_write_multiple: true
address: 329
register_type: holding
value_type: U_WORD
min_value: 0.0
# max_value: 100.0
step: 0.1
unit_of_measurement: "V"
lambda: "return x * 0.1f;"
write_lambda: |-
return x * 10.0f;
# Maximum charging current 0.1A Uint 332 1 R/W
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} maximum charging current"
use_write_multiple: true
address: 332
register_type: holding
value_type: U_WORD
min_value: 0.0
max_value: 100.0
step: 0.1
unit_of_measurement: "A"
lambda: "return x * 0.1f;"
write_lambda: |-
return x * 10.0f;
# Maximum mains charging current 0.1A Uint 333 1 R/W
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} maximum mains charging current"
use_write_multiple: true
address: 333
register_type: holding
value_type: U_WORD
min_value: 0.0
max_value: 100.0
step: 0.1
unit_of_measurement: "A"
lambda: "return x * 0.1f;"
write_lambda: |-
return x * 10.0f;
# Eq Charging voltage 0.1V Uint 334 1 R/W
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} Eq Charging voltage"
use_write_multiple: true
address: 334
register_type: holding
value_type: U_WORD
min_value: 0.0
max_value: 100.0
step: 0.1
unit_of_measurement: "V"
lambda: "return x * 0.1f;"
write_lambda: |-
return x * 10.0f;
# Battery equalization time min Uint 335 1 R/W Range: 0~900
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} battery equalization time"
use_write_multiple: true
address: 335
register_type: holding
value_type: U_WORD
min_value: 0.0
max_value: 900.0
step: 1
unit_of_measurement: "min"
# Equalization Timeout exit min Uint 336 1 R/W Range: 0~900
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} equalization Timeout exit"
use_write_multiple: true
address: 336
register_type: holding
value_type: U_WORD
min_value: 0.0
max_value: 900.0
step: 1
unit_of_measurement: "min"
# Two equalization charging intervals day Uint 337 1 R/W Range: 1~90
- platform: modbus_controller
modbus_controller_id: smg0
name: "${name} two equalization charging intervals"
use_write_multiple: true
address: 337
register_type: holding
value_type: U_WORD
min_value: 0.0
max_value: 90.0
step: 1
unit_of_measurement: "day"
0 comentarii