Home Assistant
Home Assistant is een open-source platform voor smart home-automatisering. Het functioneert als een centrale plaats waarmee je verschillende slimme apparaten en diensten in je huis kunt integreren en automatiseren.
Eén van de sterke punten van Home Assistant is zijn mogelijkheid om te integreren met een breed scala aan apparaten. Het maakt gebruik van een modulair systeem, zodat je nieuwe apparaten eenvoudig kunt toevoegen en integreren.
Het platform biedt ook krachtige automatiseringsmogelijkheden. Je kunt scenario's instellen waarbij bepaalde acties automatisch worden uitgevoerd op basis van vooraf ingestelde voorwaarden.
Home Assistant is populair vanwege zijn flexibiliteit, aanpasbaarheid en actieve gemeenschap. Het draait op verschillende platforms, waaronder Raspberry Pi, en je hebt volledige controle over je gegevens, omdat het lokaal op je eigen hardware wordt gehost.
Gegevens doorsturen naar EnergieID
We doen ons best om zo veel mogelijk integraties aan EnergieID toe te voegen, maar jammer genoeg is het niet mogelijk om alle services te integreren. Sommige services bieden niet de juiste technologie aan (publieke web-API) waardoor we de gegevens niet kunnen opvragen. In dat geval is Home Assistant de perfecte oplossing. Hier beschrijven we stap voor stap hoe je je Home Assistant kan configureren om gegevens door te sturen naar EnergieID.
Oproep aan alle developers
We hebben zelf een integratie gebouwd in Home Assistant die de configuratie eenvoudiger maakt. Hiervoor staat een pull request klaar op de Github-pagina van Home Assistant. Volgens de procedure van Home Assistant moet deze eerst gereviewd worden door andere developers voor hij mee opgenomen kan worden.
Daarom dus een warme oproep aan alle developers om ons te helpen de integratie zo snel mogelijk live te krijgen.
Voorwaarden om te starten
- Een werkende Home Assistant installatie.
- De Home Assistant addon "File editor" geïnstalleerd.
- Webhook geactiveerd op EnergieID.
- Een integratie in Home Assistant die je wil pushen naar EnergieID.
Stap 1: Bepaal welke integratie je wenst toe te voegen aan EnergieID.
Kies een sensor die je graag wenst toe te voegen aan EnergieID. Afhankelijk van wat je allemaal bijhoudt in Home Assistant is de keuze immens (waterverbruik, energieverbruik, pv-productie, gereden afstand met de wagen...). Om je hierbij te helpen ga je best in Home Assistant naar Developer tools > States. Hier kan je al de verschillende sensoren terugvinden en kiezen welke je wilt gebruiken.
Idealiter heb je een meterstand en tijdstip van de meteropname in de Home Assistant integratie, maar het tijdstip is niet verplicht. Je kan ook "nu" gebruiken. In dit voorbeeld maken we gebruik van 2 entiteiten (sensoren): de huidige waarde en het tijdstip van de update. Je kan de namen van deze sensoren best al even kopiëren. Je zal ze later nog nodig hebben.
Stap 2: Nieuwe service (webhook) aanmaken in Home Assistant.
Voor het doorsturen van de gegevens naar EnergieID gebruik je de restful integratie van Home Assistant. Deze is standaard ingebouwd. Je hoeft dus niets te installeren. Maak het rest commando (zie documentatie restful integratie) aan door de File Editor te openen vanuit het menu en dan het bestand configuration.yaml te selecteren.
Voeg onderstaande code toe aan het configuration.yaml-bestand. Let erop dat je de spaties aan het begin van de lijn behoudt.
rest_command: push_data: url: https://hooks.energyid.eu/services/WebhookIn/........ method: POST content_type: "application/json" payload: '{"remoteId": "xxxxxxxxxx","remoteName": "xxxxxxxxxx","metric": "xxxxxxxxxx","metricKind": "xxxxxxxxxx","unit": "xxxx","interval": "P1D",data": [["{{ states.sensor.TIMESTAMP_SENSOR_NAME.state }}", {{ states.sensor.VALUE_SENSOR_NAME.state }}]]}'
TIP: voeg wat comments toe zodat je later nog weet wat deze service doet. Je kan comments toevoegen door een # aan de start van de lijn te plaatsen.
Hier vind je een beschrijving van de parameters in bovenstaande code:
- push_data: de naam van de service. Kies hier iets zinvol waardoor je je later makkelijk kan herinneren wat deze service doet.
- url: de url die je bij het aanmaken van de webhook in EnergieID hebt gekregen.
- payload: het data-object dat je naar EnergieID doorstuurt. In de webhook documentatie vind je een uitgebreidere beschrijving terug.
- remoteId: een unieke naam van de sensor in je Home Assistant omgeving.
- remoteName: de naam van de sensor. Deze wordt overgenomen door de meter die aan je EnergieID-dossier wordt toegevoegd.
- metric: de naam van de metriek. Deze geeft aan wat er net gemeten wordt door de sensor. De volledige lijst vind je terug in de webhook documentatie.
- metricKind: geeft aan hoe we de meterstanden moeten interpreteren. Home Assistant werkt typisch met oplopende tellers (total_increasing), de waarde zal dus meestal 'cumulative' zijn. De volledige lijst vind je in de webhook documentatie.
- unit: de eenheid van de meterstanden.
- interval: geeft aan in welke resolutie de meetgegevens doorgestuurd worden. Voor een standaard gratis dossier moet dit 'P1D' zijn omdat enkel dag resolutie toegestaan is. Voor dossiers met een Premium HR-licentie kan je het interval op 'PT5M', 'PT15M' of 'PT1H' zetten voor respectievelijk 5 minuut, kwartier- of uurresolutie. De waarde die je hier kiest is van belang voor de laatste stap van deze handleiding.
- data: de effectieve data. Dit omvat het tijdstip van de meting en de waarde. Vervang 'TIMESTAMP_SENSOR_NAME' en 'VALUE_SENSOR_NAME' door de naam van de sensoren die je in de eerste stap kopieerde. Indien je geen sensor hebt die het tijdstip van de laatste update bevat, kan je het huidige tijdstip doorsturen.
Na het aanpassen van het configuration.yaml-bestand moet je Home Assistant herstarten. Dat doe je door naar Settings te gaan in het menu rechtsboven en nadien op Restart Home Assistant te klikken. Wanneer Home Assistant opnieuw is opgestart, kan je nagaan of de nieuwe service succesvol is aangemaakt door naar Developer tools > Services te gaan. Je kan de service daar ook al eens uittesten om te zien of alles werkt zoals het hoort. Na het uitvoeren van de test zou je EnergieID-dossier de nieuwe meter met de meest recente meetwaarde moeten bevatten.
Is dit niet het geval, dan dan kan je in de logbestanden van Home Assistant (Settings > System > Logs) bekijken wat er fout is gegaan. Experimenteer door je yaml-code aan te passen waar nodig. Vergeet niet na elke codewijziging Home Assistant opnieuw te herstarten.
Stap 3: De service automatiseren.
Home Assistant biedt veel opties aan om services te automatiseren. Ga hiervoor in Home Assistant naar Settings > Automatisations & scenes en maak een nieuwe automatisatie aan.
Trigger
De trigger geeft aan wanneer de service uitgevoerd moet worden. Kies 'Tijd' als type trigger en stel hem in op middernacht.
Heb je een EnergieID Premium HR-licentie, dan kan je de trigger zo instellen dat hij zich elke 5 minuten, kwartier of uur herhaalt. Zorg ervoor dat het gekozen interval hier overeen komt met het interval dat je in stap 2 meestuurt in de code.
Actie
De actie geeft aan wat er moet gebeuren wanneer de triggervoorwaarde voldaan is. Stel hier de actie 'Roep service aan' in en selecteer de service die je in de vorige stap gemaakt hebt.
Stap 4: Validatie
De volledige setup is nu in orde. Hou de komende dagen alles nog wat in de gaten om ervoor te zorgen dat alles werkt zoals verwacht. Bekijk indien nodig af en toe de logs zoals in stap 2 beschreven staat.
Dank aan Steven Uytterhoeven voor het delen van zijn Home Assistant-integratie. Heb je zelf een integratie gebouwd met EnergieID mag je steeds je methodiek/code met ons delen. Zo kan je andere EnergieID-gebruikers helpen hun verbruik beter op te volgen.