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:
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
Zo kunt u precies per dag zien wat het verbruik in uw woning is. Zoals
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.
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.
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.