Technische eisen en wensen van een Energie Management Systeem

Wat zijn de technische eisen en wensen voor een Huis Energie Management Systeem?

In dit eerste deel laat ik de uitgangspunten zien en gaan we aan de slag met de Grid aansluiting. Bekijk ook mijn Youtube kanaal voor de visuele begeleiding.

Dit document is in bewerking. Er kunnen en zullen later dus nieuwe versies verschijnen. Ik twijfel nog aan de Github variant maar als iemand zich opwerpt om daarbij te helpen, dan hoor ik dat graag. Een pagina hiervoor is al gemaakt: https://github.com/Hhalewijn/HEMS

Installatie, configuratie en grenzen

Hoewel niet gebruikelijk in een technisch ontwerp, wordt er voor dit ontwerp toch al een keuze gemaakt voor een platform: Home Assistant (HA). HA bestaat al enige tijd en is een product van 1000-en ontwikkelaars die allemaal op basis van non-profit dit systeem ontwikkelen, verbeteren en uitbreiden. Ook heeft het al goed werkende eigenschappen die verband houden met de doelen die gesteld zijn aan HEMS: Energie Management en kosten reductie.

Zo lang als dit document nog in bewerking is, is er geen standaard proces beschrijving beschikbaar om ‘met 1 druk op de knop’ een volledige HA installatie te verkrijgen. Het is niet alleen afhankelijk van de hardware waarop HA gaat draaien zoals een Raspberry PI, een Synology of QNPA NAS in Docker of een Windows computer, het is ook afhankelijk van de integraties die nodig zijn en dus afhankelijk van de hardware die de toekomstige gebruiker straks gaat kiezen.

Met dit document probeer ik een verzamellijst aan te leggen van integraties en van andere instellingen die samen het HEMS vorm moeten geven. En ik hoop dat anderen de handschoen kunnen oppakken om hier een ‘out of the box’ implementatie van te kunnen maken.

Integraties

HA werkt met zogenaamde Integraties. Integraties zijn eigenlijk apps die toegevoegd kunnen worden aan Home Assistant en vervolgens met elkaar verbonden kunnen worden. Er zijn duizenden HA-Integraties beschikbaar en er komen er nog steeds velen bij. Als in dit document over ‘een integratie’ of ‘Integratie’ met een hoofdletter wordt gesproken, wordt vrijwel altijd verwezen naar zo’n app die passende is bij een bepaald stuk hardware of een specifieke toepassing die nodig is voor HEMS.

HEMS moet eenvoudig te implementeren zijn. Integraties die al bestaan moeten gebruikt kunnen worden. Voor Integraties die in het kader van HEMS noodzakelijk zijn, zullen korte instructies beschikbaar moeten worden gesteld. Maar om enige intelligentie toe te kunnen voegen voor de werking van HEMS zullen veel variabelen gedefinieerd worden, niet alleen bij de eerste versie van HEMS maar ook in het vervolg als nieuwe functies gevraagd worden en nieuwe integraties zich aandienen. Dit vraagt om een naamgevingsbeleid (naming convention) dat strikt gevolgd zal moeten worden omdat integratie van Integraties anders een onmogelijk klus wordt. Ook voor de implementatie van deze variabelen zullen scripts gebouwd moeten worden die, liefst als Integratie, toegevoegd kunnen worden.

Ten slotte is er dan de logica, in HA Automatiseringen genoemd. Ook deze zullen op een eenvoudige wijze toegevoegd moeten kunnen worden zodat de gebruiker alleen nog de verbindingen tussen de sensoren en actoren hoeft aan te leggen. In HA kunnen als voorbeeld de Blueprints hiervoor gebruikt worden. Hoe omgegaan moet worden met een hogere versie van intelligentie, laten we zeggen AI, is op dit moment nog moeilijk te voorspellen. En misschien is dat ook wel goed: laten we een grens trekken bij een product dat de eerste noodzakelijke eigenschappen heeft maar tegelijkertijd wel kan meegroeien. Samen doen we veel ervaring op die uiteindelijk tot een soort van AI kan groeien.

Sensoren

Home Assistant is gebouwd op sensoren. Onderdelen (software maar vooral hardware) die meetgegevens verzamelen. Als techneut ben je snel verleid om alles maar te willen verzamelen. Dat gaan we dus niet doen. Behalve dat dit een enorme aanslag op de hardware van HEMS en alle randapparatuur en sensoren kan doen, heeft dat ook geen waarde. Stel jezelf altijd de vraag:
“Als ik dít ga meten, wat ga ik er dan mee doen? Waartoe leidt het?” Als je daarop geen antwoord kunt geven is er waarschijnlijk (nog) geen noodzaak om het te gaan meten. In dit document tref je daarom vooral een verzameling aan van wat noodzakelijk is. Het gaat immers om de doelstellingen die we in het Functioneel Ontwerp hebben samengevat.

