Acties:
  • +16 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
Mede-auteurs:
  • geert1992
  • Registratie: Februari 2012
  • Laatst online: 22:53

geert1992

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12

FireSon

EDIT 24-2-2025:
@FireSon is bezig met een volledig in HA geïntegreerde versie zodat onderstaande werkwijze niet meer nodig is!



Vervallen niet meer nodig!
Aanleiding:
In het Zendure Hyper 2000 topic staan al aardig wat voorbeelden hoe je de Hyper 2000 in Home Assistant[HA] kunt integreren. Echter is dat geen compleet verhaal en niet overzichtelijk.

Met dit topic wil ik alle informatie die ik heb verzameld over externe koppelingen en hoe ik deze in Home Assistant heb toegepast, samenbrengen. Zo kan het originele Zendure Hyper 2000-topic zich volledig richten op de Zendure-hardware en de koppeling met de Zendure-app.

De oplossing die ik hier beschrijf, is niet heel eenvoudig; er zijn namelijk behoorlijk wat lagen betrokken. Maar zodra je de koppeling hebt gelegd, kun je de Hyper 2000 volledig aansturen. Ik pretendeer niet dat dit de beste oplossing is, het is voor mijn doel voldoende, maar ik hoop dat anderen mooie aanvullingen of verbeteringen hebben of wie weet betere integraties gevonden hebben.

Bestaande Zendure-koppelingen:
Ik heb twee koppelingen met de Zendure-hardware gevonden, beide oorspronkelijk ontwikkeld voor oudere Zendure-apparaten. Aangezien ze allemaal gebruikmaken van dezelfde Zendure API, zijn ze ook goed toepasbaar voor de Hyper 2000. Het enige wat je moet doen, is de juiste product-id van de Hyper achterhalen. Voor recente Hyper 2000-modellen is dat: gDa3tb de oude key is: ja72U0ha

Het verschil tussen deze twee koppelingen zit in de keuze om de Zendure-app wel of niet te blijven gebruiken, en of je volledige lokale controle wilt hebben.

De methode die ik hier beschrijf, maakt gebruik van de app. Dit heeft een aantal voordelen:
1. Je behoudt je garantie (wat volgens Zendure een vereiste lijkt te zijn).
2. De app werkt gewoon prettig met alle relevante informatie en aanstuurmogelijkheden.

Het nadeel is wel dat je afhankelijk blijft van de Zendure-cloud. Gelukkig zijn de responstijden van de server tot nu toe prima.

Bij de andere koppeling ga je met behulp van een tijdelijke installatie op bijvoorbeeld een raspberry de verwijzing naar de Zendure MQTT server op de Hyper omleiden naar je eigen lokale MQTT server.

Koppeling in het kort:
Bij deze koppeling maken we gebruik van een integratie die speciaal is geschreven voor ioBroker. Deze integratie logt in op de Zendure Cloud en schrijft alle data weg naar een lokale MQTT-server binnen ioBroker.

Vervolgens leggen we vanuit Node-RED, dat gekoppeld is aan je eigen Home Assistant MQTT-server, een bridge naar de MQTT-server van ioBroker. Als laatste maken we gebruik van Node-RED-flows om de aansturing van de Hyper te realiseren.

Daarnaast kunnen we met Home Assistant MQTT-sensoren alle relevante gegevens uit de Zendure API in Home Assistant inlezen. Waaronder alle batterij statussen, energie calculaties en statussen van gekoppelde PV.



Handleiding:


1. ioBroker installeren:
Aangezien we een iobroker omgeving nodig hebben om de Zendure integratie te gebruiken moeten we eerst een versie van iobroker installeren, je hebt daarbij o.a. de keuze uit:Ik heb gekozen voor Docker en heb in Portainer met behulp van deze stack de ioBroker aangemaakt:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '2'

services:
  iobroker:
    image: buanet/iobroker:latest
    container_name: iobroker
    hostname: iobroker
    restart: always
    ports:
      - "8081:8081" # Toegang tot de ioBroker UI
      - "1883:1883" # Toegang tot de ioBroker MQTT-server
    volumes:
      - /iobroker:/opt/iobroker
    environment:
      - TZ=Europe/Amsterdam




2. MQTT broker/client adapter installeren in ioBroker:
  1. ga naar adapters binnen ioBroker en geef in het zoekveld MQTT broker op
  2. kies voor MQTT broker/client
  3. klik op de 3 puntjes rechtsboven en klik vervolgens op de + voor installatie
  4. zorg dat de instellingen overeenkomen met de afbeeldingen hieronder
Afbeeldingslocatie: https://tweakers.net/i/Mztfs9ZALTMKQ1ii7fUnx64NC7w=/800x/filters:strip_exif()/f/image/aHd2wfbsIgMV0O9HbNUGzcoS.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/ujGDDy1tY0RXVYInp0-vx59I9vQ=/800x/filters:strip_exif()/f/image/X4Uydyz9n6olYYKmlpe6Wspp.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/mx6u-BF7sK1NiMg2qBmph4YLDIQ=/800x/filters:strip_exif()/f/image/Ea919ajmGI4FAo6g6USNJy5R.png?f=fotoalbum_large
Onder Instances kun je de geinstalleerde adapters terugvinden en configureren.



3. Zendure adapter installeren in ioBroker:
Om te voorkomen dat je uit de app wordt uitgelogd zodra je deze adapter gebruikt, kun je het beste een nieuw Zendure-account aanmaken in de app met een ander e-mailadres. Vervolgens kun je je Hypers delen(onder Profile, Device Sharing in de app) met dit nieuwe account.

Zodra dit is gedaan, kun je met het nieuwe account inloggen bij de Zendure-ioBroker-adapter, terwijl je in de app ingelogd blijft met je oorspronkelijke account.
  1. ga naar adapters binnen ioBroker en geef in het zoekveld zendure op
  2. kies voor Zendure Solarflow
  3. klik op de 3 puntjes rechtsboven en klik vervolgens op de + voor installatie
  4. kies voor de EU server en geef je Zendure login op
  5. vink de 3 keuzen aan
Afbeeldingslocatie: https://tweakers.net/i/qdb43FaSHeQKVBXZYJ7QPpHKcsg=/800x/filters:strip_exif()/f/image/rV9zCYvxvtjiM2ORmmdki17K.png?f=fotoalbum_large



4. Bridge maken in node-red tussen de MQTT server van ioBroker en je eigen MQTT server:
Ik heb onder node-red een bridge van de iobroker mqtt server naar mijn eigen HA mqtt server gemaakt, dat is alles wat je nodig hebt vanaf dat moment kun je onder node-red flows maken of vanuit HA automations.

Als je nog geen node-red in HA gebruikt kun je die het beste via de add-ons van HA installeren.

Zorg er ook voor dat je de node-red HA websocket installeert, dan kun je o.a. de flows via een switch in HA uit en aanzetten.

Afbeeldingslocatie: https://tweakers.net/i/ncJMDAXZDQZEdS5crrWVHlykA1s=/800x/filters:strip_exif()/f/image/4Lsw1qgUPGVQG6GjmCMnTwXA.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/sE1Z7h1I8gTCJ2pxyRqKvAlal9o=/800x/filters:strip_exif()/f/image/lZsJrx8YqS7Qj831ngjkP9Uf.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/cTkuMDebF58Y3Iv15OHgVivswb0=/800x/filters:strip_exif()/f/image/rTditYyy00NyseA7TetZqdIz.png?f=fotoalbum_large

Als dit allemaal goed gegaan is kun je nu in je mqtt server de Zendure states terugvinden:
Afbeeldingslocatie: https://tweakers.net/i/a6RESjy7qgfZiC-WP0xjs5oNzgY=/x800/filters:strip_exif()/f/image/cQeUl7VKrYQkczbyLolOpKbl.png?f=fotoalbum_large
Vanaf nu is de koppeling eigenlijk compleet en kun je vanuit de mqtt explorer, HA automations of node-red je Hyper gaan aansturen.

LET OP:
Zorg ervoor dat je binnen de app bij Energieplan geen enkele optie hebt aanstaan anders werkt het aansturen niet. Ook op diepere niveau's binnen Energieplan.

Hieronder een paar voorbeeld commando's via MQTT:
Als je wilt importeren of exporteren moet je eerst zorgen dat de ACmode goed staat. Mqtt topic:
code:
1
zendure-solarflow/0/gDa3tb/<device-id>/control/acMode/set
geef je voor laden een 1 en voor exporteren een 2.

Vervolgens stuur je de waarde voor export naar:
code:
1
zendure-solarflow/0/gDa3tb/<device-id>/control/setOutputLimit/set

of voor laden naar:
code:
1
zendure-solarflow/0/gDa3tb/<device-id>/control/setInputLimit/set

Vergeet niet om bij <device-id> je eigen device-id te plaatsen, die kun je vinden als je eenmaal een connectie met de io.Broker mqtt server hebt gemaakt.



5. De Zendure MQTT sensoren in HA aanmaken:
Hieronder de mqtt sensoren die je kunt aanmaken en straks ook nodig hebt voor de node-red flows, vergeet niet de juiste notatie van mqtt, sensor bovenaan toe te voegen als je nog niet eerder mqtt sensoren in HA hebt aangemaakt, en het <device-id>, <serienr_hyper> en <serienr-battX> aan te passen.

opbouw HA configuratie:
configuration.yaml
YAML:
1
mqtt: !include mqtt.yaml


mqtt.yaml
YAML:
1
2
3
4
5
6
7
sensor:
  - name: "batt import vandaag"
    unique_id: "W2BE3DESbattwwwzwuhwhhwilpttvs"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/gridInputEnergyTodaykWh"
    unit_of_measurement: "kWh"
    device_class: "energy"
    etc....


