DyArt schreef op maandag 13 juli 2026 @ 09:23:
[...]
Mijn configuratie voor ESPHome met mijn Growatt omvormer, ik had ook problemen met spikes en heb filters toegevoegd.
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
| esphome:
name: growatt
friendly_name: "Growatt omvormer"
substitutions:
esp_name: Growattmodbus
esp8266:
board: d1_mini
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "**********"
ota:
platform: esphome
password: "*********"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
min_auth_mode: WPA2
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Growatt Fallback Hotspot"
password: "**********"
captive_portal:
time:
- platform: homeassistant
id: homeassistant_time
uart:
- id: uart_0
baud_rate: 9600
tx_pin: D1
rx_pin: D2
# stop_bits: 1
modbus:
uart_id: uart_0
modbus_controller:
- id: modbus_gw4200
web_server:
port: 80
sensor:
- platform: wifi_signal
name: "${esp_name} - ESP WiFi Signal"
update_interval: 60s
- platform: uptime
name: "${esp_name} - ESP Uptime"
icon: mdi:clock-outline
update_interval: 60s
# sensor returning the currently set limit read from the register for showing it in HA
- platform: modbus_controller
modbus_controller_id: modbus_gw4200
name: "Limit %"
id: gw4200_limit_set
register_type: holding
address: 3
unit_of_measurement: "%"
value_type: U_WORD
- platform: growatt_solar
update_interval: 3s
protocol_version: RTU2
inverter_status:
name: "${esp_name} - Status Code"
id: inverter_status
phase_a:
voltage:
name: "${esp_name} - AC Voltage"
current:
name: "${esp_name} - AC Current"
active_power:
name: "${esp_name} - AC Power"
filters:
- filter_out: NaN
pv1:
voltage:
name: "${esp_name} - PV1 Voltage"
current:
name: "${esp_name} - PV1 Current"
active_power:
name: "${esp_name} - PV1 Power"
pv2:
voltage:
name: "${esp_name} - PV2 Voltage"
current:
name: "${esp_name} - PV2 Current"
active_power:
name: "${esp_name} - PV2 Power"
active_power:
state_class: "measurement"
name: "${esp_name} - Output Power"
filters:
- lambda: |-
if (x <= 5500 && x >= 0) return x;
else return 0;
pv_active_power:
name: "${esp_name} - Input Power"
frequency:
name: "${esp_name} - Grid Frequency"
energy_production_day:
name: "${esp_name} - Today Gen"
id: todaygen
filters:
- lambda: |-
if (x >= 0) return x;
else return 0;
total_energy_production:
name: "${esp_name} - Total Gen"
accuracy_decimals: 1
inverter_module_temp:
name: "${esp_name} - Temperature"
switch:
- platform: restart
name: "${esp_name} - ESP Restart"
text_sensor:
- platform: wifi_info
ip_address:
name: "${esp_name} IP Address"
ssid:
name: "${esp_name} Connected SSID"
bssid:
name: "${esp_name} Connected BSSID"
mac_address:
name: "${esp_name} Mac Wifi Address"
- platform: version
name: "${esp_name} - ESPHome Version"
number:
- platform: modbus_controller
modbus_controller_id: modbus_gw4200
#
# creating a number entity and it's corresponding slider in HA
# and writes it to the register on change
#
name: GW4200 Limit
id: gw4200_limit
address: 3
register_type: holding
value_type: U_WORD
min_value: 10
max_value: 100
step: 1 |
Wellicht even aangeven wát je hebt toegevoegd? Want je dumpt nu een volledige YAML.
Wat me in ieder geval opvalt is dat je een aantal keren een lambda filter toepast die rucksichloss bij "foute" waardes 0 er van maakt. Dat is naar mijn idee sowieso fout. Foute waarden wil je negeren, niet iets anders willekeurigs van maken. De oplossing van @
u_nix_we_all lijkt mij dan ook beter (puur de YAML lezende, ik kende de clamp filter nog niet, wel het concept clamping en de twee keys er onder zullen voor zich spreken incl dan "als out of range gebruik de oude, geldige, waarde i.p.v. de hoogst toegestane"