Data logging

Home Assistant is niet het beste platform voor uitgebreide datalogging. Om dit mogelijk te maken moet het HA platform uitgebreid worden met een relationele database (InfluxDB) en een analyse tool (Grafana). Ook deze beide functies zullen als Integratie (Add-ons) geïnstalleerd en geactiveerd moeten worden. Voor Grafana zullen de verschillende dashboards gedefinieerd en gedeeld moeten worden.

In dit document en de vervolgdelen die zullen volgen, zullen zoveel als mogelijk de query’s worden opgenomen die gebruikt zijn voor de dashboards.

Financieel

Sturing met HEMS op financiën is één van de belangrijkste eigenschappen die we in het Functioneel Ontwerp hebben vastgesteld. Maar dan dient zich de vraag aan “hoever wil je gaan?”. Rapporteren op kosten is een vereiste. Maar voorspellen? Er zijn (te)veel variabelen waarop geen invloed uitgeoefend kan worden (beleid, weer, economie, e.d.) terwijl die wel van invloed kunnen zijn op de kosten. Ook hier zullen we dus grenzen moeten stellen aan wat vereist, gewenst en mogelijk is. Maar veel van dat soort wensen kunnen ook opgelost worden met het exporteren van data zodat in Excel een nadere analyse mogelijk is.

Sturing

Hoe ver ga je met AI? Door veel te parameteriseren kunnen we later deze parameters eenvoudig met logica laten veranderen. Dus we moeten ons aanleren om zo min mogelijk met vaste getallen in software code te gaan werken maar zo veel als mogelijk met variabelen te gaan werken. Dat betekent ook dat we de variabelen een plek moeten geven om ingevuld te worden. Met een duidelijke omschrijving waarvoor de variabele gebruikt wordt.

Ook de sturing van de hardware en software zelf (de laadpaal, de televisie, de zonnepanelen omvormer, samen ook actoren genoemd) vraagt om het maken van keuzes.

Er zijn een aantal mogelijkheden:

  1. Het HEMS kan geïntegreerd samenwerken met diverse apparaten. In Home Assistant is dat door middel van zogenaamde Integraties. De besturing verloopt dan via het huisnetwerk, veelal Wifi of Bluetooth en het apparaat in kwestie zal de opdracht dan uitvoeren.
  2. Het HEMS kan via een industrie standaard zoals MODBUS-TCP of MQTT, met randapparaten bi-directioneel communiceren. Dit vereist een ethernet en/of Internet communicatie medium.
  3. Het HEMS kan via een of meerdere relais of schakelaars apparatuur besturen. Ook via zogenaamde digitale of analoge inputs kunnen status signalen tussen randapparatuur en het HEMS uitgewisseld worden.

Voorkeur verdient als eerste een Integratie omdat dit de verdere configuratie vereenvoudigt.

Maar ook Modbus-tcp kan een belangrijke interface zijn omdat deze industrie-standaard is en door zeer veel fabrikanten wordt ondersteund.

Algoritme

:

Er zijn meerdere sturingsalgoritmen te bedenken. Voor de eerste versie van HEMS zullen de volgende minimaal worden uitgewerkt:

  • Benutten dynamische tarieven
  • Optimaliseren eigen opwek
  • Optimaliseren gridaansluiting

Naamgeving sensoren

Zoals hiervoor al werd geschreven is het maken van afspraken over naamgeving handig om Integraties op elkaar te laten aansluiten. Gelukkig geeft Home Assistant hiervoor al enkele richtlijnen. En met een eenduidige naamgeving wordt het ook voor onszelf gemakkelijker om te begrijpen waarvoor een sensor wordt gebruikt. Tegelijkertijd moeten we oppassen dat we niet te veel metadata in de naam willen vastleggen omdat Home Assistant hiervoor ook Attributen kent. Maar natuurlijk kun je ook de Friendly Name gebruiken om het goed leesbaar te houden.

Ook voor het groeperen van sensoren kunnen we de bestaande Groepen functie van Home Assistant gebruiken. Ik beperk mij daarom tot de volgende naamgeving standaard die ik heb ontwikkeld:

Type.Brand.Application

Type Sensor

Switch

Binary

Input_select

Input_number

Device_tracker

Automation

