Zonnepanelen lokaal uitlezen

Met Home Assistant kan je zonnepanelen lokaal uitlezen zonder internetverbinding. Hierdoor ben je ook niet afhankelijk van een cloud en abonnement. Ook alle data blijft binnen je thuisnetwerk en lekt niet naar derden. In deze blog leg ik uit hoe dat werkt bij twee Goodwe omvormers en hoe je het doorgeven van meterstanden naar je energieleverancier kunt stopzetten. Voor het uitlezen van de data gebruik ik Home Assitant.

Wat is Home Assistant?

Heb je een Ikea hub, Philips Hue bridge en nog paar andere hubs en bridges in huis? Met Home Assistant heb je me maar 1 hub nodig. Hierdoor is het ook mogelijk een automation op te zetten tussen een IKEA lamp en een Philips knop.

Home Assistant is een hub/bridge, zoals de IKEA hub en Philiph Hue ook een bridge heeft om alle smart systemen aan elkaar te koppelen.
Het voordeel van Home Assistant is dat het met bijna alle merken, zoals Ikea, Philips, Zigbee, Zwave en vele anderen. Bekijk welke integraties Home Assistant allemaal heeft: https://www.home-assistant.io/integrations/
Een ander voordeel is dat Home Assistant volledig lokaal werkt en je niet afhankelijk bent van een Cloud en internetverbinding. Hierdoor behoudt je ook een stukje privacy. Er zijn merken die een verbinding via een cloud in China moeten hebben om te werken, niet echt wenselijk.

Let op: het lokaal opzetten is niet echt gemakkelijk en kost best wat tijd en apparatuur om goed te doen. Veel voorkomende benodigdheden zijn bijvoorbeeld:

  • Home Assistant hub.
  • Andere router met meer mogelijkheden voor netwerken zonder internet toegang. Zo forceren we dat een apparaat geen internet kan gebruiken.
  • Access Point die meerdere wifi netwerken aan kan.

Energie Dashboard

Voor een demo van het energie dashboard kun je deze pagina bekijken: https://demo.home-assistant.io/#/energy

Alle intergraties voor energie kun je hier vinden: https://www.home-assistant.io/integrations/#energy

Dagverbruik

Dagverbruik in Home Assistant

Zo kunt u precies per dag zien wat het verbruik in uw woning is. Zoals

  • Zonne-energie opgewekt
  • Zonne-energie direct zelf gebruikt
  • Zonne-energie teruggeleverd
  • Energie van net geleverd
  • Gas verbruik
  • Waterverbruik

Slimme meter uitlezen

Door de slimme meter ook te koppelen aan Home Assistant krijgen we op het dashboard ook te zien welke energie direct wordt verbruikt en hoeveel stroom we van het net gebruiken. Dit kan met behulp van een DSMR P1 kabeltje.
Als de hub van Home Assistant niet in de meterkast staat is de slimme meter ook uit lezen met een zogenaamde ESP chip: https://www.zuidwijk.com/product/slimmelezer-plus/

Goodwe omvormer lokaal uitlezen

Er zijn verschillende Goodwe omvormer. Een met wifi stick en een “domme” omvormer zonder wifi stick. Beide kunnen we uitlezen in Home Assistant zonder cloud of internetverbinding.

Wifi stick

De wifi stick verbind ik met een wifi netwerk zonder toegang tot het internet. Hierdoor weet ik zeker dat de omvormer geen informatie doorgeeft aan GoodWe.

Home Assistant kan ik lokaal verbinding laten maken met de Wifi stick van de GoodWe omvormer. Het is zelf mogelijk op piek momenten de omvormer te limiteren tot bijvoorbeeld 20% om niet teveel stroom terug te leveren aan het net. Hieronder kun je zien wat er allemaal uit te lezen is:

Zonder wifi

Een Goodwe omvormer zonder wifi is wat lastiger uit te lezen, maar is met behulp van een modbus controller uit te lezen. Deze koppel ik aan een ESP8266 en bestuur ik met ESPhome. De yaml bestand kun je hieronder vinden.

Uit te lezen zonder wifi
Klik op het plaatje om te vergroten
YAML code voor ESPhome

Dit voorbeeld is voor een Goodwe GW2000-XS-11 omvormer.

substitutions:
  esphome_name: goodwe1000

esphome:
  name: ${esphome_name}
  platform: ESP8266
  board: d1_mini

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

api:
  encryption:
    key: !secret ha_api

ota:
  password: !secret esp_ota

