Problemen met Connected omvormers

Dit keer geen sappig verhaal over een attractiepark. Geen gehackte achtbanen, wachtrijen of ticketshops. Geen aangiftes, geen boze mensen (tot nu toe). Maar wel een verhaal over een type apparaat dat in meer dan 1,5 miljoen huishoudens in Nederland hangt. Een blog over hoe een connected omvormer voor zonnepanelen in potentie heel veel schade kan toebrengen aan je portemonnee, de buurt of zelfs een veel groter gebied.

Zonnepanelen op m’n huis

Eind 2020 kocht ik een huis, waaraan alles nog verbouwd moest worden. Ik hou van dingen maken, dus ik besloot alles zelf te gaan doen. Ook de zonnepanelen op het platte dak. In juni 2021 beet ik me vast in de materie, en een paar weken later begon ik met de relatief simpele installatie. Een nieuwe groepenkast, negen zonnepanelen, en daartussen een omvormer. Binnen een dag was alles aangesloten.

Net als zo’n beetje iedere nieuwe eigenaar van een installatie, besloot ik om m’n omvormer aan het internet te hangen, waardoor ik live op m’n telefoon kon zien wat de opbrengst van de installatie is. De app van mijn Growatt omvormer heet ‘ShinePhone’. Enorm lelijk en ongebruiksvriendelijk, zag ik al voordat ik de omvormer aankocht, maar de kwaliteit en de prijs van het apparaat zelf is prima. 

Reverse engineer van de API

Na een paar dagen wilde ik de omvormer in HomeKit toevoegen, zodat ik bepaalde apparaten wel of niet kon laten schakelen aan de hand van de opbrengst van die dag. Was er veel zon vandaag? Dan gaan ’s avonds alle lampen aan als ik de knop indruk. Weinig zon? Dan gaat alleen functioneel licht aan, en gaan de lampen buiten alleen op beweging aan en uit, in plaats van op tijd.

Enorme nerd-gedachte, maar wel leuk. Growatt heeft geen API hiervoor, dus hing ik een proxy tussen de app en m’n laptop. Daar viste ik de requests uit, zodat ik zelf m’n connector naar HomeKit kon programmeren.

Wat me opviel, was dat in de requests vaak ‘PlantId’ werd meegeven, met als waarde een getal. Toen ik dit getal in m’n requests veranderde, kreeg ik ook alle data van andere installaties te zien. Van opbrengst, tot apparaten, tot adressen, tot persoonsgegevens, tot serienummers. Redelijk onschuldig, maar best wel een datalek.

Meer en meer…

Dat triggerde me om verder te kijken in de app. Bij je apparaten kan je parameters van een specifiek apparaat aanpassen. Als je dat probeert, kan je alleen verder als je het ‘monteurswachtwoord’ invoert. Na wat Googlen kwam ik erachter dat dit vaak gewoon een hardcoded string is; Growatt+jaartal. Je kan met dit wachtwoord alle instellingen van je omvormer via je telefoon aanpassen. 

Via de proxy zag ik dat de request voor deze handeling alleen een serienummer nodig heeft. Via het datalek van eerder, had ik toegang tot alle connected apparaten van Growatt (inclusief serienummers). Om de request te testen, veranderde ik de naam van een omvormer van iemand anders in Nederland. Dat lukte. Ik wilde ook de andere parameters testen, maar ik was stiekem ook een beetje bang dat ik iets permanent kapot maakte.

Impact op jouw apparaat

Dus voordat ik m’n test vervolgde, belde ik eerst met iemand die me alle ins-en-outs van deze parameters kon uitleggen. Wat is overspanning, onderspanning, overfrequentie, onderfrequentie, etc? Kan de omvormer hierdoor kapot gaan? Omvormers kunnen heel warm worden… Kan ik hem ik hem laten ontvlammen door parameters te veranderen?

Uiteindelijk was het op het eerste gezicht niet zo spannend. Het leek erop dat je de omvormer wel kan uitschakelen, door bijvoorbeeld in te stellen dat de spanning van het normale stroomnet niet hoger mag zijn dan 200v (iets wat normaal altijd het geval is). De omvormer schakelt uit, en de omvorming en levering van de stroom uit de zonnepanelen stopt.

Dit heb ik in een anonieme sessie geprobeerd om voor elkaar te krijgen op mijn eigen connected Growatt omvormer. Met succes.

Impact op een grotere regio

Je huis is dus veilig. Het enige vervelende dat kan gebeuren, is dat iemand op afstand je omvormer kan uitzetten, waardoor je panelen nutteloos op je dak komen te liggen. Je terugverdientijd word langer omdat ze even niks opleveren, maar als je de issue vindt, kan je hem zelf (laten) verhelpen. Interessanter wordt het als je kijkt naar de potentiële impact op een regio.

Wat gebeurt er als je op een zonnige, zomerse dag om 14:00 besluit alle Growatt-omvormers in een hele regio uit te zetten? Het antwoord op de vraag hangt af van het aantal omvormers in een bepaalde regio of buurt.

Sommige nieuwbouwwijken worden met zonnepanelen opgeleverd, waarbij dezelfde omvormer dus in tientallen of soms in honderden huizen hangt. Ook houden gemeenten en woningbouwcorporaties vaak acties, waarbij ze een specifieke installatie met subsidie aanbieden, waar dan ook vaak Growatt omvormers in zitten. Vaak is een specifiek type omvormer dus heel veel aanwezig in een specifieke regio door dit soort acties.

