Home Assistant & MQTT
Je EMS heeft een eigen MQTT-broker op je thuisnetwerk. Daarmee kan je Home Assistant (of een andere domoticatoepassing) live meelezen met je energiegegevens en een beperkt aantal functies bedienen. Dit werkt volledig lokaal: er gaat niets via het internet.
Verbinden
| Instelling | Waarde |
|---|---|
| Broker | Het IP-adres van je EMS op je thuisnetwerk |
| Poort | 1883 (gewoon) of 8883 (versleuteld met TLS) |
| Gebruikersnaam | automation |
| Wachtwoord | Uniek voor jouw toestel, zie hieronder |
Voorbeeld voor Home Assistant (configuration.yaml, of via de MQTT-integratie in de
instellingen):
mqtt:
broker: 192.168.1.50 # IP-adres van je EMS
port: 1883
username: automation
password: <je wachtwoord>
Je wachtwoord
Elk toestel heeft een eigen, willekeurig wachtwoord. Vraag het op bij je installateur of bij onze support; geef daarbij je installatienummer.
Vroeger was het wachtwoord afgeleid van je toestelnummer (bijvoorbeeld
EMS-501-mqtt-2025). Om veiligheidsredenen is dat vervangen door een willekeurig
wachtwoord per toestel. Werkte je integratie tot een recente update en meldt ze nu
"not authorised" of "connection refused", vraag dan je nieuwe wachtwoord op.
Deel je wachtwoord niet: wie het kent, kan op je thuisnetwerk je laadpaal en je thuisbatterij bedienen.
Gegevens lezen
Verbind met een tool zoals MQTT Explorer om alle onderwerpen
en hun live waarde te zien. De nuttigste staan onder sensor/<id>/, waarbij <id> het
nummer van je installatie is zoals MQTT Explorer het toont:
| Onderwerp | Betekenis | Eenheid |
|---|---|---|
sensor/<id>/net | Vermogen van of naar het net | kW |
sensor/<id>/pv | Zonnevermogen | kW |
sensor/<id>/bat | Batterijvermogen | kW |
sensor/<id>/soc | Batterijniveau | % |
Vermogen staat altijd in kW, niet in W.
Status van de EMS (alleen lezen)
Naast sensor/# kan je ook volgen wat de EMS beslist en wat je in het portaal hebt
ingesteld. Deze onderwerpen kan je alleen lezen: je wijzigt ze via het portaal of met
de opdrachten verderop, niet door er zelf iets naar te sturen. De inhoud is JSON.
| Onderwerp | Wat je ziet | Wanneer het verschijnt |
|---|---|---|
state/charger_connected | Of er een auto aan je laadpaal hangt (connected: true of false) | Als je een laadpaal hebt; elke 2 minuten bijgewerkt |
state/charger_user_override | Of je eigen laadkeuze (portaal of MQTT) voorgaat op je laadplan | Alleen als je een laadplan hebt |
state/curtailing/pv_budget_w | Hoeveel zonnevermogen (in W) de EMS toelaat wanneer ze je panelen afremt | Alleen wanneer de EMS je panelen afremt, bijvoorbeeld bij negatieve prijzen |
desired/charging_plan | Je laadplan zoals je het in het portaal instelde (doeltijd, doel-%, voorkeur, dagen); null als er geen plan is | Wanneer je je laadplan in het portaal wijzigt |
desired/ev_state | Wat de EMS over je auto weet: batterijniveau, capaciteit, maximaal laadvermogen en of hij ingeplugd is | Alleen als je auto via het portaal gekoppeld is |
Zie je een onderwerp niet, dan geldt de voorwaarde in de laatste kolom voor jou niet.
Je laadpaal bedienen
De gebruiker automation mag deze opdrachten sturen. Ze doen hetzelfde als de
overeenkomstige keuze in het portaal (zie Auto laden).
| Onderwerp | Inhoud | Effect | Pakket |
|---|---|---|---|
charger/set_mode | 6 | Slim laden | Full, en alleen met een energieplan Dag en nacht of Dynamisch |
2 | Zon + minimum | Altijd inbegrepen | |
3 | Nu laden | Light · Full | |
5 | Niet laden | Light · Full | |
charger/set_manual | stroom in A, bv. 10 | Aangepast laden met die vaste stroom | Light · Full |
charger/set_number_of_phases | 1 of 3 | Aantal fasen; werkt alleen bij Aangepast laden | Light · Full |
car/SoC | batterijniveau in %, bv. 64 | Vertelt de EMS hoe vol je auto is (bijvoorbeeld uit de integratie van je auto in Home Assistant) |
Een modus die je via MQTT kiest, telt als je eigen keuze: een laadplan uit de cloud overschrijft hem niet.
Voorbeeld: een Home Assistant-script dat overschakelt naar Nu laden.
script:
ev_nu_laden:
sequence:
- action: mqtt.publish
data:
topic: charger/set_mode
payload: "3"
Je thuisbatterij bedienen
Light · Full · zie Pakketten
Je kan de EMS tijdelijk opdragen je thuisbatterij aan een vast vermogen te laden of te
ontladen. Dit werkt voor alle merken omvormers, ook al begint het onderwerp met sofar.
| Onderwerp | Inhoud | Effect |
|---|---|---|
sofar/setWorkingMode/passive | vermogen in W, bv. 3000 | Laden aan 3000 W |
negatief vermogen in W, bv. -2500 | Ontladen aan 2500 W | |
0 | Stopt je manuele opdracht: de EMS stuurt de batterij weer zelf |
- Het vermogen geldt voor je hele installatie. Heb je meerdere omvormers met een batterij, dan verdeelt de EMS het over die omvormers.
- Je opdracht blijft actief tot je
0stuurt. Vergeet dat niet aan het einde van je automatisering, anders blijft de batterij aan dat vermogen laden of ontladen. - De EMS kan het vermogen lager houden dan gevraagd, bijvoorbeeld om je capaciteitstarief te respecteren of als de omvormer minder aankan.
- Gebruik
sofar/setWorkingMode/autoniet om te stoppen. Dat zet de omvormer in zijn eigen ingebouwde modus en beëindigt je manuele opdracht niet. Stuur0naarsofar/setWorkingMode/passive: dan neemt de EMS de batterij weer over. - Reageert je installatie niet op je opdracht? Dan heeft ze nog een software-update nodig. Neem contact met ons op.
Voorbeeld: laden aan 3000 W en na een uur de sturing teruggeven aan de EMS.
script:
batterij_laden_1u:
sequence:
- action: mqtt.publish
data:
topic: sofar/setWorkingMode/passive
payload: "3000"
- delay: "01:00:00"
- action: mqtt.publish
data:
topic: sofar/setWorkingMode/passive
payload: "0"
Extern zonnevermogen doorgeven
Heb je panelen op een omvormer die de EMS niet zelf uitleest, dan kan je het vermogen ervan
vanuit Home Assistant doorsturen naar sensor-ha/1, in W (bv. 1850). De EMS telt het
mee als zonnevermogen. Stuur het regelmatig, bijvoorbeeld elke minuut, en gebruik maar
één onderwerp: elke waarde vervangt de vorige.
Wat je niet via MQTT kan bedienen
Relais (bijvoorbeeld een boiler of warmtepomp op een slim relais) kan je niet via MQTT aan, uit of op automatisch zetten; dat gaat via het portaal. Alle onderwerpen die hierboven niet staan, zijn afgeschermd voor schrijven of worden genegeerd, zodat een fout in je domotica de energiesturing niet kan verstoren.
Problemen
- "not authorised" of "connection refused" bij het verbinden: het wachtwoord klopt niet. Vraag je huidige wachtwoord op (zie hierboven).
- Verbonden, maar sommige waarden of bedieningen reageren niet: je integratie gebruikt een onderwerp dat niet in de lijst hierboven staat. Lezen of schrijven daarop wordt geweigerd.
- Geen verbinding: controleer of je Home Assistant en je EMS op hetzelfde netwerk zitten en of je het juiste IP-adres gebruikt.