Bits&Chips

Een zonnige rit door een berg data

Auteur: Marianne Faro
13 april 2018 

Softwareontwikkelaars Maarten Slenter (backend) en Vincent Lichtenberg (frontend) werken bij Itility onder meer aan dashboards. Hiermee kunnen klanten hun infrastructuur monitoren en optimaliseren. Er zijn allerlei soorten data op te tonen, zoals logs uit chipmachines, gegevens van het spoor of de status van de Stella Vie. Afgelopen oktober draaiden Maarten en Vincent een weekje mee om voor deze zonnegezinswagen van Solar Team Eindhoven een dashboard op te tuigen, op weg naar de winst in de World Solar Challenge.

Maandag

De ochtend start met een brainstorm met de Stella Vie-studenten. Met het dashboard willen ze pers, sponsoren en familie op de hoogte houden van de reis van de auto. Eerst bekijken we welke data er allemaal uit komen. Dit zijn 850 duizend records per dag, met metingen van het vermogen van de zonnepanelen tot het gebruik van knipperlicht en ruitenwisser. Interessant voor het dashboard zijn gegevens over de locatie, hoe vol de accu is (state of charge) en de tijd van de meting. Zo kunnen we afleiden waar de Stella Vie is, wat de afgelegde afstand is en hoeveel energie dit heeft gekost. Verder willen we dat bezoekers deze gegevens per dag kunnen terugkijken en direct updates via Youtube en Twitter kunnen volgen. Vincent werkt in de middag het ontwerp uit van het dashboard.

Dinsdag

Vandaag lopen we door het ontwerp. Maarten kijkt tijdens de presentatie direct hoe hij de gegevens moet aanleveren om het dashboard aan de praat te krijgen. Daarnaast stelt hij voor te zorgen dat we ook data kunnen simuleren. Hij weet namelijk nog uit zijn eigen studentenproject (de elektrische motor Storm, die in 2016 in tachtig dagen de wereld rondreed) dat het niet de hoogste prioriteit heeft om deze gegevens beschikbaar te maken. Een goede aanvulling en de projectmanager is akkoord, dus we kunnen aan de slag. Die middag rolt Maarten vanuit een skeleton een Nodejs-server uit met een SQL-database. De rest van dag richt hij het datamodel en de api in waarmee Vincent straks de data kan opvragen.

Vincent is sinds de meeting druk met de uitrol van zijn scaffolding. Deze bestaat uit Angular, Webpack en SASS. Op naar het mooie werk: grafiekdata weergeven. Hij test een aantal library’s vanuit de Itility-toolbox, en uiteindelijk blijkt Chart.js het meest geschikt: er is veel in te stellen, de documentatie is volledig en op Stackoverflow bestaat een actieve community. Een kwartier later staat de grafiek met state of charge-data op het dashboard.

Maarten Slenter (links) en Vincent Lichtenberg tuigden een dashboard op voor de Stella Vie, de zonnegezinswagen die afgelopen jaar voor de derde keer op rij de Bridgestone World Solar Challenge won.

Woensdag

We hebben een ochtend vol codewerk voor de boeg. Samen met de projectmanager besluit Vincent het tijdstip van zonsopkomst en -ondergang toe te voegen aan het dashboard. Maarten past het direct aan in het datamodel en in de Git-flow. Daarna belt hij de studenten of er al echte data beschikbaar zijn. Helaas, er is iets mis met de middenconsole van de Stella Vie, dus we moeten nog even geduld hebben. Vincent kan wel verder en test in de middag de Google Maps-api. Via de gps-coördinaten rekent hij de afgelegde afstand per dag uit en brengt hij de actuele locatie van de wagen letterlijk in kaart.

Donderdag

De dag begint met een codereview en het opstellen van automatische tests. Daarna komt er een belangrijke mail binnen: ‘De api is gevuld met data uit de Stella Vie’. Eindelijk kunnen we zien of alles werkt. Maarten doorloopt de output en spot toch wat problemen. De state of charge is soms 120 procent, er komt tien keer per seconde data binnen en het geleverde vermogen van de zonnepanelen blijkt in milliwatt uitgedrukt te zijn in plaats van in watt. Hij besluit de afwijkingen in de state of charge op te vangen. De grootste klus is het temmen van het programma van de studenten, zodat het alleen om de tien seconden data stuurt. Vincent lost het milliwattprobleem op door de waardes door duizend te delen. Verder komen decimalen in getallen door met een punt, in plaats van met komma’s. Geen moeilijke klussen, maar alles bij elkaar wel veel werk. Een telefoontje naar de pizzeria is onvermijdelijk.

Vrijdag

Na een lange avond zijn we klaar voor de laatste devicetests. Dat gaat vlot, op één probleem na. Specifiek op de Iphone van de ceo werkt een grafiek niet goed. Het blijkt te zitten in de backward compatibility van een regel CSS. Dit lossen we op, waarmee we de laatste hand leggen aan het dashboard. Volgende week start de race, wij zijn er klaar voor!

Marianne Faro is managing director van Itility.

Redactie Nieke Roos

Abonneer direct op onze nieuwsbrief

abonneren

Digital signal processing

1 oktober - 15 oktober

Eindhoven

C and C++ secure coding

9 oktober - 11 oktober

Eindhoven