energienerds.nl, gasloos, 11,5kWp, 20 kWh accu, EV, Atlantic WPB
Heb niks meer van Zendure gehoord in mijn ticket, maar, keek even in de app en zag update V1.0.3 staan.Tijgerkracht schreef op maandag 2 juni 2025 @ 17:32:
[...]
Mijn data ziet er heel anders uit, heb ik dan versie 4115?
[Afbeelding]
Gelijk installeren en die faalde de eerste keer op 21%.
Nog maar een keer en dat lukte nu wel.
En yes! De lokale API werkt.
properties/report levert nu de juiste info
en ook
properties/write werkt (wel even de HA integratie uitgezet om dit te testen natuurlijk).
So far so good.
Ben nu van plan de lokale API integratie te gaan testen van @gielz
21x325WP, 10x410WP, SE10K, Blackbird 8K, vloerverwarming en fancoils, Vent-Axia WTW
Dat is goed nieuws en dat betekent waarschijnlijk ook dat als de Hypers op de HEMS omgeving zitten ze ook deze lokale api gaan krijgen.Tijgerkracht schreef op donderdag 5 juni 2025 @ 13:19:
[...]
Heb niks meer van Zendure gehoord in mijn ticket, maar, keek even in de app en zag update V1.0.3 staan.
Gelijk installeren en die faalde de eerste keer op 21%.
Ng maar een keer en dat lukte nu wel.
En yes! De lokale API werkt.
properties/report levert nu de juiste info
en ook
properties/write werkt (wel even de HA integratie uitgezet om dit te testen natuurlijk).
So far so good.
Ben nu van plan de lokale API integratie te gaan testen van @gielz
EDIT:
Het gaat hier met een .2 startversie niet goed, de upgrade blijft op 0% hangen en na een paar minuten geeft hij aan dat het mislukt is.
[ Voor 9% gewijzigd door Mediacj op 05-06-2025 13:57 ]
Tik dit maar eens in via CMD;
1
| url -X GET "http://<batteryip>/properties/report" |
/f/image/JHYJ2o6ZaKahpkustjW9Bryj.png?f=fotoalbum_large)
jordyc schreef op donderdag 5 juni 2025 @ 15:34:
ik heb vandeweek een AC2400 binnen gekregen met 2 AB3000X. Op dit moment heb ik het in HA draaiende zonder MQTT of wat dan ook. Het is me ook gelukt om versie 1.0.3 te installeren op de omvormer. Toen ik het in eerste instantie in HA configureerde met MQTT leverde dat geen data op. Ik neem aan dat dit komt omdat ik geen BLE heb, klopt dit?
[ Voor 18% gewijzigd door gielz op 05-06-2025 15:46 ]
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
1
| curl -X GET "http://<battery-ip>/properties/report" |
jordyc schreef op donderdag 5 juni 2025 @ 15:58:
Als ik dat in CMD, de opdrachtprompt van windows, in type krijg ik de foutmelding dat 'url' is not recognized as an internal or external command. Ik ben niet geweldig onderlegd qua IT, dus dit is voor mij onbekend terrein.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
/f/image/Jzxxklif3UqRM42ovMkQ2EGc.png?f=fotoalbum_large)
[ Voor 174% gewijzigd door jordyc op 05-06-2025 16:21 ]
Als je bekend met configuration.yaml in je HA folder dan kun je die van mij overnemen voor de sensoren en een aantal standaard commando's.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Er staan meerdere serienummers in je screenshot. Het is verstandig om die even weg te halen.
Humans don’t need an opportunity to be wicked. They’ve been doing it for free since the beginning.
<IPBATTERY>
<SERIENUMMER> Serienummer van Zendure, let op niet van je 3000x batterij.
- Optioneel voor NOM, kunnen ook andere sensoren zijn die je al hebt. Maar deze hebben een 1 seconden interval.
<IPHOMEWIZARDP1> Dit is de V1 api van Homewizard. Draai zelf V1 en V2.
<IPHOMEWIZARDENERGYSOCKET> Ook V1 api van Homewizard, betreft energysocket bij de batterij. De batterij zelf toont een foutief vermogen wat voor NOM niet handig is.
Zodra het werkt in HA heb je al een aantal commando's;
:strip_exif()/f/image/zzgq7GqZo9Uca17P33x0osYy.png?f=user_large)
En natuurlijk je sensoren voor leuke grafiekjes, dashboard en noem maar op;
/f/image/Ec0pvyyTpdIZWQSG0EJ9qJPt.png?f=fotoalbum_large)
Optioneel de V2 APIcode:
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 # 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 rest: - resource: http://<IPBATTERY>/properties/report # IP-adres van je Zendure sensor: - name: "Zendure 2400 AC Resterende Ontlaad Tijd" value_template: > {% set total_minutes = value_json['properties']['remainOutTime'] | float %} {% set hours = (total_minutes // 60) | int %} {% set minutes = (total_minutes % 60) | int %} {{ hours }}u {{ minutes }}m 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 - name: "Zendure 2400 AC Batterij Temperatuur" value_template: > {% set maxTemp = value_json['packData'][0]['maxTemp'] | int %} {{ (maxTemp - 2731) / 10.0 }} unique_id: Zendure_2400_AC_Batterij_Temperatuur unit_of_measurement: "°C" state_class: measurement device_class: temperature - 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 - 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 - name: "Zendure 2400 AC Mode" value_template: > {% set states = {1: "Opladen", 2: "Ontladen"} %} {% set packState = value_json['properties']['acMode'] | int %} {{ states.get(packState, "Onbekend") }} unique_id: Zendure_2400_AC_Mode - name: "Zendure 2400 AC Mode Nummer" value_template: "{{ value_json['properties']['acMode'] }}" state_class: measurement unique_id: Zendure_2400_AC_Mode_Nummer - 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 - name: "Zendure 2400 AC Vermogen (ontladen)" value_template: "{{ - (value_json['properties']['packInputPower'] | int) }}" unique_id: Zendure_2400_AC_Vermogen_Ontladen unit_of_measurement: "W" state_class: measurement device_class: power - name: "Zendure 2400 AC Vermogen (opladen)" value_template: "{{ value_json['properties']['outputPackPower'] }}" unique_id: Zendure_2400_AC_Vermogen_Opladen unit_of_measurement: "W" state_class: measurement device_class: power - name: "Zendure 2400 AC Vermogen Gecombineerd" 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_Gecombineerd unit_of_measurement: "W" state_class: measurement device_class: power - resource: http://<IPHOMEWIZARDP1>/api/v1/data # IP-adres van je P1 voor V1 API scan_interval: 1 sensor: - name: "P1 Zendure Aansturing API v1" value_template: "{{ value_json.active_power_w | float }}" unique_id: P1_Zendure_Aansturing_API_V1 unit_of_measurement: "W" state_class: measurement device_class: power - resource: http://<IPHOMEWIZARDENERGYSOCKET>/api/v1/data # IP-adres van je energysocket voor V1 API scan_interval: 1 sensor: - name: "Zendure 2400 AC Vermogen Aansturing API v1" value_template: "{{ value_json.active_power_w | float }}" unique_id: Zendure_2400_AC_Vermogen_Aansturing_API_V1 unit_of_measurement: "W" state_class: measurement device_class: power rest_command: zendure_snel_laden: url: http://<IPBATTERY>/properties/write method: POST payload: '{"sn":"<SERIENUMMER>","properties":{"acMode": 1, "inputLimit": 2400 }}' zendure_stop_met_laden: url: http://<IPBATTERY>/properties/write method: POST payload: '{"sn":"<SERIENUMMER>","properties":{"acMode": 1, "inputLimit": 0 }}' zendure_x_laden: url: http://<IPBATTERY>/properties/write method: POST payload: '{"sn":"<SERIENUMMER>","properties":{"acMode": 1, "inputLimit": {{inputLimit}} }}' zendure_x_ontladen: url: http://<IPBATTERY>/properties/write method: POST payload: '{"sn":"<SERIENUMMER>","properties":{"acMode": 2, "outputLimit": {{outputLimit}} }}' zendure_snel_ontladen: url: http://<IPBATTERY>/properties/write method: POST payload: '{"sn":"<SERIENUMMER>","properties":{"acMode": 2, "outputLimit": 2400 }}' zendure_stop_met_ontladen: url: http://<IPBATTERY>/properties/write method: POST payload: '{"sn":"<SERIENUMMER>","properties":{"acMode": 2, "outputLimit": 0 }}' zendure_stop_met_alles: url: http://<IPBATTERY>/properties/write method: POST payload: '{"sn":"<SERIENUMMER>","properties":{"outputLimit": 0, "inputLimit": 0 }}'
1
2
3
4
5
6
7
8
9
10
11
12
| - resource: https://<IPHOMEWIZARDP1>/api/measurement # IP-adres van je P1 voor V2 API verify_ssl: false scan_interval: 1 headers: Authorization: Bearer <TOKEN> sensor: - name: "P1 Zendure Aansturing API v2" value_template: "{{ value_json.power_w | float }}" unique_id: P1_Zendure_Aansturing_API_V2 unit_of_measurement: "W" state_class: measurement device_class: power |
[ Voor 12% gewijzigd door gielz op 05-06-2025 16:40 ]
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Ik heb de hele app meerdere malen nu doorlopen op zoek naar dingen die de 200 watt kunnen veroorzaken, maar op de baseload van het huis, welke ik niet aan kan passen, na niks kunnen vinden.
Wat heb ik gedaan:
- Geen local mqtt, want ik krijg geen data door richting HA en in de Zendure app valt dan ook alles weg.
- Ik heb de smart matching aan staan en gebruik de HW P1 meter.
- Ik ben uitgelogd in de app en heb in HA daarna de integratie opnieuw opgestart.
- De 200 watt staat in de app ingesteld als de baseload van het huis.
- Ik heb HEMS aan staan en gebruik de slimme meter strategie.
- Ik heb geen tijdsblokken aangemaakt met daarin opgegeven hoeveel er geladen of ontladen moet worden.
Wat zie ik hier over het hoofd?
In de app HEMS uitzetten voor die 2400AC, anders heb je 2 kapiteinsjordyc schreef op donderdag 5 juni 2025 @ 21:04:
OK, ik doe volgens mij iets gruwelijk verkeerd. Ik krijg het maar niet voor elkaar dat HA de 2400AC gaat aansturen. Het lijkt wel alsof Zendure er constant tussendoor komt met z'n eigen signalen. Ik zie in HA regelmatig dat hij meer gaat ontladen richting NOM, maar daarna valt ie direct weer terug naar 200W.
Ik heb de hele app meerdere malen nu doorlopen op zoek naar dingen die de 200 watt kunnen veroorzaken, maar op de baseload van het huis, welke ik niet aan kan passen, na niks kunnen vinden.
Wat heb ik gedaan:
- Geen local mqtt, want ik krijg geen data door richting HA en in de Zendure app valt dan ook alles weg.
- Ik heb de smart matching aan staan en gebruik de HW P1 meter.
- Ik ben uitgelogd in de app en heb in HA daarna de integratie opnieuw opgestart.
- De 200 watt staat in de app ingesteld als de baseload van het huis.
- Ik heb HEMS aan staan en gebruik de slimme meter strategie.
- Ik heb geen tijdsblokken aangemaakt met daarin opgegeven hoeveel er geladen of ontladen moet worden.
Wat zie ik hier over het hoofd?
Had ik eerst ook, daarna accu verwijderd in de app en opnieuw toegevoegd
Let wel, als je hem verwijderd wordt ie ook van de wifi gehaald en wordt Bluetooth weer geactiveerd
21x325WP, 10x410WP, SE10K, Blackbird 8K, vloerverwarming en fancoils, Vent-Axia WTW
:strip_exif()/f/image/gAjsXA5IU7bWWni2PHFwrsA3.jpg?f=fotoalbum_large)
@Tijgerkracht dat was het hem inderdaad. Ik heb HEMS uitgezet, mezelf uitgelogd uit de app en daarna HA een herstart gegeven. Daarna werkte alles zoals verwacht.
Klopt, je hebt bij de 800 Pro en 2400 AC alleen de mogelijkheid van sharen met leesrechten. Niet met schrijfrechten. Dus als je de app toch wil gebruiken is de restapi het beste. Die werkt los van de app. We hebben de feedback aan Zendure gegeven om ook de sharing functionaliteit incl write voor de nieuwe devices in te bouwen en daar zouden ze naar gaan kijken. Dus afwachten of dit alsnog gerealiseerd gaat worden.claudenl schreef op vrijdag 6 juni 2025 @ 05:49:
Misschien dat het aan mij ligt, ik heb via de integratie van @FireSon de Hyper helemaal werkend gekregen in mijn HA setup. Echter zie ik in de zendure app bij mijn 2400AC geen "device sharing" mogelijkheid? Heeft iedereen dat? En is het wachten totdat dit voor de 2400AC ooit nog komt? Of heb ik iets bijzonders?[Afbeelding]
De huidige sharing zit beetje verstopt in het HEMS menu, eerst management systeem kiezen
:strip_exif()/f/image/Wz1kulLCZQdi4ZtZ405vf9eG.jpg?f=fotoalbum_large)
en dan daarna voor energy storage systeem kiezen (op volgende scherm) en dan kun je device sharen ( zonder write)
energienerds.nl, gasloos, 11,5kWp, 20 kWh accu, EV, Atlantic WPB
Hoe realiseer jij nu NOM? Hoe doe je die aansturing lokaal?
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
1. Ik heb een 2400 AC en in HA staat de chargemaxlimit op 2400. Aangezien ik maar 2 batterijen heb wil ik deze naar 800 of 1000 watt in kunnen stellen. Als ik in de Zendure app dit instel wordt dit goed doorgegeven, maar zodra ik HEMS uitzet worden de waardes weer overschreven naar 2400 watt.
2. Zijn er plannen om binnen de Fireson integratie op korte termijn smart charging en discharging op te nemen. Ik vind het zonde dat mijn batterij direct in de ochtend al opgeladen wordt terwijl de prijzen voor terugleveren nog relatief hoog zijn. Ik zag al dat Bikkelreal hier wat voor had gebouwd, dit zou een alternatief kunnen zijn als deze opties niet in de Fireson integratie komen.
Iemand een idee waar ik moet beginnen zoeken om de smart mode werkend te krijgen?
Oh ja, het gaat om een hyper 2000 met AB2000s batterij.
Heb je de vermogensmeter goed beschreven, bv P1 homewizard: sensor.p1_meter_powerKaickul schreef op zaterdag 7 juni 2025 @ 11:04:
De fireson intergratie werkt niet bij mij. Of het werkt wel maar niet de smart mode. Manueel kan ik alles aansturen, maar dan kan ik even goed de zendure app gebruiken. Ik gebruik een 2de account in Home Assistant en er staat er geen HEMS aan of een andere automatisering aan in de zendure app.
Iemand een idee waar ik moet beginnen zoeken om de smart mode werkend te krijgen?
Oh ja, het gaat om een hyper 2000 met AB2000s batterij.
Ha, daar leek inderdaad een fout te staan. Heb het nu aangepast en ik laat het even lopen om te zien of het nu wel werkt. Bedankt!DJN schreef op zaterdag 7 juni 2025 @ 12:54:
[...]
Heb je de vermogensmeter goed beschreven, bv P1 homewizard: sensor.p1_meter_power
Ik stuur volledig lokaal aan en ben nu al een tijdje "smart" NOM aan het testen 100% met de zon. Hier zitten nog wat uitdagingen in omdat ik het via één enkele automatisering wil. Maar tot nu toe loopt het zoals ik wil waarbij ik nu nog wat kleine aanpassingen aan het doen ben voor het wolkje-zon gedrag. Ben er nu wel achter dat 1 kant op ontladen of opladen super simpel is. Ga je dit combineren dan komt er nog wel wat als dit dan dat bij kijken.Taro schreef op zaterdag 7 juni 2025 @ 10:14:
@gielz Heb jij ook al lokale opties voor Smart Charging, Smart Discharging en NOM? Want snel laden of snel ontladen is leuk, maar al die opties samen leiden tot een mooi energie management systeem.
Hoe realiseer jij nu NOM? Hoe doe je die aansturing lokaal?
Wat heb je straks nodig
- Zendure met restapi
- P1 met restapi (bijv Homewizard)
- Energysocket met restapi (bijv Homewizard)
- Configuration.yaml (heb je Homewizard P1 en Energysocket is het kwestie van je IP opzoeken)
- 1 Automatisering voor NOM
- Keuze menu om delen van de NOM automatisering uit te zetten.
:strip_exif()/f/image/DNao58x6wkQqUG4cgj0VvMgm.png?f=user_large)
:strip_exif()/f/image/VNXpiBdV2aKyaOt7KLnrg2N0.png?f=user_large)
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Hier heb je niet per se smart charging voor nodig. Je kunt toch met bijv. een Cheapest Hours integratie op basis van de prijs laden, ontladen, etc? Heb hier al eerder de YAML voor gedeeld in dit topic.jordyc schreef op zaterdag 7 juni 2025 @ 10:46:
2. Zijn er plannen om binnen de Fireson integratie op korte termijn smart charging en discharging op te nemen. Ik vind het zonde dat mijn batterij direct in de ochtend al opgeladen wordt terwijl de prijzen voor terugleveren nog relatief hoog zijn. Ik zag al dat Bikkelreal hier wat voor had gebouwd, dit zou een alternatief kunnen zijn als deze opties niet in de Fireson integratie komen.
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
En ben je van plan de NOM code ook te delen? En de bearer token die je in de eerdere code deelde, waar haal je die vandaan?
Zou dit heel graag testen met de 2400AC en SF800 Pro, waarbij ik ze dan via dezelfde Automatisering wil aansturen als die ik nu ook voor de 3x Hyper & Fireson integratie gebruik. Dan weet ik zeker dat ik hetzelfde gedrag krijg. Enige nadeel is dan dat 2 verschillende aansturingen NOM proberen te bereiken, dus dat kan je wel wat overshoot verwachten, maar dat is opgelost als de Hypers ook in HEMS ondersteund worden met lokale API.
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Die bearer token is alleen voor de V2 API van HW. Zolang je de V2 niet gebruikt heb je die niet nodig. De V1 is ook voorlopig nog bruikbaar.
Taro schreef op zaterdag 7 juni 2025 @ 15:19:
@gielz De Energysocket is optioneel neem ik aan?
En ben je van plan de NOM code ook te delen? En de bearer token die je in de eerdere code deelde, waar haal je die vandaan?
Zou dit heel graag testen met de 2400AC en SF800 Pro, waarbij ik ze dan via dezelfde Automatisering wil aansturen als die ik nu ook voor de 3x Hyper & Fireson integratie gebruik. Dan weet ik zeker dat ik hetzelfde gedrag krijg. Enige nadeel is dan dat 2 verschillende aansturingen NOM proberen te bereiken, dus dat kan je wel wat overshoot verwachten, maar dat is opgelost als de Hypers ook in HEMS ondersteund worden met lokale API.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
- De laadpaal met zonoverschot gaat laden -> 1-fase, max 7 kW.
- De laadpaal bij hoge tarieven en teruglevering door de accu's niet gaat laden
- De laadpaal bij een geplande boost - doorgaans tijdens de laagste dynamische tarieven van de dag - wel kan blijven laden en niet uitgeschakeld is door de automatisering of wacht totdat de accu's vol zijn -> 3-fase. 11 kW.
Ik wil eigenlijk de logica die de accu's aanstuurt ook gebruiken voor de laadpaalaansturing, dus niet een automatisering maken die dezelfde logica volgt, maar controleren op de status van de Fireson integratie icm SoC van de accu's. Wat ik nu heb staan, maar zeker niet zal werken:
- Als er gedurende meer dan 5 minuten teruglevering is van >1400 Watt
- En de accu's >97% vol zijn
- De Smart mode: Manual Charging of Smart Charging is
- Er een auto is aangesloten op de laadpaal
- Dan naar de laadpaal sturen: Fases: 1 & Stand: Eco+ -> Dat betekent dat die zelf met overschot zal laden.
Maar nou zit ik met de volgende uitdaging: Als er een schema actief is in de Zappi laadpaal, dan moet die staan op: Fases: 3 & Stand: Eco+. Anders zal er met 7 kW ipv 11 kW worden geladen.
Klopt verder mijn denkwijze of zijn er slimmere manieren om dit te doen? Ik wil dus tijdens de goedkoopste dynamische tarieven de overtollige zonnestroom richting de auto sturen, met max 1 fase, maar alleen als de Zendure accu's al vol zijn. En als er een laadschema actief is, dan moet er sowieso geladen worden met 11 kW.
Met Node Red kan dit natuurlijk een mooie flow zijn, maar ik kan dus vooralsnog niet detecteren of er een 11 kW laadschema actief is....
Vooruitlopend op 1-1-2027 dus
Edit: Bedenk mij nu ineens: Als een laadschema actief is, dan gaat de laadmode naar "Boosting", zou natuurlijk dan altijd de Fases van 1 naar 3 kunnen aanpassen. En als Boosting niet actief is, maar "Charging" wel, dan naar 1 fase wisselen.... De Automatische stand is geen optie, want dan wisselt ie iedere paar minuten tussen 1-3 fases en dan wordt het laden steeds onderbroken.
[ Voor 8% gewijzigd door Taro op 07-06-2025 18:22 ]
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Ik gebruik inderdaad cheapest hours om te bepalen wanneer de batterij opgeladen moet worden. Dit doe ik dan met een manual opladen actie.Taro schreef op zaterdag 7 juni 2025 @ 15:14:
[...]
Hier heb je niet per se smart charging voor nodig. Je kunt toch met bijv. een Cheapest Hours integratie op basis van de prijs laden, ontladen, etc? Heb hier al eerder de YAML voor gedeeld in dit topic.
Maar de use case die ik voor me zie is dat ie dan met een een bepaald vermogen gaat (ont)laden. Ik wil dan overdag als het bewolkt is bijvoorbeeld alleen slim laden tijdens de goedkoopste uren of in de avond terwijl de teruglever prijs hoog is alleen slim ontladen.
Wat je nu ook krijgt is dat de batterij tijdens zonsopkomst en zonsondergang loopt te flipperen tussen opladen en ontladen.
[ Voor 8% gewijzigd door jordyc op 07-06-2025 17:40 ]
Ok, dat heb ik hier als volgt ingericht:jordyc schreef op zaterdag 7 juni 2025 @ 17:38:
[...]
Ik gebruik inderdaad cheapest hours om te bepalen wanneer de batterij opgeladen moet worden. Dit doe ik dan met een manual opladen actie.
Maar de use case die ik voor me zie is dat ie dan met een een bepaald vermogen gaat (ont)laden. Ik wil dan overdag als het bewolkt is bijvoorbeeld alleen slim laden tijdens de goedkoopste uren of in de avond terwijl de teruglever prijs hoog is alleen slim ontladen.
- 3 duurste uren in de avond en 2 duurste uren in de ochtend: Ontladen met waarde X
- 3 duurste uren in de avond en 2 duurste uren in de ochtend, als tarief >30 ct/kWh: Max ontladen
- 5 goedkoopste uren op de dag: Max laden (Zondag: 6 uur ivm 100% SOC). Via toggle: Alleen de goedkoopste 5-6 uren OF alle uren onder de 20 ct/kWh
- Onder de 20 ct/kWh: Smart charging
- Boven de 20 ct/kWh: Smart discharging
:strip_exif()/f/image/Jbiki7gSaVDFg0fITLT72SKm.png?f=user_large)
En dat betreft dan de volgende Automatisering:
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
| alias: Zendure Automatisering Fake Meter description: "" triggers: - trigger: state entity_id: - sensor.zonneplan_current_electricity_tariff conditions: [] actions: - if: - condition: or conditions: - condition: and conditions: - condition: state entity_id: binary_sensor.cheapest_hours_goedkoopste_5_uren_split state: "on" - condition: state entity_id: input_boolean.zendure_goedkoop_laden state: "on" - condition: and conditions: - condition: state entity_id: binary_sensor.cheapest_hours_onder_de_20_cent state: "on" - condition: state entity_id: input_boolean.onder_de_20_cent_laden state: "on" - condition: and conditions: - condition: time weekday: - sun - condition: state entity_id: binary_sensor.cheapest_hours_goedkoopste_6_uren_split state: "on" - condition: state entity_id: input_boolean.zendure_goedkoop_laden state: "on" then: - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Manual Charging else: - if: - condition: or conditions: - condition: and conditions: - condition: state entity_id: input_boolean.zendure_duur_ontladen state: "on" - condition: or conditions: - condition: state entity_id: >- binary_sensor.cheapest_hours_2_duurste_uren_tussen_0_00_en_9_00 state: "on" - condition: state entity_id: >- binary_sensor.cheapest_hours_3_duurste_uren_tussen_17_00_en_0_00 state: "on" - condition: numeric_state entity_id: sensor.zonneplan_current_electricity_tariff below: 0.3 - condition: and conditions: - condition: time weekday: - sun - condition: state entity_id: input_boolean.zendure_duur_ontladen state: "on" - condition: state entity_id: >- binary_sensor.cheapest_hours_3_duurste_uren_tussen_0_00_en_9_00 state: "on" - condition: numeric_state entity_id: sensor.zonneplan_current_electricity_tariff below: 0.3 then: - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Manual Discharging else: - if: - condition: or conditions: - condition: and conditions: - condition: state entity_id: input_boolean.zendure_duur_ontladen state: "on" - condition: or conditions: - condition: state entity_id: >- binary_sensor.cheapest_hours_2_duurste_uren_tussen_0_00_en_9_00 state: "on" - condition: state entity_id: >- binary_sensor.cheapest_hours_3_duurste_uren_tussen_17_00_en_0_00 state: "on" - condition: numeric_state entity_id: sensor.zonneplan_current_electricity_tariff above: 0.299 - condition: and conditions: - condition: time weekday: - sun - condition: state entity_id: input_boolean.zendure_duur_ontladen state: "on" - condition: state entity_id: >- binary_sensor.cheapest_hours_3_duurste_uren_tussen_0_00_en_9_00 state: "on" - condition: numeric_state entity_id: sensor.zonneplan_current_electricity_tariff above: 0.299 then: - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Manual Discharging else: - if: - condition: state entity_id: binary_sensor.cheapest_hours_onder_de_20_cent state: "on" then: - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Smart Charging else: - if: - condition: state entity_id: binary_sensor.cheapest_hours_onder_de_20_cent state: "off" then: - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Smart Discharging else: - if: - condition: state entity_id: input_boolean.zendure_nom state: "on" then: - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Smart NOM - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart mode: single |
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Heeft iemand hier een template voor import en export die de juiste waarde berekend en rekening houd met het batterij vermogen en de p1 meter? Dan kan ik deze even vergelijken met wat ik heb.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
jordyc schreef op zaterdag 7 juni 2025 @ 20:31:
@Taro ,Dankjewel, zoiets heb ik ook voor ogen. Als ik het dan zo goed bekijk gebruik jij ook de smart (dus)charge die bikkelreal had uitgedacht. Klopt dat?
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Iemand enig idee of deze gewoon een waarde 1 geeft als er een probleem met de batterij is? Hij staat niet beschreven op https://github.com/thilop...ain/docs/en_properties.md
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Een van de suggesties van de Zendure AI klantenservice was:
Since you are using Home Assistant to monitor the Hyper 2000, ensure that it is not interfering with the network connection. Sometimes, monitoring tools can affect network performance.
Ik kon me dat nauwelijks voorstellen, maar het was mijn laatste hoop, dus ik heb gisteravond de integratie uitgeschakeld. En nu draait het dus sindsdien probleemloos, tot mijn verbazing. Natuurlijk is dat nog maar 1 dag, maar omdat ik hier wel eens wat las over een bluetooth proxy, vroeg ik me toch af of een bluetooth verbinding met HA noodzakelijk is.
3120WP Solax, 4825WP SolarEdge, Nibe S2125-8 met een VVMS320, 7680Wh Zendure Hyper 2000.
/f/image/wyRHfDni0J96rVn1GXSh8jCg.png?f=fotoalbum_large)
Het is denk ik zo ver mijn RestAPI sturing test ik nu 2 tal weken en heb gisteren zelfs nog wat dingen aangepast. Het is dus eigenlijk nog een WIP maar werkt wel goed genoeg waarbij je lekker zelf nog kunt tweaken. Alles draait op zenSDK 100% lokaal en is van Zendure zelf; https://github.com/thiloplanz/zenSDK/tree/main
Controleer eerst of je 2400 AC dit ondersteund en voer het volgende uit in CMD;
1
| curl -X GET "http://<IP-BATTERIJ> /properties/report" |
/f/image/JHYJ2o6ZaKahpkustjW9Bryj.png?f=fotoalbum_large)
Sensoren aanmaken via configuration.yaml
!!! Zorg dat HEMS is uitgeschakeld in de app, 2 stuurlui is geen goed plan. !!!Eerst 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, Energysocket van Homewizard (aan de batterij) en een Zendure 2400 AC.
Vul de volgende gegevens in;
<IP-BATTERIJ>
<SN-OMVORMER>
<IP-HOMEWIZARD-P1> (zorg dat de lokale api aan staat in de app van homewizard)
<IP-HOMEWIZARD-ENERGYSOCKET> (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 # 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 rest: - resource: http://<IP-BATTERIJ>/properties/report sensor: - name: "Zendure 2400 AC Resterende Ontlaad Tijd" value_template: > {% set total_minutes = value_json['properties']['remainOutTime'] | float %} {% set hours = (total_minutes // 60) | int %} {% set minutes = (total_minutes % 60) | int %} {% if hours == 999 and minutes == 0 %} Niet bekend {% else %} {{ hours }} u {{ minutes }} m {% 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 Batterij Temperatuur" value_template: > {% set maxTemp = value_json['packData'][0]['maxTemp'] | int %} {{ (maxTemp - 2731) / 10.0 }} unique_id: Zendure_2400_AC_Batterij_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 - name: "Zendure 2400 AC Vermogen (ontladen)" value_template: "{{ - (value_json['properties']['packInputPower'] | int) }}" unique_id: Zendure_2400_AC_Vermogen_Ontladen unit_of_measurement: "W" state_class: measurement device_class: power - name: "Zendure 2400 AC Vermogen (opladen)" value_template: "{{ value_json['properties']['outputPackPower'] }}" unique_id: Zendure_2400_AC_Vermogen_Opladen unit_of_measurement: "W" state_class: measurement device_class: power - name: "Zendure 2400 AC Vermogen Gecombineerd" 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_Gecombineerd unit_of_measurement: "W" state_class: measurement device_class: power - resource: http://<IP-HOMEWIZARD-P1>/api/v1/data # IP-adres van je P1 voor V1 API scan_interval: 1 sensor: - name: "P1 Zendure Aansturing API v1" value_template: "{{ value_json.active_power_w | float }}" unique_id: P1_Zendure_Aansturing_API_V1 unit_of_measurement: "W" state_class: measurement device_class: power - resource: http://<IP-HOMEWIZARD-ENERGYSOCKET>/api/v1/data # IP-adres van je energysocket voor V1 API scan_interval: 1 sensor: - name: "Zendure 2400 AC Vermogen Aansturing API v1" value_template: "{{ value_json.active_power_w | float }}" unique_id: Zendure_2400_AC_Vermogen_Aansturing_API_V1 unit_of_measurement: "W" state_class: measurement device_class: power rest_command: zendure_snel_laden: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SNOMVORMER>","properties":{"acMode": 1, "inputLimit": 2400 }}' zendure_stop_met_laden: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SN-OMVORMER>","properties":{"acMode": 1, "inputLimit": 0 }}' zendure_x_laden: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SN-OMVORMER>","properties":{"acMode": 1, "inputLimit": {{inputLimit}} }}' zendure_x_ontladen: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SN-OMVORMER>","properties":{"acMode": 2, "outputLimit": {{outputLimit}} }}' zendure_snel_ontladen: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SN-OMVORMER>","properties":{"acMode": 2, "outputLimit": 2400 }}' zendure_stop_met_ontladen: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SN-OMVORMER>","properties":{"acMode": 2, "outputLimit": 0 }}' zendure_stop_met_alles: url: http://<IP-BATTERIJ>/properties/write method: POST payload: '{"sn":"<SN-OMVORMER>","properties":{"outputLimit": 0, "inputLimit": 0 }}'
:strip_exif()/f/image/k0gA58rdpzAd0SKRggNOu7MI.png?f=user_large)
:strip_exif()/f/image/B3LwJxMUqlv1zpSSXRsQHgvl.png?f=user_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! 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.
:no_upscale():strip_icc():strip_exif()/f/image/JveMjdo1Rb1Pio18qdWpYTo3.jpg?f=user_large)
Selectielijstje helper aanmaken
Nu gaan wij even een selectielijstje aanmaken als helper. Handig als je zelf een richting op wilt sturen. Maak de onderstaande lijst aan. Als je wilt dat het direct 1:1 werkt zal je exact de namen en de selectielijst naam aan moeten houden;:strip_exif()/f/image/VeXJo5e5f1Q3YPOEr3t2RTh9.png?f=user_large)
Zendure NOM 1.00 Automatisering
De motor van het hele gedoe. Deze zal slim opladen en slim ontladen en samen dansen tot één geheel. Er zit ook standaard uitgesteld laden in die 2 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;Zet je hem meteen aan dan start het NOM ritueel direct. LET OP! DIT IS MET 1200 WATT LADEN EN ONTLADEN!. Dit is hardcoded en geen schuifje. In de FAQ hier meer over.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 alias: Zendure NOM 1.00 description: "" triggers: - trigger: time_pattern seconds: /4 conditions: [] actions: - choose: - conditions: - condition: numeric_state entity_id: sensor.p1_zendure_aansturing_api_v1 above: 100 - condition: numeric_state entity_id: sensor.zendure_2400_ac_vermogen_aansturing_api_v1 enabled: true above: -1 below: 75 - condition: or conditions: - condition: state entity_id: sensor.zendure_2400_ac_modus state: Opladen enabled: true for: hours: 0 minutes: 0 seconds: 9 - 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 enabled: true - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim ontladen sequence: - data: outputLimit: >- {% set factor = 0.75 %} {% set cap = 1200 %} {% set correctie = 0 %} {% set p1 = states('sensor.p1_zendure_aansturing_api_v1') | float(0) %} {% set zendure = states('sensor.zendure_2400_ac_vermogen_aansturing_api_v1') | 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_vermogen_aansturing_api_v1 enabled: true below: 0 - condition: or conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Nul op de meter enabled: true - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim ontladen sequence: - data: outputLimit: >- {% set factor = 1.00 %} {% set cap = 1200 %} {% set correctie = 0 %} {% set p1 = states('sensor.p1_zendure_aansturing_api_v1') | float(0) %} {% set zendure = states('sensor.zendure_2400_ac_vermogen_aansturing_api_v1') | float(0) %} {% set totaal = (p1 - zendure - correctie) * factor %} {% set beperkt = [ [totaal, 0] | max, cap ] | min %} {{ beperkt | int }} action: rest_command.zendure_x_ontladen enabled: true alias: Tijdens ontladen balanceren naar 0 watt (100% van de vraag) - conditions: - condition: numeric_state entity_id: sensor.p1_zendure_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_api_v1 below: 1 above: -10 - 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: "+02:00:00" before_offset: "-01:00:00" - condition: not conditions: - condition: state entity_id: sensor.zendure_2400_ac_modus state: ontladen for: hours: 0 minutes: 0 seconds: 15 - condition: or conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Nul op de meter enabled: true - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim opladen sequence: - data: inputLimit: >- {% set factor = 0.75 %} {% set cap = 1200 %} {% set correctie_export = 80 %} {% set p1 = states('sensor.p1_zendure_aansturing_api_v1') | float(0) %} {% set zendure = states('sensor.zendure_2400_ac_vermogen_aansturing_api_v1') | float(0) %} {% set verschil = zendure - p1 - correctie_export %} {% set beperkt = verschil if verschil > 0 else 0 %} {% set beperkt = beperkt if beperkt < cap else cap %} {{ beperkt | int }} action: rest_command.zendure_x_laden enabled: true alias: >- Start met opladen bij -100 watt (alleen tussen 2u na ☀︎ en 1u voor ☾) (75% van aanbod) - conditions: - condition: numeric_state entity_id: sensor.zendure_2400_ac_laadpercentage below: 100 - condition: numeric_state entity_id: sensor.zendure_2400_ac_vermogen_aansturing_api_v1 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: "+02:00:00" before_offset: "-01:00:00" - condition: not conditions: - condition: state entity_id: sensor.zendure_2400_ac_modus state: ontladen for: hours: 0 minutes: 0 seconds: 15 - condition: or conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Nul op de meter enabled: true - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim opladen sequence: - data: inputLimit: >- {% set factor = 1.00 %} {% set cap = 1200 %} {% set correctie_export = 80 %} {% set p1 = states('sensor.p1_zendure_aansturing_api_v1') | float(0) %} {% set zendure = states('sensor.zendure_2400_ac_vermogen_aansturing_api_v1') | float(0) %} {% set verschil = zendure - p1 - correctie_export %} {% set beperkt = verschil if verschil > 0 else 0 %} {% set beperkt = beperkt if beperkt < cap else cap %} {{ beperkt | int }} action: rest_command.zendure_x_laden enabled: true alias: >- Tijdens opladen balanceren naar -80 watt (alleen tussen 2u na ☀︎ en 1u voor ☾) (100% van aanbod) mode: single
Selectielijst automatisering
Ha jammer de selectielijst doet niets. Dat klopt die zit gekoppeld aan een automatisering. Heb je geen namen aan lopen passen 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;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 alias: Pas Zendure 2400 AC Modus Aan description: "" triggers: - entity_id: - input_select.zendure_2400_ac_modus_selecteren trigger: state actions: - choose: - conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Nul op de meter sequence: - action: automation.turn_on metadata: {} data: {} target: entity_id: automation.zendure_nom_1_00 - action: rest_command.zendure_stop_met_alles data: {} - conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Standby sequence: - action: automation.turn_off metadata: {} data: stop_actions: true target: entity_id: automation.zendure_nom_1_00 - action: rest_command.zendure_stop_met_alles data: {} - conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Ontladen met 2400 watt sequence: - action: automation.turn_off metadata: {} data: stop_actions: true target: entity_id: automation.zendure_nom_1_00 - action: rest_command.zendure_snel_ontladen data: {} - conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Opladen met 2400 watt sequence: - action: automation.turn_off metadata: {} data: stop_actions: true target: entity_id: automation.zendure_nom_1_00 - action: rest_command.zendure_snel_laden data: {} - conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim ontladen sequence: - action: rest_command.zendure_stop_met_alles data: {} - conditions: - condition: state entity_id: input_select.zendure_2400_ac_modus_selecteren state: Alleen slim opladen sequence: - action: rest_command.zendure_stop_met_alles data: {} mode: single
FAQ
Ik wil niet op 1200 maximaal opladen of ontladen. Wat nu?.In de Zendure NOM 1.00 heb je als eind actie bij iedere optie een template. Hier staat {% set cap = 1200 %} 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.
Ik wil juist meer opladen of ontladen en dus een correctie toepassen.
In de Zendure NOM 1.00 heb je als eind actie bij iedere optie een template. Hier staat {% set correctie = 0 %} 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 of moet en speel een beetje met deze waarde.
Bij het opladen moet het een plus waarde zijn en is deze nu ingesteld op 75 watt waardoor hij altijd onder de -75 probeert te blijven. (sterkte met wolkjes
Kan ik nu mijn 2400 AC blokkeren van het internet.
Ja zeker het draait 100% lokaal en jij bent de baas
Oops mijn 2400 AC is bevroren. Soort van want hij is nog wel warm.
Als er extreem veel restAPIs verzonden worden kan hij bevriezen. Dit zie je voornamelijk als je zelf lekker aan het testen bent en in de praktijk nooit.
Zendure NOM 1.00 staat op 4 seconden kan deze ook naar 1 seconden?
Optimale is hier op dit moment 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.




[ Voor 95% gewijzigd door gielz op 09-06-2025 07:56 ]
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Paar vragen/opmerkingen waar ik zelf tegenaan liep, bijv. goed om vanaf het begin rekening te houden met meerdere apparaten, dus heb dat format even veranderd.
De HW Energy socket wordt wel aan een specifiek apparaat gekoppeld dus helder.
Kan ik dit nu ook veilig voor de SF800Pro inzetten? Daar heb je het niet op getest, maar verschillende mensen hebben aangegeven dat de SF800Pro met de Fireson integratie in een bootloop terecht kwam, icm locale MQTT. Dat wil ik natuurlijk voorkomen. Nou betreft het aansturen via lokale REST ipv MQTT, dus waarschijnlijk speelt dit niet?
Ik heb de 2x SF800 al een tijdje zichtbaar gemaakt via deze weg, die hoef ik in principe ook niet aan te sturen, behalve misschien de export knijpen bij negatieve tarieven. Maar daar heb ik geen HW Energy Socket op zitten, werkt dat dan? Er zitten ook geen accu's op, dus SOC hoeft niet te worden gemeten.
Dat zou dan betekenen dat ik: 2x 2400AC, 1x SF800 Pro en 2x SF800 via deze weg integreer. Ik heb een PHP scriptje gemaakt dat het deel in configuration.yaml door een For loopje haalt en daarbij serienummer, naam en IP-adres als variabele invoert. Daarmee voorkom ik iedere keer het aanpassen van heel veel regels
Afijn, ik gebruik dus als naamgeving: 2400AC - 1, 2400AC - 2, SF800Pro - 1, SF800 - 1 en SF800 - 2 en werkt dit dan ook goed voor devices zonder HW stekker zoals de SF800 die je niet hoeft te meten? En dan kan ik uit met 1x P1-meter sensor toch? Dan voorkom ik ook dat die 5x wordt benaderd - en in de toekomst nog vaker als de extra 2400 AC binnen is en ik sluit een extra SF800Pro ook niet uit.
[ Voor 12% gewijzigd door Taro op 09-06-2025 09:39 ]
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Wat betreft het niet of wel gebruiken van energysockets. Kan ook zonder maar dan moet je elke seconden je restapi gaan uitvragen voor het vermogen wat zeker tot een freeze zal gaan leiden. Ook is de wattage die de restapi heeft en in de app niet juist (eigenlijk het grootste probleem). Kan uiteraard ook met een KWH meter die op een enkele batterij zit.
Ik verwacht dat je die SF800 Pro ook exact op dezelfde manier kunt gaan aansturen. Alleen weet ik niet exact wat er gaat gebeuren als je zegt volladen of hij dan je zonnepanelen goed meeneemt. Had wel de SF800 Pro als order openstaan maar uiteindelijk geannuleerd omdat de RTE van de 2400 AC zo extreem goed is. Bij deze batterij zou ik zelf eerst gewoon rest_commands aanmaken en daarmee gaan spelen. Als dit goed werkt een automatisering erop bouwen.
Eigenlijk in het kort is hier de insteek "stupid but smart" met alles in het huis
*Pruttelt lekker door hier;
:strip_exif()/f/image/BVs0MHp7hGiBuwyp2YsPnpr9.png?f=user_large)
:strip_exif()/f/image/EeeBWjn82kYnJ9cgrRNWxDoH.png?f=user_large)
Taro schreef op maandag 9 juni 2025 @ 09:04:
@gielz Heb hier een en ander werkend, nice, bedankt![]()
Paar vragen/opmerkingen waar ik zelf tegenaan liep, bijv. goed om vanaf het begin rekening te houden met meerdere apparaten:
De P1-meter wordt in je voorbeeld nu gekoppeld aan een 2400 AC, misschien goed die algemeen qua naam te houden? Dus iets in de vorm van: P1-metervoorzendurelokaalaansturenofzoiets.
De HW Energy socket wordt wel aan een specifiek apparaat gekoppeld dus helder.
Kan ik dit nu ook veilig voor de SF800Pro inzetten? Daar heb je het niet op getest, maar verschillende mensen hebben aangegeven dat de SF800Pro met de Fireson integratie in een bootloop terecht kwam, icm locale MQTT. Dat wil ik natuurlijk voorkomen. Nou betreft het aansturen via lokale REST ipv MQTT, dus waarschijnlijk speelt dit niet?
Ik heb de 2x SF800 al een tijdje zichtbaar gemaakt via deze weg, die hoef ik in principe ook niet aan te sturen, behalve misschien de export knijpen bij negatieve tarieven. Maar daar heb ik geen HW Energy Socket op zitten, werkt dat dan? Er zitten ook geen accu's op, dus SOC hoeft niet te worden gemeten.
Dat zou dan betekenen dat ik: 2x 2400AC, 1x SF800 Pro en 2x SF800 via deze weg integreer. Ik heb een PHP scriptje gemaakt dat het deel in configuration.yaml door een For loopje haalt en daarbij serienummer, naam en IP-adres als variabele invoert. Daarmee voorkom ik iedere keer het aanpassen van heel veel regelsEn per device geef ik het type device aan, bij de SF800 skip ik bijv. een paar regels omdat ik die toch niet via AC wil laden.
Afijn, ik gebruik dus als naamgeving: 2400AC - 1, 2400AC - 2, SF800Pro - 1, SF800 - 1 en SF800 - 2 en werkt dit dan ook goed voor devices zonder HW stekker zoals de SF800 die je niet hoeft te meten? En dan kan ik uit met 1x P1-meter sensor toch? Dan voorkom ik ook dat die 5x wordt benaderd - en in de toekomst nog vaker als de extra 2400 AC binnen is en ik sluit een extra SF800Pro ook niet uit.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
De 800 pro werkt ook perfect met de rest api. Geen enkel probleem gehad afgelopen weken. De automatiseringen van Gielz gebruik ik niet. Ik doe het in combinatie met node red en dan mn nom en pv overschot laden.gielz schreef op maandag 9 juni 2025 @ 09:45:
De voorzet is inderdaad specifiek voor de 2400AC. De P1 had wellicht een andere naam kunnen hebben maar dat kan maar dan moet je even een replace all uitvoeren via Home Assistant of in kladblok. Ik had er een integratie of blueprint voor kunnen maken maar niet voor gekozen omdat ik anders straks alleen maar bugs en aanpassingen aan het doen ben voor andere. Dan lijkt het net of ik op mijn werk zit
Wat betreft het niet of wel gebruiken van energysockets. Kan ook zonder maar dan moet je elke seconden je restapi gaan uitvragen voor het vermogen wat zeker tot een freeze zal gaan leiden. Ook is de wattage die de restapi heeft en in de app niet juist (eigenlijk het grootste probleem). Kan uiteraard ook met een KWH meter die op een enkele batterij zit.
Ik verwacht dat je die SF800 Pro ook exact op dezelfde manier kunt gaan aansturen. Alleen weet ik niet exact wat er gaat gebeuren als je zegt volladen of hij dan je zonnepanelen goed meeneemt. Had wel de SF800 Pro als order openstaan maar uiteindelijk geannuleerd omdat de RTE van de 2400 AC zo extreem goed is. Bij deze batterij zou ik zelf eerst gewoon rest_commands aanmaken en daarmee gaan spelen. Als dit goed werkt een automatisering erop bouwen.
Eigenlijk in het kort is hier de insteek "stupid but smart" met alles in het huis
*Pruttelt lekker door hier;
[Afbeelding]
[Afbeelding]
[...]
energienerds.nl, gasloos, 11,5kWp, 20 kWh accu, EV, Atlantic WPB
Eens, was meer bedoeld als algemene opmerking voor iedereen die ermee aan de slag gaat.gielz schreef op maandag 9 juni 2025 @ 09:45:
De voorzet is inderdaad specifiek voor de 2400AC. De P1 had wellicht een andere naam kunnen hebben maar dat kan maar dan moet je even een replace all uitvoeren via Home Assistant of in kladblok. Ik had er een integratie of blueprint voor kunnen maken maar niet voor gekozen omdat ik anders straks alleen maar bugs en aanpassingen aan het doen ben voor andere. Dan lijkt het net of ik op mijn werk zit
Waarom zou je het vermogen van een device zonder accu uitlezen? Of is dat puur voor de NOM calculatie? De reden dat ik hier over doorvraag is dus dat ik de 2x SF800 zonder accu heb én buiten heb staan, een HW Energy Socket kan helaas niet buiten. En de SF800Pro met accu's staat ook buiten. Kan ik wel omlussen via de bijkeuken icm wasmachine-/drogergroep en daar zit een HW Socket op.... De SF800's zal ik toch nooit voor NOM gebruiken gezien ze alleen PV -> AC omzetten.Wat betreft het niet of wel gebruiken van energysockets. Kan ook zonder maar dan moet je elke seconden je restapi gaan uitvragen voor het vermogen wat zeker tot een freeze zal gaan leiden. Ook is de wattage die de restapi heeft en in de app niet juist (eigenlijk het grootste probleem). Kan uiteraard ook met een KWH meter die op een enkele batterij zit.
Zojuist met de SF800 Pro getest: Werkt ookIk verwacht dat je die SF800 Pro ook exact op dezelfde manier kunt gaan aansturen. Alleen weet ik niet exact wat er gaat gebeuren als je zegt volladen of hij dan je zonnepanelen goed meeneemt. Had wel de SF800 Pro als order openstaan maar uiteindelijk geannuleerd omdat de RTE van de 2400 AC zo extreem goed is. Bij deze batterij zou ik zelf eerst gewoon rest_commands aanmaken en daarmee gaan spelen. Als dit goed werkt een automatisering erop bouwen.
Nu even alles in de bestaande Automatisering verwerken, dan heb ik HEMS niet meer nodig voor de 2400AC en SF800Pro, zit ik ook niet met die maximale 2400/7200 laad- en ontlaadlimieten. Nice!
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Taro schreef op maandag 9 juni 2025 @ 09:55:
[...]
Eens, was meer bedoeld als algemene opmerking voor iedereen die ermee aan de slag gaat.
[...]
Waarom zou je het vermogen van een device zonder accu uitlezen? Of is dat puur voor de NOM calculatie? De reden dat ik hier over doorvraag is dus dat ik de 2x SF800 zonder accu heb én buiten heb staan, een HW Energy Socket kan helaas niet buiten. En de SF800Pro met accu's staat ook buiten. Kan ik wel omlussen via de bijkeuken icm wasmachine-/drogergroep en daar zit een HW Socket op.... De SF800's zal ik toch nooit voor NOM gebruiken gezien ze alleen PV -> AC omzetten.
[...]
Zojuist met de SF800 Pro getest: Werkt ook
Nu even alles in de bestaande Automatisering verwerken, dan heb ik HEMS niet meer nodig voor de 2400AC en SF800Pro, zit ik ook niet met die maximale 2400/7200 laad- en ontlaadlimieten. Nice!
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Ik ga nu eerst mijn bestaande automatisering aanvullen met de lokale API aansturing en die is nu al 200+ regels. Ik wil dus zelf de NOM/Slimme aansturing in een losse automatisering plaatsen om dat van elkaar te scheiden. Tenzij er een goede reden is om het in dezelfde Automatisering te doen, maar dat hoor ik dus graag.
[ Voor 3% gewijzigd door Taro op 09-06-2025 10:21 ]
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Voor dynamisch zou ik een 5e optie maken. Je ziet bij optie 1 t/m 4 al een voorwaarde dat hij kijkt in welke selectielijst hij zit. Hiermee stuur je de optie heel gericht aan. Optie 5 zou dan kunnen zijn volle bak volladen als hij in een goedkoop uur zit en dat deze alleen werkt als hij in de selectielijst zit waar je Dynamisch laden als optie hebt toegevoegd.
Met andere automatiseringen pas je alleen je selectielijst aan. Cheap hour = kies selectie laden die zooi.
Keep it simple
:strip_exif()/f/image/brmCDhWMN2mzf1i5gidRHH0y.png?f=user_large)
/f/image/PME68Ayjw5IqZBz3G5uRUx7Y.png?f=fotoalbum_large)
Taro schreef op maandag 9 juni 2025 @ 10:20:
@gielz Hier is tijd niet de trigger, maar het wisselen van de dynamische uurprijs, daarom nog een vraag: Heb je er bewust of onbewust voor gekozen om de NOM aansturing in deze grote Automatisering in te bouwen waardoor je deze iedere 4 seconden helemaal doorloopt? Je zou natuurlijk ook als trigger het hele uur kunnen gebruiken om de mode te selecteren. En dan maak je een kleinere automatisering die iedere 4 seconden draait als NOM of een slimme mode actief is, puur om alleen de juiste waardes te setten.
Ik ga nu eerst mijn bestaande automatisering aanvullen met de lokale API aansturing en die is nu al 200+ regels. Ik wil dus zelf de NOM/Slimme aansturing in een losse automatisering plaatsen om dat van elkaar te scheiden. Tenzij er een goede reden is om het in dezelfde Automatisering te doen, maar dat hoor ik dus graag.
[ Voor 11% gewijzigd door gielz op 09-06-2025 10:38 ]
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
We keepen het hier simple, alleen gebruiken we ieder een andere ingang om keuzes te makengielz schreef op maandag 9 juni 2025 @ 10:34:
Ik werk bewust met opties en 1 trigger van 4 seconden. Dan weet ik 100% zeker welke afslag hij heeft genomen en dat er geen 2 of meer stuurlui aan de wal staan.
Voor dynamisch zou ik een 5e optie maken. Je ziet bij optie 1 t/m 4 al een voorwaarde dat hij kijkt in welke selectielijst hij zit. Hiermee stuur je de optie heel gericht aan. Optie 5 zou dan kunnen zijn volle bak volladen als hij in een goedkoop uur zit en dat deze alleen werkt als hij in de selectielijst zit waar je Dynamisch laden als optie hebt toegevoegd.
Met andere automatiseringen pas je alleen je selectielijst aan. Cheap hour = kies selectie laden die zooi.
Keep it simple![]()
[Afbeelding]
[...]
- Output/Input limit setten bij laden/ontladen_met_x
- NOM -> Hier twijfel ik over, met zowel Fireson met 3x Hyper als 1x 2400AC en 1x SF800 die ieder afzonderlijk NOM gaan proberen na te streven krijg ik overshoot. Dus ik denk dat ik de 2400AC en SF800 ieder bijv. constant 150-300 Watt laat uitsturen en de 3x Hyper doet dan het echte NOM werk, dan heb ik maar 1 stuurman ipv 3.
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
| alias: Zendure Automatisering Fake Meter description: "" triggers: - trigger: state entity_id: - sensor.zonneplan_current_electricity_tariff conditions: [] actions: - if: - condition: or conditions: - condition: and conditions: - condition: state entity_id: binary_sensor.cheapest_hours_goedkoopste_5_uren_split state: "on" - condition: state entity_id: input_boolean.zendure_goedkoop_laden state: "on" - condition: and conditions: - condition: state entity_id: binary_sensor.cheapest_hours_onder_de_20_cent state: "on" - condition: state entity_id: input_boolean.onder_de_20_cent_laden state: "on" - condition: and conditions: - condition: time weekday: - sun - condition: state entity_id: binary_sensor.cheapest_hours_goedkoopste_6_uren_split state: "on" - condition: state entity_id: input_boolean.zendure_goedkoop_laden state: "on" then: - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Manual Charging - action: rest_command.zendure_2400ac_1_snel_laden data: {} - action: rest_command.zendure_sf800pro_1_snel_laden data: {} else: - if: - condition: or conditions: - condition: and conditions: - condition: state entity_id: input_boolean.zendure_duur_ontladen state: "on" - condition: or conditions: - condition: state entity_id: >- binary_sensor.cheapest_hours_2_duurste_uren_tussen_0_00_en_9_00 state: "on" - condition: state entity_id: >- binary_sensor.cheapest_hours_3_duurste_uren_tussen_17_00_en_0_00 state: "on" - condition: numeric_state entity_id: sensor.zonneplan_current_electricity_tariff below: 0.3 - condition: and conditions: - condition: time weekday: - sun - condition: state entity_id: input_boolean.zendure_duur_ontladen state: "on" - condition: state entity_id: >- binary_sensor.cheapest_hours_3_duurste_uren_tussen_0_00_en_9_00 state: "on" - condition: numeric_state entity_id: sensor.zonneplan_current_electricity_tariff below: 0.3 then: - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Manual Discharging - action: rest_command.zendure_2400ac_1_snel_ontladen data: {} - action: rest_command.zendure_sf800pro_1_snel_ontladen data: {} else: - if: - condition: or conditions: - condition: and conditions: - condition: state entity_id: input_boolean.zendure_duur_ontladen state: "on" - condition: or conditions: - condition: state entity_id: >- binary_sensor.cheapest_hours_2_duurste_uren_tussen_0_00_en_9_00 state: "on" - condition: state entity_id: >- binary_sensor.cheapest_hours_3_duurste_uren_tussen_17_00_en_0_00 state: "on" - condition: numeric_state entity_id: sensor.zonneplan_current_electricity_tariff above: 0.299 - condition: and conditions: - condition: time weekday: - sun - condition: state entity_id: input_boolean.zendure_duur_ontladen state: "on" - condition: state entity_id: >- binary_sensor.cheapest_hours_3_duurste_uren_tussen_0_00_en_9_00 state: "on" - condition: numeric_state entity_id: sensor.zonneplan_current_electricity_tariff above: 0.299 then: - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Manual Discharging - action: rest_command.zendure_2400ac_1_snel_ontladen data: {} - action: rest_command.zendure_sf800pro_1_snel_ontladen data: {} else: - if: - condition: state entity_id: binary_sensor.cheapest_hours_onder_de_20_cent state: "on" then: - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Smart Charging - action: rest_command.zendure_2400ac_1_x_laden data: {} - action: rest_command.zendure_sf800pro_1_x_laden data: {} else: - if: - condition: state entity_id: binary_sensor.cheapest_hours_onder_de_20_cent state: "off" then: - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Smart Discharging - action: rest_command.zendure_2400ac_1_x_ontladen data: {} - action: rest_command.zendure_sf800pro_1_x_ontladen data: {} else: - if: - condition: state entity_id: input_boolean.zendure_nom state: "on" then: - action: input_select.select_option target: entity_id: input_select.zendure_smart_mode data: option: Smart NOM - device_id: bcc962db360f2d40c3e86a20fbb6cc5b domain: select entity_id: ee0e7a2d20c3862d144321d290401fb2 type: select_option option: smart mode: single |
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Als ik een wijkcentrale had staan zou ik alles via Zendure NOM 1.00 laten lopen. Je krijgt dan als uitvoer een het restcommand en een aantal fireson acties. Deze verdeel je dan even slim bijvoorbeeld alles netjes verdeeld of bijvoorbeeld alles eerst naar de 2400 AC en de rest verdelen.
Zo ga ik het straks doen met 2x 2400 AC
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Als de Hypers binnenkort ook in HEMS werken na hun firmware upgrade én dan hopelijk ook lokaal aan te sturen zijn, dan kan ik voor alle devices dezelfde aanvliegroute gaan hanteren. Nu moet ik helaas nog 2 manieren samenvoegen en dat zal altijd suboptimaal zijn.gielz schreef op maandag 9 juni 2025 @ 10:55:
Ja je hebt wel een uit de hand gelopen hobby met verschillende apparaten
Als ik een wijkcentrale had staan zou ik alles via Zendure NOM 1.00 laten lopen. Je krijgt dan als uitvoer een het restcommand en een aantal fireson acties. Deze verdeel je dan even slim bijvoorbeeld alles netjes verdeeld of bijvoorbeeld alles eerst naar de 2400 AC en de rest verdelen.
Zo ga ik het straks doen met 2x 2400 AC
Daarnaast is met 1 apparaat NOM behalen makkelijker dan met 5+ apparaten, omdat dan bijv. verschillende vermogens, verschillende SoC percentages, etc. mee gaan spelen en je moet gaan spelen met verdeling. Dat doet de Fireson integratie erg mooi en goed.
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
/f/image/ZyZR4qhq6c1GtLpupqlc8K3J.png?f=fotoalbum_large)
[ Voor 15% gewijzigd door Taro op 09-06-2025 11:09 ]
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Doe dit in configuration.yaml
homeassistant:
packages: !include_dir_named packages
Maak een packages folder aan met daarin
zendure_local.yaml
En stop daar alles van de Zendure in, dan zit alles bij elkaar.
Dan vervuil je de configuration.yaml niet
En je kunt daar weer alles inplaatsen zonder andere rest command, sensoren of templates te vervuilen.
21x325WP, 10x410WP, SE10K, Blackbird 8K, vloerverwarming en fancoils, Vent-Axia WTW
Tijgerkracht schreef op maandag 9 juni 2025 @ 11:11:
@gielz Misschien mooier om het in een package te stoppen
Doe dit in configuration.yaml
homeassistant:
packages: !include_dir_named packages
Maak een packages folder aan met daarin
zendure_local.yaml
En stop daar alles van de Zendure in, dan zit alles bij elkaar.
Dan vervuil je de configuration.yaml niet
En je kunt daar weer alles inplaatsen zonder andere rest command, sensoren of templates te vervuilen.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
3120WP Solax, 4825WP SolarEdge, Nibe S2125-8 met een VVMS320, 7680Wh Zendure Hyper 2000.
rest:
rest_command:
En dan laden ze wel.
En daar staat ook al:
homeassistant:
packages: !include_dir_named packages
En dan deze dir:
:strip_exif()/f/image/mYWLVUOq3fEleERsqvh5KYbz.png?f=user_large)
Maar alsnog werkt de zendure_local.yaml code niet meer. Enig idee?
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Ben er zelf ook mee bezig en heb nu de situatie dat de 2400 geen antwoord meer geeft met de local API.Taro schreef op maandag 9 juni 2025 @ 12:06:
@Tijgerkracht Ik heb een en ander opgeschoond, maar zag dat nu o.a. RESTful en RESTful Command "apparaten" niet meer werden geladen. Daarom heb ik in configuration.yaml het volgende toegevoegd:
rest:
rest_command:
En dan laden ze wel.
En daar staat ook al:
homeassistant:
packages: !include_dir_named packages
En dan deze dir:
[Afbeelding]
Maar alsnog werkt de zendure_local.yaml code niet meer. Enig idee?
Zat overigens behoorlijk te klooien met naamgeving van sensoren die _2 erachter hebben gekregen, geen idee waarom.
Edit: Batterij uitgezet en weer aangezet, nu doet de NOM sturing via de lokale api het.
En alles zit in een package.
[ Voor 6% gewijzigd door Tijgerkracht op 09-06-2025 13:39 ]
21x325WP, 10x410WP, SE10K, Blackbird 8K, vloerverwarming en fancoils, Vent-Axia WTW
Ik heb sensor gemaakt voor het IP Address van de 2400 AC.
Die sensoren vervolgens gebruikt in het rest command.
Nu hoef je nog maar op 1 plek het IP Address aan te passen ;-)
1
2
3
4
5
6
7
8
9
10
11
| - sensor: - name: "Zendure 2400 AC IPAddress" unique_id: zendure_2400_ac_ipaddress state: > {{ '192.168....' }} rest_command: zendure_snel_ontladen: url: "http://{{ states('sensor.zendure_2400_ac_ipaddress') }}/properties/write" method: POST payload: '{"sn":"{{serialNumber}}","properties":{"acMode": 2, "outputLimit": 2400 }}' |
[ Voor 12% gewijzigd door Tijgerkracht op 09-06-2025 14:56 ]
21x325WP, 10x410WP, SE10K, Blackbird 8K, vloerverwarming en fancoils, Vent-Axia WTW

