Ik ben - nog steeds - bezig om het hele script onder te brengen in een addon van Home Assistant.
Het script maakt gebruik van software die zijn oorsprong heeft in de wiskunde:
Mixed Integer linear Programming. Afgekort als MIP. Meer info over een python implementatie van MIP:
https://python-mip.readthedocs.io/. Dit algoritme wordt veel gebruikt in de industrie voor kosten minimalisatie als je veel variabelen hebt.
Je kunt het bijvoorbeeld ook gebruiken om het "handelsreiziger probleem" op te lossen: wat is de kortste weg als je 20 plaatsen op een dag moet bezoeken.
In mijn geval gaat het om het oplossen van het vraagstuk: hoe en wanneer zetten we een accu, een boiler en een elektrische auto in om tot zo laag mogelijke energiekosten te komen.
Daarbij ontstaan veel variabelen (honderden) en minstens net zo veel vergelijkingen. Er zijn ook veel randvoorwaarden (constraints) waarbinnen de oplossing gezocht moet worden.
De python MIP-bibliotheek maakt het een stuk makkelijker om alle variabelen, vergelijkingen en randvoorwaarden te definiëren. Maar.... die bibliotheek is gebaseerd op een C++ programma en je hebt dus de binary nodig om mee te werken. Die binary is er wel voor een computer met een x86 processor (bijv mijn laptop met Ubuntu) maar niet voor een raspberry pi met een arm-processor.
In eerste instantie wilde ik het programma draaien als een appdaemon op mijn raspberry pi 4, waar ook Home Assistant op draait. Maar Home Assistant OS en alle standaard addon's zijn allemaal gebaseerd op Alpine Linux. Ik heb geprobeerd die C++ bibliotheek daar op te compileren maar dat ging niet werken omdat enkele sources van andere benodigde binaries niet voorhanden waren voor Alpine Linux.
Uiteindelijk heb ik keus gemaakt om een nieuwe addon te bouwen gebaseerd op debian (ook de basis van Ubuntu en raspbian). En zo kreeg ik het uiteindelijk wel gecompileerd en werkend op mijn raspberry pi.
Bovenstaand is een traject van bijna een jaar waarin ik de software heb ontwikkeld en ook nog een accu van 24 kWh heb gebouwd.
Maar alles (zowel het docker script van de addon als mijn software) vertoont nog heel veel de kenmerken van een "proof of concept" en ziet er allemaal niet zo netjes en gedocumenteerd uit als bijvoorbeeld de software van Home Assistant. Ik ben nu bezig om het allemaal "op te schonen" pas daarna durf ik het te delen met anderen.
Als er mensen zijn met ervaring met het bouwen van een addon en die daarbij willen helpen mogen ze mij een dm sturen.
WP: Alpha Innotec MSW2-6S | PV: 20 x 300 Wp AEG | ACCU: 2x16x280Ah LiFePO4 3 x Multiplus II 48/3000 | DYN: Tibber | Gasloos | Day Ahead Optimizer