Volledige lijst van mqtt-sensoren die je kunt toevoegen:
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
  - name: "batt import vandaag"
    unique_id: "YtegehSbattwwwzwuhwhhwilpttvs"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/gridInputEnergyTodaykWh"
    unit_of_measurement: "kWh"
    device_class: "energy"
    value_template: >
      {% if states('sensor.zendure_batt_import_vandaag') not in ['unknown'] %}
        {{ value_json }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "zp totaal vandaag"
    unique_id: "YtegehSbattwwwzpttvs"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/solarInputEnergyTodayWh"
    unit_of_measurement: "kWh"
    device_class: "energy"
    value_template: >
      {% if states('sensor.zendure_zp_totaal_vandaag') not in ['unknown'] %}
        {{ (float(value_json) / 1000) }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "batt export vandaag"
    unique_id: "YtegehSbattexpvd"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/outputHomeEnergyTodaykWh"
    unit_of_measurement: "kWh"
    device_class: "energy"
    value_template: >
      {% if states('sensor.zendure_batt_export_vandaag') not in ['unknown'] %}
        {{ value_json }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "acmode"
    unique_id: "YtegehSacmodeaa"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/control/acMode"
    device_class: "power"
    value_template: >
      {% if states('sensor.zendure_acmode') not in ['unknown'] %}
        {{ int(value_json, 0) }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "pack input act"
    unique_id: "YtegehSpckinpact1"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/packInputPower"
    unit_of_measurement: "W"
    device_class: "power"
    value_template: >
      {% if states('sensor.zendure_pack_input_act') not in ['unknown'] %}
        {{ int(value_json, 0) }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "output home act"
    unique_id: "YtegehSophmpwr"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/outputHomePower"
    unit_of_measurement: "W"
    device_class: "power"
    value_template: >
      {% if states('sensor.zendure_output_home_act') not in ['unknown'] %}
        {{ int(value_json, 0) }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"
      
  - name: "ontlaadtijd tot leeg"
    unique_id: "YtegehSldtdtotleeg"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/remainOutTime"
    unit_of_measurement: "H"
    device_class: "duration"
    value_template: >
      {% if states('sensor.zendure_ontlaadtijd_tot_leeg') not in ['unknown'] %}
        {{ int(value_json, 0) / 60 }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "batt input act"
    unique_id: "YtegehSbattinpactv"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/outputPackPower"
    unit_of_measurement: "W"
    device_class: "power"
    value_template: >
      {% if states('sensor.zendure_batt_input_act') not in ['unknown'] %}
        {{ int(value_json, 0) }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "laadtijd tot vol"
    unique_id: "YtegehSldtdtotvol"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/remainInputTime"
    unit_of_measurement: "H"
    device_class: "duration"
    value_template: >
      {% if states('sensor.zendure_laadtijd_tot_vol') not in ['unknown'] %}
        {{ int(value_json, 0) / 60 }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "batt 1 soc"
    unique_id: "YtegehSbatt1soclvl"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/packData/<serienr_batt1>/socLevel"
    unit_of_measurement: "%"
    device_class: "battery"
    value_template: >
      {% if states('sensor.zendure_batt_1_soc') not in ['unknown'] %}
        {{ int(value_json, 0) }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "batt 2 soc"
    unique_id: "YtegehSbatt2soclvl"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/packData/<serienr_batt1>/socLevel"
    unit_of_measurement: "%"
    device_class: "battery"
    value_template: >
      {% if states('sensor.zendure_batt_2_soc') not in ['unknown'] %}
        {{ int(value_json, 0) }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"
      
  - name: "batt 1 max temp"
    unique_id: "YtegehSbatt1maxtemp"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/packData/<serienr_batt1>/maxTemp"
    unit_of_measurement: "°C"
    device_class: "temperature"
    value_template: >
      {% if states('sensor.zendure_batt_1_max_temp') not in ['unknown'] %}
        {{ value_json }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "batt 2 max temp"
    unique_id: "YtegehSbatt2maxtemp"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/packData/<serienr_batt2>/maxTemp"
    unit_of_measurement: "°C"
    device_class: "temperature"
    value_template: >
      {% if states('sensor.zendure_batt_2_max_temp') not in ['unknown'] %}
        {{ value_json }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "batt 1 max voltage"
    unique_id: "YtegehSbatt1maxvolt"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/packData/<serienr_batt1>/maxVol"
    unit_of_measurement: "V"
    device_class: "voltage"
    value_template: >
      {% if states('sensor.zendure_batt_1_max_voltage') not in ['unknown'] %}
        {{ value_json }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "batt 1 min voltage"
    unique_id: "YtegehSbatt1minvolt"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/packData/<serienr_batt1>/minVol"
    unit_of_measurement: "V"
    device_class: "voltage"
    value_template: >
      {% if states('sensor.zendure_batt_1_min_voltage') not in ['unknown'] %}
        {{ value_json }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"
         
  - name: "batt 2 max voltage"
    unique_id: "YtegehSbatt2maxvolt"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/packData/<serienr_batt2>/maxVol"
    unit_of_measurement: "V"
    device_class: "voltage"
    value_template: >
      {% if states('sensor.zendure_batt_2_max_voltage') not in ['unknown'] %}
        {{ value_json }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"
      
  - name: "batt 2 min voltage"
    unique_id: "YtegehSbatt2minvolt"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/packData/<serienr_batt2>/minVol"
    unit_of_measurement: "V"
    device_class: "voltage"
    value_template: >
      {% if states('sensor.zendure_batt_2_min_voltage') not in ['unknown'] %}
        {{ value_json }}
      {% else %}
        {{ int(0) }}
      {% endif %}    
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"
      
  - name: " hyper temp" 
    unique_id: "Ytegehhypertemp"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/hyperTmp"
    value_template: "{{ value_json }}"
    unit_of_measurement: "°C"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "output limit" 
    unique_id: "Ytegehoutputlimit"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/outputLimit"
    value_template: "{{ value_json | int }}"
    unit_of_measurement: "W"    
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"
      
  - name: "input limit" 
    unique_id: "Ytegehinputlimit"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/inputLimit"
    value_template: "{{ value_json | int }}"
    unit_of_measurement: "W"    
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "hub status" 
    unique_id: "YtegehShubState"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/hubState"
    value_template: "{{ value_json | int }}"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "zp act"
    unique_id: "YtegehSsolarInputwwPower"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/solarInputPower"
    unit_of_measurement: "W"
    device_class: "power"
    value_template: >
      {% if states('sensor.zendure_zp_act') not in ['unknown'] %}
        {{ int(value_json, 0) }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "solar power 1 act"
    unique_id: "YtegehSsolarpower1"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/pvPower1"
    unit_of_measurement: "W"
    device_class: "power"
    value_template: >
      {% if states('sensor.zendure_solar_power_1_act') not in ['unknown'] %}
        {{ int(value_json, 0) }}
      {% else %}
        {{ int(0) }}
      {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "solar power 2 act"
    unique_id: "YtegehSsolarpower2"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/pvPower2"
    unit_of_measurement: "W"
    device_class: "power"
    value_template: >
      {% if states('sensor.zendure_solar_power_2_act') not in ['unknown'] %}
        {{ int(value_json, 0) }}
      {% else %}
        {{ int(0) }}
      {% endif %}    
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "pack input power"
    unique_id: "YtegehSpackInputPower"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>"
    unit_of_measurement: "W"
    device_class: "power"
    value_template: >
         {% if states('sensor.zendure_pack_input_power') not in ['unknown'] %}
           {{ int(value_json.packInputPower, 0) }}
         {% else %}
           {{ int(0) }}
         {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "grid input act"
    unique_id: "YtegehSgridInputPower"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/gridInputPower"
    unit_of_measurement: "W"
    device_class: "power"
    value_template: >
         {% if states('sensor.zendure_grid_input_act') not in ['unknown'] %}
           {{ int(value_json, 0) }}
         {% else %}
           {{ int(0) }}
         {% endif %}
    state_class: "measurement"
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "ac output act"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/acOutputPower"
    unique_id: "acoutputact"
    value_template: >
         {% if states('sensor.zendure_ac_output_act') not in ['unknown'] %}
           {{ int(value_json, 0) }}
         {% else %}
           {{ int(0) }}
         {% endif %}
    unit_of_measurement: "W"
    state_class: "measurement"
    icon: mdi:battery-clock    
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "batt soc"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/electricLevel"
    unique_id: "zenbattsoc"
    value_template: "{{ value_json }}"
    unit_of_measurement: "%"
    icon: mdi:battery-sync-outline
    device: 
      name: "Zendure"
      identifiers: "<serienr_hyper>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "laadtijd tot vol"
    unique_id: "W2BE3DESldtdtotvol"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/remainInputTime"
    value_template: "{{ value }}" 
    device: 
      name: "Zendure"
      identifiers: "<serie_nr>
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "ontlaadtijd tot leeg"
    unique_id: "W2BE3DssESldtdleeG"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/remainOutTime"
    value_template: "{{ value }}" 
    device: 
      name: "Zendure"
      identifiers: "<serie_nr>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

Als je de mqtt sensoren binnen HA opnieuw geladen hebt of HA herstart hebt kun je nu een nieuw apparaat terugvinden met de naam Zendure met daarbij alle bovenstaande sensoren.



6. node-red flow "handmatig laden":
Voorbeeld van hoedat je in HA via een input_numer die je met de helper functie kunt aanmaken een slider maakt om handmatig de waarde voor laden in te stellen. In mijn voorbeeld zie je het veld input_number.hyper_import in de eerste node(als je die aanklikt), dat is de HA helper die ik heb aangemaakt om de waarde vanuit HA door te geven naar deze flow. Dus die moet jezelf ook aanmaken:
Afbeeldingslocatie: https://tweakers.net/i/Hd6kkAHEKxHODIh-remUW75p27M=/x800/filters:strip_exif()/f/image/HKsYietejEEsGVYmO1nduM9q.png?f=fotoalbum_large

Vergeet ook niet na het importeren van deze flow in node-red, om de topics hieronder aan te passen met je eigen deviceid!

De flow lijkt ingewikkeld maar bovenin controleer ik eerst of export al aanstaat en die zet ik dan ook eventueel uit zodat de 2 processen import/export elkaar niet in de weg zitten. Verder controleer ik eerst of acmode wel op import staat en zo niet zet ik acmode op de juiste waarde.

Afbeeldingslocatie: https://tweakers.net/i/ooNnj6M2cU8qFpcvCQBD995kiBo=/800x/filters:strip_exif()/f/image/hi5rawgZ5mOMYUWldxDzbIHE.png?f=fotoalbum_large

De node-red flow die je kunt importeren:
JSON:
1
[{"id":"deb6472c24d7dd68","type":"server-state-changed","z":"4357f0b9551a8e4d","name":"LADEN (import)","server":"1190584e6afd2564","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["input_number.hyper_import"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"num","ifState":"","ifStateType":"num","ifStateOperator":"gt","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":100,"y":1200,"wires":[["cf8276fc4378460f"]]},{"id":"d0c4e8ecd10de3ad","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Set Input(laden)","topic":"zendure-solarflow/0/gDa3tb/device-id/control/setInputLimit/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":780,"y":1180,"wires":[]},{"id":"cf8276fc4378460f","type":"api-current-state","z":"4357f0b9551a8e4d","name":"acMode controle","server":"1190584e6afd2564","version":3,"outputs":2,"halt_if":"1","halt_if_type":"num","halt_if_compare":"is","entity_id":"sensor.zendure_acmode","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":330,"y":1200,"wires":[["928559588423b165","289f142b4450d997"],["5b48afae79962d07","3aee97ee8794d651","289f142b4450d997"]]},{"id":"6716e95cdebea2b7","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Import aanzetten","topic":"zendure-solarflow/0/gDa3tb/device-id/control/acMode/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":790,"y":1260,"wires":[]},{"id":"5b48afae79962d07","type":"function","z":"4357f0b9551a8e4d","name":"payload","func":"msg.payload = 1;\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":1260,"wires":[["6716e95cdebea2b7"]]},{"id":"0f302315a381424a","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Set Imput(laden)","topic":"zendure-solarflow/0/gDa3tb/device-id/control/setInputLimit/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":1020,"y":1340,"wires":[]},{"id":"3aee97ee8794d651","type":"delay","z":"4357f0b9551a8e4d","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":540,"y":1340,"wires":[["db51498a54f686fb"]]},{"id":"928559588423b165","type":"api-current-state","z":"4357f0b9551a8e4d","name":"import ophalen","server":"1190584e6afd2564","version":3,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","entity_id":"input_number.hyper_import","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":560,"y":1180,"wires":[["d0c4e8ecd10de3ad"]]},{"id":"db51498a54f686fb","type":"api-current-state","z":"4357f0b9551a8e4d","name":"import ophalen","server":"1190584e6afd2564","version":3,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","entity_id":"input_number.hyper_import","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":780,"y":1340,"wires":[["0f302315a381424a"]]},{"id":"d0f7b33d25d372a5","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Set Output op 0","topic":"zendure-solarflow/0/gDa3tb/device-id/control/setOutputLimit/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":960,"y":1100,"wires":[]},{"id":"289f142b4450d997","type":"api-current-state","z":"4357f0b9551a8e4d","name":"export ophalen","server":"1190584e6afd2564","version":3,"outputs":2,"halt_if":"0","halt_if_type":"num","halt_if_compare":"gt","entity_id":"input_number.hyper_export","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":560,"y":1100,"wires":[["c40d21499faec940"],[]]},{"id":"c40d21499faec940","type":"function","z":"4357f0b9551a8e4d","name":"payload","func":"msg.payload = 0;\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":1100,"wires":[["d0f7b33d25d372a5"]]},{"id":"1190584e6afd2564","type":"server","name":"Home Assistant","version":5,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"a4502226a97fecb5","type":"mqtt-broker","name":"ioBroker","broker":"http://192.168.2.114/","port":1883,"clientid":"","autoConnect":true,"usetls":false,"protocolVersion":4,"keepalive":60,"cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]


De overige flows ga ik hieronder plaatsen in vervolg reacties want het starttopic zit aan de max.

[ Voor 25% gewijzigd door Mediacj op 15-03-2025 17:27 ]


Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
7. node-red flow "handmatig exporteren":
Zelfde idee als bij stap 6 maar dan voor exporteren, ook hiervoor moet je eerst een helper aanmaken: input_number.hyper_export en de device-id aanpassen naar je eigen id in de topics.
Afbeeldingslocatie: https://tweakers.net/i/VHN-llbvQsnfQyAThwRypGDoWK0=/x800/filters:strip_exif()/f/image/mQcqb7WaE4Z1ZRGzJ65i0y7c.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/bN92Ux5VFqsaMqaaVG3eD0SoHFs=/800x/filters:strip_exif()/f/image/xdZ8bIXZzntihWc0MhCUxT79.png?f=fotoalbum_large

de flow:
JSON:
1
[{"id":"2de021ad313b5188","type":"server-state-changed","z":"4357f0b9551a8e4d","name":"EXPORT","server":"1190584e6afd2564","version":6,"outputs":1,"exposeAsEntityConfig":"","entities":{"entity":["input_number.hyper_export"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"num","ifState":"","ifStateType":"num","ifStateOperator":"gt","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":80,"y":1620,"wires":[["f18fa3a4f323e11a"]]},{"id":"a42428ccca142565","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Set Output","topic":"zendure-solarflow/0/gDa3tb/device-id/control/setOutputLimit/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":770,"y":1600,"wires":[]},{"id":"f18fa3a4f323e11a","type":"api-current-state","z":"4357f0b9551a8e4d","name":"acMode controle","server":"1190584e6afd2564","version":3,"outputs":2,"halt_if":"2","halt_if_type":"num","halt_if_compare":"is","entity_id":"sensor.zendure_acmode","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":330,"y":1620,"wires":[["494a9bb04d75e95c","cd21e35e12fa3492"],["d03f52c5948270e3","2a9f25d2c05ce548","cd21e35e12fa3492"]]},{"id":"d03f52c5948270e3","type":"delay","z":"4357f0b9551a8e4d","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":540,"y":1760,"wires":[["82f674c618d505d9"]]},{"id":"398bfe0c456d2379","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Export aanzetten","topic":"zendure-solarflow/0/gDa3tb/device-id/control/acMode/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":790,"y":1680,"wires":[]},{"id":"2a9f25d2c05ce548","type":"function","z":"4357f0b9551a8e4d","name":"payload","func":"msg.payload = 2;\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":540,"y":1680,"wires":[["398bfe0c456d2379"]]},{"id":"588aeea6e419f1c6","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Set Output","topic":"zendure-solarflow/0/gDa3tb/device-id/control/setOutputLimit/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":1010,"y":1760,"wires":[]},{"id":"494a9bb04d75e95c","type":"api-current-state","z":"4357f0b9551a8e4d","name":"export ophalen","server":"1190584e6afd2564","version":3,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","entity_id":"input_number.hyper_export","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":540,"y":1600,"wires":[["a42428ccca142565"]]},{"id":"82f674c618d505d9","type":"api-current-state","z":"4357f0b9551a8e4d","name":"export ophalen","server":"1190584e6afd2564","version":3,"outputs":1,"halt_if":"","halt_if_type":"num","halt_if_compare":"is","entity_id":"input_number.hyper_export","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":780,"y":1760,"wires":[["588aeea6e419f1c6"]]},{"id":"5b0571465ce9f5fb","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Set laden op 0","topic":"zendure-solarflow/0/gDa3tb/device-id/control/setInputLimit/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":940,"y":1520,"wires":[]},{"id":"cd21e35e12fa3492","type":"api-current-state","z":"4357f0b9551a8e4d","name":"import ophalen","server":"1190584e6afd2564","version":3,"outputs":2,"halt_if":"0","halt_if_type":"num","halt_if_compare":"gt","entity_id":"input_number.hyper_import","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":540,"y":1520,"wires":[["f1133143cd805312"],[]]},{"id":"f1133143cd805312","type":"function","z":"4357f0b9551a8e4d","name":"payload","func":"msg.payload = 0;\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":760,"y":1520,"wires":[["5b0571465ce9f5fb"]]},{"id":"1190584e6afd2564","type":"server","name":"Home Assistant","version":5,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"a4502226a97fecb5","type":"mqtt-broker","name":"ioBroker","broker":"http://192.168.2.114/","port":1883,"clientid":"","autoConnect":true,"usetls":false,"protocolVersion":4,"keepalive":60,"cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

[ Voor 177% gewijzigd door Mediacj op 19-01-2025 20:02 ]


Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
8. node-red flow "nul op de meter":
Afbeeldingslocatie: https://tweakers.net/i/maf5SKOtyR8kzMJQDJVKiysQhFA=/800x/filters:strip_exif()/f/image/eHokdMqbefWLcsQXrVAyaHsP.png?f=fotoalbum_large

De node-red flow om te importeren:
JSON:
1
[{"id":"27f35bb9813cc2b5","type":"delay","z":"4357f0b9551a8e4d","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"20","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":860,"y":420,"wires":[["9e76696ba09a0ed8","e1d10bc0d853a681"]]},{"id":"ca7666d14e3d6c5d","type":"trigger-state","z":"4357f0b9551a8e4d","name":"DYNAMISCH EXPORTEREN","server":"1190584e6afd2564","version":5,"inputs":0,"outputs":2,"exposeAsEntityConfig":"84f832914fc59370","entities":{"entity":["sensor.huisaansluiting_act"],"substring":[],"regex":[]},"debugEnabled":false,"constraints":[{"targetType":"this_entity","targetValue":"","propertyType":"current_state","propertyValue":"new_state.state","comparatorType":"is_not","comparatorValueDatatype":"num","comparatorValue":"0"}],"customOutputs":[],"outputInitially":false,"stateType":"num","enableInput":false,"x":140,"y":420,"wires":[["70a9eac461d89293"],[]]},{"id":"473f4e5c5d1f4338","type":"api-render-template","z":"4357f0b9551a8e4d","name":"nwe waarde export","server":"1190584e6afd2564","version":0,"template":"{% set exp = float(states('sensor.huisaansluiting_export_act') | default(0)) %}\n{% set imp = float(states('sensor.huisaansluiting_import_act') | default(0)) %}\n{% set zen = float(states('sensor.zen_export_act') | default(0)) %}\n\n{% if imp > 10 %}\n{{ [(imp + zen) | round(0), 800] | min }}\n{% elif exp > 10 %}\n{{(zen - exp) | round(0)}}\n{% else %}\nfalse\n{% endif %}","resultsLocation":"payload","resultsLocationType":"msg","templateLocation":"payload","templateLocationType":"msg","x":630,"y":420,"wires":[["27f35bb9813cc2b5"]]},{"id":"9e76696ba09a0ed8","type":"switch","z":"4357f0b9551a8e4d","name":"gewijzigd?","property":"payload","propertyType":"msg","rules":[{"t":"neq","v":"false","vt":"str"}],"checkall":"false","repair":false,"outputs":1,"x":1070,"y":420,"wires":[["194b041380162b80"]]},{"id":"194b041380162b80","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Set Output","topic":"zendure-solarflow/0/gDa3tb/device-id/control/setOutputLimit/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":1290,"y":420,"wires":[]},{"id":"70a9eac461d89293","type":"api-current-state","z":"4357f0b9551a8e4d","name":"quooker niet actief?","server":"1190584e6afd2564","version":3,"outputs":2,"halt_if":"false","halt_if_type":"bool","halt_if_compare":"is","entity_id":"input_boolean.batterij_export_quooker","state_type":"habool","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":400,"y":420,"wires":[["473f4e5c5d1f4338"],[]]},{"id":"4ec37c195d25baed","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Zet AC export op 0","topic":"zendure-solarflow/0/gDa3tb/device-id/control/setOutputLimit/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":630,"y":520,"wires":[]},{"id":"e1d10bc0d853a681","type":"api-current-state","z":"4357f0b9551a8e4d","name":"acMode controle","server":"1190584e6afd2564","version":3,"outputs":2,"halt_if":"2","halt_if_type":"num","halt_if_compare":"is_not","entity_id":"sensor.zendure_acmode","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1090,"y":320,"wires":[["c1a9e4c2324e364e"],[]]},{"id":"c1a9e4c2324e364e","type":"function","z":"4357f0b9551a8e4d","name":"payload","func":"msg.payload = 2;\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1280,"y":320,"wires":[["2f650601b6f8b99d"]]},{"id":"2f650601b6f8b99d","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Export aanzetten","topic":"zendure-solarflow/0/gDa3tb/device-id/control/acMode/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":1510,"y":320,"wires":[]},{"id":"28ae2ecba728217b","type":"server-state-changed","z":"4357f0b9551a8e4d","name":"DYNAMISCHE EXP uitgezet","server":"1190584e6afd2564","version":6,"outputs":2,"exposeAsEntityConfig":"","entities":{"entity":["switch.zendure_dynamische_export"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"habool","ifState":"false","ifStateType":"bool","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":140,"y":520,"wires":[["0cadeae566da1f88"],[]]},{"id":"0cadeae566da1f88","type":"function","z":"4357f0b9551a8e4d","name":"payload","func":"msg.payload = 0;\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":360,"y":520,"wires":[["4ec37c195d25baed"]]},{"id":"1190584e6afd2564","type":"server","name":"Home Assistant","version":5,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"84f832914fc59370","type":"ha-entity-config","server":"1190584e6afd2564","deviceConfig":"","name":"zendure dynamische export","version":6,"entityType":"switch","haConfig":[{"property":"name","value":"zendure dynamische export"},{"property":"icon","value":"mdi:battery-arrow-down-outline"},{"property":"entity_picture","value":""},{"property":"entity_category","value":"config"},{"property":"device_class","value":"switch"}],"resend":false,"debugEnabled":true},{"id":"a4502226a97fecb5","type":"mqtt-broker","name":"ioBroker","broker":"http://192.168.2.114/","port":1883,"clientid":"","autoConnect":true,"usetls":false,"protocolVersion":4,"keepalive":60,"cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]


In deze flow zit de node "nwe waarde export" met daarin een formule om de nom waarde te bepalen in het geval van een 1-fase aansluiting. Als je echter een 3-fase aansluiting hebt zou je onderstaande formule kunnen gebruiken in de node "nwe waarde export":
YAML:
1
2
3
4
5
{% if ((float(states('sensor.zendure_output_home_act'))) - ((float(states('sensor.net_mon'))))) < float(states('input_number.batterij_export_max')) %}
 {{ ((float(states('sensor.zendure_output_home_act'))) - ((float(states('sensor.net_mon'))))) | round(0)| abs}}
{% else %}
 {{states('input_number.batterij_export_max')}}
{% endif %}

In deze formule zit de sensor net_mon:
YAML:
1
2
3
4
5
6
7
8
      net_mon:
        value_template: >
            {{
                ((float(states('sensor.dsmr_reading_electricity_currently_returned'))) -(float(states('sensor.dsmr_reading_electricity_currently_delivered')))) *1000
            }}
        unit_of_measurement: 'W'
        friendly_name: "net monitor"
        unique_id: netmon1

[ Voor 105% gewijzigd door Mediacj op 20-01-2025 17:05 ]


Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
9. node-red flow "Dynamisch laden":
Een flow waarmee je dynamisch kunt laden d.w.z. dat de flow de overproductie van je zonnepanelen automatich naar je batterijen stuurt en het laadvermogen telkens aanpast aan de gewijzigde overproductie.

Afbeeldingslocatie: https://tweakers.net/i/mguInAbffW2swweZiM6VEDYvpGk=/800x/filters:strip_exif()/f/image/vr6yPpciHNFgaLQ14JkDl9m1.png?f=fotoalbum_large

De node-red flow om te importeren:
JSON:
1
[{"id":"0d9faedb04e92437","type":"delay","z":"4357f0b9551a8e4d","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"10","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":860,"y":800,"wires":[["cb0b3506c10ce08c","ed57e6c8ad77e201"]]},{"id":"17ee59f6cd0c07de","type":"api-render-template","z":"4357f0b9551a8e4d","name":"nwe waarde export","server":"1190584e6afd2564","version":0,"template":"{% set exp = float(states('sensor.huisaansluiting_export_act') | default(0)) %}\n{% set imp = float(states('sensor.huisaansluiting_import_act') | default(0)) %}\n{% set zen = float(states('sensor.zen_import_act') | default(0)) %}\n\n{% if exp > 30 %}\n{{ [(exp + zen) | round(0), 1200] | min }}\n{% elif imp > zen %}\n30\n{% elif imp > 10 %}\n{{(zen - imp) | round(0)}}\n{% else %}\nfalse\n{% endif %}","resultsLocation":"payload","resultsLocationType":"msg","templateLocation":"payload","templateLocationType":"msg","x":630,"y":800,"wires":[["0d9faedb04e92437"]]},{"id":"cb0b3506c10ce08c","type":"switch","z":"4357f0b9551a8e4d","name":"gewijzigd?","property":"payload","propertyType":"msg","rules":[{"t":"neq","v":"false","vt":"str"}],"checkall":"false","repair":false,"outputs":1,"x":1070,"y":800,"wires":[["4163762fba8be58f"]]},{"id":"4163762fba8be58f","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Set Output","topic":"zendure-solarflow/0/gDa3tb/device-id/control/setInputLimit/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":1310,"y":800,"wires":[]},{"id":"c4ba1b59b76c7979","type":"api-current-state","z":"4357f0b9551a8e4d","name":"quooker niet actief?","server":"1190584e6afd2564","version":3,"outputs":2,"halt_if":"false","halt_if_type":"bool","halt_if_compare":"is","entity_id":"input_boolean.batterij_export_quooker","state_type":"habool","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":360,"y":800,"wires":[["17ee59f6cd0c07de"],[]]},{"id":"cf9070fa0f032d9c","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Zet AC laden op 0","topic":"zendure-solarflow/0/gDa3tb/device-id/control/setInputLimit/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":630,"y":880,"wires":[]},{"id":"0df0ea76afcd9c4e","type":"trigger-state","z":"4357f0b9551a8e4d","name":"LADEN","server":"1190584e6afd2564","version":5,"inputs":0,"outputs":2,"exposeAsEntityConfig":"ec886b4731011bcf","entities":{"entity":["sensor.huisaansluiting_act"],"substring":[],"regex":[]},"debugEnabled":false,"constraints":[],"customOutputs":[],"outputInitially":false,"stateType":"num","enableInput":false,"x":70,"y":800,"wires":[["c4ba1b59b76c7979"],[]]},{"id":"ed57e6c8ad77e201","type":"api-current-state","z":"4357f0b9551a8e4d","name":"acMode controle","server":"1190584e6afd2564","version":3,"outputs":2,"halt_if":"1","halt_if_type":"num","halt_if_compare":"is_not","entity_id":"sensor.zendure_acmode","state_type":"num","blockInputOverrides":true,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1090,"y":700,"wires":[["82d2803a2959463f"],[]]},{"id":"82d2803a2959463f","type":"function","z":"4357f0b9551a8e4d","name":"payload","func":"msg.payload = 1;\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1300,"y":700,"wires":[["cd161e310b2277ca"]]},{"id":"cd161e310b2277ca","type":"mqtt out","z":"4357f0b9551a8e4d","name":"Import aanzetten","topic":"zendure-solarflow/0/gDa3tb/device-id/control/acMode/set","qos":"","retain":"true","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"a4502226a97fecb5","x":1510,"y":700,"wires":[]},{"id":"1f73eaecab12f5a0","type":"server-state-changed","z":"4357f0b9551a8e4d","name":"LADEN uitgezet","server":"1190584e6afd2564","version":6,"outputs":2,"exposeAsEntityConfig":"","entities":{"entity":["switch.zendure_dynamisch_laden"],"substring":[],"regex":[]},"outputInitially":false,"stateType":"habool","ifState":"false","ifStateType":"bool","ifStateOperator":"is","outputOnlyOnStateChange":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":100,"y":880,"wires":[["812a561da56a6fcf"],[]]},{"id":"812a561da56a6fcf","type":"function","z":"4357f0b9551a8e4d","name":"payload","func":"msg.payload = 0;\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":880,"wires":[["cf9070fa0f032d9c"]]},{"id":"1190584e6afd2564","type":"server","name":"Home Assistant","version":5,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"a4502226a97fecb5","type":"mqtt-broker","name":"ioBroker","broker":"http://192.168.2.114/","port":1883,"clientid":"","autoConnect":true,"usetls":false,"protocolVersion":4,"keepalive":60,"cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"ec886b4731011bcf","type":"ha-entity-config","server":"1190584e6afd2564","deviceConfig":"","name":"zendure dynamisch laden","version":6,"entityType":"switch","haConfig":[{"property":"name","value":"zendure dynamisch laden"},{"property":"icon","value":"mdi:battery-arrow-down-outline"},{"property":"entity_picture","value":""},{"property":"entity_category","value":"config"},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false}]

[ Voor 99% gewijzigd door Mediacj op 19-01-2025 21:25 ]


Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
@Mediacj Vraagje: In Home Assistant zie ik nog steeds de waardes staan van toen ik gisteren de mqtt.yaml met daarin de sensoren heb toegevoegd. In MQTT Explorer zie ik uiteraard inmiddels heel andere waarden staan. Hoe zorg ik ervoor dat deze in een HA dashboard constant geactualiseerd worden?

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
Taro schreef op zondag 19 januari 2025 @ 20:58:
@Mediacj Vraagje: In Home Assistant zie ik nog steeds de waardes staan van toen ik gisteren de mqtt.yaml met daarin de sensoren heb toegevoegd. In MQTT Explorer zie ik uiteraard inmiddels heel andere waarden staan. Hoe zorg ik ervoor dat deze in een HA dashboard constant geactualiseerd worden?
Dat is vreemd want die zouden 1 op 1 geactuliseerd moeten worden zodra ze op de mqtt-server veranderen door een nieuwe state publish.

En in de mqtt explorer heb je een connectie met je primaire HA mqtt-server?

Gebruikte je hiervoor ook al mqtt-sensoren? Heb je bij integraties de mqtt server gekoppeld aan HA?
Afbeeldingslocatie: https://tweakers.net/i/u3LymkXHeDapcr7JHpdyS8IkMhE=/x800/filters:strip_exif()/f/image/qj8hkfM0zkaamxAOsdqtxhqa.png?f=fotoalbum_large

[ Voor 25% gewijzigd door Mediacj op 19-01-2025 21:08 ]


Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
Mediacj schreef op zondag 19 januari 2025 @ 21:04:
[...]

Dat is vreemd want die zouden 1 op 1 geactuliseerd moeten worden zodra ze op de mqtt-server veranderen door een nieuwe state publish.

En in de mqtt explorer heb je een connectie met je primaire HA mqtt-server?
Via MQTT Explorer zie ik op zowel IO Broker als Mosquitto dezelfde waardes, dus de Node-Red bridge werkt in ieder geval goed.

Home Assistant gebruikte IO Broker nog, dan heeft die sync ook niet zoveel zin vermoed ik :) Die heb ik nu naar het HA IP omgezet. Nu staan alle waardes natuurlijk nog wel op default. Om 23:00 ga ik opladen, dus moet ik vermoedelijk even daarop wachten...

Kan het nog zijn dat ik iets met een configuratie moet doen van bijv. https://www.home-assistant.io/integrations/sensor.mqtt/ ? Je noemt die in de startpost, ik had verder nog geen MQTT configuratie ergens staan, maar heb jij nog specifieke algemene MQTT configs ingesteld?

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
Taro schreef op zondag 19 januari 2025 @ 21:16:
[...]

Via MQTT Explorer zie ik op zowel IO Broker als Mosquitto dezelfde waardes, dus de Node-Red bridge werkt in ieder geval goed.

Home Assistant gebruikte IO Broker nog, dan heeft die sync ook niet zoveel zin vermoed ik :) Die heb ik nu naar het HA IP omgezet. Nu staan alle waardes natuurlijk nog wel op default. Om 23:00 ga ik opladen, dus moet ik vermoedelijk even daarop wachten...

Kan het nog zijn dat ik iets met een configuratie moet doen van bijv. https://www.home-assistant.io/integrations/sensor.mqtt/ ? Je noemt die in de startpost, ik had verder nog geen MQTT configuratie ergens staan, maar heb jij nog specifieke algemene MQTT configs ingesteld?
Als het je gelukt is om de sensoren vanuit de mqtt.yaml in HA te krijgen, staat het wat dat betreft goed.

De synchronisatie zit in de mqtt integratie(afbeelding hierboven)

[ Voor 3% gewijzigd door Mediacj op 19-01-2025 21:21 ]


Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
Mediacj schreef op zondag 19 januari 2025 @ 21:20:
[...]

Als het je gelukt is om de sensoren vanuit de mqtt.yaml in HA te krijgen, staat het wat dat betreft goed.

De synchronisatie zit in de mqtt integratie(afbeelding hierboven)
Ja, dat ging prima.

Zie nu overigens dat de SOC is geactualiseerd en correct is:
Afbeeldingslocatie: https://tweakers.net/i/h2blo5VbY8JmoqcXcx52kX_3o_w=/x800/filters:strip_exif()/f/image/19Bxa9PZ3ZWSBuYZZGkScI6i.png?f=fotoalbum_large

Straks laden, zal de rest hopelijk ook volgen en met een beetje geluk geactualiseerd blijven.

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • +1 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
Ja, lijkt nu wel te actualiseren:
Afbeeldingslocatie: https://tweakers.net/i/hczxmInGi80nQNqJgdvT8LX6Z80=/x800/filters:strip_exif()/f/image/Y4W6Xz50jUJQm8hoCK3ZLzS5.png?f=fotoalbum_large

Staat remainInputTime bij jou ook steeds op 59940 ?

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
Taro schreef op zondag 19 januari 2025 @ 23:21:
Ja, lijkt nu wel te actualiseren:
[Afbeelding]

Staat remainInputTime bij jou ook steeds op 59940 ?
Mooi dat het werkt! Nee die staat meestal op 999H als er geen activiteit is en anders wisselt het nagelang de situatie en klopt volgens mij best goed.

Acties:
  • +4 Henk 'm!

  • Roamor
  • Registratie: Mei 2004
  • Niet online
Dank je @Mediacj voor de moeite, heel waardevol.

Acties:
  • 0 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Net een flink tijd bezig geweest maar ik heb het opgegeven. Dit is mij te complex en ik ga wel wachten op de officiele Zendure integratie.

Acties:
  • +2 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
DaGoose schreef op vrijdag 24 januari 2025 @ 13:55:
Net een flink tijd bezig geweest maar ik heb het opgegeven. Dit is mij te complex en ik ga wel wachten op de officiele Zendure integratie.
Ik begrijp het, alles bij elkaar is het ook behoorlijk complex. Hopelijk komt Zendure snel met een volwaardige integratie, of neemt iemand anders de moeite om van deze werkwijze een HA-integratie te maken zonder afhankelijkheid van de Zendure adapter in ioBroker.

Waar loop je precies vast? Misschien kan ik, of iemand anders je weer op weg helpen.

Acties:
  • 0 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Mediacj schreef op vrijdag 24 januari 2025 @ 14:03:
[...]

Ik begrijp het, alles bij elkaar is het ook behoorlijk complex. Hopelijk komt Zendure snel met een volwaardige integratie, of neemt iemand anders de moeite om van deze werkwijze een HA-integratie te maken zonder afhankelijkheid van de Zendure adapter in ioBroker.

Waar loop je precies vast? Misschien kan ik, of iemand anders je weer op weg helpen.
Ik liep vast bij verschillende stappen, sowieso kreeg ik maar deels de iobroker aan de gang, de onderste optie van MQTT bleef rood, zendure stond wel helemaal op groen. Maar ook via node-red ging de koppeling al direct verkeerd. Ik had nog nooit iets met node-red gedaan (nu ook net pas geinstalleerd in HA) en ik liep er tegenaan dat ik sowieso al standaard poortnummers etc ingevuld zag staan terwijl in jou screenshots dat niet was. Ik zag ook niets staan over die zendure terwijl dat denk ik tich wel een soort van automatisch erbij zou moeten komen omdat je in de ibroker al een koppeling maakt? Ik kwam daar echt niet verder.

Sowieso vindt ik MQTT een heel erg wazig protocol waar ik nog steeds niet uit ben. Ik heb een awtrix display staan die werkt via MQTT maar daar durf ik ook niet meer aan te zitten. :$

Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
DaGoose schreef op vrijdag 24 januari 2025 @ 14:13:
[...]

Ik liep vast bij verschillende stappen, sowieso kreeg ik maar deels de iobroker aan de gang, de onderste optie van MQTT bleef rood, zendure stond wel helemaal op groen. Maar ook via node-red ging de koppeling al direct verkeerd. Ik had nog nooit iets met node-red gedaan (nu ook net pas geinstalleerd in HA) en ik liep er tegenaan dat ik sowieso al standaard poortnummers etc ingevuld zag staan terwijl in jou screenshots dat niet was. Ik zag ook niets staan over die zendure terwijl dat denk ik tich wel een soort van automatisch erbij zou moeten komen omdat je in de ibroker al een koppeling maakt? Ik kwam daar echt niet verder.

Sowieso vindt ik MQTT een heel erg wazig protocol waar ik nog steeds niet uit ben. Ik heb een awtrix display staan die werkt via MQTT maar daar durf ik ook niet meer aan te zitten. :$
Ik denk dat je met jouw ervaring het beste kunt wachten op een andere oplossing. Hopelijk duurt dat niet lang meer.

Om nog even inhoudelijk op je vragen in te gaan: in de MQTT-adapter in ioBroker worden alle vierkantjes groen zodra je succesvol een connectie hebt gelegd met de MQTT-server van HA via een werkende bridge in Node-RED.

De poortnummers kan ik niet helemaal plaatsen, maar dat komt waarschijnlijk omdat je nog geen HA MQTT-server onder Node-RED hebt aangemaakt. De Zendure-velden in HA verschijnen pas zodra je de MQTT-sensoren hebt aangemaakt.

[ Voor 17% gewijzigd door Mediacj op 24-01-2025 14:27 ]


Acties:
  • 0 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
ik ben dan toch iemand die er verder in wil duiken, dus toch weer even erin gedoken en een en ander opnieuw gedaan. :)
Ik vraag mij af, in iobroker zie ik bij mqtt.0 dus 3 vinkjes: 'connected to host' en 'heartbeat' zijn groen (dus connectie met mqtt zelf in HA denk ik?) maar daaronder staat 'connected:-' op rood. Ik heb een idee dat daar ergens iets verkeerd gaat? Is dat wat je bedoeld met dat er nog geen node-red connectie is?
Alle 3 deze zendure-solarfow.0 vinkjes zijn groen, dus dat lijkt wel online.

Ik heb trouwens iobroker in een docker container draaien op mijn synology (RS1221+) , HA draait in een virtual machine op diezelfde synology.

Edit: als ik in de log van node red kijk dan staat er ook dit:
24 Jan 15:09:48 - [info] [mqtt-broker:dcd93e25a1294938] Connection failed to broker: mqtt://iobroker:1883
24 Jan 15:09:55 - [info] [mqtt-broker:4bb31d85653dc58b] Connection failed to broker: mqtt://core-mosquitto:1883

[ Voor 17% gewijzigd door DaGoose op 24-01-2025 15:10 ]


Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
DaGoose schreef op vrijdag 24 januari 2025 @ 14:43:
ik ben dan toch iemand die er verder in wil duiken, dus toch weer even erin gedoken en een en ander opnieuw gedaan. :)
Ik vraag mij af, in iobroker zie ik bij mqtt.0 dus 3 vinkjes: 'connected to host' en 'heartbeat' zijn groen (dus connectie met mqtt zelf in HA denk ik?) maar daaronder staat 'connected:-' op rood. Ik heb een idee dat daar ergens iets verkeerd gaat? Is dat wat je bedoeld met dat er nog geen node-red connectie is?
Alle 3 deze zendure-solarfow.0 vinkjes zijn groen, dus dat lijkt wel online.
Ja als er nog geen connectie is met een mqtt client(in dit geval de node-red client) dan staat er een oranje driehoekje, en is het cirkeltje rood:
Afbeeldingslocatie: https://tweakers.net/i/donYMqERBlTXZXmCWH9Q6eNGZ9g=/800x/filters:strip_exif()/f/image/CnkS2jtd31qBb5Ju7J61VBcB.png?f=fotoalbum_large

Als er wel een connectie is dan is alles groen en zie je ook nodered, in mijn geval:
Afbeeldingslocatie: https://tweakers.net/i/-QV9EPw1OdpA50AWGk6r-XV30AA=/800x/filters:strip_exif()/f/image/OWLwRtRih4P3uANjUsO7PSG5.png?f=fotoalbum_large

Je Zendure is goed als ze allemaal groen zijn dus je hebt een connectie met de EU cloud van Zendure.
DaGoose schreef op vrijdag 24 januari 2025 @ 14:43:
Ik heb trouwens iobroker in een docker container draaien op mijn synology (RS1221+) , HA draait in een virtual machine op diezelfde synology.
Nou dat zou dan goed moeten gaan want ik ga ervanuit dat die VM een eigen ip-adres heeft zodat er geen conflict op poort 1883 zal ontstaan.
DaGoose schreef op vrijdag 24 januari 2025 @ 14:43:
Edit: als ik in de log van node red kijk dan staat er ook dit:
24 Jan 15:09:48 - [info] [mqtt-broker:dcd93e25a1294938] Connection failed to broker: mqtt://iobroker:1883
24 Jan 15:09:55 - [info] [mqtt-broker:4bb31d85653dc58b] Connection failed to broker: mqtt://core-mosquitto:1883
Het lijkt erop dat je mqtt://iobroker:1883 niet goed is, of je moet een interne dns verwijzing hebben naar je iobroker, maar normaal gesproken zet je daar het ipadres van de iobroker samen met poort 1883. Wat ook nog kan is dat de poort 1883 niet openstaat. Kun je met de MQTT-explorer op de MQTT-server van iobroker en de MQTT-server van HA connecten?

Acties:
  • 0 Henk 'm!

  • Fioravanti
  • Registratie: Maart 2006
  • Laatst online: 19:22

Fioravanti

Fioravantastisch!

Dat van het rode derde bolletje herken ik ook van mijn zoektocht. Die gaat pas op groen zodra er een linkje is gelegd.
Ik heb alles ook in aparte dockers draaien, en bewust extra/afwijkende poorten ingesteld. Daarna kreeg ik het pas ana de praat.

Acties:
  • 0 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Ik ben as we speak met een MQTT explorer onder windows aan het checken en ik krijg vanaf mijn laptop (dus ander ip adres) direct een connectie op IP en poort 1883. De MQTT broker draait in ieder geval en op poort 1883. Maar dat wist ik eigenijk al want mijn awtrix display werkt prima. Die zie ik ook netjes in de MQTT explorer voorbij komen (inclusief een shelly), dat deel werkt dus.
De iobroker stond inderdaad ook op 1883, maar als ik die naar 1884 verander (of iets anders) in de docker settings en dan dat gebruik in node red nog steeds geen resultaat.
Ik ben bang dat ik het toch ga opgeven voor nu. Grom...

Acties:
  • +1 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
DaGoose schreef op vrijdag 24 januari 2025 @ 19:49:
Ik ben as we speak met een MQTT explorer onder windows aan het checken en ik krijg vanaf mijn laptop (dus ander ip adres) direct een connectie op IP en poort 1883. De MQTT broker draait in ieder geval en op poort 1883. Maar dat wist ik eigenijk al want mijn awtrix display werkt prima. Die zie ik ook netjes in de MQTT explorer voorbij komen (inclusief een shelly), dat deel werkt dus.
De iobroker stond inderdaad ook op 1883, maar als ik die naar 1884 verander (of iets anders) in de docker settings en dan dat gebruik in node red nog steeds geen resultaat.
Ik ben bang dat ik het toch ga opgeven voor nu. Grom...
Als de iobroker op een ander IP-adres zit dan de VM hoef je de poort niet te veranderen, als je geen contact kunt leggen met de mqtt-server van iobroker, is of de poort op die container niet opengesteld of misschien gebruik je het verkeerde interne adres van de container ipv het IP-adres van de webinterface van iobroker.

Acties:
  • 0 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Ik had vannacht een eureka/duh moment, de iobroker draait uiteraard niet onder HA maar op mijn NAS, dus een ander IP-adres. Dus eigenlijk heel overtuigd vanmorgen een en ander getest, maar het yes moment bleef helaas uit.
Diverse poorten geprobeerd, maar ik krijg het niet voor elkaar. :/
Kunnen jullie wat met deze screenschots?Afbeeldingslocatie: https://tweakers.net/i/0RSG42pT3npMoFxhWeIf6CudyNw=/800x/filters:strip_exif()/f/image/xGtObOAZVYETxTPvjhKIXOLj.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/g0urRRKdZtH0KqhLyMGnOpyBE8s=/800x/filters:strip_exif()/f/image/uWtaf7SqWoBlIfGvGcZDhcRO.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/2v-_l-dwoEl1Vph8SA1ORQWZKGk=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/gS1jLnFiEbeMUrtLdOYINajw.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/BxcB7hM80dEJWt9MOHK3Dy0IcSI=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/KHnrQPdHQpfjVf29wjTiICSd.png?f=user_large

Uiteraard ook geprobeerd om de MQTT broker (staat nu op core-mosquitto) op andere manieren te gebruiken. Maar helaas..

Ik vraag mij af, zou er ergens iets in node-red verkeerd gaan? Dit is de eerste keer dat ik daarmee werk en dus ook flows bouw.

[ Voor 8% gewijzigd door DaGoose op 25-01-2025 10:48 ]


Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
@DaGoose Gebruik het IP adres ipv "core-mosquitto" eens?

Edit: Zo dus, dat is bij mij het IP adres van Home Assistant:
Afbeeldingslocatie: https://tweakers.net/i/l_8XG2THUMLdoaqAvbNlpOU6OPU=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/MoagGs3HLPfg6cKS4kdGrmlU.png?f=user_large

En hier ook:
Afbeeldingslocatie: https://tweakers.net/i/PJG1jx3a-UkVTorLfE0EekdHnLI=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/o0esMkXjZ1kQ3TVRJdEr4XR8.png?f=user_large

[ Voor 91% gewijzigd door Taro op 25-01-2025 11:00 ]

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • Fioravanti
  • Registratie: Maart 2006
  • Laatst online: 19:22

Fioravanti

Fioravantastisch!

Bij mij ziet de ioBroker docker er zo uit over de poorten:
1883/tcp | 5883 (deze wijkt dus af omdat er die andere MQTT er ook is)
8081/tcp | 7234

Dat in combinatie met de juiste ip-adressen moet iig werken.

[ Voor 65% gewijzigd door Fioravanti op 25-01-2025 11:06 ]


Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
Ik gebruik bij voorkeur ook de tutorials van Mariushosting voor het installeren van dergelijke tools op een Synology NAS: https://mariushosting.com...ker-on-your-synology-nas/.

Om die reden ziet die Synology pagina er bij mij dan ook waarschijnlijk anders uit.

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
Ik neem aan dat 192.168.1.200 het ipadres van je iobroker is? Dus ook het adres waarmee je de iobroker webinterface mee bereikt?

core-mosquitto is de interne verwijzing voor een HA MQTT-server dus niet goed in jou geval, je moet het ipadres gebruiken.

ik neem aan dat je bij de serverkenmerken ook je user/pw ingegeven hebt.

Het is me niet meer duidelijk wat er nu wel en niet werkt, kun je vanuit de mqtt explorer nu beide MQTT-servers bereiken? Zo niet eerst op dat niveau het oplossen en dan pas naar node-red gaan :)

Acties:
  • 0 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Ik heb er een heel groot vermoeden van dat het toch echt bij node-red verkeet gaat. Zojuist met mqtt explorer een connectie gemaakt naar de iobroker en dan krijg ik direct een connectie en is dus ook het 3e vinkje groen en daar staat dan ook bij dat hij geconnect is met mqtt-explorer.
Het lijkt er dus op dat zowel mqtt goed werkt maar ook de iobroker, maar dat de connectie ertussen dus verkeerd blijft gaan ook al vul ik dus exact hetzelfde in als in de mqtt explorer.
Afbeeldingslocatie: https://tweakers.net/i/rK__LI5lVcE4zRp4gq9aed-DqUw=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/OVXCoPXtaLWYAXV2rYQeWtft.png?f=user_large

Afbeeldingslocatie: https://tweakers.net/i/SQKQlRnyxEau65Mscjse_d1mGLQ=/800x/filters:strip_exif()/f/image/rcB4XxRyunyqZ9QTqusmyrnn.png?f=fotoalbum_large

Acties:
  • +1 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
DaGoose schreef op zaterdag 25 januari 2025 @ 17:23:
Ik heb er een heel groot vermoeden van dat het toch echt bij node-red verkeet gaat. Zojuist met mqtt explorer een connectie gemaakt naar de iobroker en dan krijg ik direct een connectie en is dus ook het 3e vinkje groen en daar staat dan ook bij dat hij geconnect is met mqtt-explorer.
Het lijkt er dus op dat zowel mqtt goed werkt maar ook de iobroker, maar dat de connectie ertussen dus verkeerd blijft gaan ook al vul ik dus exact hetzelfde in als in de mqtt explorer.
[Afbeelding]

[Afbeelding]
Je zou in de explorer, ook rechtstreeks op IOBroker, al een Zendure topic moeten zien. Dus daar gaat ook iets niet goed.

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • +1 Henk 'm!

  • geert1992
  • Registratie: Februari 2012
  • Laatst online: 22:53
Heb je bij de mqtt vanuit de io broker wel zendure-solarflow.0.* erbij gezet?

Acties:
  • +4 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
OK, the devil is in the details.. er stond bij mij bij de iobroker zendure-solarflow.0 ipv zendure-solarflow.0.*
Ik zie ook in MQTT explorer als ik in HA kijk ook de zendure sensoren terug.
Interresant om te zien hoe dit soort koppelingen nou eigenlijk werken, ook wat betreft MQTT een stuk erbij geleerd inmiddels.

Nu het vervolg, de MQTT sensoren aanmaken etc. Dat gaat ook een uitdaging worden denk ik maar ik ben dol op uitdagingen.
Daar komen vast ook vragen over. :)

Acties:
  • +1 Henk 'm!

  • geert1992
  • Registratie: Februari 2012
  • Laatst online: 22:53
Lekker bezig!

Acties:
  • +1 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
@Mediacj Stuur jij de Zendure handmatig aan via HA, of gebruik je scripts?

Ik stuur hier heel veel zaken aan met de Cheapest Hours integration, het laden zou mij prima lukken, het ontladen ook, maar het gaat erom dat er voldoende spread tussen zit om laadverliezen en afschrijving te dekken.

Vermoedelijk willen veel mensen die de Zendure in Home Assistant toevoegen deze ook automatisch slim laden en aan bijv. dynamische tarieven koppelen.

Voorbeeldje van een Cheapest Hours Jinja code voor de 4 goedkoopste uren:

Django/Jinja:
1
2
{% from 'cheapest_energy_hours.jinja' import cheapest_energy_hours %}
{{ cheapest_energy_hours('sensor.nordpool_kwh_nl_eur_4_09_021', attr_today='Today', hours=4, split=true, lowest=True, mode='is_now', value_key='price', time_key='time') }}


En bijv. de 5 duurste uren:
Django/Jinja:
1
2
{% from 'cheapest_energy_hours.jinja' import cheapest_energy_hours %}
{{ cheapest_energy_hours('sensor.nordpool_kwh_nl_eur_4_09_021', attr_today='Today', hours=5, split=true, lowest=False, mode='is_now', value_key='price', time_key='time') }}


Wat je hiermee kunt doen is bijv:

Trigger: Op ieder heel uur
Check:
  • In goedkoopste uren -> True -> Laden
  • In duurste uren -> True -> Ontladen
  • Niet in goedkoopste of duurste uren -> Niets doen
Op sommige dagen kan je 2 cycles maken, bijv. 's nachts opladen, rond 7:00-9:00 ontladen, rond 12:00 weer laden en rond 17:00 weer ontladen. Maar als de spread daarvoor veel te laag is maak je verlies ivm laadverliezen en afschrijving. Soms is 1 cycle beter en soms kan je beter helemaal geen cycle maken. Daarom wil ik niet in aaneengesloten uren denken, maar in uitschieters in pieken en dalen, vandaar ook de "split=true" optie in de Jinja code.

Er zijn integraties die bijv. kijken naar de zonne opwek vandaag en morgen, of je op basis van het verleden bijv. je EV gaat laden, de huidige SoC, etc. maar voor mij zou volstaan:
  • Het gemiddelde van de dag pakken
  • De uitschieters van die dag bepalen, bijv. een spread van minimaal 20% ivm laadverlies + 0,05 ct per kWh afschrijving (ik noem maar ff wat).
  • En of het aantal lage en aantal hoge uren dan matched qua aantal maakt mij niet zoveel uit, is ie leeg dan is ie leeg.
Er zijn binnen Cheapest Hours ook opties voor het ophalen van het gemiddelde, de uitschieters, etc.

Vraag: Is er iemand die zoiets al werkend heeft en/of mee wil denken? Is natuurlijk niet specifiek voor Zendure, maar zou wel super gaaf zijn als we én de aansturing via HA werkend hebben en automatisch handelen incl. daarbinnen de aansturing van de Zendure, zodat anderen dat kunnen copy pasten :)

Mocht dit hier als offtopic gezien worden, dan start ik er wel een apart topic voor.

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Even wat aan het proberen met yaml codes om te kijken of ik een en ander kan uitlezen, maar ik loop al vast (sorry..)

In mijn configuration.yaml staat dit:

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
mqtt: !include mqtt.yaml

Vervolgens heb ik een mqtt.yaml aangemaakt en daar onderstaande code gebruikt.

- name: "batt import vandaag"
unique_id: "YtegehSbattwwwzwuhwhhwilpttvs"
state_topic: "zendure-solarflow/0/gDa3tb/21FrqYxx/calculations/gridInputEnergyTodaykWh"
unit_of_measurement: "kWh"
device_class: "energy"
value_template: >
{% if states('sensor.zendure_batt_import_vandaag') not in ['unknown'] %}
{{ value_json }}
{% else %}
{{ int(0) }}
{% endif %}
state_class: "measurement"
device:
name: "Zendure"
identifiers: "EE1LYMGJM3200xx"
manufacturer: "Zendure"
model: "Hyper 2000"

xx is 2 karakters hier weggehaald maar staan wel juist uiteraard :)

Maar dan krijg ik na een reboot van de yaml's direct deze melding:
Validation error: Invalid config for integration mqtt at /config/mqtt.yaml, line 1: extra keys not allowed @ data['mqtt'][0]['name']

Ik vermoed dat het iets met de unique_ID te maken heeft? Waar is deze op gebaseerd? Waar komt hij vandaan? Ik kan daar niks over terugvinden.
Zal vast een noob vraag zijn, maar ik leer graag :)

Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
DaGoose schreef op zondag 26 januari 2025 @ 16:44:
Even wat aan het proberen met yaml codes om te kijken of ik een en ander kan uitlezen, maar ik loop al vast (sorry..)

In mijn configuration.yaml staat dit:

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
themes: !include_dir_merge_named themes

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
mqtt: !include mqtt.yaml

Vervolgens heb ik een mqtt.yaml aangemaakt en daar onderstaande code gebruikt.

- name: "batt import vandaag"
unique_id: "YtegehSbattwwwzwuhwhhwilpttvs"
state_topic: "zendure-solarflow/0/gDa3tb/21FrqYxx/calculations/gridInputEnergyTodaykWh"
unit_of_measurement: "kWh"
device_class: "energy"
value_template: >
{% if states('sensor.zendure_batt_import_vandaag') not in ['unknown'] %}
{{ value_json }}
{% else %}
{{ int(0) }}
{% endif %}
state_class: "measurement"
device:
name: "Zendure"
identifiers: "EE1LYMGJM3200xx"
manufacturer: "Zendure"
model: "Hyper 2000"

xx is 2 karakters hier weggehaald maar staan wel juist uiteraard :)

Maar dan krijg ik na een reboot van de yaml's direct deze melding:
Validation error: Invalid config for integration mqtt at /config/mqtt.yaml, line 1: extra keys not allowed @ data['mqtt'][0]['name']

Ik vermoed dat het iets met de unique_ID te maken heeft? Waar is deze op gebaseerd? Waar komt hij vandaan? Ik kan daar niks over terugvinden.
Zal vast een noob vraag zijn, maar ik leer graag :)
Heb je wel als eerste regel sensor: opgenomen in je mqtt.yaml?
YAML:
1
2
3
4
5
6
7
sensor:
  - name: "batt import vandaag"
    unique_id: "W2BE3DESbattwwwzwuhwhhwilpttvs"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/gridInputEnergyTodaykWh"
    unit_of_measurement: "kWh"
    device_class: "energy"
    etc....

Acties:
  • +2 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Mediacj schreef op zondag 26 januari 2025 @ 16:48:
[...]

Heb je wel als eerste regel sensor: opgenomen in je mqtt.yaml?
YAML:
1
2
3
4
5
6
7
sensor:
  - name: "batt import vandaag"
    unique_id: "W2BE3DESbattwwwzwuhwhhwilpttvs"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/gridInputEnergyTodaykWh"
    unit_of_measurement: "kWh"
    device_class: "energy"
    etc....
Nu wel!
Yes! Ik heb beeld :)
Held!

Acties:
  • +1 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
Taro schreef op zondag 26 januari 2025 @ 16:07:
@Mediacj Stuur jij de Zendure handmatig aan via HA, of gebruik je scripts?

Ik stuur hier heel veel zaken aan met de Cheapest Hours integration, het laden zou mij prima lukken, het ontladen ook, maar het gaat erom dat er voldoende spread tussen zit om laadverliezen en afschrijving te dekken.

Vermoedelijk willen veel mensen die de Zendure in Home Assistant toevoegen deze ook automatisch slim laden en aan bijv. dynamische tarieven koppelen.

Voorbeeldje van een Cheapest Hours Jinja code voor de 4 goedkoopste uren:

Django/Jinja:
1
2
{% from 'cheapest_energy_hours.jinja' import cheapest_energy_hours %}
{{ cheapest_energy_hours('sensor.nordpool_kwh_nl_eur_4_09_021', attr_today='Today', hours=4, split=true, lowest=True, mode='is_now', value_key='price', time_key='time') }}


En bijv. de 5 duurste uren:
Django/Jinja:
1
2
{% from 'cheapest_energy_hours.jinja' import cheapest_energy_hours %}
{{ cheapest_energy_hours('sensor.nordpool_kwh_nl_eur_4_09_021', attr_today='Today', hours=5, split=true, lowest=False, mode='is_now', value_key='price', time_key='time') }}


Wat je hiermee kunt doen is bijv:

Trigger: Op ieder heel uur
Check:
  • In goedkoopste uren -> True -> Laden
  • In duurste uren -> True -> Ontladen
  • Niet in goedkoopste of duurste uren -> Niets doen
Op sommige dagen kan je 2 cycles maken, bijv. 's nachts opladen, rond 7:00-9:00 ontladen, rond 12:00 weer laden en rond 17:00 weer ontladen. Maar als de spread daarvoor veel te laag is maak je verlies ivm laadverliezen en afschrijving. Soms is 1 cycle beter en soms kan je beter helemaal geen cycle maken. Daarom wil ik niet in aaneengesloten uren denken, maar in uitschieters in pieken en dalen, vandaar ook de "split=true" optie in de Jinja code.

Er zijn integraties die bijv. kijken naar de zonne opwek vandaag en morgen, of je op basis van het verleden bijv. je EV gaat laden, de huidige SoC, etc. maar voor mij zou volstaan:
  • Het gemiddelde van de dag pakken
  • De uitschieters van die dag bepalen, bijv. een spread van minimaal 20% ivm laadverlies + 0,05 ct per kWh afschrijving (ik noem maar ff wat).
  • En of het aantal lage en aantal hoge uren dan matched qua aantal maakt mij niet zoveel uit, is ie leeg dan is ie leeg.
Er zijn binnen Cheapest Hours ook opties voor het ophalen van het gemiddelde, de uitschieters, etc.

Vraag: Is er iemand die zoiets al werkend heeft en/of mee wil denken? Is natuurlijk niet specifiek voor Zendure, maar zou wel super gaaf zijn als we én de aansturing via HA werkend hebben en automatisch handelen incl. daarbinnen de aansturing van de Zendure, zodat anderen dat kunnen copy pasten :)

Mocht dit hier als offtopic gezien worden, dan start ik er wel een apart topic voor.
Ik stuur mijn batterijen wel met scripts aan voor NOM en dynamisch laden zoals bekend, maar niet voor het reageren op prijzen. Dit omdat ik me tot nu toe enkel op productie-overshot concentreer en nog geen dynamisch contract heb.

Maar ik wil zeker met je meedenken/meehelpen om het voor HA mogelijk te maken maar dan denk ik wel dat het een eigen topic verdient en we het breder moeten maken zoals jezelf ook al aangaf dit is niet Zendure specifiek.

Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
DaGoose schreef op zondag 26 januari 2025 @ 16:44:
Ik vermoed dat het iets met de unique_ID te maken heeft? Waar is deze op gebaseerd? Waar komt hij vandaan? Ik kan daar niks over terugvinden.
Het unique_id is niets anders dan een uniek kenmerk wat je aan een sensor kunt koppelen, als je dat gedaan hebt kun je binnen HA de kenmerken van die sensor bekijken en gedeeltelijk aanpassen.

Wat je daar voor string gebruikt moet jezelf weten als het maar uniek is.

Acties:
  • 0 Henk 'm!

  • geert1992
  • Registratie: Februari 2012
  • Laatst online: 22:53
Taro schreef op zondag 26 januari 2025 @ 16:07:
@Mediacj Stuur jij de Zendure handmatig aan via HA, of gebruik je scripts?

Ik stuur hier heel veel zaken aan met de Cheapest Hours integration, het laden zou mij prima lukken, het ontladen ook, maar het gaat erom dat er voldoende spread tussen zit om laadverliezen en afschrijving te dekken.

Vermoedelijk willen veel mensen die de Zendure in Home Assistant toevoegen deze ook automatisch slim laden en aan bijv. dynamische tarieven koppelen.

Voorbeeldje van een Cheapest Hours Jinja code voor de 4 goedkoopste uren:

Django/Jinja:
1
2
{% from 'cheapest_energy_hours.jinja' import cheapest_energy_hours %}
{{ cheapest_energy_hours('sensor.nordpool_kwh_nl_eur_4_09_021', attr_today='Today', hours=4, split=true, lowest=True, mode='is_now', value_key='price', time_key='time') }}


En bijv. de 5 duurste uren:
Django/Jinja:
1
2
{% from 'cheapest_energy_hours.jinja' import cheapest_energy_hours %}
{{ cheapest_energy_hours('sensor.nordpool_kwh_nl_eur_4_09_021', attr_today='Today', hours=5, split=true, lowest=False, mode='is_now', value_key='price', time_key='time') }}


Wat je hiermee kunt doen is bijv:

Trigger: Op ieder heel uur
Check:
  • In goedkoopste uren -> True -> Laden
  • In duurste uren -> True -> Ontladen
  • Niet in goedkoopste of duurste uren -> Niets doen
Op sommige dagen kan je 2 cycles maken, bijv. 's nachts opladen, rond 7:00-9:00 ontladen, rond 12:00 weer laden en rond 17:00 weer ontladen. Maar als de spread daarvoor veel te laag is maak je verlies ivm laadverliezen en afschrijving. Soms is 1 cycle beter en soms kan je beter helemaal geen cycle maken. Daarom wil ik niet in aaneengesloten uren denken, maar in uitschieters in pieken en dalen, vandaar ook de "split=true" optie in de Jinja code.

Er zijn integraties die bijv. kijken naar de zonne opwek vandaag en morgen, of je op basis van het verleden bijv. je EV gaat laden, de huidige SoC, etc. maar voor mij zou volstaan:
  • Het gemiddelde van de dag pakken
  • De uitschieters van die dag bepalen, bijv. een spread van minimaal 20% ivm laadverlies + 0,05 ct per kWh afschrijving (ik noem maar ff wat).
  • En of het aantal lage en aantal hoge uren dan matched qua aantal maakt mij niet zoveel uit, is ie leeg dan is ie leeg.
Er zijn binnen Cheapest Hours ook opties voor het ophalen van het gemiddelde, de uitschieters, etc.

Vraag: Is er iemand die zoiets al werkend heeft en/of mee wil denken? Is natuurlijk niet specifiek voor Zendure, maar zou wel super gaaf zijn als we én de aansturing via HA werkend hebben en automatisch handelen incl. daarbinnen de aansturing van de Zendure, zodat anderen dat kunnen copy pasten :)

Mocht dit hier als offtopic gezien worden, dan start ik er wel een apart topic voor.
Erg geïnteresseerd! Nu doe ik dit door middel van taken binnen de zendure app gezien je de prijzen van de volgende dag niet kan zien in de zendure app, en de afronding die plaats vind.

Wilde dit maken met een advanced flow binnen mijn homey pro, alleen lukt het mij niet om de mqtt gegevens aan te passen vanuit homey. Ale even gekeken met @Mediacj maar niet veel verder gekomen helaas.

Misschien intressant dit ook eens te vragen in de andere topics?

Acties:
  • +2 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Inmiddels al een en ander draaien wat betreft uitlezen en ook al even naar mijn awtrix gestuurd. Mijn vrouw is een weekend weg dus zal zich vast afvragen wat dat voor melding is (of niet...)Afbeeldingslocatie: https://tweakers.net/i/uQyeC1Ywx6Sese2cJ8ertAsNT9g=/800x/filters:strip_icc():strip_exif()/f/image/w2boV7q8iAiV7wtmlqTguL7F.jpg?f=fotoalbum_large

[ Voor 9% gewijzigd door DaGoose op 26-01-2025 18:00 ]


Acties:
  • 0 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Erg blij dat ik dit al goed aan de gang heb gekregen, inmiddels al een en ander ingericht. De nerd in mij wordt altijd erg blij van dit soort dingen. :) Nogmaals, thanks voor jullie hulp!

Ik vraag mij trouwens af, we hebben ook een 'laadtijd tot vol' sensor, maar in de app zelf staat daar eigenlijk ook nooit een tijd bij (bij mij niet in ieder geval, alleen bij ontladen), dus 'logischerwijs' staat deze op 0 in HA.
Iemand een idee hoe dat zit?

Valt mij trouwens ook op dat je in je zendure account wat je voor de iobroker gebruikt eerst ook wat settings moet maken voordat hij de waardes goed overneemt als je ook de app gebruikt.
Als je bijvoorbeeld de AC input limit in het iobroker account nog op 800 watt hebt staan, dan kun je hem wel in de app (met je andere account) op 1200watt zetten, maar dan laat hij deze sensor waarde tot max 800watt zien. Als je hem in de app op het iobroker account ook op 1200 watt zet, dan laat hij wel de juiste waarde boven de 800watt zien. Hoewel ik ook zag dat hij als je hem precies op 800watt zet dat hij dan niet update. Zitten dus denk ik nog wat rare dingen in de api, en/of de app.

Next up, node-red flows >:)

Acties:
  • +1 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
DaGoose schreef op zondag 26 januari 2025 @ 19:31:
Ik vraag mij trouwens af, we hebben ook een 'laadtijd tot vol' sensor, maar in de app zelf staat daar eigenlijk ook nooit een tijd bij (bij mij niet in ieder geval, alleen bij ontladen), dus 'logischerwijs' staat deze op 0 in HA.
Iemand een idee hoe dat zit?
Ja ik heb ze beide al gezien met realistische waarden maar regelmatig krijg je inderdaad helemaal niets te zien ondanks dat er een proces van laden/ontladen bezig is. Niet niet erg stabiel blijkbaar.

Acties:
  • +2 Henk 'm!

  • Silent Hunter
  • Registratie: Oktober 2002
  • Laatst online: 02-06 21:09
Bedankt voor de handig guide @Mediacj, duurde even maar als het eenmaal werkt is het best peanuts.

Heb zelf het e.e.a zitten klooien in Node-RED tot de vroegen uurtjes en heb nu bijna alles zoals ik het wil zodat het volledig dynamisch werkt, inclusief automatisch laden/ontladen.
  • Gebruik gemaakt van jouw Net 0 met wat marge
  • Prijs tracking in array voor gemiddelde 'kWh ontlaad' target prijs[/i]
  • Automatisch ontladen op basis van marge/target prijs
  • Dynamische laad-limieten op basis van marge/target prijs
  • Handmatige overrides
  • Dubbel check voor grid teruglevering, just in case
Omdat ik mijn (*balkon)panelen niet op de H2000 heb aangesloten pak ik wat verliezen, maar ach, waarschijnlijk niet super efficient, maar hey, het werkt. :9

Afbeeldingslocatie: https://tweakers.net/i/9MLPVhKXm8uNl6coregN004TGuI=/800x/filters:strip_exif()/f/image/pP3m5CTCX3FxXjqoJ7Xi95UJ.png?f=fotoalbum_large

[ Voor 3% gewijzigd door Silent Hunter op 27-01-2025 20:31 ]

12.4 kWh Thuisbatterijen + 1.8kWp balkon systeem - 5kW Zendure Units - Doet iets met content voor batterijen


Acties:
  • +1 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
Silent Hunter schreef op maandag 27 januari 2025 @ 20:28:
Bedankt voor de handig guide @Mediacj, duurde even maar als het eenmaal werkt is het best peanuts.

Heb zelf het e.e.a zitten klooien in Node-RED tot de vroegen uurtjes en heb nu bijna alles zoals ik het wil zodat het volledig dynamisch werkt, inclusief automatisch laden/ontladen.
  • Gebruik gemaakt van jouw Net 0 met wat marge
  • Automatisch ontladen op basis van marge/target prijs
  • Dynamische laad-limieten op basis van marge/target prijs
  • Handmatige overrides
  • Dubbel check voor grid teruglevering, just in case
Omdat ik mijn (*balkon)panelen niet op de H2000 heb aangesloten pak ik wat verliezen, maar ach, waarschijnlijk niet super efficient, maar hey, het werkt. :9

[Afbeelding]
Mooi! Leuk dat je het hebt kunnen gebruiken en helemaal naar je hand gezet hebt!

Denk dat er misschien nog wel mensen geinteresseerd zijn in het werken met marge/target flows.

Acties:
  • +2 Henk 'm!

  • Silent Hunter
  • Registratie: Oktober 2002
  • Laatst online: 02-06 21:09
https://server.jaysmedia.work/s/Db2bQePt2igJyfG

Voor de liefhebber.

- Dynamic Import Limits (function script) heeft import limieten op basis van target prijzen die ik v.u HA haal, en dan log-schaal van 25 naar 1000, op basis van hoever de prijs onder mijn target-prijs ligt en dichterbij de laagste prijs die bekend is via zonneplan api
- De rest zijn vooral checks en balances; stop met (ont)laden wanneer prijs onder/boven mijn 'gemiddelde' prijs per kWh ligt die berekend en gezet wordt in Avg Charge Price, wat een array bijhoudt in NR
- Reset de prijs wanneer batterij < 11% SoC komt en begin met laden wanneer prijs (het) laag(st) is en z.s.m i.c.m Dynamic Import Limits:
code:
1
2
3
4
5
6
7
8
{
      "value": 56.55,
      "triggered": "curr_price <= 0.2398328 and log-scaled",
      "curr_price": 0.2317378,
      "min_price": 0.1948328,
      "high_threshold": 0.2398328,
      "normal_threshold": 0.2198328
    }


:)

12.4 kWh Thuisbatterijen + 1.8kWp balkon systeem - 5kW Zendure Units - Doet iets met content voor batterijen


Acties:
  • +3 Henk 'm!

  • geert1992
  • Registratie: Februari 2012
  • Laatst online: 22:53
Inmiddels heb ik de koppeling kunnen maken met mijn Homey Pro.
In de 'Power by the Hour'-app zit een ingebouwde ROI-functionaliteit die alles bijhoudt en waarmee je een conditie kunt instellen voor het minimale prijsverschil tussen de bekende prijzen. Hierdoor werd het maken van een flow een fluitje van een cent.

Alle credits aan @Mediacj voor alle hulp! En geduld, haha.

Acties:
  • 0 Henk 'm!

  • debruina16
  • Registratie: Oktober 2019
  • Laatst online: 18:28
Mij is het ook gelukt om de koppeling te maken. Bedankt voor de instructie!

Voor nu gebruik ik het niet om te schrijven. De shelly regelt dat verder prima op dit moment.

Merk wel dat bij sommige waarden de wijzigingen niet worden opgepikt door homeassistant. Wellicht ligt dat ook aan de API. Maar bijvoorbeeld als de zendure leeg is dan zie ik de status van discharging naar idle gaan maar blijft de "AC power uit" op dezelfde waarde hangen (niet null). In de app staat het dan wel goed. Regelmatig ook bij andere waardes. Ik zie dat diverse mensen dat probleem hebben. Ik weet dat de api alleen gewijzigde waardes stuurt maar blijkbaar ook niet altijd 0 waardes. Op zich met een automatisering in HA op te lossen maar het blijft knutsel werk.

Ik zie overigens dat deze gast: https://github.com/reinha...w-control/tree/master/doc (helemaal onderaan de pagina) een manier heeft om de HUB een commando te sturen waarna de hub reageert met alle waardes. Ik krijgt dat niet aan de praat maar mogelijk werkt dat alleen met lokale aansturen (wat hij heeft)

Iemand andere creatieve oplossingen?

Acties:
  • +1 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
debruina16 schreef op woensdag 29 januari 2025 @ 14:22:
Mij is het ook gelukt om de koppeling te maken. Bedankt voor de instructie!

Voor nu gebruik ik het niet om te schrijven. De shelly regelt dat verder prima op dit moment.

Merk wel dat bij sommige waarden de wijzigingen niet worden opgepikt door homeassistant. Wellicht ligt dat ook aan de API. Maar bijvoorbeeld als de zendure leeg is dan zie ik de status van discharging naar idle gaan maar blijft de "AC power uit" op dezelfde waarde hangen (niet null). In de app staat het dan wel goed. Regelmatig ook bij andere waardes. Ik zie dat diverse mensen dat probleem hebben. Ik weet dat de api alleen gewijzigde waardes stuurt maar blijkbaar ook niet altijd 0 waardes. Op zich met een automatisering in HA op te lossen maar het blijft knutsel werk.

Ik zie overigens dat deze gast: https://github.com/reinha...w-control/tree/master/doc (helemaal onderaan de pagina) een manier heeft om de HUB een commando te sturen waarna de hub reageert met alle waardes. Ik krijgt dat niet aan de praat maar mogelijk werkt dat alleen met lokale aansturen (wat hij heeft)

Iemand andere creatieve oplossingen?
Mooi dat het gelukt is :)

Ja sommige waarden komen niet meteen of later pas door terwijl ze in de app al wel ge-update zijn, de api is wat dat betreft niet altijd accuraat, maar over het algemeen is er goed mee te werken en het belangrijkste de schrijfopdrachten worden allemaal meteen uitgevoerd.

Interessant dat HUB commando, zal er eens naar kijken!

EDIT:
Ik krijg de statussen met dat commando ook niet geüpdatet. Ik heb er een vraag over gesteld op GitHub, want het zou wel handig zijn als dat werkt.

[ Voor 4% gewijzigd door Mediacj op 29-01-2025 17:51 ]


Acties:
  • 0 Henk 'm!

  • geert1992
  • Registratie: Februari 2012
  • Laatst online: 22:53
Mediacj schreef op woensdag 29 januari 2025 @ 16:12:
[...]

Mooi dat het gelukt is :)

Ja sommige waarden komen niet meteen of later pas door terwijl ze in de app al wel ge-update zijn, de api is wat dat betreft niet altijd accuraat, maar over het algemeen is er goed mee te werken en het belangrijkste de schrijfopdrachten worden allemaal meteen uitgevoerd.

Interessant dat HUB commando, zal er eens naar kijken!

EDIT:
Ik krijg de statussen met dat commando ook niet geüpdatet. Ik heb er een vraag over gesteld op GitHub, want het zou wel handig zijn als dat werkt.
Weet je intussen al meer? Zou echt een upgrade zijn.

Acties:
  • +1 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
geert1992 schreef op vrijdag 31 januari 2025 @ 15:21:
[...]


Weet je intussen al meer? Zou echt een upgrade zijn.
Nee hoor ik heb nog geen reactie gekregen.

Acties:
  • +1 Henk 'm!

  • geert1992
  • Registratie: Februari 2012
  • Laatst online: 22:53
Mocht iemand anders een homey hebben die graag alle sensoren zichtbaar wil maken.
Je hebt hiervoor de mosquitto mqtt client en de mqtt hub apps nodig, te vinden in de homey store.

Eerst moet je zorgen dat de mqtt broker van de io-broker vanuit buiten te benaderen is, dit doe je door de poort open te zetten van de container waar hij de mqtt broker op communiceert, in mijn geval 1882.
Je maakt met de mosquitto broker binnen homey connectie naar je opgezette mqtt broker in de IO-broker.

Dan voeg je een nieuw mqtt hub apparaat toe, kies je batterij, druk je op volgende als er gevraagd word op capabilities toe te voegen. Dan klik je op het nieuw gemaakte apparaat en klik je op instellingen en voeg je bij topics het onderstaande toe.

Let wel op dat je <device-id> vervangt door jouw device-id en ook het serienummer van batterijen bij <battery-serial-number>.

code:
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
{
  "meter_power": {
    "capability": "meter_power",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/calculations/gridInputEnergyTodaykWh",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "batt import vandaag"
  },
  "meter_power.1": {
    "capability": "meter_power",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/calculations/outputHomeEnergyTodaykWh",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "batt export vandaag"
  },
  "measure_number": {
    "capability": "measure_number",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/control/acMode",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "acmode"
  },
  "measure_power": {
    "capability": "measure_power",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/packInputPower",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "pack input act"
  },
  "measure_power.1": {
    "capability": "measure_power",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/outputHomePower",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "output home act"
  },
  "measure_number.1": {
    "capability": "measure_number",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/remainOutTime",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "ontlaadtijd tot leeg"
  },
  "measure_power.2": {
    "capability": "measure_power",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/outputPackPower",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "batt input act"
  },
  "measure_number.2": {
    "capability": "measure_number",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/remainInputTime",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "laadtijd tot vol"
  },
  "measure_battery.1": {
    "capability": "measure_battery",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/packData/<battery-serial-number>/socLevel",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "Batt 1 soc"
  },
  "measure_battery.2": {
    "capability": "measure_battery",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/packData/<battery-serial-number>/socLevel",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "batt 2 soc"
  },
  "measure_temperature": {
    "capability": "measure_temperature",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/packData/<battery-serial-number>/maxTemp",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "batt 1 max temp"
  },
  "measure_temperature.1": {
    "capability": "measure_temperature",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/packData/<battery-serial-number>/maxTemp",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "batt 2 max temp"
  },
  "measure_temperature.2": {
    "capability": "measure_temperature",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/hyperTmp",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "Hyper temp"
  },
  "measure_number.3": {
    "capability": "measure_number",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/outputLimit",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "output limit"
  },
  "measure_number.4": {
    "capability": "measure_number",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/inputLimit",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "input limit"
  },
  "measure_power.3": {
    "capability": "measure_power",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/packInputPower",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "pack input power"
  },
  "measure_power.5": {
    "capability": "measure_power",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/gridInputPower",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "grid input act"
  },
  "measure_power.4": {
    "capability": "measure_power",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/acOutputPower",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "ac output act"
  },
  "measure_battery": {
    "capability": "measure_battery",
    "stateTopic": "zendure-solarflow/0/gDa3tb/<device-id/electricLevel",
    "setTopic": "",
    "valueTemplate": "",
    "outputTemplate": "",
    "displayName": "Batt soc"
  }
}

[ Voor 72% gewijzigd door geert1992 op 03-02-2025 11:41 ]


Acties:
  • 0 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Ik dacht, laat ik is de zendure in de energy settings erbij gooien onder battery.
Ik krijg dan keurig 2 entities te zien, ik krijg dan alleen als feedfback onderstaande:

Last reset missing
The following entities have state class 'measurement' but 'last_reset' is missing:
sensor.zendure_batt_export_vandaag
sensor.zendure_batt_import_vandaag


Dit is mijn code (welke dus wel goed werkt verder):

sensor:
- name: "batt import vandaag"
unique_id: "YtegehSbattwwwzwuhwhhwilpttvs"
state_topic: "zendure-solarflow/0/gDa3tb/21FrqY0g/calculations/gridInputEnergyTodaykWh"
unit_of_measurement: "kWh"
device_class: "energy"
value_template: >
{% if states('sensor.zendure_batt_import_vandaag') not in ['unknown'] %}
{{ value_json }}
{% else %}
{{ int(0) }}
{% endif %}
state_class: "measurement"
device:
name: "Zendure"
identifiers: "EE1LYMGJM320XXX"
manufacturer: "Zendure"
model: "Hyper 2000"

- name: "batt export vandaag"
unique_id: "YtegehSbattexpvd"
state_topic: "zendure-solarflow/0/gDa3tb/21FrqY0g/calculations/outputHomeEnergyTodaykWh"
unit_of_measurement: "kWh"
device_class: "energy"
value_template: >
{% if states('sensor.zendure_batt_export_vandaag') not in ['unknown'] %}
{{ value_json }}
{% else %}
{{ int(0) }}
{% endif %}
state_class: "measurement"
device:
name: "Zendure"
identifiers: "EE1LYMGJM320XXX"
manufacturer: "Zendure"
model: "Hyper 2000"


Heb hem ook al een dag of 2 laten draaien, ik denk misschien moet hij zijn reset waarde nog bepalen OID, maar helaas, geen data en nog steeds deze melding.
Ik zie wel gewoon data in de intetities zelf dus dat gaat goed.
Ik heb het idee dat er misschien nog ergens een auto reset in de mqtt.yaml bij moet?Of mis is ik iets anders?
Geen idee hoe en wat alleen :)

Acties:
  • +1 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
DaGoose schreef op woensdag 5 februari 2025 @ 11:30:
Ik dacht, laat ik is de zendure in de energy settings erbij gooien onder battery.
Ik krijg dan keurig 2 entities te zien, ik krijg dan alleen als feedfback onderstaande:

Last reset missing
The following entities have state class 'measurement' but 'last_reset' is missing:
sensor.zendure_batt_export_vandaag
sensor.zendure_batt_import_vandaag


Dit is mijn code (welke dus wel goed werkt verder):

sensor:
- name: "batt import vandaag"
unique_id: "YtegehSbattwwwzwuhwhhwilpttvs"
state_topic: "zendure-solarflow/0/gDa3tb/21FrqY0g/calculations/gridInputEnergyTodaykWh"
unit_of_measurement: "kWh"
device_class: "energy"
value_template: >
{% if states('sensor.zendure_batt_import_vandaag') not in ['unknown'] %}
{{ value_json }}
{% else %}
{{ int(0) }}
{% endif %}
state_class: "measurement"
device:
name: "Zendure"
identifiers: "EE1LYMGJM320XXX"
manufacturer: "Zendure"
model: "Hyper 2000"

- name: "batt export vandaag"
unique_id: "YtegehSbattexpvd"
state_topic: "zendure-solarflow/0/gDa3tb/21FrqY0g/calculations/outputHomeEnergyTodaykWh"
unit_of_measurement: "kWh"
device_class: "energy"
value_template: >
{% if states('sensor.zendure_batt_export_vandaag') not in ['unknown'] %}
{{ value_json }}
{% else %}
{{ int(0) }}
{% endif %}
state_class: "measurement"
device:
name: "Zendure"
identifiers: "EE1LYMGJM320XXX"
manufacturer: "Zendure"
model: "Hyper 2000"


Heb hem ook al een dag of 2 laten draaien, ik denk misschien moet hij zijn reset waarde nog bepalen OID, maar helaas, geen data en nog steeds deze melding.
Ik zie wel gewoon data in de intetities zelf dus dat gaat goed.
Ik heb het idee dat er misschien nog ergens een auto reset in de mqtt.yaml bij moet?Of mis is ik iets anders?
Geen idee hoe en wat alleen :)
Waarschijnlijk krijg je die melding omdat de state_class: total_increasing moet zijn.

Je dagtellers zijn daar niet geschikt voor want die worden iedere nacht weer op 0 gezet. Je hebt dus een teller nodig die door blijft lopen. Ik doe dat met een smartstekker aan mijn Zendure.

Je zou wel een aparte totaal template sensor kunnen maken die iedere dag om 23:59 de dagwaarde optelt zodat je een total_increasing krijgt.

Acties:
  • +2 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
Iets anders, heb net deze template sensor toegevoegd, deze zet de acmode code[0,1,2,3] om in een leesbare status: laden/ontladen/standbye

YAML:
1
2
3
4
5
6
7
8
9
10
11
  - name: "Zendure AC Mode Status"
    unique_id: "zendure_ac_mode_statusww2"
    state: >
      {% set mode = states('sensor.zendure_acmode') | int(default=0) %}
      {% if mode == 1 %}
        Laden
      {% elif mode == 2 %}
        Ontladen
      {% else %}
        Standby
      {% endif %}

Acties:
  • 0 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Mediacj schreef op woensdag 5 februari 2025 @ 12:23:
[...]

Waarschijnlijk krijg je die melding omdat de state_class: total_increasing moet zijn.

Je dagtellers zijn daar niet geschikt voor want die worden iedere nacht weer op 0 gezet. Je hebt dus een teller nodig die door blijft lopen. Ik doe dat met een smartstekker aan mijn Zendure.

Je zou wel een aparte totaal template sensor kunnen maken die iedere dag om 23:59 de dagwaarde optelt zodat je een total_increasing krijgt.
Ja, ik dacht al dat het zoiets zou moeten zijn. Zoiets zou code technisch te schrijven moeten zijn denk ik?Maar eerlijk gezegd, werkelijk geen flauw idee hoe ik dat zou moeten doen. 8)
Smartstekker ertussen vindt ik niet zo'n goede optie eerlijk gezegd, ook omdat mijn hyper buiten onder een afdak staat.

laden/ontladen/standbye, dat is inderdaad handiger dan 0 1 2. Ga ik eens kijken hoe dat werkt, lijkt straight forward.

Acties:
  • +2 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
DaGoose schreef op woensdag 5 februari 2025 @ 13:00:
[...]


Ja, ik dacht al dat het zoiets zou moeten zijn. Zoiets zou code technisch te schrijven moeten zijn denk ik?Maar eerlijk gezegd, werkelijk geen flauw idee hoe ik dat zou moeten doen. 8)
Smartstekker ertussen vindt ik niet zo'n goede optie eerlijk gezegd, ook omdat mijn hyper buiten onder een afdak staat.

laden/ontladen/standbye, dat is inderdaad handiger dan 0 1 2. Ga ik eens kijken hoe dat werkt, lijkt straight forward.
Ik help je even :)

Maak een input number helper aan in HA(input_number.zendure_batt_export_totaal) en voeg onderstaande HA automation toe in de yaml:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
alias: "Zendure batterij export optellen"
trigger:
  - platform: time
    at: "23:59:00"
condition: []
action:
  - service: input_number.set_value
    data:
      entity_id: input_number.zendure_batt_export_totaal
      value: >
        {{ (states('input_number.zendure_batt_export_totaal') | float(0) +
            states('sensor.zendure_batt_export_vandaag') | float(0)) | round(3) }}
mode: single


Ik heb hem niet getest dus hopelijk werkt het! Zelfde kun je voor import doen.

Acties:
  • +1 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
Mediacj schreef op woensdag 5 februari 2025 @ 16:47:
[...]

Ik help je even :)

Maak een input number helper aan in HA(input_number.zendure_batt_export_totaal) en voeg onderstaande HA automation toe in de yaml:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
alias: "Zendure batterij export optellen"
trigger:
  - platform: time
    at: "23:59:00"
condition: []
action:
  - service: input_number.set_value
    data:
      entity_id: input_number.zendure_batt_export_totaal
      value: >
        {{ (states('input_number.zendure_batt_export_totaal') | float(0) +
            states('sensor.zendure_batt_export_vandaag') | float(0)) | round(3) }}
mode: single


Ik heb hem niet getest dus hopelijk werkt het! Zelfde kun je voor import doen.
Thanks! Alleen zat ik al direct vast met de input number helper. Ik zie de helpers uiteraard, maar geen input number.
Ik ben totaal geen programmeur of iets, voor mijn bedrijf huur ik daar zelfs iemand voor in. Ik weet wel iets, maar ben meer een drag en drop persoon. Code lezen en schrijven is voor mij net zo onoverzichtelijk als de kleur 9 die naar kaneel ruikt tijdens een niesbui in een bocht naar rechts op de rotonde naar links in een engelse auto. :P

Acties:
  • +1 Henk 'm!

  • geert1992
  • Registratie: Februari 2012
  • Laatst online: 22:53
DaGoose schreef op donderdag 6 februari 2025 @ 09:37:
[...]

Thanks! Alleen zat ik al direct vast met de input number helper. Ik zie de helpers uiteraard, maar geen input number.
Ik ben totaal geen programmeur of iets, voor mijn bedrijf huur ik daar zelfs iemand voor in. Ik weet wel iets, maar ben meer een drag en drop persoon. Code lezen en schrijven is voor mij net zo onoverzichtelijk als de kleur 9 die naar kaneel ruikt tijdens een niesbui in een bocht naar rechts op de rotonde naar links in een engelse auto. :P
Wanneer komt je programmeur weer langs? 8)7

Acties:
  • +1 Henk 'm!

  • DaGoose
  • Registratie: Januari 2025
  • Laatst online: 21:46
geert1992 schreef op donderdag 6 februari 2025 @ 09:39:
[...]


Wanneer komt je programmeur weer langs? 8)7
Waarschijnlijk morgen maar ik ga hem hier niet mee lastig vallen. :)

Acties:
  • +1 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
DaGoose schreef op donderdag 6 februari 2025 @ 09:37:
[...]

Thanks! Alleen zat ik al direct vast met de input number helper. Ik zie de helpers uiteraard, maar geen input number.
Ik ben totaal geen programmeur of iets, voor mijn bedrijf huur ik daar zelfs iemand voor in. Ik weet wel iets, maar ben meer een drag en drop persoon. Code lezen en schrijven is voor mij net zo onoverzichtelijk als de kleur 9 die naar kaneel ruikt tijdens een niesbui in een bocht naar rechts op de rotonde naar links in een engelse auto. :P
Ik was ook niet helemaal duidelijk je moet kiezen voor numeriek en dan maak je een input_number aan.

Afbeeldingslocatie: https://tweakers.net/i/f1pWE-4KczJraCiVLFq3UH2mYCQ=/x800/filters:strip_exif()/f/image/dVIc2Fx6KiqnbULucSTK4q38.png?f=fotoalbum_large

Acties:
  • +4 Henk 'm!

  • Silent Hunter
  • Registratie: Oktober 2002
  • Laatst online: 02-06 21:09
Ik heb inmiddels mijn NodeRED flow al 20x op de schop gegooid en het werkt inmiddels - bijna - naar behoren, icm EPEX spot market data :D

Afbeeldingslocatie: https://tweakers.net/i/pJm8QkarT_j75T4jAGWjsZ4XqK0=/800x/filters:strip_exif()/f/image/KTJCWXr7SGNNMuV9xtUmzijQ.png?f=fotoalbum_large

Afbeeldingslocatie: https://tweakers.net/i/1MlEH9dpPLRwNkFi00C9IYDPDZk=/800x/filters:strip_exif()/f/image/A9K0albXGxU1VMXkaudSUgNF.png?f=fotoalbum_large
  • Ik heb je dynamic Net 0 meter verder aangepast om automatisch te switchen als mn balkon PV alles negatief trekt om te laden
  • Dynamisch laden + toggle is nu op basis van EPEX spot data ipv eigen rekensommetjes
  • Dynamisch ontladen + toggle is nu op basis van een simpele true/false en switched automatisch tussen laad of ontlaad modi
  • Verdere modificatie van je dynamische export button om alles direct aan te sturen
  • Telegram notificaties zodat ik weet wat er allemaal gebeurt
:)

