Dernière activité 1 month ago

KWS-306F Esphome profile

racerxdl's Avatar Lucas Teske a révisé ce gist 2 months ago. Aller à la révision

1 file changed, 426 insertions

smartmeter.yml(fichier créé)

@@ -0,0 +1,426 @@
1 + substitutions:
2 + device: smartmetervz55
3 + friendly_name: "Medidor VZ55"
4 +
5 + esphome:
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 +
15 + bk72xx:
16 + board: cbu
17 +
18 + # Enable logging
19 + logger:
20 + level: INFO
21 + baud_rate: 0
22 +
23 + uart:
24 + tx_pin: P11
25 + rx_pin: P10
26 + baud_rate: 9600
27 +
28 + <<: !include network.yaml
29 +
30 + time:
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 +
44 + tuya:
45 + time_id: sntp_time
46 +
47 + button:
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
52 + interval:
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 +
64 + switch:
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 +
83 + sensor:
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 +
345 + number:
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%
Plus récent Plus ancien