Voor mij werkt het goed. Maar het kan altijd beter!
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Ik heb hem hier aangepast en iets eenvoudiger gemaakt.gielz schreef op maandag 9 juni 2025 @ 15:17:
Goed dat er al een aantal met de restapi aan de slag zijn.Laat ook vooral even zien of het goed werkt en waar je wellicht nog verbeteringen ziet in de Zendure NOM 1.00.
Voor mij werkt het goed. Maar het kan altijd beter!
Dat deel met sunrise etc eruit gehaald en vervangen door een tijd, mag alleen opladen tussen 10u en 16u.
En dat kan denk ik ook door een andere state te kiezen.
Na 16u alleen Slim ontladen en vanaf 10u Nul op de meter.
Dan kan die hele OR tak eruit.
Maar zo zal iedereen andere wensen hebben.
21x325WP, 10x410WP, SE10K, Blackbird 8K, vloerverwarming en fancoils, Vent-Axia WTW
Alles boven de 250 watt is prima voor de 2400 AC.
Tijgerkracht schreef op maandag 9 juni 2025 @ 15:47:
[...]
Ik heb hem hier aangepast en iets eenvoudiger gemaakt.
Dat deel met sunrise etc eruit gehaald en vervangen door een tijd, mag alleen opladen tussen 10u en 16u.
En dat kan denk ik ook door een andere state te kiezen.
Na 16u alleen Slim ontladen en vana 10u Nul op de meter.
Dan kan die hele OR tak eruit.
Maar zo zal iedereen andere wensen hebben.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Snap ik, maar sunrise is morgen 5:24, +2 uur is 7:24.gielz schreef op maandag 9 juni 2025 @ 16:09:
In een oudere versie was dit ook een tijd. Maar hierbij loop je dan in de knel in de winter. In 1.00 zit specifiek de sunrise ingebouwd in combinatie met april tm september. Andere maanden mag hij hamsteren. Hierdoor laad je als je niet dynamisch laad altijd op een aardige wattage op. Betreft wel een oost west dak.
Alles boven de 250 watt is prima voor de 2400 AC.
[...]
Kijk ik naar de prijs morgenochtend dan is dat 7:00 24 cent, 8:00 24 cent en 9:00 22 cent.
Vanaf 10:00 zakt de prijs naar 17 cent.
Ik heb 10kWp (oost-west), dus beter om veel later te laden, die batterij is toch in 3 uurtjes vol
(zelfs als het bewolkt is in de zomer)
21x325WP, 10x410WP, SE10K, Blackbird 8K, vloerverwarming en fancoils, Vent-Axia WTW
Nu moet ik allerlei work arounds bouwen om er voor te zorgen dat hij niet met 2400 watt gaat lopen laden. Is het iemand gelukt dit goed te zetten of is dit op te lossen met een lokale aansturing?
De FireSon integratie lijkt me geweldig als je meer dan 1 batterij hebt.jordyc schreef op maandag 9 juni 2025 @ 16:35:
Ik loop nu zelf tegen het probleem met de 2400 AC aan dat ik de in en output niet aan kan passen. Zodra ik in de app de juiste aangepaste waardes zet wordt dit netjes naar HA gepushed. Echter zodra ik HEMS uit zet of de batterij uit het management systeem haal wordt alles weer terug naar de default van 2400 watt laden en 800 watt ontladen gezet. Ik gebruik voor nu nog de Fireson integratie.
Nu moet ik allerlei work arounds bouwen om er voor te zorgen dat hij niet met 2400 watt gaat lopen laden. Is het iemand gelukt dit goed te zetten of is dit op te lossen met een lokale aansturing?
Voor nu doe ik het met de local REST API (FireSon staat Off).
Het is inderdaad beter om te kijken wat de goedkoopste uren worden,
dat wordt mijn volgende stap. Maar voor nu is het tussen 10 en 16 opladen, daarbuien alleen ontladen.
Ik vermoed ook dat het vanaf 1-1-2027 weer heel anders wordt.
Ik heb met de REST API het laden beperkt tot max 2000 watt.
21x325WP, 10x410WP, SE10K, Blackbird 8K, vloerverwarming en fancoils, Vent-Axia WTW
:strip_exif()/f/image/Xe2Fu0Huvh1QuUkWEyPspL8i.png?f=user_large)
De 2 eerste uren waren de 2 duurste uren vanochtend, dus automatisch maximaal ontladen, daarna Smart Discharging/NOM. Toen rond 8:00 Smart Charging met alleen overschot. Rond 11:00/12:00 maximaal laden gestart ivm 5 goedkoopste uren. Inmiddels zijn alle accu's vol en wordt er 3500+ Watt door de zonnepanelen teruggeleverd. Boven de 20 ct/kWh begint straks weer Smart Discharging. Om 20:00/21:00 maximaal ontladen ivm 3 duurste avonduren en daarna weer Smart Discharging. Morgenochtend zijn dan alle accu's weer 5-10% en kunnen ze weer mooi gevuld worden.
Volledig automatisch, blijft toch mooi
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Ik heb hier de batterij eenmalig toegevoegd zonder hems en daarbij ingesteld dat 2400/2400 watt prima is. Dit beperk ik vervolgens zelf wel. Daar heb ik geen app of iemand die mijn hand vast houd in China voor nodig. Vervolgens kan ik een restapi command sturen om die limits aan te passen maar dat doe ik zelf in de aansturing.
:strip_exif()/f/image/MQYUSieP3Yf5jSfqXqNNP1jh.jpg?f=fotoalbum_large)
jordyc schreef op maandag 9 juni 2025 @ 16:35:
Ik loop nu zelf tegen het probleem met de 2400 AC aan dat ik de in en output niet aan kan passen. Zodra ik in de app de juiste aangepaste waardes zet wordt dit netjes naar HA gepushed. Echter zodra ik HEMS uit zet of de batterij uit het management systeem haal wordt alles weer terug naar de default van 2400 watt laden en 800 watt ontladen gezet. Ik gebruik voor nu nog de Fireson integratie.
Nu moet ik allerlei work arounds bouwen om er voor te zorgen dat hij niet met 2400 watt gaat lopen laden. Is het iemand gelukt dit goed te zetten of is dit op te lossen met een lokale aansturing?
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Mocht ik gaan verhuizen dan is het een kwestie van de lasdoos openen en alles losmaken en meenemen. Iets wat je nog steeds zelf kan.
@gielz , uiteindelijk wil ik de restapi gaan gebruiken, niet afhankelijk zijn van de cloud of iemand aan de andere kant van de wereld is met een batterij wel een must. Is het zo simpel als in de app alles op 2400/2400 watt zetten, de verbinding met het internet naar de batterij uit zetten en daarna verder communiceren via de restAPI?
[ Voor 28% gewijzigd door jordyc op 09-06-2025 18:37 ]
Of je gebruikt alleen de sensoren en bouwt alles zelf op.
jordyc schreef op maandag 9 juni 2025 @ 18:29:
Woensdag komt de electricien om de omvormer via een lasdoos aan te sluiten. Ik gebruik hiervoor de groep van de droger die we toch niet gebruiken. Dat geeft me toch wat meer vertrouwen als ik straks nog een paar batterijen onder de omvormer zet en er voor 5+ uur 2400watt op kan gaan zetten.
Mocht ik gaan verhuizen dan is het een kwestie van de lasdoos openen en alles losmaken en meenemen. Iets wat je nog steeds zelf kan.
@gielz , uiteindelijk wil ik de restapi gaan gebruiken, niet afhankelijk zijn van de cloud of iemand aan de andere kant van de wereld is met een batterij wel een must. Is het zo simpel als in de app alles op 2400/2400 watt zetten, de verbinding met het internet naar de batterij uit zetten en daarna verder communiceren via de restAPI?
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Ziet er dus naar uit dat zolang de restAPI verkeerde waardes doorgeeft ik niet naar lokale aansturing kan.
[ Voor 58% gewijzigd door jordyc op 09-06-2025 19:07 ]
Ik heb het hier vooralsnog zo aangesloten, via de stopcontacten:_AcS_ schreef op maandag 9 juni 2025 @ 18:19:
Doen jullie dat ontladen met 2400W met de stekker of is hij rechtstreeks aangesloten op een automaat?
:strip_exif()/f/image/Sk9cjWGdxOt8xYPAD3alGMBm.jpg?f=fotoalbum_large)
Als binnenkort de 3e 2400AC+4xAB3000X binnenkomt moet ik óf de stellingkasten naar rechts gaan verplaatsen, alle stapels 90 graden draaien, ze voor/achter elkaar gaan plaatsen óf Hypers wegdoen. Als ik uiteindelijk alleen 3x 2400AC heb staan, dan overweeg ik om ze via een lasdoos ipv de dedicated stopcontacten aan te sluiten. Vandaag ook nog besproken de SF800Pro toch weer binnen te plaatsen en de AB2000 (non-S) accu die eronder zit te verkopen ivm ontbrekende brandvertrager. Er komen ook nog 2x AB2000X binnen voor de SF800Pro. Het wordt allemaal wat krapjes, dus voor nu vooral nog flexibiliteit nodig. Richting 1-1-2027 wil ik een "definitieve" set-up hebben en dan dus met lasdozen ipv stopcontacten.
Heb al met een Flir gekeken, de stekker en het stopcontact (1x1200+1x2400) kwamen niet boven de 36 graden, dus vooralsnog durf ik het wel zo aan.
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
36 Graden is inderdaad niet bepaald warm.Taro schreef op maandag 9 juni 2025 @ 18:56:
[...]
Ik heb het hier vooralsnog zo aangesloten, via de stopcontacten:
[Afbeelding]
Als binnenkort de 3e 2400AC+4xAB3000X binnenkomt moet ik óf de stellingkasten naar rechts gaan verplaatsen, alle stapels 90 graden draaien, ze voor/achter elkaar gaan plaatsen óf Hypers wegdoen. Als ik uiteindelijk alleen 3x 2400AC heb staan, dan overweeg ik om ze via een lasdoos ipv de dedicated stopcontacten aan te sluiten. Vandaag ook nog besproken de SF800Pro toch weer binnen te plaatsen en de AB2000 (non-S) accu die eronder zit te verkopen ivm ontbrekende brandvertrager. Er komen ook nog 2x AB2000X binnen voor de SF800Pro. Het wordt allemaal wat krapjes, dus voor nu vooral nog flexibiliteit nodig. Richting 1-1-2027 wil ik een "definitieve" set-up hebben en dan dus met lasdozen ipv stopcontacten.
Heb al met een Flir gekeken, de stekker en het stopcontact (1x1200+1x2400) kwamen niet boven de 36 graden, dus vooralsnog durf ik het wel zo aan.
Ik wil de 2400AC en 880Pro onder een overkapping plaatsen, daar is het over algemeen koeler dan binnen.
Dan sluit ik de 2400AC eerst aan via de stekker.
Voelt nu een beetje onsamenhangend, maar met veel potentie wat ik absoluut wil gaan testen en draaien als m'n set binnen is, hoop alleen dat ik tegen die tijd alles nog bij elkaar kan vinden 😂
Of misschien een los topic, waarbij de laatste status in de TS terug te vinden is.
En super bedankt voor je tijd en energie, het ziet er veel belovend uit, echt gaaf!! Thanks!
[ Voor 36% gewijzigd door g00gle op 11-06-2025 07:18 ]
Hoe groot is de afwijking die de restAPI doorgeeft? Spreken we dan over <10 watt of juist meer? Als de afwijking nou minimaal is dan neem ik die paar watt nog wel voor lief, eventueel met een extra buffer ter compensatie.
Zo sta ik er ook in, in het ergste geval zet je de "fake meter" van @Bikkelreal op -15 of -20 Watt, anders moet ik nog 4x HW Energy Sockets erbij kopenjordyc schreef op woensdag 11 juni 2025 @ 08:03:
@gielz , zoals ik al aangaf heb ik heel veel interesse in een aansturing via de restAPI. Ik las dat je er een vermogensmeter voor de batterij moet zetten om de juiste waardes te krijgen, want de restAPI geeft verkeerde waardes af. Ik ga mijn batterij via een lasdoos direct op een eigen groep zetten en heb ik de meterkast geen ruimte meer voor een meter op die groep.
Hoe groot is de afwijking die de restAPI doorgeeft? Spreken we dan over >10 watt of juist meer? Als de afwijking nou minimaal is dan neem ik die paar watt nog wel voor lief, eventueel met een extra buffer ter compensatie.
NOM hoeft voor mij niet 0 te zijn, -15 of -25 is ook goed, als het maar geen +50 ofzo wordt.
Replace fear of the unknown with curiosity | 48 (+10 incoming) kWh thuisaccu | 2 EV's: 136 kWh capaciteit | 10.660 Wp zonnepanelen
Geen idee hoe snel zoiets gebeurt, maar misschien wel goed om rekening mee te houden!I learned from the colleagues in device development that controlling through the AC mode is different from the autoModelProgram. The AC mode writes the power to the flash, and if commands are issued every 2 seconds, the flash will quickly become full, causing device malfunctions.
Wat bedoelen ze met AC mode, de lokale api? En dan dus het opvragen van waarden of het zetten van een laad/ontlaadwaarde?FireSon schreef op woensdag 11 juni 2025 @ 09:44:
Er is wel een reden dat Zendure de AC mode niet gebruikt om de NOM regeling te doen. Dit is het antwoord wat ik kreeg toe ik vroeg waarom niet:
[...]
Geen idee hoe snel zoiets gebeurt, maar misschien wel goed om rekening mee te houden!
1
2
3
4
5
6
| { "sn": "SN12345678", "properties": { "acMode": 1 } } |
dat is wat daarmee bedoelt wordt...
Oké, dat maakt het al wat duidelijker. Maar weet jij ook of het dan om het schakelen tussen mode 1 en 2 gaat, of om elke laad of ontlaadwaarde die wordt ingesteld?FireSon schreef op woensdag 11 juni 2025 @ 09:58:
De restApi gebruikt de AC Mode met input/output limieten:
code:
1 2 3 4 5 6 { "sn": "SN12345678", "properties": { "acMode": 1 } }
dat is wat daarmee bedoelt wordt...
Maar dit wil je uberhaupt niet doen omdat je anders een golfbeweging krijgt in de NOM.
Hier is het resultaat met Zendure NOM 1.00 0.00kwh-0,01kwh per uur. Door te balanceren in dezelfde acmode.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Je zou de lasdoos ook kunnen vervangen voor een kastje met kwh meter. Dat heb ik hier bij 3 warmtepompen zo gemaakt.
jordyc schreef op woensdag 11 juni 2025 @ 08:03:
@gielz , zoals ik al aangaf heb ik heel veel interesse in een aansturing via de restAPI. Ik las dat je er een vermogensmeter voor de batterij moet zetten om de juiste waardes te krijgen, want de restAPI geeft verkeerde waardes af. Ik ga mijn batterij via een lasdoos direct op een eigen groep zetten en heb ik de meterkast geen ruimte meer voor een meter op die groep.
Hoe groot is de afwijking die de restAPI doorgeeft? Spreken we dan over <10 watt of juist meer? Als de afwijking nou minimaal is dan neem ik die paar watt nog wel voor lief, eventueel met een extra buffer ter compensatie.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Het gaat om elke laad of ontlaadwaarde die wordt ingesteld. Deze wordt namelijk in het flash geheugen geschreven. De update frequentie voor NOM van de integratie is tussen de 3-5 seconden (bij de restAPI bepaal je dat zelf) en een dergelijke frequentie in volgens Zendure niet aan te raden.Mediacj schreef op woensdag 11 juni 2025 @ 10:01:
[...]
Oké, dat maakt het al wat duidelijker. Maar weet jij ook of het dan om het schakelen tussen mode 1 en 2 gaat, of om elke laad of ontlaadwaarde die wordt ingesteld?
Ik heb een Shelly pm mini gen3 in een lasdoosje voor het opbouw stopcontact geplaatst, meet 2 kanten op.jordyc schreef op woensdag 11 juni 2025 @ 08:03:
@gielz , zoals ik al aangaf heb ik heel veel interesse in een aansturing via de restAPI. Ik las dat je er een vermogensmeter voor de batterij moet zetten om de juiste waardes te krijgen, want de restAPI geeft verkeerde waardes af. Ik ga mijn batterij via een lasdoos direct op een eigen groep zetten en heb ik de meterkast geen ruimte meer voor een meter op die groep.
Hoe groot is de afwijking die de restAPI doorgeeft? Spreken we dan over <10 watt of juist meer? Als de afwijking nou minimaal is dan neem ik die paar watt nog wel voor lief, eventueel met een extra buffer ter compensatie.
18950Wp🌞, Atlantic 270V3💧, Pana 5J🔥. Zendure 2400AC 11,5kWh🔋,Hyundai Kona 64kWh 🚗, Peblar Home ⛽
Dat is inderdaad een hele goeie oplossing! Daar had ik niet eens bij stilgestaan dat die ook vermogen kunnen meten.klump4u schreef op woensdag 11 juni 2025 @ 12:52:
[...]
Ik heb een Shelly pm mini gen3 in een lasdoosje voor het opbouw stopcontact geplaatst, meet 2 kanten op.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Dus als ik het goed begrijp is NOM draaien via HA en de lokale restApi vragen om problemen met het flashgeheugen van de AC2400? Dat is wel een beetje zuur eigenlijk.. Mist het device niet een beetje z'n doel op deze manier?FireSon schreef op woensdag 11 juni 2025 @ 11:27:
[...]
Het gaat om elke laad of ontlaadwaarde die wordt ingesteld. Deze wordt namelijk in het flash geheugen geschreven. De update frequentie voor NOM van de integratie is tussen de 3-5 seconden (bij de restAPI bepaal je dat zelf) en een dergelijke frequentie in volgens Zendure niet aan te raden.
/f/image/spfVQq1DVY6JSDPVFtAfnOXm.png?f=fotoalbum_large)
g00gle schreef op woensdag 11 juni 2025 @ 13:36:
[...]
Dus als ik het goed begrijp is NOM draaien via HA en de lokale restApi vragen om problemen met het flashgeheugen van de AC2400? Dat is wel een beetje zuur eigenlijk.. Mist het device niet een beetje z'n doel op deze manier?
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Vanwege deze reden gebruikt de HA integratie geen AC mode, maar MQTT Smart Mode commando's. Binnenkort (1 a 2 maanden) is het mogelijk om de Mqtt server van de SF2400 zelf in te stellen. Dan is een volledige lokale oplossing eenvoudig te realiseren.g00gle schreef op woensdag 11 juni 2025 @ 13:36:
[...]
Dus als ik het goed begrijp is NOM draaien via HA en de lokale restApi vragen om problemen met het flashgeheugen van de AC2400? Dat is wel een beetje zuur eigenlijk.. Mist het device niet een beetje z'n doel op deze manier?
Dat het perfect werkt is niet het punt, Zendure geeft aan dat op de lange duur dit mogelijk tot problemen gaat leiden als je doet zoals jij het doet. Ik waarschuw daar alleen voor, maar je kunt uiteraard zelf beslissen wat je daar mee doet.gielz schreef op woensdag 11 juni 2025 @ 13:45:
De NOM aansturing werkt prima. Je moet alleen niet gaan spammen. Hier al meer dan 10 dagen vlekkeloos. Wanneer je bijvoorbeeld elke seconden gaat draaien krijg je golfbewegingen in verbruik.
[Afbeelding]
[...]
FireSon schreef op woensdag 11 juni 2025 @ 13:47:
[...]
Dat het perfect werkt is niet het punt, Zendure geeft aan dat op de lange duur dit mogelijk tot problemen gaat leiden als je doet zoals jij het doet. Ik waarschuw daar alleen voor, maar je kunt uiteraard zelf beslissen wat je daar mee doet.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
I learned from the colleagues in device development that controlling through the AC mode is different from the autoModelProgram. The AC mode writes the power to the flash, and if commands are issued every 2 seconds, the flash will quickly become full, causing device malfunctions.
Zodra je op 2 of om veilig te zijn op 3 te gaan zitten werkt dit volledig foutloos.
FireSon schreef op woensdag 11 juni 2025 @ 14:41:
Er is wel een reden dat Zendure de AC mode niet gebruikt om de NOM regeling te doen. Dit is het antwoord wat ik kreeg toe ik vroeg waarom niet:
[...]
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
De reden om het niet te doen is omdat elke actie in het flash wordt geschreven.gielz schreef op woensdag 11 juni 2025 @ 13:59:
En tot welke problemen gaat dit dan exact leiden? Buiten een mogelijke freeze. Ik heb bergen met restapi’s draaien op verschillende apparaten en nog nooit problemen ervaren.
[...]
Als daar max 10.000 (100.000?) cycles in kunnen,
dan ben je er met een paar maanden wel doorheen en is het flash kapot
Een lokale MQTT oplossing die alleen waarden pulled van de mqtt server en die niet opslaat in flash is beter.
Onze warmtepomp slaat bijvoorbeeld de target SWW temperatuur ook op in flash.
Zou je dat 2x per dag aanpassen om een run te forceren gebruik je ook een API die er niet voor bedoeld is en kan het flash geheugen eerder kapot gaan.
Heb ooit eens Domoticz gedraaid op een te goedkope sdCard en dat was na 2 jaar ook bekeken, ondanks dat het een 8GB kaartje was.
En dit probleem speelde ook bij de eerste Tesla's waar log informatie werd weggeschreven en oude data werd overschreven. Ook na een paar jaar flash memory kapot.
[ Voor 30% gewijzigd door Tijgerkracht op 11-06-2025 15:50 ]
21x325WP, 10x410WP, SE10K, Blackbird 8K, vloerverwarming en fancoils, Vent-Axia WTW
Hoe werkt deze optie 'Use local MQTT' nu?FireSon schreef op woensdag 11 juni 2025 @ 13:45:
[...]
Vanwege deze reden gebruikt de HA integratie gebruikt geen AC mode, maar MQTT Smart Mode commando's. Binnenkort (1 a 2 maanden) is het mogelijk om de Mqtt server van de SF2400 zelf in te stellen. Dan is een volledige lokale oplossing eenvoudig te realiseren.
Kon daar niet echt iets over vinden.
Gebruikt dat de MQTT addon binnen HomeAssistant?
Pakt de 2400AC deze lokale MQTT server al op?
Hoe lopen de datastromen? Wat connect aan wat?
:strip_exif()/f/image/juEaDDlPr1X6ECvCS6sj0xiP.png?f=user_large)
21x325WP, 10x410WP, SE10K, Blackbird 8K, vloerverwarming en fancoils, Vent-Axia WTW
Binnenkort dan een hoop garantie gevallen? 🤓
Tijgerkracht schreef op woensdag 11 juni 2025 @ 15:46:
[...]
De reden om het niet te doen is omdat elke actie in het flash wordt geschreven.
Als daar max 10.000 (100.000?) cycles in kunnen,
dan ben je er met een paar maanden wel doorheen en is het flash kapot
Een lokale MQTT oplossing die alleen waarden pulled van de mqtt server en die niet opslaat in flash is beter.
Onze warmtepomp slaat bijvoorbeeld de target SWW temperatuur ook op in flash.
Zou je dat 2x per dag aanpassen om een run te forceren gebruik je ook een API die er niet voor bedoeld is en kan het flash geheugen eerder kapot gaan.
Heb ooit eens Domoticz gedraaid op een te goedkope sdCard en dat was na 2 jaar ook bekeken, ondanks dat het een 8GB kaartje was.
En dit probleem speelde ook bij de eerste Tesla's waar log informatie werd weggeschreven en oude data werd overschreven. Ook na een paar jaar flash memory kapot.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Ik denk eerder dat we het willen gebruiken op een manier die Zendure niet heeft bedoeld.g00gle schreef op woensdag 11 juni 2025 @ 18:08:
Het zou mijn inziens inderdaad wel een behoorlijke ontwerp fout zijn, of de keuze voor verkeerd flash geheugen. Of ze zouden het vervangbaar moeten maken. Maar de info vanuit zendure is ook wat mager.
Mediacj schreef op woensdag 11 juni 2025 @ 18:09:
[...]
Ik denk eerder dat we het willen gebruiken op een manier die Zendure niet heeft bedoeld.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Het kan dus wel maar ik zou het niet doen:)
:no_upscale():strip_icc():strip_exif()/f/image/6J4Pn1Hhv7kSTonvFnISZqjs.jpg?f=user_large)
[ Voor 7% gewijzigd door Bikkelreal op 11-06-2025 19:28 ]
Er is een wiki hoe je dat moet configureren.https://github.com/FireSon/Zendure-HA/wiki/Local-MqttTijgerkracht schreef op woensdag 11 juni 2025 @ 15:56:
[...]
Hoe werkt deze optie 'Use local MQTT' nu?
Kon daar niet echt iets over vinden.
Gebruikt dat de MQTT addon binnen HomeAssistant?
Pakt de 2400AC deze lokale MQTT server al op?
Hoe lopen de datastromen? Wat connect aan wat?
Simpel gezegd, de interne mqtt client van de Zendure devices verbind met een locale MQTT server in plaats van aan de Zendure Cloud. Het is het gemakkelijkst om de Mosqitto Addon te gebruiken omdat dan de Authenticatie voor je geregeld wordt. Het geheel verloopt geheel lokaal en werkt ook als de Zendure cloud eruit ligt. Om de app toch te kunnen gebruiken, kan de integratie ook de locale mqtt berichten doorsturen naar de Zendure cloud. Dat gebeurt niet continue, maar vaak genoeg om het device niet 'offline' te laten gaan.
De MQTT server gegevens van de devices worden via Bluetooth omgezet. Zonder Bluetooth gaat dit nog niet. Waarschijnlijk is het binnen 2 maanden mogelijk om via de Zendure App dit aan te passen, wat ook veel Bluetooth problemen gaat oplossen.
De Sf2400 zou dit ook moeten kunnen, maar ik heb het BLE adres nog niet kunnen vinden, omdat ik zelf geen SF2400 heb. Straks wordt het ook mogelijk om via de restAPI dit aan te passen. Ik heb begrepen dat de restAPI niet beschikbaar komt voor de 'legacy' devices, maar alleen voor de SF800, 800Pro en 2400. Of legacy devices ook via de App de local MQTT gegevens kunnen aanpassen is nog onduidelijk.
De data stromen zijn relatief simpel, iedereen connect aan de lokale MQTT server. En de integratie daarnaast ook nog aan de Zendure cloud. De MQTT server zorgt ervoor dat alle 'subscribers' bij een wijziging van een waarde wordt genotificeerd.
Hopelijk is het zo iets duidelijker!
Ook na een fysieke herstart is de input/output/mode nog bewaard en dus niet opgeslagen in het RAM geheugen maar in het flashgedeelte.
Wat zie ik dan over het hoofd en is er wezenlijk wel iets anders in de aansturing tussen Fireson en de zenSDK met betrekking tot de uitkomst "het wegschrijven van de data met een 3-5 seconden interval"? Dit is trouwens ook zo bij de 3CT of manueel via de app aanpassen.
Fireson
/f/image/GiTDQ3nRXOtOiafPOdrU8HUr.png?f=fotoalbum_large)
Restapi
/f/image/SS5VJG7m3SeyGEatjuZ8Ieie.png?f=fotoalbum_large)
[ Voor 82% gewijzigd door gielz op 11-06-2025 21:44 ]
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Ik heb ooit gewerkt aan een appliance waarbij er weggeschreven werd naar werkgeheugen en bij shutdown of verstrijken van een bepaalde tijd pas naar flash. Zodoende kon je vaak de waarde wijzigingen maar werd de wear op het geheugen beperkt omdat de persistentie veel minder vaak plaatsvond. Je wil de wijzigingen dan graag via dit verzonnen proces laten verlopen ipv via een andere weg direct muteren in het persistente flash geheugen. Een soortgelijk scenario zou het gedrag dat @gielz heeft waargenomen kunnen verklaren.gielz schreef op woensdag 11 juni 2025 @ 21:37:
Ik ben er nog even verder ingedoken uit interesse. Wanneer ik via de Fireson exact het zelfde commando uitvoer als via de restapi is de uitkomst identiek. Er word een commando gestuurd naar de omvormer en die word daadwerkelijk permanent wegschreven.
Ook na een fysieke herstart is de input/output/mode nog bewaard en dus niet opgeslagen in het RAM geheugen maar in het flashgedeelte.
Wat zie ik dan over het hoofd en is er wezenlijk wel iets anders in de aansturing tussen Fireson en de zenSDK met betrekking tot de uitkomst "het wegschrijven van de data met een 3-5 seconden interval"? Dit is trouwens ook zo bij de 3CT of manueel via de app aanpassen.
Fireson
[Afbeelding]
Restapi
[Afbeelding]
Interessant, dat lijkt inderdaad hetzelfde. Maar aan de andere kant kan dit ook het resultaat zijn van een retain-flag op een MQTT-bericht, die bij het opnieuw starten van de Hyper wordt gesynchroniseerd naar de lokale API-variabelen.gielz schreef op woensdag 11 juni 2025 @ 21:37:
Ik ben er nog even verder ingedoken uit interesse. Wanneer ik via de Fireson exact het zelfde commando uitvoer als via de restapi is de uitkomst identiek. Er word een commando gestuurd naar de omvormer en die word daadwerkelijk permanent wegschreven.
Ook na een fysieke herstart is de input/output/mode nog bewaard en dus niet opgeslagen in het RAM geheugen maar in het flashgedeelte.
Wat zie ik dan over het hoofd en is er wezenlijk wel iets anders in de aansturing tussen Fireson en de zenSDK met betrekking tot de uitkomst "het wegschrijven van de data met een 3-5 seconden interval"? Dit is trouwens ook zo bij de 3CT of manueel via de app aanpassen.
Fireson
[Afbeelding]
Restapi
[Afbeelding]
Test is trouwens als volgt uitgevoerd. Zou dus niet via MQTT weer ontvangen kunnen zijn toch?
- Geen connectie met HA (staat fysiek uit)
- Geen connectie met de buitenwereld (MQTT)
- Batterij is 20 minuten uit geweest
- Via postman verbonden en 3x opgevraagd wat de huidige status is
Je ziet aan de timestamp dat de batterij nu 22 seconden aan staat, 3 berichten heeft ontvangen (postman) en herstart is met zijn laatste inputlimit van 1200 watt.
:strip_exif()/f/image/IMehIdkw5k207SThdj0D8xfq.png?f=user_large)
Messages:
/f/image/3DM25KtRssvGVaNOdA99z3Uk.png?f=fotoalbum_large)
Mediacj schreef op donderdag 12 juni 2025 @ 09:47:
[...]
Interessant, dat lijkt inderdaad hetzelfde. Maar aan de andere kant kan dit ook het resultaat zijn van een retain-flag op een MQTT-bericht, die bij het opnieuw starten van de Hyper wordt gesynchroniseerd naar de lokale API-variabelen.
6320wp | Zendure 2400 AC (14.4 kwh) | Bambu A1 | 2x Hisense 2AMW-42U4RRA | Daikin RXM/FTXM35R | AQMOS BMX | Home Assistant OS op DS224+
Dit leek me belangrijk om te delen, om teleurstellingen in de toekomst te voorkomen. En iedereen mag zelf bepalen of hij/zij er iets mee doet en mij maakt dat alemaal niet uit.I learned from the colleagues in device development that controlling through the AC mode is different from the autoModelProgram. The AC mode writes the power to the flash, and if commands are issued every 2 seconds, the flash will quickly become full, causing device malfunctions.
Ik heb het nog even verder nagevraagd en dit was het vervolg antwoord:
Dus misschien kun je via de restAPI deze smartmode ook zetten, en heb je geen problemen. Het is wel raar dat het MQTT commando wat de integratie gebruikt kennelijk deze smartMode niet aanpast.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.
Maar goed, de rest lijkt me een helder verhaal.
Dit topic is gesloten.