[ Voor 13% gewijzigd door Silent Hunter op 06-02-2025 13:07 ]

12.4 kWh Thuisbatterijen + 1.8kWp balkon systeem - 5kW Zendure Units - Doet iets met content voor batterijen


Acties:
  • +1 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
Silent Hunter schreef op donderdag 6 februari 2025 @ 12:35:
Ik heb inmiddels mijn NodeRED flow al 20x op de schop gegooid en het werkt inmiddels - bijna - naar behoren, [...]
Nice, lekker bezig _/-\o_

Met betrekking tot je "bijna": is het niet zo dat je uiteindelijk als persoon het nog altijd minimaal 1% beter kunt doen dan de beste flows die je schrijft en dat dat ook blijft kriebelen? Je hebt natuurlijk altijd externe invloeden, andere seizoenen, ander verbruik, etc. waarvan je dan denkt: Mooie flow, maar vanaf 14:00 moet ik ff dit en dit doen, want dat is toch nog niet iets beter.

De manual override zit er natuurlijk niet voor niets in, maar verwacht je ooit tot een 100% situatie te komen? Ik herken dit namelijk van mijzelf, uiteindelijk blijft handmatig toch het beste ivm een soort situational awareness achtig iets dat Node Red (en AI) niet kan vervangen.

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • +4 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
Ik heb weer 2 sensoren toegevoegd aan de topicstart: de laad- en ontlaadtijd op basis van de calculations topics, in plaats van de door Zendure onregelmatig geüpdatete waarden. Deze waarden worden wel zeer regelmatig bijgewerkt tijdens laden/ontladen en weergegeven in een leesbaar "10h 20m" format.

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  - name: "laadtijd tot vol"
    unique_id: "eeeSldtdtotvol"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/remainInputTime"
    value_template: "{{ value }}" 
    device: 
      name: "Zendure"
      identifiers: "<serie_nr>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "ontlaadtijd tot leeg"
    unique_id: "BeessESldtdleeG"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/remainOutTime"
    value_template: "{{ value }}" 
    device: 
      name: "Zendure"
      identifiers: "<serie_nr>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
