/f/image/m0wMK22D1JwJig3Z24R6IERt.png?f=fotoalbum_large)
Heb jij basis kennis van Home Assistant dan gaat je dit zeker lukken! Ben je nieuw in Home Assistant land, pas dan op! Voor je het weet wil je alles in Home Assistant. Dit topic bespreekt beide integraties, laat je creativiteit de vrije loop. Delen is altijd beter dan voor jezelf houden.
Aansturingsmogelijkheden
Zendure (Fireson) (cloud/lokaal) | zenSDK (Gielz) (lokaal) | zenSDK (zelfbouw) (lokaal) |
Hyper 2000 (MQTT) | ||
Solarflow 800 pro (zenSDK) | Solarflow 800 pro | Solarflow 800 pro |
Solarflow 2400 AC (zenSDK) | Solarflow 2400 AC | Solarflow 2400 AC |
Draait het allemaal, geef dan even door wat je gebruikt; https://strawpoll.com/05ZdzxXvmn6
:strip_exif()/f/image/z9RnFmQ0zAFFJbiTq1g4HOF7.png?f=user_large)
:strip_exif()/f/image/kNGkcKZGnQUkAKCvpyUMBlZA.jpg?f=fotoalbum_large)
*28-08-2025
Recente startpost aanpassingen
zenSDK gielz (lokaal)
2025-09-07 🔴 NEW - Nieuwe/gewijzigde sensoren 12 nieuwe sensoren zijn toegevoegd en alle data is nu realtime via de enkele API call.2025-09-04 🔴 NEW - Nieuwe/gewijzigde sensoren De sensoren "Indicatie Beschikbare Energie", "Aantal Batterijen" zijn toegevoegd. "Resterende Ontlaad Tijd" is verbeterd en toont geen vreemde 999u tijden meer.
2025-08-27 🔴 NEW - zenSDK (Gielz) 2.0 Volledige TS is herzien om het allemaal weer een stuk makkelijker en vooral om een betere aansturing te krijgen van de NOM. De grootste aanpassing is eigenlijk het niet meer nodig hebben van een externe meting (bijv Homewizard Energysocket). Ook een aantal kleine aanpassingen zoals nog maar één automatisering en een strakkere NOM lijn.
zenSDK gielz (lokaal)
https://github.com/Zendure/zenSDKDeze maakt gebruik van de ZenSDK van Zendure zelf. Hierbij maak je lokaal verbinding met je batterij.
code:
in je internet browser om te zien of je zenSDK data hebt via het juiste ip.1
| http://<IP-BATTERIJ>/properties/report |
/f/image/d8rYj0ZwcJYzgpRe4u5TPQmQ.png?f=fotoalbum_large)
(1/3) Sensoren aanmaken via configuration.yaml
Zorg eerst dat HEMS is uitgeschakeld in de app, 2 stuurlui is geen goed plan.Daarna gaan wij alles aanmaken voor de restful integratie (zit standaard in HA). Hiervoor heb ik een bijna plug-n-play Configuration.yaml gemaakt waarbij je de volgende hardware nodig hebt; P1 van Homewizard (of een andere P1 met data per seconden) en een Solarflow 2400 AC. Heb je een Solarflow 800 pro dan zal je even alle namen moeten nalopen en veranderen.
Vul de volgende gegevens in;
<IP-BATTERIJ> (in de app te vinden bij device information)
<SERIAL-2400AC> (in de app te vinden bij device information of via je properties link in je internet browser)
<IP-HOMEWIZARD-P1> (zorg dat de lokale api aan staat in de app van homewizard)
Maak eerst een backup van je huidige configuration.yaml. Daarna pas je je huidige aan of je gebruikt direct de bovenstaande als je nooit iets met de configuration.yaml gedaan hebt. Hierna herstart je Home Assistant. En krijg je het onderstaande te zien tussen je integraties;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 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 # Laad standaard set van integraties. Niet verwijderen. default_config: # Laad frontend thema's uit de themes-map frontend: themes: !include_dir_merge_named themes automation: !include automations.yaml script: !include scripts.yaml scene: !include scenes.yaml input_select: zendure_2400_ac_modus_selecteren: name: Zendure 2400 AC Modus Selecteren icon: mdi:battery-charging-wireless options: - Standby - Handmatig - Nul op de meter - Alleen slim ontladen - Alleen slim opladen - Opladen met 2400 watt - Ontladen met 2400 watt input_number: zendure_2400_ac_handmatig_vermogen: name: Zendure 2400 AC Handmatig Vermogen min: -2400 max: 2400 step: 1 mode: box unit_of_measurement: "W" sensor: - platform: integration name: "Zendure 2400 AC Energie Import" unique_id: zendure_2400_ac_energie_import source: sensor.zendure_2400_ac_vermogen_import unit_prefix: k round: 2 method: trapezoidal - platform: integration name: "Zendure 2400 AC Energie Export" unique_id: zendure_2400_ac_energie_export source: sensor.zendure_2400_ac_vermogen_export unit_prefix: k round: 2 method: trapezoidal template: - sensor: - name: "Zendure 2400 AC Indicatie Beschikbare Energie" unit_of_measurement: "kWh" state_class: measurement device_class: energy state: > {% set laad = states('sensor.zendure_2400_ac_laadpercentage') | float(0) %} {% set min_laad = states('sensor.zendure_2400_ac_minimale_laadpercentage') | float(0) %} {% set aantal_batterijen = states('sensor.zendure_2400_ac_aantal_batterijen') | float(1) %} {% set capaciteit_per_batterij = 2.88 %} {% set totale_capaciteit = aantal_batterijen * capaciteit_per_batterij %} {% set bruikbaar_percentage = laad - min_laad %} {% if bruikbaar_percentage < 0 %} 0 {% else %} {{ (bruikbaar_percentage / 100 * totale_capaciteit) | round(2) }} {% endif %} unique_id: Zendure_2400_AC_Indicatie_Beschikbare_Energie icon: mdi:lightning-bolt-circle - name: "Zendure 2400 AC RTE Totaal" unit_of_measurement: "%" state_class: measurement icon: mdi:percent-box state: > {% set energy_import = states('sensor.zendure_2400_ac_energie_import') | float(0) %} {% set energy_export = states('sensor.zendure_2400_ac_energie_export') | float(0) %} {% if energy_import > 0 %} {% set percentage = ((energy_export / energy_import) * 100) | round(2) %} {% if 0 <= percentage <= 100 %} {{ percentage }} {% else %} 0 {% endif %} {% else %} 0 {% endif %} unique_id: Zendure_2400_AC_RTE_Totaal rest: - resource: http://<IP-BATTERIJ>/properties/report scan_interval: 1 sensor: - name: "Zendure 2400 AC Vermogen Export" value_template: "{{ value_json['properties']['packInputPower'] | int }}" unique_id: Zendure_2400_AC_Vermogen_Export unit_of_measurement: "W" state_class: measurement device_class: power - name: "Zendure 2400 AC Vermogen Import" value_template: "{{ (value_json['properties']['outputPackPower'] | int) }}" unique_id: Zendure_2400_AC_Vermogen_Import unit_of_measurement: "W" state_class: measurement device_class: power - name: "Zendure 2400 AC Signaalsterkte" value_template: > {% set rssi = value_json['properties']['rssi'] | int(-100) %} {% if rssi >= -60 %} Uitstekend {% elif rssi >= -70 %} Goed {% elif rssi >= -80 %} Zwak {% else %} Slecht {% endif %} unique_id: Zendure_2400_AC_Signaalsterkte icon: mdi:wifi - name: "Zendure 2400 AC Batterij 1 Temperatuur" value_template: > {% set maxTemp = value_json['packData'][0]['maxTemp'] | int %} {{ (maxTemp - 2731) / 10.0 }} unique_id: Zendure_2400_AC_Batterij_1_Temperatuur unit_of_measurement: "°C" state_class: measurement device_class: temperature icon: mdi:thermometer - name: "Zendure 2400 AC Batterij 2 Temperatuur" value_template: > {% set maxTemp = value_json['packData'][1]['maxTemp'] | int %} {{ (maxTemp - 2731) / 10.0 }} unique_id: Zendure_2400_AC_Batterij_2_Temperatuur unit_of_measurement: "°C" state_class: measurement device_class: temperature icon: mdi:thermometer - name: "Zendure 2400 AC Batterij 3 Temperatuur" value_template: > {% set maxTemp = value_json['packData'][2]['maxTemp'] | int %} {{ (maxTemp - 2731) / 10.0 }} unique_id: Zendure_2400_AC_Batterij_3_Temperatuur unit_of_measurement: "°C" state_class: measurement device_class: temperature icon: mdi:thermometer - name: "Zendure 2400 AC Batterij 4 Temperatuur" value_template: > {% set maxTemp = value_json['packData'][3]['maxTemp'] | int %} {{ (maxTemp - 2731) / 10.0 }} unique_id: Zendure_2400_AC_Batterij_4_Temperatuur unit_of_measurement: "°C" state_class: measurement device_class: temperature icon: mdi:thermometer - name: "Zendure 2400 AC Batterij 5 Temperatuur" value_template: > {% set maxTemp = value_json['packData'][4]['maxTemp'] | int %} {{ (maxTemp - 2731) / 10.0 }} unique_id: Zendure_2400_AC_Batterij_5_Temperatuur unit_of_measurement: "°C" state_class: measurement device_class: temperature icon: mdi:thermometer - name: "Zendure 2400 AC Batterij 6 Temperatuur" value_template: > {% set maxTemp = value_json['packData'][5]['maxTemp'] | int %} {{ (maxTemp - 2731) / 10.0 }} unique_id: Zendure_2400_AC_Batterij_6_Temperatuur unit_of_measurement: "°C" state_class: measurement device_class: temperature icon: mdi:thermometer - name: "Zendure 2400 AC Vermogen Aansturing" value_template: > {% set opladen = value_json['properties']['outputPackPower'] | int %} {% set ontladen = - (value_json['properties']['packInputPower'] | int) %} {% if opladen != 0 %} {{ opladen }} {% else %} {{ ontladen }} {% endif %} unique_id: Zendure_2400_AC_Vermogen_Aansturing unit_of_measurement: "W" state_class: measurement device_class: power - name: "Zendure 2400 AC Aantal Batterijen" value_template: "{{ value_json['properties']['packNum'] }}" unique_id: Zendure_2400_AC_Aantal_Batterijen icon: mdi:battery - name: "Zendure 2400 AC Opslagmodus" value_template: > {% set states = {1: "Opslaan in RAM", 0: "Opslaan in Flash"} %} {% set packState = value_json['properties']['smartMode'] | int %} {{ states.get(packState, "Onbekend") }} unique_id: Zendure_2400_AC_Opslagmodus icon: mdi:floppy - name: "Zendure 2400 AC Batterijspanning" value_template: "{{ (value_json['properties']['BatVolt'] | float / 100) | round(2) }}" unique_id: Zendure_2400_AC_Batterijspanning unit_of_measurement: "V" state_class: measurement device_class: voltage icon: mdi:sine-wave - name: "Zendure 2400 AC Resterende Ontlaad Tijd" value_template: > {% set vermogen_aansturing = states('sensor.zendure_2400_ac_vermogen_aansturing') | float(0) %} {% if vermogen_aansturing < 0 %} {% set total_minutes = value_json['properties']['remainOutTime'] | float(0) %} {% set hours = (total_minutes // 60) | int %} {% set minutes = (total_minutes % 60) | int %} {{ hours }}u {{ minutes }}m {% else %} Niet aan het ontladen {% endif %} icon: mdi:clock-time-eight-outline unique_id: zendure_2400_ac_resterende_ontlaad_tijd - name: "Zendure 2400 AC Omvormer Temperatuur" value_template: > {% set maxTemp = value_json['properties']['hyperTmp'] | int %} {{ (maxTemp - 2731) / 10.0 }} unique_id: Zendure_2400_AC_Omvormer_Temperatuur unit_of_measurement: "°C" state_class: measurement device_class: temperature icon: mdi:thermometer - name: "Zendure 2400 AC Laadpercentage" value_template: "{{ value_json['properties']['electricLevel'] }}" device_class: battery unit_of_measurement: "%" state_class: measurement unique_id: Zendure_2400_AC_Laadpercentage - name: "Zendure 2400 AC Minimale Laadpercentage" value_template: "{{ (value_json['properties']['minSoc'] | int / 10) | int }}" device_class: battery unit_of_measurement: "%" state_class: measurement unique_id: Zendure_2400_AC_Minimale_Laadpercentage icon: mdi:battery-high - name: "Zendure 2400 AC Maximale Laadpercentage" value_template: "{{ (value_json['properties']['socSet'] | int / 10) | int }}" device_class: battery unit_of_measurement: "%" state_class: measurement unique_id: Zendure_2400_AC_Maximale_Laadpercentage icon: mdi:battery-high - name: "Zendure 2400 AC Modus" value_template: > {% set states = {1: "Opladen", 2: "Ontladen"} %} {% set packState = value_json['properties']['acMode'] | int %} {{ states.get(packState, "Onbekend") }} unique_id: Zendure_2400_AC_Modus icon: mdi:battery-charging-wireless - name: "Zendure 2400 AC Error" value_template: > {% set states = {0: "Geen meldingen", 1: "Zie Zendure APP"} %} {% set packState = value_json['properties']['is_error'] | int %} {{ states.get(packState, "Onbekend") }} unique_id: Zendure_2400_AC_Error icon: mdi:battery-alert - name: "Zendure 2400 AC SOC Status" value_template: > {% set states = {0: "Goed", 1: "Kalibreren"} %} {% set packState = value_json['properties']['socStatus'] | int %} {{ states.get(packState, "Onbekend") }} unique_id: Zendure_2400_AC_SOC_Status icon: mdi:battery-heart-variant - name: "Zendure 2400 AC Ingesteld Ontlaadvermogen" value_template: "{{ value_json['properties']['outputLimit'] }}" unique_id: Zendure_2400_AC_Ingesteld_Ontlaadvermogen unit_of_measurement: "W" state_class: measurement device_class: power - name: "Zendure 2400 AC Ingesteld Oplaadvermogen" value_template: "{{ value_json['properties']['inputLimit'] }}" unique_id: Zendure_2400_AC_Ingesteld_Oplaadvermogen unit_of_measurement: "W" state_class: measurement device_class: power - resource: http://<IP-HOMEWIZARD-P1>/api/v1/data # IP-adres van je Homewizard P1 voor V1 API scan_interval: 1 sensor: - name: "P1 Aansturing API v1" value_template: "{{ value_json.active_power_w | float }}" unique_id: P1_Aansturing_API_V1 unit_of_measurement: "W" device_class: power rest_command: zendure_opslaan_in_ram: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SERIAL-2400AC>","properties":{"smartMode": 1 }}' zendure_snel_laden: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SERIAL-2400AC>","properties":{"acMode": 1, "inputLimit": 2400 }}' zendure_stop_met_laden: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SERIAL-2400AC>","properties":{"acMode": 1, "inputLimit": 0 }}' zendure_x_laden: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SERIAL-2400AC>","properties":{"acMode": 1, "inputLimit": {{inputLimit}} }}' zendure_x_laden_balanceren: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SERIAL-2400AC>","properties":{"inputLimit": {{inputLimit}} }}' zendure_x_ontladen: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SERIAL-2400AC>","properties":{"acMode": 2, "outputLimit": {{outputLimit}} }}' zendure_x_ontladen_balanceren: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SERIAL-2400AC>","properties":{"outputLimit": {{outputLimit}} }}' zendure_snel_ontladen: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SERIAL-2400AC>","properties":{"acMode": 2, "outputLimit": 2400 }}' zendure_stop_met_ontladen: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SERIAL-2400AC>","properties":{"acMode": 2, "outputLimit": 0 }}' zendure_stop_met_alles: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SERIAL-2400AC>","properties":{"outputLimit": 0, "inputLimit": 0 }}' zendure_standby: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SERIAL-2400AC>","properties":{"smartMode": 0, "outputLimit": 0, "inputLimit": 0 }}'
:strip_exif()/f/image/UXu36CdUJ1KpqALNx5mSgJcP.png?f=user_large)
*beschikbare entiteiten
:strip_exif()/f/image/ybYjJIurZDrRxGMWhmq1Psby.jpg?f=fotoalbum_large)
Je hebt nu lokaal verbinding met je 2400 AC. Om het nu even te testen kun je naar je Ontwikkelhulpmiddelen gaan en onder acties Zendure opzoeken. Probeer hier even de optie Snel ontladen (LET OP! DIT IS 2400 WATT, Hij hanteert wel je ingestelde limieten in de app) uit te voeren en kijk of je 2400 AC reageert en daarna Stop met alles. Zie je deze rest_commands niet maar had je wel je sensoren gezien dan kan het zijn dat Home Assistant de configuration.yaml niet goed heeft ingeladen. Helaas is dit een bug en moet je vaak een aantal keer herstarten. Hierna raakt hij ze nooit meer kwijt na een herstart.
/f/image/8Eh4Sb8T2h2sj23qvkg3NOHx.png?f=fotoalbum_large)
(2/3) Zendure zenSDK (Gielz) automatisering
De motor van alles. Deze zal slim opladen en slim ontladen en samen dansen tot één geheel. Er zit ook standaard uitgesteld laden in die 1 uur na zonsopgang aan de slag gaat van april t/m september. En 1 uur voor zonsondergang niet meer gaat hamsteren. Heb je bij het bovenstaande geen namen aangepast dan is het een kwestie van een nieuwe automatisering aanmaken en rechtsboven op bewerken in YAML aan te klikken. Copy en paste en opslaan met deze naam en start daarna de automatisering;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 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 alias: Zendure zenSDK (Gielz) description: Versie 20250826 triggers: - seconds: /4 trigger: time_pattern - entity_id: - input_number.zendure_2400_ac_handmatig_vermogen trigger: state - entity_id: - input_select.zendure_2400_ac_modus_selecteren id: modus_trigger trigger: state conditions: [] actions: - alias: Modus choose: - conditions: - condition: trigger id: modus_trigger - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Standby sequence: - action: rest_command.zendure_standby data: {} alias: Standby - conditions: - condition: trigger id: modus_trigger - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Handmatig sequence: - action: rest_command.zendure_stop_met_alles data: {} alias: Handmatig - conditions: - condition: trigger id: modus_trigger - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Nul op de meter sequence: - action: rest_command.zendure_stop_met_alles data: {} alias: Nul op de meter - conditions: - condition: trigger id: modus_trigger - condition: or conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim ontladen - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim opladen sequence: - action: rest_command.zendure_stop_met_alles data: {} alias: Alleen slim opladen/ontladen - conditions: - condition: trigger id: modus_trigger - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Ontladen met 2400 watt sequence: - action: rest_command.zendure_snel_ontladen data: {} alias: Ontladen met 2400 watt - conditions: - condition: trigger id: modus_trigger - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Opladen met 2400 watt sequence: - action: rest_command.zendure_snel_laden data: {} alias: Opladen met 2400 watt - alias: Aansturing choose: - conditions: - condition: state entity_id: sensor.zendure_2400_ac_opslagmodus state: Opslaan in Flash - condition: or conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Nul op de meter - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim opladen - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim ontladen - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Handmatig - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Opladen met 2400 watt - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Ontladen met 2400 watt sequence: - action: rest_command.zendure_opslaan_in_ram data: {} alias: Wanneer opslag modus op Flash staat deze op RAM instellen - conditions: - condition: numeric_state entity_id: sensor.p1_aansturing_api_v1 above: 100 - condition: numeric_state entity_id: sensor.zendure_2400_ac_laadpercentage above: 10 - condition: numeric_state entity_id: sensor.zendure_2400_ac_vermogen_aansturing above: -30 below: 75 - condition: or conditions: - condition: state entity_id: sensor.zendure_2400_ac_modus state: Opladen for: "00:00:09" - condition: state entity_id: sensor.zendure_2400_ac_modus state: Ontladen - condition: or conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Nul op de meter - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim ontladen sequence: - data: outputLimit: >- {% set factor = 0.75 %} {% set cap = 2400 %} {% set correctie = -5 %} {% set p1 = states('sensor.p1_aansturing_api_v1') | float(0) %} {% set zendure = states('sensor.zendure_2400_ac_vermogen_aansturing') | float(0) %} {% set totaal = (p1 - zendure - correctie) * factor %} {% set beperkt = [ [totaal, 0] | max, cap ] | min %} {{ beperkt | int }} action: rest_command.zendure_x_ontladen alias: Start met ontladen bij +100 watt (75% van de vraag) - conditions: - condition: numeric_state entity_id: sensor.zendure_2400_ac_laadpercentage above: 10 - condition: template value_template: >- {% set factor = 1.00 %} {% set cap = 2400 %} {% set correctie = -5 %} {% set p1 = states('sensor.p1_aansturing_api_v1') | float(0) %} {% set zendure = states('sensor.zendure_2400_ac_vermogen_aansturing') | float(0) %} {% set totaal = (p1 - zendure - correctie) * factor %} {% set beperkt = [ [totaal, 0] | max, cap ] | min %} {% set target = beperkt | int %} {% set huidig = states('sensor.zendure_2400_ac_ingesteld_ontlaadvermogen') | int(0) %} {{ huidig != target }} - condition: numeric_state entity_id: sensor.zendure_2400_ac_vermogen_aansturing below: 0 - condition: or conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Nul op de meter - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim ontladen sequence: - data: outputLimit: >- {% set factor = 1.00 %} {% set cap = 2400 %} {% set correctie = -5 %} {% set p1 = states('sensor.p1_aansturing_api_v1') | float(0) %} {% set zendure = states('sensor.zendure_2400_ac_vermogen_aansturing') | float(0) %} {% set totaal = (p1 - zendure - correctie) * factor %} {% set beperkt = [ [totaal, 0] | max, cap ] | min %} {{ beperkt | int }} action: rest_command.zendure_x_ontladen_balanceren alias: Tijdens ontladen balanceren naar 0 watt (100% van de vraag) - conditions: - condition: numeric_state entity_id: sensor.p1_aansturing_api_v1 below: -100 - condition: numeric_state entity_id: sensor.zendure_2400_ac_laadpercentage below: 100 - condition: numeric_state entity_id: sensor.zendure_2400_ac_vermogen_aansturing above: -30 below: 30 - condition: or conditions: - condition: template value_template: | {% set maand = now().month %} {{ maand < 4 or maand > 9 }} - condition: and conditions: - condition: template value_template: > {% set maand = now().month %} {{ maand >= 4 and maand <= 9 }} - condition: sun after: sunrise before: sunset after_offset: "+01:00:00" before_offset: "-01:00:00" - condition: not conditions: - condition: state entity_id: sensor.zendure_2400_ac_modus state: ontladen for: "00:00:15" - condition: or conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Nul op de meter - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim opladen sequence: - data: inputLimit: >- {% set factor = 0.75 %} {% set cap = 2400 %} {% set correctie_export = 50 %} {% set p1 = states('sensor.p1_aansturing_api_v1') | float(0) %} {% set zendure = states('sensor.zendure_2400_ac_vermogen_aansturing') | float(0) %} {% set verschil = zendure - p1 - correctie_export %} {% set beperkt = verschil * factor if verschil > 0 else 0 %} {% set beperkt = beperkt if beperkt < cap else cap %} {{ beperkt | int }} action: rest_command.zendure_x_laden alias: >- Start met opladen bij -100 watt (alleen tussen 1u na ☀︎ en 1u voor ☾) (75% van aanbod) - conditions: - condition: template value_template: >- {% set factor = 1.00 %} {% set cap = 2400 %} {% set correctie_export = 50 %} {% set p1 = states('sensor.p1_aansturing_api_v1') | float(0) %} {% set zendure = states('sensor.zendure_2400_ac_vermogen_aansturing') | float(0) %} {% set verschil = (zendure - p1 - correctie_export) * factor %} {% set beperkt = [ [verschil, 0] | max, cap ] | min %} {% set target = beperkt | int %} {% set huidig = states('sensor.zendure_2400_ac_ingesteld_oplaadvermogen') | int(0) %} {{ huidig != target }} - condition: numeric_state entity_id: sensor.zendure_2400_ac_laadpercentage below: 100 - condition: numeric_state entity_id: sensor.zendure_2400_ac_vermogen_aansturing above: 0 - condition: or conditions: - condition: template value_template: | {% set maand = now().month %} {{ maand < 4 or maand > 9 }} - condition: and conditions: - condition: template value_template: > {% set maand = now().month %} {{ maand >= 4 and maand <= 9 }} - condition: sun after: sunrise before: sunset after_offset: "+01:00:00" before_offset: "-01:00:00" - condition: not conditions: - condition: state entity_id: sensor.zendure_2400_ac_modus state: ontladen for: "00:00:15" - condition: or conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Nul op de meter - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim opladen sequence: - data: inputLimit: >- {% set factor = 1.00 %} {% set cap = 2400 %} {% set correctie_export = 50 %} {% set p1 = states('sensor.p1_aansturing_api_v1') | float(0) %} {% set zendure = states('sensor.zendure_2400_ac_vermogen_aansturing') | float(0) %} {% set verschil = zendure - p1 - correctie_export %} {% set beperkt = verschil * factor if verschil > 0 else 0 %} {% set beperkt = beperkt if beperkt < cap else cap %} {{ beperkt | int }} action: rest_command.zendure_x_laden_balanceren alias: >- Tijdens opladen balanceren naar -80 watt (alleen tussen 1u na ☀︎ en 1u voor ☾) (100% van aanbod) - conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Handmatig - condition: numeric_state entity_id: input_number.zendure_2400_ac_handmatig_vermogen below: 0 sequence: - data: outputLimit: >- {{ states('input_number.zendure_2400_ac_handmatig_vermogen') | int | abs }} action: rest_command.zendure_x_ontladen alias: Handmatig ontladen - conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Handmatig - condition: numeric_state entity_id: input_number.zendure_2400_ac_handmatig_vermogen above: -1 sequence: - data: inputLimit: >- {{ states('input_number.zendure_2400_ac_handmatig_vermogen') | int | abs }} action: rest_command.zendure_x_laden alias: Handmatig laden mode: single
:gifsicle():strip_exif()/f/image/ZF93jbv5ikiiTuPZKsqsSEV6.gif?f=user_large)
:gifsicle():strip_exif()/f/image/gmx1eNhHPdIqSwq1nPkADwFu.gif?f=user_large)
(3/3) Batterij laten werken
Voeg nu de entiteit Zendure 2400 AC Modus Selecteren toe aan je dashboard en wellicht nog andere entiteiten die je hebt aangemaakt via de configuration.yaml. Zendure 2400 AC Modus Selecteren zal op Standby staan kies hier je gewenste modus om de Zendure zenSDK (Gielz) automatisering te laten gaan werken.:gifsicle():strip_exif()/f/image/HOzuofE1B3xQ16mIOEOVPTPu.gif?f=user_large)
FAQ zenSDK gielz (lokaal)
🔴 Hoe zou mijn NOM er moeten uitzien als alles goed geconfigureerd is?
Is het niet zoals onderstaande grafiek dan is de fout 9/10 keer dat je P1 geen 1 seconden data heeft of überhaupt geen data genereert. Ook wanneer je eigen sensoren gebruikt moet je die goed vervangen in de Zendure zenSDK (Gielz) (het liefst via kladblok vervangen). Mocht het hierna nog niet helemaal vlak zijn pas dan een correctie toe en kijk naar je apparaten die korte piekvermogens hebben (bijv een kokend waterkraan).:strip_exif()/f/image/DxTMeVgQx6zyqosDKGEYoX6q.gif?f=fotoalbum_large)
🔴 Ik wil juist meer/minder opladen of ontladen en dus een correctie toepassen.
In de Zendure zenSDK (Gielz) automatisering heb je als eind actie bij iedere optie een template. En ook 2 voorwaarde bij optie 3 en 5 om het ingestelde vermogen niet te overschrijven wanneer de doelwaarde het zelfde is. Hier staat {% set correctie = -5 %} bij ontladen en bij laden {% set correctie_export = 50 %} en deze kun je bij ontladen een min waarde bijvoorbeeld -50 geven dan is het doel -50 watt. Kijk gewoon even in de nacht of je vind dat er 5 of 10 watt af moet en speel een beetje met deze waarde. Heb je grotere afwijkingen dan 50 watt bij ontladen dan is dit niet de oplossing maar is de configuratie fout.🔴 Ik wil niet op 2400 maximaal opladen of ontladen. Wat nu?.
In de Zendure zenSDK (Gielz) automatisering heb je als eind actie bij iedere optie een template. En ook 2 voorwaarde bij optie 3 en 5 om het ingestelde vermogen niet te overschrijven wanneer de doelwaarde het zelfde is. Hier staat {% set cap = 2400 %} en deze kun je aanpassen naar wat jij wilt. Hij zal nooit meer kunnen ontladen en opladen dan wat jij in de app als maximum hebt ingesteld.🔴 Uitgesteld laden in de opwekseizoen wil ik aanpassen of uitschakelen.
In de Zendure zenSDK (Gielz) automatisering heb je bij optie 4 en 5 onder aansturing de uitgesteld laden voorwaarden zitten. Standaard staat deze op 1 uur na zonsopkomst starten met laden en 1 uur voor zonsondergang stoppen met laden. Deze kun je aanpassen of de volledige voorwaarde regel uitschakelen.:no_upscale():strip_icc():strip_exif()/f/image/ZoSrgpraKUk6XTJAlC3IfSJh.jpg?f=user_large)
Werkt deze API via het Flashgeheugen of het RAM geheugen?
Hij kijkt elke 4 seconden of hij niet toevallig naar het Flashgeheugen gaat wegschrijven. Als dit het geval is zet de Zendure zenSDK (Gielz) automatisering dit goed tenzij je in de Standby modus staat. In de Standby modus moet smartmode uit staan om te voorkomen dat hij permanent 15-30 watt gaat terugleveren.Zendure support:
For the device, each time the output mode is switched, it will be written to the flash. Why is it written? It is designed to ensure that the device can maintain the last state after power failure. For the new 2025 products, you can find a property called smartMode. Once the value is 1, the ac mode setting will no longer be written to the flash, so the flash life will be much longer.
Therefore, for linkage in ct mode, smartmode will be 1, and acmode can be set repeatedly to achieve a balance in overall household energy input and output.
Kan ik nu mijn 2400 AC blokkeren van het internet.
Ja zeker het draait 100% lokaal en jij bent de baas:strip_exif()/f/image/MQYUSieP3Yf5jSfqXqNNP1jh.jpg?f=fotoalbum_large)
Zendure zenSDK (Gielz) staat op 1-4 seconden kan deze ook naar 1-3 seconden?
Optimale is hier op dit moment 1-4 seconden maar wees vrij om dit aan te passen. Wat je zult zien dat het vermogen van de batterij en de P1 out of sync gaan lopen en het een golfbeweging gaat worden op je P1. Bij bijvoorbeeld de Homewizard PiB hanteren ze standaard 2-4 seconden.Ik heb geen Homewizard P1 of überhaupt geen P1
Zolang je de meterstanden maar zo nauwkeurig mogelijk en per seconden beschikbaar zijn is dit geen probleem. Dit kan bijvoorbeeld ook met een Zendure P1, Zendure 3CT, Shelly CT of Homewizard KWH meter na je hoofdschakelaar. Gaat niet zelf in je meterkast rotzooien als je alleen weet waar je meterkast zit. Vergeet niet in de Zendure zenSDK (Gielz) automatisering de sensor naar je eigen sensor aan te passen. Kladblok vervangen is je vriend.De sensoren zijn soms allemaal niet beschikbaar. API lijkt offline
Dit kan 2 oorzaken hebben. Of de signaalsterke sensor geeft zwak of slecht aan en je zal het WIFI signaal moeten verbeteren. Of je gebruikt meerdere API calls door bijvoorbeeld de ZenSDK te draaien + de Zendure HA (Fireson).[ Voor 255% gewijzigd door gielz op 07-09-2025 21:00 ]
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+