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.
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 →