Mediacj schreef op donderdag 6 februari 2025 @ 19:43:
Ik heb weer 2 sensoren toegevoegd aan de topicstart: de laad- en ontlaadtijd op basis van de calculations topics, in plaats van de door Zendure onregelmatig geüpdatete waarden. Deze waarden worden wel zeer regelmatig bijgewerkt tijdens laden/ontladen en weergegeven in een leesbaar "10h 20m" format.

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  - name: "laadtijd tot vol"
    unique_id: "eeeSldtdtotvol"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/remainInputTime"
    value_template: "{{ value }}" 
    device: 
      name: "Zendure"
      identifiers: "<serie_nr>"
      manufacturer: "Zendure"
      model: "Hyper 2000"

  - name: "ontlaadtijd tot leeg"
    unique_id: "BeessESldtdleeG"
    state_topic: "zendure-solarflow/0/gDa3tb/<device-id>/calculations/remainOutTime"
    value_template: "{{ value }}" 
    device: 
      name: "Zendure"
      identifiers: "<serie_nr>"
      manufacturer: "Zendure"
      model: "Hyper 2000"
Merci! Je zegt "weer", had je tussentijds ook nog extra sensoren toegevoegd? Die heb ik dan gemist.

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
Taro schreef op donderdag 6 februari 2025 @ 23:24:
[...]

