Naposledy aktivní 1 month ago

KWS-306F Esphome profile

smartmeter.yml Raw
1substitutions:
2 device: smartmetervz55
3 friendly_name: "Medidor VZ55"
4
5esphome:
6 name: smartmetervz55
7 friendly_name: ${friendly_name}
8 on_boot:
9 priority: 800.0
10 then:
11 - switch.turn_on: global_power_switch
12 - delay: 2s
13 - switch.turn_on: refresh
14
15bk72xx:
16 board: cbu
17
18# Enable logging
19logger:
20 level: INFO
21 baud_rate: 0
22
23uart:
24 tx_pin: P11
25 rx_pin: P10
26 baud_rate: 9600
27
28<<: !include network.yaml
29
30time:
31 - platform: sntp
32 id: sntp_time
33 timezone: America/Sao_Paulo
34 servers:
35 - a.st1.ntp.br
36 - a.ntp.br
37 - gps.ntp.br
38 on_time_sync:
39 then:
40 - logger.log: "Synchronized sntp clock"
41 - platform: homeassistant
42 id: homeassistant_time
43
44tuya:
45 time_id: sntp_time
46
47button:
48 - platform: restart
49 name: ${friendly_name} Restart
50
51# Force refresh otherwise the RISC-V onboard doesnt let us know up to date data
52interval:
53 - interval: 10s
54 startup_delay: 30s
55 then:
56 - switch.turn_off: refresh
57 - delay: 100ms
58 - switch.turn_on: refresh
59 - delay: 100ms
60 - switch.turn_off: refresh
61 - delay: 100ms
62 - switch.turn_on: refresh
63
64switch:
65 - platform: "tuya"
66 name: ${friendly_name} Power Switch
67 id: global_power_switch
68 switch_datapoint: 16
69
70 - platform: tuya
71 name: ${friendly_name} Clear runtime
72 switch_datapoint: 119
73
74 - platform: tuya
75 name: ${friendly_name} Clear energy
76 switch_datapoint: 120
77
78 - platform: "tuya"
79 name: ${friendly_name} Refresh
80 id: refresh
81 switch_datapoint: 134
82
83sensor:
84 - platform: tuya
85 name: ${friendly_name} Runtime
86 id: runtime
87 sensor_datapoint: 106
88 unit_of_measurement: "min"
89 accuracy_decimals: 0
90
91 - platform: tuya
92 name: ${friendly_name} Network Frequency
93 id: network_frequency
94 sensor_datapoint: 107
95 unit_of_measurement: "Hz"
96 accuracy_decimals: 2
97
98 - platform: tuya
99 name: ${friendly_name} Temperature
100 id: temperature
101 sensor_datapoint: 108
102 unit_of_measurement: "°C"
103 accuracy_decimals: 1
104
105 - platform: tuya
106 name: ${friendly_name} Voltage A
107 id: voltage_a
108 sensor_datapoint: 125
109 unit_of_measurement: "V"
110 device_class: voltage
111 accuracy_decimals: 2
112 filters:
113 - lambda: |-
114 return x * 0.01;
115
116 # Current A (DP 126 scale 1000)
117 - platform: tuya
118 name: ${friendly_name} Current A
119 id: current_a
120 sensor_datapoint: 126
121 unit_of_measurement: "A"
122 device_class: current
123 accuracy_decimals: 3
124 filters:
125 - lambda: |-
126 return x * 0.001;
127
128 # Power A (DP 127) unit W
129 - platform: tuya
130 name: ${friendly_name} Power A
131 id: power_a
132 sensor_datapoint: 127
133 unit_of_measurement: "W"
134 accuracy_decimals: 0
135
136 # Voltage B (DP 128 scale 100)
137 - platform: tuya
138 name: ${friendly_name} Voltage B
139 id: voltage_b
140 sensor_datapoint: 128
141 unit_of_measurement: "V"
142 device_class: voltage
143 accuracy_decimals: 2
144 filters:
145 - lambda: |-
146 return x * 0.01;
147
148 # Current B (DP 129 scale 1000)
149 - platform: tuya
150 name: ${friendly_name} Current B
151 id: current_b
152 sensor_datapoint: 129
153 unit_of_measurement: "A"
154 device_class: current
155 accuracy_decimals: 3
156 filters:
157 - lambda: |-
158 return x * 0.001;
159
160 # Power B (DP 130) W
161 - platform: tuya
162 name: ${friendly_name} Power B
163 id: power_b
164 sensor_datapoint: 130
165 unit_of_measurement: "W"
166 accuracy_decimals: 0
167
168 # Voltage C (DP 131 scale 100)
169 - platform: tuya
170 name: ${friendly_name} Voltage C
171 id: voltage_c
172 sensor_datapoint: 131
173 unit_of_measurement: "V"
174 device_class: voltage
175 accuracy_decimals: 2
176 filters:
177 - lambda: |-
178 return x * 0.01;
179
180 # Current C (DP 132 scale 1000)
181 - platform: tuya
182 name: ${friendly_name} Current C
183 id: current_c
184 sensor_datapoint: 132
185 unit_of_measurement: "A"
186 device_class: current
187 accuracy_decimals: 3
188 filters:
189 - lambda: |-
190 return x * 0.001;
191
192 # Power C (DP 133) W
193 - platform: tuya
194 name: ${friendly_name} Power C
195 id: power_c
196 sensor_datapoint: 133
197 unit_of_measurement: "W"
198 accuracy_decimals: 0
199
200 # Main device energy (DP 136, scale: 100 -> divide by 100)
201 - platform: tuya
202 name: ${friendly_name} Energy meter Energy
203 id: energy_meter_energy
204 sensor_datapoint: 136
205 unit_of_measurement: "kWh"
206 device_class: energy
207 state_class: total_increasing
208 accuracy_decimals: 2
209 filters:
210 - lambda: |-
211 return x * 0.01;
212
213 # Power (DP 135), unit W
214 - platform: tuya
215 name: ${friendly_name} Energy meter Power
216 id: energy_meter_power
217 sensor_datapoint: 135
218 unit_of_measurement: "W"
219 accuracy_decimals: 0
220
221 # Energy consumed A (DP 137, scale 100)
222 - platform: tuya
223 name: ${friendly_name} Energy consumed A
224 id: energy_consumed_a
225 sensor_datapoint: 137
226 unit_of_measurement: "kWh"
227 device_class: energy
228 state_class: total_increasing
229 accuracy_decimals: 2
230 filters:
231 - lambda: |-
232 return x * 0.01;
233
234 # Energy consumed B (DP 138, scale 100)
235 - platform: tuya
236 name: ${friendly_name} Energy consumed B
237 id: energy_consumed_b
238 sensor_datapoint: 138
239 unit_of_measurement: "kWh"
240 device_class: energy
241 state_class: total_increasing
242 accuracy_decimals: 2
243 filters:
244 - lambda: |-
245 return x * 0.01;
246
247 # Energy consumed C (DP 139, scale 100)
248 - platform: tuya
249 name: ${friendly_name} Energy consumed C
250 id: energy_consumed_c
251 sensor_datapoint: 139
252 unit_of_measurement: "kWh"
253 device_class: energy
254 state_class: total_increasing
255 accuracy_decimals: 2
256 filters:
257 - lambda: |-
258 return x * 0.01;
259
260 # PF
261 # Power factor (diagnostic DP 101 scale 100)
262 - platform: tuya
263 name: ${friendly_name} Power factor (overall)
264 id: power_factor_all
265 sensor_datapoint: 101
266 unit_of_measurement: "PF"
267 accuracy_decimals: 2
268 filters:
269 - lambda: |-
270 return x * 0.01;
271
272 # Power factor A (DP 124 scale 100)
273 - platform: tuya
274 name: ${friendly_name} Power factor A
275 id: power_factor_a
276 sensor_datapoint: 124
277 unit_of_measurement: "PF"
278 accuracy_decimals: 2
279 filters:
280 - lambda: |-
281 return x * 0.01;
282
283 # Power factor B (DP 103 scale 100)
284 - platform: tuya
285 name: ${friendly_name} Power factor B
286 id: power_factor_b
287 sensor_datapoint: 103
288 unit_of_measurement: "PF"
289 accuracy_decimals: 2
290 filters:
291 - lambda: |-
292 return x * 0.01;
293
294 # Power factor C (DP 122 scale 100)
295 - platform: tuya
296 name: ${friendly_name} Power factor C
297 id: power_factor_c
298 sensor_datapoint: 122
299 unit_of_measurement: "PF"
300 accuracy_decimals: 2
301 filters:
302 - lambda: |-
303 return x * 0.01;
304
305 # Total energy A (DP 102 scale 100)
306 - platform: tuya
307 name: ${friendly_name} Total energy A
308 id: total_energy_a
309 sensor_datapoint: 102
310 unit_of_measurement: "kWh"
311 device_class: energy
312 state_class: total_increasing
313 accuracy_decimals: 2
314 filters:
315 - lambda: |-
316 return x * 0.01;
317
318 # Total energy B (DP 104 scale 100)
319 - platform: tuya
320 name: ${friendly_name} Total energy B
321 id: total_energy_b
322 sensor_datapoint: 104
323 unit_of_measurement: "kWh"
324 device_class: energy
325 state_class: total_increasing
326 accuracy_decimals: 2
327 filters:
328 - lambda: |-
329 return x * 0.01;
330
331 # Total energy C (DP 105 scale 100)
332 - platform: tuya
333 name: ${friendly_name} Total energy C
334 id: total_energy_c
335 sensor_datapoint: 105
336 unit_of_measurement: "kWh"
337 device_class: energy
338 state_class: total_increasing
339 accuracy_decimals: 2
340 filters:
341 - lambda: |-
342 return x * 0.01;
343
344
345number:
346 # Overvoltage (DP 110) V
347 - platform: tuya
348 name: ${friendly_name} Overvoltage
349 number_datapoint: 110
350 min_value: 130
351 max_value: 290
352 step: 1
353
354 # Low voltage (DP 111) V
355 - platform: tuya
356 name: ${friendly_name} Low voltage
357 number_datapoint: 111
358 min_value: 85
359 max_value: 220
360 step: 1
361
362 # Overcurrent (DP 112) A - mapping: scale 100
363 - platform: tuya
364 name: ${friendly_name} Overcurrent
365 number_datapoint: 112
366 min_value: 0
367 max_value: 9999
368 step: 1
369 multiply: 100 # original mapping used scale: 100
370
371 # Over power (DP 113) kW - mapping scale 100 (use multiply to match tuya's integer behaviour)
372 - platform: tuya
373 name: ${friendly_name} Over power
374 number_datapoint: 113
375 min_value: 0
376 max_value: 2320
377 step: 1
378 multiply: 100
379
380 # Over energy (DP 114) kWh
381 - platform: tuya
382 name: ${friendly_name} Over energy
383 number_datapoint: 114
384 min_value: 0
385 max_value: 99999999
386 step: 1
387
388 # Over temperature (DP 115) °C
389 - platform: tuya
390 name: ${friendly_name} Over temperature
391 number_datapoint: 115
392 min_value: 0
393 max_value: 150
394 step: 1
395
396 # Screen timeout (DP 118) min
397 - platform: tuya
398 name: ${friendly_name} Screen timeout
399 number_datapoint: 118
400 min_value: 0
401 max_value: 59
402 step: 1
403
404 # Timer (DP 109) seconds, range -1..86400
405 - platform: tuya
406 name: ${friendly_name} Timer
407 number_datapoint: 109
408 min_value: -1
409 max_value: 86400
410 step: 1
411
412 # Voltage balance (DP 116) V
413 - platform: tuya
414 name: ${friendly_name} Voltage balance
415 number_datapoint: 116
416 min_value: 0
417 max_value: 100
418 step: 1
419
420 # Current balance (DP 117) A
421 - platform: tuya
422 name: ${friendly_name} Current balance
423 number_datapoint: 117
424 min_value: 0
425 max_value: 800
426 step: 1%