Dit zijn de belangrijkste types die HA heeft vastgelegd.
Brand VE = Victron Energy

SE = SolarEdge

YL = YouLess

HM = HomeMatic

Entso = Entso day ahead price

Worden door Integraties vastgelegd of deze kun je zelf kiezen in yaml files.
Application Varies Afhankelijk van de Integratie of de sensor.

Grid Aansluiting

Het eerst onderdeel dat van belang is voor HEMS is de gridaansluiting. Hoe is de woning verbonden met het energienet en wat zijn de specificaties van die aansluiting? Tevens definiëren we nu welke sensoren we nodig hebben en wat deze moeten gaan meten en vastleggen.

Voor de grid aansluiting zijn er 3 aspecten belangrijk om te meten:

  1. Het aantal kWh dat wordt afgenomen
  2. Het aantal kWh dat wordt terug geleverd (via zonnepanelen of andere energiebronnen)
  3. De bandbreedte van de gridaansluiting.

In relatie tot het meten van de bandbreedte moeten dan de volgende sensoren beschikbaar zijn per fase die de gridaansluiting heeft.

  • Spanning – V(olt)
  • Stroom – A(mpere)
  • Vermogen (power: product of Volt and Current) – W(att)

Er zijn verschillende Gridmeters mogelijk: De slimme meter (DSMR) kan bijvoorbeeld via de P1 poort informatie vrijgeven maar is standaard beperkt tot alleen de kWh meting. Er zijn interfaces beschikbaar die meer informatie uit de DSMR kunnen halen. Maar er zijn ook losse tussenmeters verkrijgbaar die het grid kunnen meten:

  • SolarEdge Smart Meter dmv Integratie
  • Elke Modbus smartmeter, bijvoorbeeld Carlo Gavazi, ABB en anderen. Soms worden de meetgegevens via een Integratie vrijgegeven, zoals in de situatie van Victron Energy. Modbus meters kunnen vaak ook spanning, stroom en frequentie meten.
  • Ook een pulsmeter met een S0 aansluiting kan gebruikt worden maar is dan uitsluitend geschikt voor kWh metingen. Pulsen moeten dan omgerekend worden naar Hz en vervolgens naar kWh. In Home Assistant is hiervoor de Riedemann integratie beschikbaar.
  • Om gebruik te maken van dag- en nachttarieven kan het noodzakelijk zijn om ook een grid meter te gebruiken die dit onderscheid kan maken, bijvoorbeeld een Youless met P1 koppeling aan de DSMR.

Inputvariabelen

Onderstaande Input variabelen worden gebruikt om de maximale aansluitcapaciteit te bewaken.

Sensor Type Value Remark
Input_select_grid_connection_capacity Helper 16,25,35,40,50,63,80 Input used to calculate total allowed Grid Power
Input_select_grid_number_of_phases Helper 1,3 Input used to calculate total allowed Grid Power
Input_number.grid_threshold Helper 0-100% Input used to determine the nominal Grid Power we want to use

Meetsensoren

Victron Energy / Carlo Gavazzi Grid Sensor

Als Grid sensor maak ik gebruik van de Carlo Gavazzi die onderdeel is van het Victron Energy ESS. Deze meter is met een RS485 datakabel verbonden met de Cerbo, het centrale hart van het Victron ESS. Via de Cerbo kunnen de devices met Modbus-TCP worden uitgelezen. Voor de naamgeving heb ik daarom elke sensor de letters VE meegegeven: Victron Energy.

Sensor Class Meas. Scale Precision Integration Slave Address Type
sensor.ve_grid_power_l1 Power W 1 0 Victron Energy through Modbus 30 2600 Int16
sensor.ve_grid_power_l2 Power W 1 0 Victron Energy through Modbus 30 2601 Int16
sensor.ve_grid_power_l3 Power W 1 0 Victron Energy through Modbus 30 2602 Int16
sensor.ve_grid_voltage_l1 Voltage V 0.1 1 Victron Energy through Modbus 30 2616 Uint16
sensor.ve_grid_voltage_l2 Voltage V 0.1 1 Victron Energy through Modbus 30 2618 Uint16
sensor.ve_grid_voltage_l3 Voltage V 0.1 1 Victron Energy through Modbus 30 2620 Uint16
sensor.ve_grid_current_l1 Current A 0.1 1 Victron Energy through Modbus 30 2617 Int16
sensor.ve_grid_current_l2 Current A 0.1 1 Victron Energy through Modbus 30 2619 Int16
sensor.ve_grid_current_l3 Current A 0.1 1 Victron Energy through Modbus 30 2621 Int16
sensor.ve_grid_total_energy_from_grid Energy kWh 0.01 1 Victron Energy through Modbus 30 2634 Uint32
sensor.ve_grid_total_energy_to_grid Energy kWh 0.01 1 Victron Energy through Modbus 30 2636 Uint32