Merci! Je zegt "weer", had je tussentijds ook nog extra sensoren toegevoegd? Die heb ik dan gemist.
Ja hier

Acties:
  • 0 Henk 'm!

  • Silent Hunter
  • Registratie: Oktober 2002
  • Laatst online: 02-06 21:09
Taro schreef op donderdag 6 februari 2025 @ 17:45:
[...]

Nice, lekker bezig _/-\o_

Met betrekking tot je "bijna": is het niet zo dat je uiteindelijk als persoon het nog altijd minimaal 1% beter kunt doen dan de beste flows die je schrijft en dat dat ook blijft kriebelen? Je hebt natuurlijk altijd externe invloeden, andere seizoenen, ander verbruik, etc. waarvan je dan denkt: Mooie flow, maar vanaf 14:00 moet ik ff dit en dit doen, want dat is toch nog niet iets beter.

De manual override zit er natuurlijk niet voor niets in, maar verwacht je ooit tot een 100% situatie te komen? Ik herken dit namelijk van mijzelf, uiteindelijk blijft handmatig toch het beste ivm een soort situational awareness achtig iets dat Node Red (en AI) niet kan vervangen.
Oh nee zeker. Ik verwacht ook niet dat dat dit 100% zal zijn. Maar 99.99% op basis van prijs of verbruik automation is fijn. die 1% situatie dan ga ik wel aan knopjes zitten, daar ben ik het verder ook met je eens haha

