Als je, net zoals ik, heel graag (lees: bijna dwangmatig) wil maken/bouwen/coderen, dan stopt dat natuurlijk niet als je de deur van kantoor achter je dicht trekt. Ook als ik niet bij Tweede golf ben is er altijd wel iets waaraan ik bezig ben. Mijn meest uit de hand gelopen pet project is toch wel mijn home-automation-system. Mijn appartement is inmiddels behoorlijk slim. Met microservices en al.

"HANNAS" heet mijn systeem, waar ik nu zo’n twee jaar aan werk.

HANNAS weet en meet alles van ons

HANNAS' brein bestaat uit een Raspberry Pi, die verbonden is met allerlei sensoren en actoren (verlichting, ventilatiesysteem, etc) in ons appartement. En ze staat in contact met mijn smartphone en met die van mijn vriendin. Ik heb sensoren geïnstalleerd op de deuren, zodat HANNAS weet of er iemand aanwezig is, en we meten continu de temperatuur en luchtvochtigheid in verschillende ruimtes. HANNAS slaat deze data op en triggert op gepaste momenten acties.

Zo doet ze bijvoorbeeld alvast de verwarming en het licht in de gang aan - als dat nodig is - als een van ons met zijn smartphone in de buurt van ons appartement is.

Steeds slimmer

Ik heb recent ingebouwd dat als we gaan koken of douchen HANNAS automatisch het ventilatiesysteem in een hogere stand zet. En dat als ‘s avonds de slaapkamerdeur gesloten wordt, het licht heel geleidelijk dimt. HANNAS heeft het licht in de overige kamers dan al uitgedaan. Erg prettig.

Het eerstvolgende wat op de rol staat: ervoor zorgen dat HANNAS bij hogere temperaturen de planten extra water geeft en als het donker wordt automatisch de gordijnen dicht doet. Daarna? Een groot deel van die vervelende repetitieve handelingen in huis, kan je automatiseren. Dat betekent enerzijds een interessante zoektocht naar creatieve oplossingen en, als het dan werkt, anderzijds ook meer gemak.

Waarom het mij blijft boeien

Dat zit hem met name in die zoektocht naar mooie oplossingen. Dat is naast gewoon leuk bovenal ontzettend leerzaam! Eén van de belangrijkste dingen die ik me door HANNAS echt ben gaan realiseren is dat de betrouwbaarheid van systemen uiteindelijk dé factor is die bepaalt of je echt gemak ervaart.

Een voorbeeld: in eerdere versies schrok ik nog wel eens wakker omdat HANNAS midden in de nacht opeens het licht in de slaapkamer op volle sterkte inschakelde. Ook ben ik ooit naar huis gefietst om te checken of er niet werd ingebroken, omdat HANNAS mij een bericht stuurde dat de voordeur werd geopend terwijl ik zeker wist dat mijn vriendin op haar werk was. Bleek gelukkig een bug te zijn. Daarna natuurlijk meteen gefikst.

Architectuur

Tot slot iets over hoe hoe HANNAS is gebouwd. Ik heb HANNAS opgezet met een microservices architectuur en maak voornamelijk gebruik van dezelfde moderne web technieken en best practices, die we bij Tweede golf ook toepassen. Daardoor is het systeem uiterst betrouwbaar geworden.

  • Door de verschillende taken op te delen in microservices wordt het systeem veel beter meetbaar, testbaar en flexibeler dan wanneer het 'één grote applicatie' zou zijn.
  • NodeJS en websockets worden gebruikt om alles super snel te laten verlopen. Het duurt bijvoorbeeld slechts enkele milliseconden tot de verlichting aangaat na het detecteren van een beweging.
  • Automatische tests zorgen ervoor dat door een kleine aanpassing geen nieuwe bugs worden geïntroduceerd. En dat ik niet nog eens naar huis hoef omdat ik denk dat er wordt ingebroken.

Daarnaast is HANNAS - vanzelfsprekend - goed afgeschermd van het publieke internet. Eén van de weinige dingen waarvan expliciet gedefinieerd is dat ze die mag binnenhalen is het weerbericht. De data die ze verzamelt, bewaart ze lokaal en verder triggert ze alleen acties in huis en verstuurt ze notificaties.

Conclusie

Lang verhaal kort, het was en is ontzettend leuk om aan HANNAS te werken en een elegant systeem neer te zetten dat betrouwbaar is by design, aan de nieuwste standaarden en best practices voldoet en allerlei mooie web-technieken gebruikt. Ik heb er veel van geleerd in de afgelopen 2 jaar en wil HANNAS nog lange tijd doorontwikkelen. Ook heeft het mooie kruisbestuivingen met mijn werk voor Tweede golf opgeleverd. Met name wanneer ik technieken uitprobeerde die we voorheen nog niet tot onze stack rekenden, maar die inmiddels zijn ingeburgerd.

Marlon Baeten – CTO en Co-owner bij Tweede golf.

Door de hele dag met passie in ons vakgebied bezig te zijn, zowel privé als zakelijk, hebben we veel kennis van het ontwikkelen van betrouwbare, modulaire systemen met een lange levensduur. Op zoek naar een partner die met net zoveel drive als Marlon voor jou aan de slag gaat? Check onze "Hire a Team"-pagina of neem direct contact op.