configs/sthome-ut2.yaml

407 lines
10 KiB
YAML

packages:
- !include common/wifi.yaml
- !include common/felicityinverter.yaml
substitutions:
name: sthome-ut2
friendly_name: "sthome-ut2"
esphome:
name: "${name}"
friendly_name: "${friendly_name}"
external_components:
- source: github://pr#8103
components: [uart]
- source: github://pr#8032
components: [modbus, modbus_controller, growatt_solar]
refresh: 1h
esp32:
board: esp32dev
framework:
type: esp-idf
# Enable logging
logger:
level: VERY_VERBOSE
initial_level: INFO
logs:
uart: VERY_VERBOSE
modbus: DEBUG
modbus_controller: DEBUG
# Enable Home Assistant API
api:
encryption:
key: "o+fgr4qh0rTegCxXE3jbfJ/0si8+W9wxgnnYX9Xucqw="
ota:
- platform: esphome
password: "cb8a82d04c2f4dcf9bd273f903c7c378"
wifi:
manual_ip:
static_ip: 10.0.2.2
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "${name} Fallback Hotspot"
password: "geuZrJgQo7cg"
captive_portal:
uart:
- id: inv_uart1
rx_pin: GPIO16
tx_pin: GPIO17
baud_rate: 2400
stop_bits: 1
parity: NONE
debug:
direction: BOTH
dummy_receiver: false
after:
delimiter: "\r"
sequence:
- lambda: UARTDebug::log_hex(direction, bytes, ',');
sun:
id: sun_sensor
latitude: !secret latitude
longitude: !secret longitude
time:
- platform: homeassistant
id: time_source
switch:
- platform: restart
name: "${name} Restart"
id: "restart_switch"
modbus:
- id: modbus1
uart_id: inv_uart1
flow_control_pin: GPIO4
send_wait_time: 1000ms #250ms
disable_crc: false
role: server
modbus_controller:
- id: modbus_device1
modbus_id: modbus1
address: 0x1
allow_duplicate_commands: False
command_throttle: 0ms
update_interval: 4s #30s
offline_skip_updates: 2
max_cmd_retries: 04
setup_priority: -10
server_registers:
- address: ${Felicity_Inv_WorkingMode} # 0x1101
value_type: U_WORD
read_lambda: |-
return 0x0001;
- address: ${Felicity_Inv_BatteryChargingStage} # 0x1102
value_type: U_WORD
read_lambda: |-
return 0x0002;
- address: ${Felicity_Inv_FaultCode} # 0x1103
value_type: U_WORD
read_lambda: |-
return 0x0003;
- address: ${Felicity_Inv_PowerFlowMsg} # 0x1104
value_type: U_DWORD_R
read_lambda: |-
return 0x0004;
- address: 0x1106
value_type: U_DWORD_R
read_lambda: |-
return 0;
- address: ${Felicity_Inv_BatteryVoltage} # 0x1108
value_type: U_WORD
read_lambda: |-
return 0x0005;
- address: ${Felicity_Inv_BatteryCurrent} # 0x1109
value_type: U_WORD
read_lambda: |-
return 0x0006;
- address: ${Felicity_Inv_BatteryPower} # 0x110A
value_type: U_DWORD_R
read_lambda: |-
return 0x0007;
- address: 0x110C
value_type: U_QWORD_R
read_lambda: |-
return 0;
- address: 0x1110
value_type: U_WORD
read_lambda: |-
return 0;
- address: ${Felicity_Inv_ACOutputVoltage} # 0x1111
value_type: U_QWORD_R
read_lambda: |-
return 0x0008;
- address: 0x1115
value_type: U_DWORD_R
read_lambda: |-
return 0;
- address: ${Felicity_Inv_ACInputVoltage} # 0x1117
value_type: U_DWORD_R
read_lambda: |-
return 0x0009;
- address: ${Felicity_Inv_ACInputFrequency} # 0x1119
value_type: U_QWORD_R
read_lambda: |-
return 0x000A;
- address: 0x111D
value_type: U_WORD
read_lambda: |-
return 0;
- address: ${Felicity_Inv_ACOutputActivePower} # 0x111E
value_type: U_WORD
read_lambda: |-
return 0x000B;
- address: ${Felicity_Inv_ACOutputApparentPower} # 0x111F
value_type: U_WORD
read_lambda: |-
return 0x000C;
- address: ${Felicity_Inv_LoadPercentage} # 0x1120
value_type: U_QWORD_R
read_lambda: |-
return 0x000D;
- address: 0x1124
value_type: U_DWORD_R
read_lambda: |-
return 0;
- address: ${Felicity_Inv_PVInputVoltage} # 0x1126
value_type: U_QWORD_R
read_lambda: |-
return 0x000E;
- address: ${Felicity_Inv_PVInputPower} # 0x112A
value_type: U_WORD
read_lambda: |-
return 0x0010;
- address: 0x112C
value_type: U_WORD
read_lambda: |-
return 0;
- address: 0xF800
value_type: S_DWORD_R
read_lambda: |-
return 0x400D;
- address: 0xF802
value_type: S_DWORD_R
read_lambda: |-
return 0x500E;
- address: 0xF804
value_type: S_DWORD_R
read_lambda: |-
return 0x4142;
- address: 0xF806
value_type: S_DWORD_R
read_lambda: |-
return 0x4344;
- address: 0xF808
value_type: S_DWORD_R
read_lambda: |-
return 0x4546;
- address: 0xF80A
value_type: S_DWORD_R
read_lambda: |-
return 0x4748;
- address: 0xF80C
value_type: S_DWORD_R
read_lambda: |-
return 0x494A;
- address: 0xF80E
value_type: S_DWORD_R
read_lambda: |-
return 0x4B4C;
- address: 0xF810
value_type: S_DWORD_R
read_lambda: |-
return 0;
#modbus:
# - id: modbus1
# uart_id: inv_uart1
# flow_control_pin: GPIO4
# send_wait_time: 1000ms #250ms
# disable_crc: false
# role: client
#
#modbus_controller:
# - id: modbus_device1
# modbus_id: modbus1
# address: 0x01
# allow_duplicate_commands: False
# command_throttle: 0ms
# update_interval: 4s #30s
# offline_skip_updates: 2
# max_cmd_retries: 0
# setup_priority: -10
#
#sensor:
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 Type"
# register_type: holding
# address: ${Felicity_Inv_Type} # 0xF800
# value_type: U_DWORD
# register_count: 1
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 Sub Type"
# register_type: holding
# address: ${Felicity_Inv_SubType} # 0xF801
# value_type: U_DWORD
# register_count: 3
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 CPU1 F/W Version"
# register_type: holding
# address: ${Felicity_Inv_CPU1_FW_Version} # 0xF80B
# value_type: U_DWORD
# register_count: 1
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 CPU2 F/W Version"
# register_type: holding
# address: ${Felicity_Inv_CPU2_FW_Version} # 0xF80C
# value_type: U_DWORD
# register_count: 3
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 Working Mode"
# register_type: holding
# address: ${Felicity_Inv_WorkingMode} # 0x1101
# value_type: U_WORD
# register_count: 1
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 Charge Mode"
# register_type: holding
# address: ${Felicity_Inv_BatteryChargingStage} # 0x1102
# value_type: U_WORD
# register_count: 1
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 Fault Code"
# register_type: holding
# address: ${Felicity_Inv_FaultCode} # 0x1103
# value_type: U_WORD
# register_count: 1
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 Power Flow"
# register_type: holding
# address: ${Felicity_Inv_PowerFlowMsg} # 0x1104
# value_type: U_WORD
# register_count: 4
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 Battery Voltage"
# register_type: holding
# address: ${Felicity_Inv_BatteryVoltage} # 0x1108
# value_type: U_WORD
# register_count: 1
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 Battery Current"
# register_type: holding
# address: ${Felicity_Inv_BatteryCurrent} # 0x1109
# value_type: U_WORD
# register_count: 1
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 BatteryPower"
# register_type: holding
# address: ${Felicity_Inv_BatteryPower} # 0x110A
# value_type: U_WORD
# register_count: 7
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 AC Output Voltage"
# register_type: holding
# address: ${Felicity_Inv_ACOutputVoltage} # 0x1111
# value_type: U_WORD
# register_count: 6
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 AC Input Voltage"
# register_type: holding
# address: ${Felicity_Inv_ACInputVoltage} # 0x1117
# value_type: U_WORD
# register_count: 2
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 AC Input Frequency"
# register_type: holding
# address: ${Felicity_Inv_ACInputFrequency} # 0x1119
# value_type: U_WORD
# register_count: 5
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 AC Output Active Power"
# register_type: holding
# address: ${Felicity_Inv_ACOutputActivePower} # 0x111E
# value_type: U_WORD
# register_count: 1
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 AC Output Apparent Power"
# register_type: holding
# address: ${Felicity_Inv_ACOutputApparentPower} # 0x111F
# value_type: U_WORD
# register_count: 1
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 Load Percentage"
# register_type: holding
# address: ${Felicity_Inv_LoadPercentage} # 0x1120
# value_type: U_WORD
# register_count: 6
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 PV Input Voltage"
# register_type: holding
# address: ${Felicity_Inv_PVInputVoltage} # 0x1126
# value_type: U_WORD
# register_count: 4
#
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 PV Input Power"
# register_type: holding
# address: ${Felicity_Inv_PVInputPower} # 0x112A
# value_type: U_WORD
# register_count: 1
#
#text_sensor:
#- platform: modbus_controller
# modbus_controller_id: modbus_device1
# name: "Inverter1 SerialNo"
# register_type: holding
# address: ${Felicity_Inv_SerialNo} # 0xF804
# response_size: 14
# register_count: 7
# raw_encode: HEXBYTES
#