12.4 kWh Thuisbatterijen + 1.8kWp balkon systeem - 5kW Zendure Units - Doet iets met content voor batterijen


Acties:
  • 0 Henk 'm!

  • geert1992
  • Registratie: Februari 2012
  • Laatst online: 22:53
Zat nog te denken om mijn NOM flow te upgraden;
Op dit moment heb ik 2 hypers met beide 2 ab2000s batterijen.
Mijn NOM flow is het huidig vermogen delen door 2; dus verdeelt over 2 hypers.
Maar zat te denken om ervoor te zorgen dat wanneer het vermogen onder de 1kwh is, 1 hyper te laten werken, en zodra hij boven de 1kwh komt het vermogen te gaan verdelen over 2 hypers, en zodra hij weer zakt onder de 1kwh hem laten switchen naar de andere hyper, om zo het opgeslagen vermogen te verdelen.
Zodat je een hogere RTE kan halen, nadeel is wel dat je meer gaat schakelen met de hypers.

Wat denken jullie?

[ Voor 9% gewijzigd door geert1992 op 17-02-2025 17:59 ]


Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
geert1992 schreef op maandag 17 februari 2025 @ 17:56:
Zat nog te denken om mijn NOM flow te upgraden;
Op dit moment heb ik 2 hypers met beide 2 ab2000s batterijen.
Mijn NOM flow is het huidig vermogen delen door 2; dus verdeelt over 2 hypers.
Maar zat te denken om ervoor te zorgen dat wanneer het vermogen onder de 1kwh is, 1 hyper te laten werken, en zodra hij boven de 1kwh komt het vermogen te gaan verdelen over 2 hypers, en zodra hij weer zakt onder de 1kwh hem laten switchen naar de andere hyper, om zo het opgeslagen vermogen te verdelen.
Zodat je een hogere RTE kan halen, nadeel is wel dat je meer gaat schakelen met de hypers.