Youless P1 Grid sensor

Als er geen Victron ESS wordt toegepast, kan ook de Youless P1 als Grid Sensor worden gebruikt. De Youless LS120 ondersteunt de 4 telwerken van de slimmemeter. Deze heeft vanuit de Integratie dan de volgende sensoren:

sensor.yl_grid_power Power W Youless LS120
sensor.yl_energy_to_grid_low Energy kWh Youless LS120
sensor.yl_energy_to_grid_high Energy kWh Youless LS120
sensor.yl_energy_from_grid_low Energy kWh Youless LS120
sensor.yl_energy_from_grid_high Energy kWh Youless LS120

SolarEdge Smart Meter

Ook de SolarEdge Smartmeter kan gebruikt worden. Hiervoor wordt de SE integratie gebruikt die daarna verschillende sensoren beschikbaar geeft. Zie ook onder het hoofdstuk Solarpower.

sensor.se_grid_power Power W SolarEdge Integration
sensor.se_energy_to_grid Energy Wh SolarEdge Integration
sensor.se_energy_from_grid Energy Wh SolarEdge Integration

Calculated Sensors through configuration.yaml

Met enkele extra gedefinieerde sensoren die zijn vastgelegd in configuration.yaml maak ik berekeningen met behulp van de input sensoren en de meetsensoren. Deze berekende sensoren worden gebruikt voor de bewaking van kritische grenzen van de grid-aansluiting met behulp van de uitgebreide set van de Victron Energy Sensoren.

Sensor Class Meas. Calculation
sensor.ve_grid_power Power W

{{ states(“sensor.ve_grid_power_l1”) |float + states(“sensor.ve_grid_power_l2”) | float + states(“sensor.ve_grid_power_l3”) |float
}}

sensor.grid_maximum_power Power W

{{
230 * int ((states (‘input_select.grid_connection_capacity’ ))) * int ((states (‘input_select.grid_number_of_phases’ ))) }}

sensor.grid_nominal_power Power W

{{
230 * int ((states (‘input_select.grid_connection_capacity’ ))) * int ((states (‘input_select.grid_number_of_phases’ ))) * (int (states (‘input_number.grid_threshold’))/100)}}

3 thoughts on “TO HEMS, deel 1, Grid”
  1. Harold, ik heb veel van je projecten gezien (helaas sommige te laat). We zitten zelf in onze lokale energietransitie en ik gebruik ook HA om zaken te regelen. Om meer te leren op EMS en HA gebied, bouw ik in HA ook een HEMS conform jouw info. Om het werkend te krijgen moet ik soms wat dingen aanpassen in jouw YAML regels, mogelijk dat anderen daar ook tegenaan lopen. Hieronder een voorbeeld hoe ik het werkend heb gekregen. Let op de extra haakjes bij int en de soort enkele aanhalingstekens ‘input’ in plaats van ‘input’. Voorbeeld:

    grid_maximum_power:
    friendly_name: “Grid Maximum power”
    unit_of_measurement: “W”
    value_template: “{{ 230*(int(states (‘input_select.input_select_grid_connection_capacity’)))*(int(states (‘input_select.input_select_grid_number_of_phases’)))}}”

  2. Onder Grid Aansluiting heb je staan, dat 3 aspecten belangrijk zijn om te meten:

    1.Het aantal kWh dat wordt afgenomen
    2.Het aantal kWh dat wordt terug geleverd (via zonnepanelen of andere energiebronnen)
    3.De bandbreedte van de gridaansluiting

    Van die laatste is mij niet duidelijk wat je daarmee bedoelt. Ik kan me zo voorstellen dat dat voor meer mensen onduidelijk is.
    Zou je dat nog iets nader kunnen toelichten?

  3. hi harold, top video. Mbt je document. Ik denk dat je beter wat meer vanuit architectuur eea kan opbouwen… dus architectuur diagram, context diagram met actoren en interfaces, use cases benoemen en requirements (functional / non-fucntionel) , component model vastleggen en dan daaarna die verder uitdiepen in de meer operationele kant .. dan ka nje ook steeds dieper gaan per onderdeel

    just my 2 cts — verder niks dan complimenten!

    wellicht zou je oiok nog eens naar OpenEMS kunnen kijjen – een open source platform voor EMS

    mvg koen

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.