Mijn negen zonnepanelen leveren op een zonnige zomerdag om 14:00 zo’n 3100 watt op. Als ik niet thuis ben, wordt er 3000 watt teruggeleverd aan het reguliere stroomnet. ‘Mijn buren’ gebruiken deze stroom dan, waardoor die stroom niet opgewekt en geleverd hoeft te worden door stroomcentrales.

Stel dat mijn huis in een nieuwbouwwijk van 50 duurzame woningen met Growatt-omvormers zou staan, dan zouden al deze huizen samen 150.000 watt (150 kilowatt) terugleveren aan het stroomnet. Schakel je die allemaal ineens uit, dan kan er een stroomdip(je) ontstaan in de buurt. Uiteindelijk zal het weer rechtgetrokken worden door andere energiebronnen, maar vervolgens kan je ze ook weer allemaal tegelijk aanzetten. Deze procedure kan je blijven herhalen, geautomatiseerd. Uit, dipje, aan, piekje, uit, dipje, aan, piekje…

Waterval van gevolgen

In potentie kan dit heel vervelende gevolgen hebben. Het zou zelfs in theorie zo kunnen zijn dat de pieken en dalen die je hiermee veroorzaakt ook omvormers van andere merken in de war kan brengen, waardoor deze ook tijdelijk uitschakelen. Mogelijk veroorzaakt het dus een waterval van gevolgen op het stroomnet, als je deze gedachte verder doortrekt.

Nou hebben we het in Nederland relatief goed op orde, heb ik begrepen van verschillende experts op dit gebied. Maar deze issue beperkt zich niet tot alleen Nederland. In een willekeurige steekproef van 3300 installaties, kwam ik 81 verschillende landen tegen, waaronder veel landen waar het stroomnet verre van stabiel is, en waar zonnepanelen een belangrijke bron voor energie zijn.

Via een berekening op een bierviltje kom ik via m’n steekproef op in totaal 3.133.336 kwetsbare, connected, Growatt omvormers wereldwijd, waarvan zich ongeveer 260.000 in Nederlandse huizen bevinden. Samen vormen ze de stroom om van miljoenen zonnepanelen.

Melding

Inmiddels is dit probleem opgelost, want anders had ik dit natuurlijk niet op deze manier op internet geslingerd. Dat oplossen ging echter niet zonder slag of stoot.

Growatt had geen manier om een datalek te melden. Dit Chinese bedrijf was ook op geen enkele manier te bereiken. Uiteindelijk vond ik een Nederlands telefoonnummer, maar deze ‘Nederlandse tak’ van Growatt is er alleen ter ondersteuning van monteurs. Ze zouden mijn bevindingen doormelden aan China, maar ik moest er niet vanuit gaan dat er wat mee ging gebeuren. Ook waren de problemen al bekend, liet degene aan de telefoon doorschemeren.

Vanwege de potentiële impact heb ik het gemeld bij het Nationaal Cyber Security Centrum (NCSC). Deze partij is achter de fabrikant aan gegaan, maar had daar ook veel moeite mee. Elke twee weken kreeg ik een update met de strekking ‘We hebben ze nog niet kunnen bereiken’. Wonder boven wonder lukte dat op een gegeven moment wel, en inmiddels zijn de belangrijkste dingen opgelost. Nog steeds is het mogelijk om de opbrengst van anderen te zien, maar de gegevens van apparaten zijn inmiddels niet meer zo open en bloot te bereiken.

Pull the plug…

Het lijkt allemaal verholpen, maar heel veel vertrouwen in Growatt heb ik niet meer, op digitaal vlak. Mijn wifi-stick heb ik permanent uit de omvormer gehaald. Ik raad je aan dat ook te doen, zelfs als je een ander merk omvormer hebt. Heeft je omvormer ingebouwde wifi? Dan kan je deze bijvoorbeeld resetten of in je modem blokkeren. Want hoe vaak kijk je nou daadwerkelijk naar die data?

Als je toch toegang tot de data wilt hebben, net als ik, zijn er alternatieven. De app van je energieleverancier toont (na toestemming) vaak ook je verbruik/teruglevering per uur. Ben je een nerd? Dan kan je bijvoorbeeld ook je slimme meter live uitlezen via de P1 poort. Er zijn verschillende projecten waarbij je met een Raspberry Pi je huidige verbruik en teruglevering live kan uitlezen. Wil je toch de data direct uit de omvormer? Dan zitten daar vaak ook seriële porten op waarmee je dit eenvoudig kan bekijken. Voor Growatt omvormers zijn er zelfs projecten op Github waarmee je dit met een simpele image zonder enige configuratie kan uitlezen.

Disclaimer

De genoemde impact is theoretisch. Om deze inschatting te maken, heb ik gesproken met verschillende experts op het gebied van zonnepanelen en het stroomnet. Ik ben met deze mensen in contact gekomen via mijn eigen netwerk en via energieleveranciers. Toch blijft de impact ‘theoretisch’, omdat het slecht in te schatten is wat er daadwerkelijk zou gebeuren vanwege de grote hoeveelheden variabelen en aannames. 

Geef een reactie

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