Wat denken jullie?
Ik kan het niet helemaal volgen waarschijnlijk bedoel je met vermogen 1kW ipv 1kWh energie. Denk dat je 1000W bedoelt en dan vind ik het een mooie invalshoek om het dan zo aan te pakken.

Weet niet of het verschil groot zal zijn vwb RTE maar ik zou zeggen gewoon met en zonder testen en kijken wat het verschil is, ben benieuwd.

Acties:
  • +4 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
@FireSon is bezig met een volledig in HA geïntegreerde versie zodat de in dit topic beschreven werkwijze hopelijk binnenkort niet meer nodig is.

Acties:
  • +1 Henk 'm!

  • Bravo
  • Registratie: Augustus 2005
  • Laatst online: 16:36

Bravo

Second Best

@FireSon Wat mooi zeg dat je bezig bent met een integratie in HA, ver boven mijn pet. Als ik het goed lees maak je gebruik van de MQTT/API in de cloud van Zendure?
@Mediacj De oplossing die eerder in dit topic is besproken (met io.broker) is een lokale aansturing toch? Zonder cloud?

Dat laatste heeft toch mijn voorkeur, om niet afhankelijk te zijn van een werkende internetverbinding of clouddienst waar je niet volledig de controle over hebt.

Ioniq 6 LR Lounge 20"
2700Wp SSW 30° @ SE2200 | 1720Wp SSW 5° @ HM-1500
Flickr | Canon 6D | 17-40mm f/4 + 50mm f/1.8 II + 70-200mm f/4 | 2x 430EX II | Sirui T005 + C10


Acties:
  • +3 Henk 'm!

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
Bravo schreef op woensdag 26 februari 2025 @ 08:00:
@FireSon Wat mooi zeg dat je bezig bent met een integratie in HA, ver boven mijn pet. Als ik het goed lees maak je gebruik van de MQTT/API in de cloud van Zendure?
@Mediacj De oplossing die eerder in dit topic is besproken (met io.broker) is een lokale aansturing toch? Zonder cloud?

Dat laatste heeft toch mijn voorkeur, om niet afhankelijk te zijn van een werkende internetverbinding of clouddienst waar je niet volledig de controle over hebt.
@Bravo De io.broker maakt verbinding met 'een' MQTT. Dit kan een lokale broker zijn of die van Zendure in de cloud. Wanneer je de lokale MQTT instantie wilt gebruiken, werkt de zendure app niet meer, daarom heeft o.a. @Mediacj ervoor gekozen om toch de cloud te gebruiken. Je kunt switchen met een python script https://github.com/reinha...dter/solarflow-bt-manager. Het is echter vrij gemakkelijk om een hybride oplossing te maken waarbij de hyper2000 connectie maakt met de lokale MQTT instantie, de HA integratie verbindt dan met dezelde MQTT instantie, en stuurt de data dan ook door naar de zendure cloud. In dat 'hybride' scenario blijft ook de zendure app werken. Voor mijzelf lijkt dat de beste oplossing. Het kost alleen nog wat tijd om dat te maken.

Acties:
  • 0 Henk 'm!

  • Bravo
  • Registratie: Augustus 2005
  • Laatst online: 16:36

Bravo

Second Best

FireSon schreef op woensdag 26 februari 2025 @ 09:00:
[...]

@Bravo De io.broker maakt verbinding met 'een' MQTT. Dit kan een lokale broker zijn of die van Zendure in de cloud. Wanneer je de lokale MQTT instantie wilt gebruiken, werkt de zendure app niet meer, daarom heeft o.a. @Mediacj ervoor gekozen om toch de cloud te gebruiken. Je kunt switchen met een python script https://github.com/reinha...dter/solarflow-bt-manager. Het is echter vrij gemakkelijk om een hybride oplossing te maken waarbij de hyper2000 connectie maakt met de lokale MQTT instantie, de HA integratie verbindt dan met dezelde MQTT instantie, en stuurt de data dan ook door naar de zendure cloud. In dat 'hybride' scenario blijft ook de zendure app werken. Voor mijzelf lijkt dat de beste oplossing. Het kost alleen nog wat tijd om dat te maken.
Dank voor de verhelderende uitleg.
De hybride situatie om de app te kunnen blijven gebruiken is erg fijn, dat had ik over het hoofd gezien. Zolang de sturing lokaal loopt (HA -> lokale MQTT -> Hyper) voldoet dat ook aan mijn wensen.

Ioniq 6 LR Lounge 20"
2700Wp SSW 30° @ SE2200 | 1720Wp SSW 5° @ HM-1500
Flickr | Canon 6D | 17-40mm f/4 + 50mm f/1.8 II + 70-200mm f/4 | 2x 430EX II | Sirui T005 + C10


Acties:
  • 0 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
FireSon schreef op woensdag 26 februari 2025 @ 09:00:
[...]

@Bravo De io.broker maakt verbinding met 'een' MQTT. Dit kan een lokale broker zijn of die van Zendure in de cloud. Wanneer je de lokale MQTT instantie wilt gebruiken, werkt de zendure app niet meer, daarom heeft o.a. @Mediacj ervoor gekozen om toch de cloud te gebruiken. Je kunt switchen met een python script https://github.com/reinha...dter/solarflow-bt-manager. Het is echter vrij gemakkelijk om een hybride oplossing te maken waarbij de hyper2000 connectie maakt met de lokale MQTT instantie, de HA integratie verbindt dan met dezelde MQTT instantie, en stuurt de data dan ook door naar de zendure cloud. In dat 'hybride' scenario blijft ook de zendure app werken. Voor mijzelf lijkt dat de beste oplossing. Het kost alleen nog wat tijd om dat te maken.
Ja de hier beschreven oplossing is inderdaad gekoppeld aan de cloud dit mede omdat als je dat niet doet je garantie gevaar loopt volgens een Zendure verkoper.

De hybride oplossing zou daarom veruit het mooiste zijn, waarbij je lokaal via MQTT de hypers kunt aansturen vanuit bijvoorbeeld Node-red :)

Acties:
  • 0 Henk 'm!

  • Bravo
  • Registratie: Augustus 2005
  • Laatst online: 16:36

Bravo

Second Best

Mediacj schreef op woensdag 26 februari 2025 @ 09:09:
[...]

Ja de hier beschreven oplossing is inderdaad gekoppeld aan de cloud dit mede omdat als je dat niet doet je garantie gevaar loopt volgens een Zendure verkoper.

De hybride oplossing zou daarom veruit het mooiste zijn, waarbij je lokaal via MQTT de hypers kunt aansturen vanuit bijvoorbeeld Node-red :)
Hmz, als de garantie een dingetje wordt als het apparaat niet aan de Zendure Cloud hangt wordt het voor 1 van mijn gebruiksdoelen toch lastig. Offgrid draaien (dus uberhaupt geen aansturing nodig) voor een koel/vriescombo, verlichting en wat ander klein spul omdat er geen stroompunt aanwezig is. Geen wifi of internet aanwezig als er niemand is die een mobiele hotspot aanmaakt.
Aanschafkosten voor een Hyper liggen gelijk aan het aan laten leggen van een aansluiting, verbruikskosten van een Hyper zijn veel lager (geen netbeheerkosten, etc).

Maargoed, daar heb ik de HA integratie niet voor nodig, dat is het andere gebruiksdoel hier thuis.

Ioniq 6 LR Lounge 20"
2700Wp SSW 30° @ SE2200 | 1720Wp SSW 5° @ HM-1500
Flickr | Canon 6D | 17-40mm f/4 + 50mm f/1.8 II + 70-200mm f/4 | 2x 430EX II | Sirui T005 + C10


  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
Vannacht heb ik een testje gedaan met NOM via home assistant. Dat leek eigenlijk heel aardig te lukken :-) De echte test startte om 1:30 en om 5 uur ging de warmtepomp een keer aan, waardoor het maximale vermogen van de Hyper2000 werd gebruikt.

Afbeeldingslocatie: https://tweakers.net/i/iFtDCNPfWZMnlkNffGIYUlNx2cE=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/F510SFTY87wJ0oP5oRGNwmlx.png?f=user_large

Via een P1 meter krijg ik 1x per seconde een update, en dan corrigeer wat de batterij moet leveren. Hierdoor is het natuurlijk nooit precies nul op de meter, maar best ok. Het geleverde vermogen van de Hyper2000 ziet er dan zo uit:
Afbeeldingslocatie: https://tweakers.net/i/Jr5EPjSOpfYFEQYv1Pt-kM3FRYU=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/QjfUqeqgtFS4cRTQUHgv1lWT.png?f=user_large

Omdat ik zelf geen Shelly 3EM heb, was ik benieuwd of mijn grafiekjes overeenkomen met als je NOM houdt met een Shelly. Regelt die sneller/beter/anders? Hoeveel Kwh leveren jullie nog terug wanneer de Hyper200 NOM probeert te houden in de nacht?

Een andere vraag is hoe managen jullie meerdere Hypers? Het leek me eigenlijk beter om ze zo gelijkmatig te 'legen', want als de zon dan schijnt kunnen ze allemaal tegelijkertijd weer opladen. Hoe regelen jullie dat?

  • mrme12345
  • Registratie: December 2013
  • Niet online
Omdat ik zelf geen Shelly 3EM heb, was ik benieuwd of mijn grafiekjes overeenkomen met als je NOM houdt met een Shelly. Regelt die sneller/beter/anders? Hoeveel Kwh leveren jullie nog terug wanneer de Hyper200 NOM probeert te houden in de nacht?

Een andere vraag is hoe managen jullie meerdere Hypers? Het leek me eigenlijk beter om ze zo gelijkmatig te 'legen', want als de zon dan schijnt kunnen ze allemaal tegelijkertijd weer opladen. Hoe regelen jullie dat?
Bij mij is na de nacht ongeveer 0,1 tot 0,2 kWh verbruik van het net zichtbaar bij NOM draaien obv Shelly. Ik heb wel een heel laag nachtverbruik van rond de 70w (en dan af en toe hoger door vriezer en koelkast). Daarnaast heb ik een quooker. Dat zie je terug in de streepjes. Ik heb 3 hypers en we moeten dat nog ombouwen naar 1 script voor NOM en pv overschot. Nu regel ik dat nog per hyper waarbij ik dan bijvoorbeeld 2 van de 3 op een vaste import of export waarde zet en de 3e laat varieren. Maar in de ideale situatie wil je dat dit via een script als 1 hyper behandeld wordt en load verdeeld wordt over de 3 hypers. Afbeeldingslocatie: https://tweakers.net/i/gJeJxRX5OQERmFBHQ881VDws3BQ=/800x/filters:strip_icc():strip_exif()/f/image/m7M72ftRhLOn75RicVm1gcmG.jpg?f=fotoalbum_large

energienerds, gasloos, 11,5kWp, 14 kWh accu, EV, Atlantic WPB


  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
mrme12345 schreef op donderdag 27 februari 2025 @ 12:43:
[...]

Bij mij is na de nacht ongeveer 0,1 tot 0,2 kWh verbruik van het net zichtbaar bij NOM draaien obv Shelly. Ik heb wel een heel laag nachtverbruik van rond de 70w (en dan af en toe hoger door vriezer en koelkast). Daarnaast heb ik een quooker. Dat zie je terug in de streepjes. Ik heb 3 hypers en we moeten dat nog ombouwen naar 1 script voor NOM en pv overschot. Nu regel ik dat nog per hyper waarbij ik dan bijvoorbeeld 2 van de 3 op een vaste import of export waarde zet en de 3e laat varieren. Maar in de ideale situatie wil je dat dit via een script als 1 hyper behandeld wordt en load verdeeld wordt over de 3 hypers. [Afbeelding]
Dat is inderdaad een erg laag nachtverbruik! Ik heb 4x zo veel :?
Heb jij toevallig een mogelijkheid om te zien welk MQTT topic geschreven wordt door zendure wanneer de Hyper2000 smart geladen wordt? Als ik dat weet, kan ik mijn hypers ook laden met het overschit van de zonnepanelen...

