Dé informatieve bron voor Deye producten in NederlandProducten kopen? Bezoek EcoHandel.nl →

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.

TCP 502

Lokale Modbus poort

280+

Modbus registers leesbaar

5 sec

Polling interval typisch

0

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.

Route A

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.

Route B

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

RegisterHA entityEenheidBeschrijving
0x006Dsensor.deye_pv1_powerWPV-string 1 actueel vermogen
0x006Fsensor.deye_pv2_powerWPV-string 2 actueel vermogen
0x00B6sensor.deye_battery_voltageVBatterij DC-spanning
0x00B8sensor.deye_battery_soc%State of Charge 0-100
0x00BBsensor.deye_battery_currentABatterij stroom (positief = laden)
0x0096sensor.deye_grid_voltage_l1VNet-spanning fase 1
0x0097sensor.deye_grid_voltage_l2VNet-spanning fase 2 (3-fase)
0x0098sensor.deye_grid_voltage_l3VNet-spanning fase 3 (3-fase)
0x00C2sensor.deye_grid_frequencyHzNet-frequentie
0x005Asensor.deye_inverter_tempCInterne heatsink-temperatuur
0x006Csensor.deye_today_pv_yieldkWhPV-opbrengst vandaag
0x0060sensor.deye_total_pv_yieldkWhCumulatieve PV-opbrengst
0x00A7sensor.deye_grid_powerWNet-vermogen (negatief = export)
0x00BEsensor.deye_load_powerWVerbruik aangesloten last
0x0065sensor.deye_alert_codeFoutcode 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?

+

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?

+

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?

+

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?

+

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?

+

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?

+

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?

+

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?

+

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

+

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?

+

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)?

+

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?

+

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 →

Bekijk live dashboard-demo in het lab