Power user · integratie
Deye + Home Assistant: lokale Modbus integratie in 2026
In 30 minuten heb je je Deye realtime in Home Assistant, met dashboards, automations en EVCC-koppeling.
Lokale Modbus poort
Modbus registers leesbaar
Polling interval typisch
Cloud-dependency vereist
Twee routes om Deye en Home Assistant te koppelen
Lokaal via Modbus TCP, of via de Deye Cloud API met Node-RED als brug. Voor de meeste power-users is lokaal de juiste keuze; cloud is een fallback voor wanneer de logger geen Modbus TCP spreekt of HA op afstand draait.
Optie A · lokale Modbus TCP
Via WiFi-logger op je netwerk
Voordelen
- Volledig lokaal, geen internet nodig
- Sub-seconde polling mogelijk
- Read en write op alle 280+ registers
- Geen rate-limits
Nadelen
- Logger moet Modbus TCP ondersteunen (niet alle oudere)
- Logger en HA moeten op zelfde subnet zitten
- Bij firmware-update logger: re-discovery nodig
Wanneer? Default keuze. Kies dit tenzij je logger Modbus TCP echt niet kan.
Optie B · Deye Cloud API
Via cloud, met Node-RED als brug
Voordelen
- Werkt ongeacht logger-firmware
- Geen netwerk-toegang tot logger nodig
- Handig als HA elders draait dan je inverter
Nadelen
- Polling typisch 60-300 sec, niet realtime
- Cloud-rate-limits (zwaar gebruik = throttling)
- API-keys moeten via legacy developer-portal
- Bij cloud-storing geen data
Wanneer? Alleen als lokale Modbus TCP echt niet lukt of HA op afstand draait.
Optie A · lokale Modbus TCP setup in 8 stappen
Reken op 20 tot 30 minuten. Voorwaarde: een huidige Deye WiFi-logger met firmware MW3.16 of nieuwer en Home Assistant draaiend op je LAN.
- 1
Logger en HA op zelfde subnet
Zorg dat je Deye WiFi-logger en je Home Assistant host in hetzelfde lokale subnet zitten (typisch 192.168.1.0/24). VLAN-segmentatie of Guest-WiFi blokkeert Modbus TCP.
- 2
Logger-IP achterhalen via router
Ga naar je router DHCP client list. Zoek naar het MAC-adres dat begint met de Deye OUI (vaak D8:F1:5B of EC:FA:BC). Reserveer het IP statisch om drift te voorkomen.
- 3
HACS installeren als nog niet aanwezig
In HA: Settings, Add-ons, en installeer Home Assistant Community Store. Restart HA na install. HACS is de gangbare weg voor third-party integraties.
- 4
Integratie deye_inverter via HACS
Open HACS, Integrations, plus-knop, zoek "Deye Inverter Modbus". Install. Restart HA. De integratie is open-source en ondersteunt alle SUN-X hybride omvormers.
- 5
Device toevoegen in HA
Settings, Devices and Services, Add Integration, kies Deye Inverter Modbus. Vul logger-IP in, port 502, slave-id 1 (default voor enkelvoudige inverter; bij parallel-stack 1 t/m 6).
- 6
Wacht 30 seconden op discovery
De integratie spreekt de logger aan, leest het model uit en laadt de juiste register-map. Bij een SUN-12K-SG04LP3 krijg je circa 280 entities; bij een 1-fase model rond 180.
- 7
Dashboard cards toevoegen
Maak een nieuw dashboard "Energie". Voeg Energy-card toe en koppel pv1_power, pv2_power als productie, grid_power als import/export, battery_power voor opslag. Statistics-card voor today_pv_yield.
- 8
Sensors valideren
Vergelijk de waardes in HA met de Deye Cloud app of de display van de inverter. battery_soc moet identiek zijn, pv_power binnen 1-2% afwijking. Zo niet: slave-id of register-map klopt niet.
Optie B · Deye Cloud API setup in 6 stappen
Voor wanneer lokale Modbus TCP geen optie is. Reken op 45 tot 60 minuten omdat je een Node-RED flow bouwt en API-keys aanvraagt.
- 1
Deye Cloud account
Maak een account op de Deye Cloud app of webportal. Koppel je inverter via de plant-id. Zorg dat de inverter daadwerkelijk data uploadt (controleer Live tab).
- 2
API-keys via legacy developer-portal
Vraag developer-toegang aan via de legacy developer-portal achter Deye Cloud. Genereer een appId en appSecret. Bewaar deze veilig in HA secrets.yaml.
- 3
Node-RED installeren als HA add-on
Settings, Add-ons, store, Node-RED. Install en start. Node-RED wordt onze brug tussen Cloud API en HA via MQTT.
- 4
HTTP-poll node configureren
In Node-RED: maak een flow met een inject node (interval 60s), HTTP request node naar de plant-data endpoint, met Bearer-token uit een eerdere auth-call. Hou polling op 60s minimum tegen rate-limits.
- 5
JSON transformeren naar MQTT
Function-node die de JSON-payload pakt en de relevante velden (battery_soc, pv_power, grid_power) als losse MQTT-topics publiceert onder homeassistant/sensor/deye/. Gebruik HA discovery-payload voor auto-onboarding.
- 6
Dashboard in HA
De entities verschijnen automatisch via MQTT-discovery. Bouw hetzelfde dashboard als bij optie A. Houd er rekening mee dat data 60-300 sec achterloopt op realtime.
Belangrijkste sensors · 15 essentiële Modbus registers
De HACS-integratie publiceert circa 280 entities. Onderstaande 15 dekken 90% van wat je nodig hebt voor dashboards, automations en EVCC.
| Register | HA entity | Eenheid | Beschrijving |
|---|---|---|---|
| 0x006D | sensor.deye_pv1_power | W | PV-string 1 actueel vermogen |
| 0x006F | sensor.deye_pv2_power | W | PV-string 2 actueel vermogen |
| 0x00B6 | sensor.deye_battery_voltage | V | Batterij DC-spanning |
| 0x00B8 | sensor.deye_battery_soc | % | State of Charge 0-100 |
| 0x00BB | sensor.deye_battery_current | A | Batterij stroom (positief = laden) |
| 0x0096 | sensor.deye_grid_voltage_l1 | V | Net-spanning fase 1 |
| 0x0097 | sensor.deye_grid_voltage_l2 | V | Net-spanning fase 2 (3-fase) |
| 0x0098 | sensor.deye_grid_voltage_l3 | V | Net-spanning fase 3 (3-fase) |
| 0x00C2 | sensor.deye_grid_frequency | Hz | Net-frequentie |
| 0x005A | sensor.deye_inverter_temp | C | Interne heatsink-temperatuur |
| 0x006C | sensor.deye_today_pv_yield | kWh | PV-opbrengst vandaag |
| 0x0060 | sensor.deye_total_pv_yield | kWh | Cumulatieve PV-opbrengst |
| 0x00A7 | sensor.deye_grid_power | W | Net-vermogen (negatief = export) |
| 0x00BE | sensor.deye_load_power | W | Verbruik aangesloten last |
| 0x0065 | sensor.deye_alert_code | Foutcode register (F-codes) |
Voorbeeldautomations · 4 YAML-snippets
Plak deze in je automations.yaml of importeer via de UI. Pas entity-namen aan op je eigen setup.
1 · Notify wanneer batterij onder 20%
Stuurt een mobile-push wanneer de SoC onder 20% komt. Voorkomt dat de batterij onder de minimum-DoD zakt zonder dat je het merkt.
alias: "Deye batterij laag"
description: "Push wanneer SoC < 20%"
trigger:
- platform: numeric_state
entity_id: sensor.deye_battery_soc
below: 20
for:
minutes: 5
condition: []
action:
- service: notify.mobile_app_jean
data:
title: "Deye batterij laag"
message: "SoC is {{ states('sensor.deye_battery_soc') }}%"
mode: single
2 · Forceer batterij-laden in dynamisch dal-uur (Tibber)
Wanneer Tibber-prijs onder 0,12 ct/kWh duikt en de SoC onder 70% staat, wordt force-charge geactiveerd via een Modbus-write op het time-of-use register.
alias: "Deye laden bij Tibber-dal"
description: "Force-charge tijdens dynamisch dal-uur"
trigger:
- platform: numeric_state
entity_id: sensor.tibber_prijs_actueel
below: 0.12
condition:
- condition: numeric_state
entity_id: sensor.deye_battery_soc
below: 70
action:
- service: modbus.write_register
data:
hub: deye_inverter
address: 0x0094
slave: 1
value: 1
mode: single
3 · EV laden alleen bij PV-overschot boven 2 kW
Schakelt de EV-lader aan zodra de export richting net minimaal 2 kW is. Werkt met negatieve grid_power omdat dat export betekent.
alias: "EV laden op PV-overschot"
description: "Laad EV alleen bij export > 2000 W"
trigger:
- platform: numeric_state
entity_id: sensor.deye_grid_power
below: -2000
for:
minutes: 2
condition:
- condition: state
entity_id: binary_sensor.ev_aanwezig
state: "on"
action:
- service: switch.turn_on
target:
entity_id: switch.ev_lader
mode: single
4 · Discord alert bij foutcode F23, F41 of F58
Stuurt een Discord-bericht via webhook zodra een kritieke foutcode in het alert-register verschijnt. Snel zicht op netfouten of isolatie-issues.
alias: "Deye foutcode kritiek"
description: "Discord-alert bij F23, F41, F58"
trigger:
- platform: state
entity_id: sensor.deye_alert_code
to:
- "F23"
- "F41"
- "F58"
condition: []
action:
- service: notify.discord_webhook
data:
title: "Deye foutcode actief"
message: "Code {{ states('sensor.deye_alert_code') }} op {{ now() }}"
mode: single
EVCC en Copilot voor smart-charging
EVCC (open-source EV-laad-orchestrator) leest direct via Modbus TCP op poort 502 en heeft Home Assistant niet nodig. In de praktijk werkt parallel polling prima: HA pollt elke 5 sec voor dashboards, EVCC elke 10 sec voor laadlogica. Zorg dat de som onder 1 query per seconde blijft.
Aanbevolen EVCC-config voor Deye:
meters:
- name: deye_grid
type: modbus
uri: 192.168.1.42:502
id: 1
register:
address: 0x00A7
type: holding
decode: int16
- name: deye_pv
type: modbus
uri: 192.168.1.42:502
id: 1
register:
address: 0x006D
type: holding
decode: uint16
site:
meters:
grid: deye_grid
pv: deye_pv
loadpoints:
- title: "Tuin laadpunt"
charger: wallbox_pro
mode: pv
minCurrent: 6
maxCurrent: 16
phases: 3
Copilot (Deye-eigen optimalisatie-engine voor dynamische tarieven) draait op de inverter zelf. Wie Copilot al gebruikt voor laad/ontlaad-optimalisatie kan HA puur voor dashboards en custom automations inzetten zonder conflict. Wie alles in eigen hand wil, vervangt Copilot door HA + Node-RED met directe writes naar het time-of-use register (0x0094).
Foutoplossing · meest voorkomende issues
TCP timeout op poort 502
Logger en HA op verschillend subnet of VLAN. Ping-test eerst. Bij firewall-blok: open uitgaand TCP/502 vanaf HA-host. Sommige loggers kunnen na firmware-update tijdelijk Modbus dichtzetten; herstart logger.
Slave-id verkeerd
Default is 1 voor enkelvoudige inverter. Bij parallel-stack zijn slaves 1, 2, 3 etc. Verifieer in de inverter-display onder Settings, Communication, Modbus address. Verkeerde slave-id geeft alle entities op "Unavailable".
Register out of range
De register-map verschilt per inverter-serie. SUN-X-SG04LP1 (1-fase) heeft andere offsets dan SG04LP3 (3-fase). De HACS-integratie detecteert dit normaal via model-string; bij twijfel kies handmatig de juiste profile-yaml.
Logger ondersteunt geen Modbus TCP, alleen RS485
Oudere V1-loggers of bepaalde OEM-versies hebben enkel RS485. Optie: vervang logger door huidige Deye-WiFi-logger, of zet een lokale RS485-naar-IP bridge (USR-TCP232 of vergelijkbaar) op de RS485-poort van de inverter.
Veelgestelde vragen
Heb ik internet nodig voor de lokale Modbus-route?
+
Heb ik internet nodig voor de lokale Modbus-route?
+Nee. Optie A draait volledig lokaal: HA praat direct met de WiFi-logger op je LAN. Internet is alleen nodig als je remote toegang tot HA wilt of pushberichten naar je telefoon stuurt. De inverter en HA werken ook bij internet-storing door.
Wat is het verschil met Deye Cloud / Copilot?
+
Wat is het verschil met Deye Cloud / Copilot?
+Deye Cloud en Copilot zijn cloud-apps die direct met de logger praten via internet. Home Assistant met Modbus TCP doet dat lokaal en geeft je veel meer controle: writes op alle registers, eigen automations, integraties met Tibber, EVCC, Discord. De cloud-routes blijven goed werken voor monitoring; HA voegt automation toe.
Welke logger-firmware ondersteunt Modbus TCP?
+
Welke logger-firmware ondersteunt Modbus TCP?
+Alle huidige Deye WiFi-loggers (LSW-3, LSE) sinds firmware MW3.16 spreken Modbus TCP op poort 502. Bij twijfel: log in op de logger via de IP in je browser en check de Settings tab op een Modbus-sectie. Loggers van voor 2022 zijn vaak alleen RS485.
Hoe vaak mag ik pollen zonder de logger te overbelasten?
+
Hoe vaak mag ik pollen zonder de logger te overbelasten?
+Praktijk: 5 sec is veilig. 1 sec werkt ook maar de logger reageert dan trager op andere queries (Deye Cloud app). Onder de 1 sec krijg je dropped reads. De HACS-integratie staat default op 30 sec; pas aan in de yaml-config.
Kan ik via Modbus ook schrijven naar de inverter?
+
Kan ik via Modbus ook schrijven naar de inverter?
+Ja, write-registers werken volledig. Je kunt time-of-use schedules instellen, force-charge triggeren, max-grid-export beperken, en working-mode wisselen. Wees voorzichtig: verkeerde waardes op verkeerde registers kunnen de inverter in safe-mode trappen. Test schrijfopdrachten eerst met de Deye Cloud app open ter validatie.
Werkt dit ook met de SUN-G3 generatie?
+
Werkt dit ook met de SUN-G3 generatie?
+Ja, alle SUN-X-SG04LP1 en SG04LP3 modellen ondersteunen volledig Modbus TCP. De register-map is iets anders dan G2; HACS-integratie detecteert dit normaal automatisch via de model-string die uit register 0x0000 komt.
Hoe koppel ik EVCC met deze setup?
+
Hoe koppel ik EVCC met deze setup?
+EVCC (open-source EV-laad-orchestrator) leest direct via Modbus TCP, zonder HA tussenstap. Je kunt parallel draaien: HA pollt voor dashboards, EVCC pollt voor laadlogica. Belangrijk: hou polling-interval ruim (5+ sec elk) om de logger niet te overbelasten. Alternatief: HA publiceert via MQTT, EVCC abonneert.
Wat doet Copilot bovenop deze HA-setup?
+
Wat doet Copilot bovenop deze HA-setup?
+Copilot is een Deye-eigen optimalisatie-engine voor dynamisch laden/ontladen op spotprijs. Als je dat al hebt is HA puur voor dashboards en custom automations. Wie zelf de logica wil bouwen (Tibber, eigen prijsbron, multi-inverter) doet dat beter in HA + Node-RED zonder Copilot.
Mijn entities staan op Unknown na een reboot van HA
+
Mijn entities staan op Unknown na een reboot van HA
+Vaak: de logger is langzaam met opnieuw verbinden. Wacht 2-3 minuten. Permanent Unknown wijst op een ip-conflict (DHCP gaf de logger een ander IP) of dat de logger zelf hangt. Reserveer logger-IP statisch en herstart de logger via de power-knop, niet via reset.
Kan ik meerdere Deye-inverters onder 1 HA?
+
Kan ik meerdere Deye-inverters onder 1 HA?
+Ja. Voeg per inverter een aparte device toe met dezelfde IP en oplopende slave-id (bij parallel-stack), of verschillende IPs (bij meerdere standalone systemen). HA aggregeert de productie via een template-sensor of de Energy-card.
Werkt het ook achter een dubbele router (CG-NAT bij provider)?
+
Werkt het ook achter een dubbele router (CG-NAT bij provider)?
+Voor optie A irrelevant, want lokaal verkeer gaat niet via WAN. Voor optie B (Deye Cloud API) is CG-NAT geen probleem omdat HA uitgaand naar de cloud praat. Bij dubbele NAT thuis: zorg dat HA en logger achter dezelfde router/subnet hangen.
Is dit veilig voor mijn netwerk?
+
Is dit veilig voor mijn netwerk?
+Modbus TCP heeft geen authenticatie. Beperk dus toegang tot de logger via firewall-regels: alleen HA-host mag verbinden. Zet de logger eventueel in een aparte IoT-VLAN met een ACL die alleen HA toelaat. Stel ook een sterk WiFi-wachtwoord in voor het netwerk waaraan de logger hangt.
Gerelateerd
Verder lezen
Deye Cloud uitgelegd
Wat de cloud-app wel en niet kan naast je lokale HA-setup.
Lees verder
Dynamische tarieven met Deye
Tibber, Frank en EnergyZero koppelen aan je inverter automations.
Lees verder
Firmware updates Deye
Wanneer updaten loont en welke versies veilig zijn voor je logger.
Lees verder
Live dashboard demo
Bekijk een werkende Deye monitoring dashboard met realtime data.
Lees verder
Deye foutcodes lijst
Alle F-codes uitgelegd met oorzaak en concrete fix per code.
Lees verder
EV laden op PV overschot
Slim laden van je auto wanneer je zonnepanelen exporteren naar het net.
Lees verder
Deye Cloud uitleg
Wat de cloud-app wel en niet kan, naast je HA-setup.
Lees verder →
Dynamische tarieven
Tibber, Frank en EnergyZero: hoe je ze in automations koppelt.
Lees verder →
Deye foutcodes
F-codes uitgelegd, met oorzaak en fix per code.
Lees verder →