# Enable/Disable logging
logger:
  #level: VERBOSE
  baud_rate: 0 ## Must be 0 to prevent reading issues and buffer overflows

uart:
  id: mod_bus
  tx_pin: D7
  rx_pin: D6
  baud_rate: 9600
  stop_bits: 1
  rx_buffer_size: 1024
  
modbus:
  flow_control_pin: D5
  id: modbus1
  send_wait_time: 1000ms

modbus_controller:
  - id: goodwe
    ## the Modbus device addr (defaults to 247 (0xF7) for goodwe inverters)
    address: 0xF7
    modbus_id: modbus1
    setup_priority: -10
    #command_throttle: 250ms
    update_interval: 15s

sensor:
  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_pv1_voltage
    name: "PV1 voltage"
    address: 0x0300
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_pv2_voltage
    name: "PV2 voltage"
    address: 0x0301
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_pv1_current
    name: "PV1 current"
    address: 0x0302
    unit_of_measurement: "A"
    device_class: current
    state_class: measurement
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_pv2_current
    name: "PV2 current"
    address: 0x0303
    unit_of_measurement: "A"
    device_class: current
    state_class: measurement
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_ac1_voltage
    name: "AC1 voltage"
    address: 0x0304
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_ac2_voltage
    name: "AC2 voltage"
    address: 0x0305
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_ac3_voltage
    name: "AC3 voltage"
    address: 0x0306
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_ac1_current
    name: "AC1 current"
    address: 0x0307
    unit_of_measurement: "A"
    device_class: current
    state_class: measurement
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_ac2_current
    name: "AC2 current"
    address: 0x0308
    unit_of_measurement: "A"
    device_class: current
    state_class: measurement
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_ac3_current
    name: "AC3 current"
    address: 0x0309
    unit_of_measurement: "A"
    device_class: current
    state_class: measurement
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1
    register_count: 4 # skip 0x30A - 0x30C

  - platform: modbus_controller
    modbus_controller_id: goodwe  
    id: goodwe1000_feeding_power
    name: "Feeding Power"
    address: 0x030D
    unit_of_measurement: "W"
    device_class: power
    state_class: measurement
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 0
    register_count: 2 # skip 0x30E

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_temperature
    name: "Temperature"
    address: 0x030F
    unit_of_measurement: "°C"
    device_class: temperature
    state_class: measurement
    register_type: holding
    value_type: S_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1
    register_count: 3 # skip 0x310 and 0x311

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_total_energy
    name: "Total Energy"
    address: 0x0312
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total
    register_type: holding
    value_type: U_DWORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_total_hours
    name: "Total Hours"
    address: 0x0314
    unit_of_measurement: "h"
    device_class: duration
    state_class: total
    register_type: holding
    value_type: U_DWORD
    accuracy_decimals: 0
    register_count: 12 # skip 0x316 - 0x31E

  - platform: modbus_controller
    modbus_controller_id: goodwe
    id: goodwe1000_day_energy
    name: "Day Energy"
    address: 0x0320
    unit_of_measurement: "kWh"
    device_class: energy
    state_class: total_increasing
    register_type: holding
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

Uitzetten meterstanden doorgeven aan uw energieleverancier

Wilt u niet dat uw meterstanden elke 15 minuten worden doorgeven naar uw energieleverancier? Dan kunt u dit stopzetten door een formulier in te vullen bij uw netbeheerder:

https://www.liander.nl/meters-en-meterstanden/slimme-meter
https://www.stedin.net/slimme-meter/slimme-meter-uitlezen

U moet dan jaarlijks zelf uw meterstanden doorgeven voor uw jaarafrekening, als u verhuist of als u overstapt naar een andere energieleverancier.

Verbruik bijhouden van andere apparaten

Met Home Asisstant zijn ook individuele apparaten uit te lezen op verbruik. Zoals boiler, wasmachine, droger, pomp, elektrische auto, airco e.d.

Het is zelfs mogelijk om bijvoorbeeld een airco of wasmachine aan te laten gaan als er overproductie is van uw zonnepanelen.

Andere apparaten in het dashboard

Bekijk ook zeker de demo (onderin energie tabje): https://demo.home-assistant.io/#/energy

Gas en waterverbuik

Ook gas en waterverbruik zijn per uur bij te houden.

Gas en waterverbuik bijhouden
Chat openen
Hoi, welkom op mijn website. Kijk gerust even rond en als u vragen hebt dan hoor ik het graag.