Ik wil de schakel logica voor NOM en PV laden in de integratie inbouwen. Moet er nog even over nakdenken hoe ingewikkeld dat moet zijn :)

Acties:
  • +1 Henk 'm!

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
FireSon schreef op donderdag 27 februari 2025 @ 13:03:
[...]


Dat is inderdaad een erg laag nachtverbruik! Ik heb 4x zo veel :?
Heb jij toevallig een mogelijkheid om te zien welk MQTT topic geschreven wordt door zendure wanneer de Hyper2000 smart geladen wordt? Als ik dat weet, kan ik mijn hypers ook laden met het overschit van de zonnepanelen...

Ik wil de schakel logica voor NOM en PV laden in de integratie inbouwen. Moet er nog even over nakdenken hoe ingewikkeld dat moet zijn :)
Hieronder een paar voorbeeld commando's via MQTT zoals je dat in de topicstart kunt vinden:

Als je wilt importeren of exporteren moet je eerst zorgen dat de ACmode goed staat. Mqtt topic:
code:
1
zendure-solarflow/0/gDa3tb/<device-id>/control/acMode/set
geef je voor laden een 1 en voor exporteren een 2.

Vervolgens stuur je de waarde voor export naar:
code:
1
zendure-solarflow/0/gDa3tb/<device-id>/control/setOutputLimit/set

of voor laden naar:
code:
1
zendure-solarflow/0/gDa3tb/<device-id>/control/setInputLimit/set


Hopelijk heb je er iets aan, het is echter ook afhankelijk van welke achterliggende integratie dat je gebruikt om Zendure te kunnen sturen ipv enkel uitlezen. Dat heeft invloed op de topics die je moet gebruiken.

Het zou mooi zijn als je binnen jouw HA integratie ook zelf de integratie kunt aansturen door input_numbers aan te maken die in automations en Node-red flows gebruikt kunnen worden voor bijvoorbeeld de laad of ontlaadwaarde.

Als ik je verder ergens bij kan helpen laat maar weten!

EDIT: Hier ook een voorbeeld van een aantal commando's. Zoals je kunt zien zijn die topics weer anders dan ik gebruik in de methode van het topic.

[ Voor 6% gewijzigd door Mediacj op 27-02-2025 14:09 ]


  • llevering
  • Registratie: September 2000
  • Laatst online: 23:56
@FireSon zelf nog geen batterij, maar wel HA gebruiker. Als je een DSMR 5 meter kan je de gegevens per seconde laten uitlezen, standaard gebeurd het per 10 seconden dan reageert het e.e.a. nog sneller. Misschien heb je het al gedaan, maar anders is het nog tip om het (nog) beter te krijgen.

Acties:
  • +1 Henk 'm!

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
llevering schreef op donderdag 27 februari 2025 @ 14:39:
@FireSon zelf nog geen batterij, maar wel HA gebruiker. Als je een DSMR 5 meter kan je de gegevens per seconde laten uitlezen, standaard gebeurd het per 10 seconden dan reageert het e.e.a. nog sneller. Misschien heb je het al gedaan, maar anders is het nog tip om het (nog) beter te krijgen.
Thanks, ja hij staat bij mij ook op 1 seconde :)

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
Mediacj schreef op donderdag 27 februari 2025 @ 13:35:
[...]


Hieronder een paar voorbeeld commando's via MQTT zoals je dat in de topicstart kunt vinden:

Als je wilt importeren of exporteren moet je eerst zorgen dat de ACmode goed staat. Mqtt topic:
code:
1
zendure-solarflow/0/gDa3tb/<device-id>/control/acMode/set
geef je voor laden een 1 en voor exporteren een 2.

Vervolgens stuur je de waarde voor export naar:
code:
1
zendure-solarflow/0/gDa3tb/<device-id>/control/setOutputLimit/set

of voor laden naar:
code:
1
zendure-solarflow/0/gDa3tb/<device-id>/control/setInputLimit/set


Hopelijk heb je er iets aan, het is echter ook afhankelijk van welke achterliggende integratie dat je gebruikt om Zendure te kunnen sturen ipv enkel uitlezen. Dat heeft invloed op de topics die je moet gebruiken.

Het zou mooi zijn als je binnen jouw HA integratie ook zelf de integratie kunt aansturen door input_numbers aan te maken die in automations en Node-red flows gebruikt kunnen worden voor bijvoorbeeld de laad of ontlaadwaarde.

Als ik je verder ergens bij kan helpen laat maar weten!

EDIT: Hier ook een voorbeeld van een aantal commando's. Zoals je kunt zien zijn die topics weer anders dan ik gebruik in de methode van het topic.
De topics die je noemt worden aangemaakt door de io.broker en niet door Zendure zelf. Nu kan ik dezelfde topic ook wel schrijven (op een andere manier) maar het lastige daarvan is, dat ze (denk ik) niet bedoeld zijn voor het regelen van de NOM. Waarschijnlijk gebruikt Zendure daar iets van een pid regelaar voor om de load te optimaliseren. Daarom durf het eigenlijk niet aan om deze topics iedere seconde te updaten.
Wanneer je de smartmode aanzet met een Shellyplug, gebruikt zendure zelf een ander topic namelijk iot/gDa3tb/xxxx/function/invoke met als payload een json string die aangeeft wat de Hyper2000 ermee moet doen. Dit heb ik gevonden door met WireShark naar de communicatie tussen de Hyper2000 en de zendure cloud te kijken.
Mijn integratie subscribed aan die topics en logt deze in home assistant. Wanneer je dan de debuglogging aanzet, zou je alle communicatie moeten kunnen terugvinden (zonder WireShark ;) ) Als ik weet wat de inhoud van de payload is wanneer de Hyper2000 smart wordt geladen, kan ik dezelfde payload namaken en ook smart laden...

  • Mediacj
  • Registratie: Augustus 2002
  • Laatst online: 23:13
FireSon schreef op donderdag 27 februari 2025 @ 15:50:
[...]


De topics die je noemt worden aangemaakt door de io.broker en niet door Zendure zelf. Nu kan ik dezelfde topic ook wel schrijven (op een andere manier) maar het lastige daarvan is, dat ze (denk ik) niet bedoeld zijn voor het regelen van de NOM. Waarschijnlijk gebruikt Zendure daar iets van een pid regelaar voor om de load te optimaliseren. Daarom durf het eigenlijk niet aan om deze topics iedere seconde te updaten.
Wanneer je de smartmode aanzet met een Shellyplug, gebruikt zendure zelf een ander topic namelijk iot/gDa3tb/xxxx/function/invoke met als payload een json string die aangeeft wat de Hyper2000 ermee moet doen. Dit heb ik gevonden door met WireShark naar de communicatie tussen de Hyper2000 en de zendure cloud te kijken.
Mijn integratie subscribed aan die topics en logt deze in home assistant. Wanneer je dan de debuglogging aanzet, zou je alle communicatie moeten kunnen terugvinden (zonder WireShark ;) ) Als ik weet wat de inhoud van de payload is wanneer de Hyper2000 smart wordt geladen, kan ik dezelfde payload namaken en ook smart laden...
Ja als daar inderdaad een verschil inzit vwb het aansturen zou het mooi zijn als je dezelfde werkwijze als Zendure kunt herleiden!

Ik begreep dat jij nog geen Shelly Plug hebt/gebruikt? Dus als je wilt dat ik op basis van dat iot topic met de juiste payload de Hyper aanstuur kan ik je eventueel van de return payload de inhoud geven?

Acties:
  • +1 Henk 'm!

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
Mediacj schreef op donderdag 27 februari 2025 @ 16:21:
[...]

Ja als daar inderdaad een verschil inzit vwb het aansturen zou het mooi zijn als je dezelfde werkwijze als Zendure kunt herleiden!

Ik begreep dat jij nog geen Shelly Plug hebt/gebruikt? Dus als je wilt dat ik op basis van dat iot topic met de juiste payload de Hyper aanstuur kan ik je eventueel van de return payload de inhoud geven?
Nou ik heb wel een Shellyplug maar geen Shelly 3EM, met de plug kun je de smartmode starten, en zo ben ik achter de communicatie gekomen. Omdat de Shellyplug alleen maar kan 'verbruiken' kon ik de andere kant op niet testen. Maar nu ik er zo over nadenk, kan ik de plug ook voor 1 van mijn hyper2000's zetten en daarmee terugleveren, en een andere daar 'smart' mee besturen. Op die manier zou het laden van een hyper2000 door een PV overschot gesimuleerd kunnen worden.

Thanks voor de inspiratie ;)

  • Peutpeut
  • Registratie: December 2013
  • Laatst online: 15:58
Thanks @FireSon, de integratie via HACS is geïnstalleerd :) Hopelijk wordt deze snel uitgebreid met meer opties! Goed werk!

14590 Wp PV | 6 kWh Thuisaccu


  • DJN
  • Registratie: Augustus 2022
  • Laatst online: 00:15

DJN

Mooi werk @FireSon! Ik gebruik een EcoTracker P1 meter van EverHome om NOM te draaien. Kan dat je op een of andere manier verder helpen met de integratie in Home Assistant?

Acties:
  • 0 Henk 'm!

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
DJN schreef op donderdag 27 februari 2025 @ 21:43:
Mooi werk @FireSon! Ik gebruik een EcoTracker P1 meter van EverHome om NOM te draaien. Kan dat je op een of andere manier verder helpen met de integratie in Home Assistant?
Jazeker! de zendure cloud stuurt op basis van verschillende inputs, uiteindelijk dezelfde berichten naar de hyper2000. Mij testje gisteren lukte niet omdat een Shellyplug geen negatieve waarden opstuurd als er energie wordt geleverd. Als jij het zou willen testen zou super zijn!
Als je in de debuglogging kunt kijen naar het genoemde topic :)

[ Voor 5% gewijzigd door FireSon op 28-02-2025 08:59 ]


Acties:
  • +1 Henk 'm!

  • Silent Hunter
  • Registratie: Oktober 2002
  • Laatst online: 02-06 21:09
FireSon schreef op vrijdag 28 februari 2025 @ 08:58:
[...]


Jazeker! de zendure cloud stuurt op basis van verschillende inputs, uiteindelijk dezelfde berichten naar de hyper2000. Mij testje gisteren lukte niet omdat een Shellyplug geen negatieve waarden opstuurd als er energie wordt geleverd. Als jij het zou willen testen zou super zijn!
Als je in de debuglogging kunt kijen naar het genoemde topic :)
Dat is dan toch simpelweg de input lezen van je PV van stekker 1, en dan via mqqt de input limit gelijk zetten op stekker 2 die vóór je Hyper zit? Of begrijp ik het verkeerd? Je kan natuurlijk de waarde nog altijd transformeren naar een negatieve waarde als het nodig zou zijn. nvm, ik heb nog niet genoeg koffie gehad.

[ Voor 10% gewijzigd door Silent Hunter op 01-03-2025 13:16 ]

12.4 kWh Thuisbatterijen + 1.8kWp balkon systeem - 5kW Zendure Units - Doet iets met content voor batterijen


Acties:
  • 0 Henk 'm!

  • DJN
  • Registratie: Augustus 2022
  • Laatst online: 00:15

DJN

FireSon schreef op vrijdag 28 februari 2025 @ 08:58:
[...]


Jazeker! de zendure cloud stuurt op basis van verschillende inputs, uiteindelijk dezelfde berichten naar de hyper2000. Mij testje gisteren lukte niet omdat een Shellyplug geen negatieve waarden opstuurd als er energie wordt geleverd. Als jij het zou willen testen zou super zijn!
Als je in de debuglogging kunt kijen naar het genoemde topic :)
Prima, ik zet debug logging aan. Gebruik 3 Hypers in een cluster, zal deze morgen op NOM laten draaien. Zal je de data van morgen toesturen via DM. Kan voor 1 Hyper of alle data van alle 3. Kan bij geschiedenis in HA data downloaden zie ik. Bedoel je dit of de data via logboek? Kan zo snel niet vinden hoe ik deze logboek data kan downloaden. Weet niet of deze data verschilt van de data uit geschiedenis.

De data van Hypers wordt via jouw integratie verzameld, data van Ecotracker gaat in home assistant via REST met melding 'deze integratie is niet ingesteld vanuit de UI'; 1 entiteit: ecotracker - sensor.ecotracker . RESTful . -. Ik kan je ook data van ecotracker sturen als je wenst.

Acties:
  • 0 Henk 'm!

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
DJN schreef op zaterdag 1 maart 2025 @ 20:38:
[...]


Prima, ik zet debug logging aan. Gebruik 3 Hypers in een cluster, zal deze morgen op NOM laten draaien. Zal je de data van morgen toesturen via DM. Kan voor 1 Hyper of alle data van alle 3. Kan bij geschiedenis in HA data downloaden zie ik. Bedoel je dit of de data via logboek? Kan zo snel niet vinden hoe ik deze logboek data kan downloaden. Weet niet of deze data verschilt van de data uit geschiedenis.

De data van Hypers wordt via jouw integratie verzameld, data van Ecotracker gaat in home assistant via REST met melding 'deze integratie is niet ingesteld vanuit de UI'; 1 entiteit: ecotracker - sensor.ecotracker . RESTful . -. Ik kan je ook data van ecotracker sturen als je wenst.
Top dat is erg handig! Ik heb al wel wat testjes gedaan en ik denk dat ik het juiste commando heb gevonden, maar een praktijkvoorbeeld is altijd beter! Zeker ook de frequentie van de commando's en 'sprongen' in de output zijn erg goed om te vergelijken. Alvast bedankt voor de moeite!

Super dat je ook een cluster hebt, ben erg benieuwd hoe Zendure schakeld tussen de hypers, of ze gelijkmatig ontladen worden en hoe vaak er geschakeld wordt tussen de 3.

Acties:
  • 0 Henk 'm!

  • Silent Hunter
  • Registratie: Oktober 2002
  • Laatst online: 02-06 21:09
In het kader van - eindelijk - in de app toegepast, heb ik hier de nieuwe Solarflow 800 liggen; misschien interessant om te kijken wat hier uit te lezen valt? Hij was namelijk nog niet beschikbaar in de app ivm NDA's e.d. Afbeeldingslocatie: https://tweakers.net/i/HdtudW7uYxjv8kar_hGspi172-Y=/800x/filters:strip_exif()/f/image/0dlj5yITT0XXYjQwEQZlIT2Z.png?f=fotoalbum_large

12.4 kWh Thuisbatterijen + 1.8kWp balkon systeem - 5kW Zendure Units - Doet iets met content voor batterijen


Acties:
  • 0 Henk 'm!

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
Zeker interresant, ik zal eens kijken of ik de logging kan aanpassen om te zien wat hij aan gegevens meld!

Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
@FireSon Wil je integratie ook graag proberen, met mijn hoofdaccount kan ik prima inloggen, maar ik heb de apparaten gedeeld met een ander account zodat ik niet steeds uit de App wordt gegooid en met dat andere account krijg ik een foutmelding bij het inloggen in Home Assistant. Enig idee?

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
Datzelfde doe ik eigenlijk ook, heb je de devices gedeeld met dat email adres?

Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
FireSon schreef op maandag 3 maart 2025 @ 22:39:
Datzelfde doe ik eigenlijk ook, heb je de devices gedeeld met dat email adres?
Ja, heb voor de zekerheid nog even met de credentials in de app ingelogd om te controleren of ze nog werken en dat lukte, zag 3 devices staan: 2x Hyper en 1x AIO2400.

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
Wat is de foutmelding precies?

Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
FireSon schreef op maandag 3 maart 2025 @ 22:41:
Wat is de foutmelding precies?
Afbeeldingslocatie: https://tweakers.net/i/lvZTvATAGev1sGyxeOMNcOM-VX0=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/HHKLHfkRv3zV9mbciyvWRF0k.png?f=user_large

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
En in de debug logging? Dit helpt niet echt ;-)

Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
FireSon schreef op maandag 3 maart 2025 @ 22:44:
En in de debug logging? Dit helpt niet echt ;-)
Dat begrijp ik, maar in de logging verschijnt niets, omdat de integratie nog niet actief is?

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • FireSon
  • Registratie: Januari 2014
  • Laatst online: 23:12
Ik kijk even of ik wat meer logging in kan bouwen, lastig als je niet kunt zien wat er aan de hand is!

Acties:
  • 0 Henk 'm!

  • Taro
  • Registratie: September 2000
  • Niet online

Taro

Moderator General Chat / Wonen & Mobiliteit
Graag, kan ik daarna hopelijk ook bijdragen en evt. zaken uitzoeken om met de verdere ontwikkeling te kunnen helpen, goed bezig!

Replace fear of the unknown with curiosity | 36 kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen


Acties:
  • 0 Henk 'm!

  • Silent Hunter
  • Registratie: Oktober 2002
  • Laatst online: 02-06 21:09
Ohja, fun facts: De solarpro 800 is (nog) niet deelbaar als device om een of andere reden..Afbeeldingslocatie: https://tweakers.net/i/KoJhL_0g_vPb27esf7fUSOgfBt8=/x800/filters:strip_icc():strip_exif()/f/image/GmMYqdVtksuWcCh4X1seNxJt.jpg?f=fotoalbum_large

[ Voor 66% gewijzigd door Silent Hunter op 03-03-2025 23:28 ]

12.4 kWh Thuisbatterijen + 1.8kWp balkon systeem - 5kW Zendure Units - Doet iets met content voor batterijen

Pagina: 1 2 ... 9 Laatste