Het Internet of Things is de grote trend én de grote kans voor developers. Alles wordt connected, alles wordt smart. Het slimme huis wordt realiteit. Tenminste, als we versplintering weten te voorkomen: voor gebruik, voor aansturing en voor development.
“Vaak begint het met een eenvoudige WiFi-stekker, om bijvoorbeeld je broodrooster aan en uit te zetten”, vertelt de Duitse developer Kai Kreuzer. Deze zelfbenoemde SmartHome- en IoT-enthousiasteling was één van de inspirerende sprekers op de drukbezochte IoT Developers Day 2015, georganiseerd door de NLJUG. De meer dan 500 developers die deze dag hebben bezocht, kregen van Kreuzer te horen hoe ze development voor het smarthome makkelijker kunnen maken.
Klein begin leidt tot wanorde
Kreuzer schetst de weg naar het smarthome bewust vanuit het perspectief van de eindgebruiker. Het begint in de regel klein: met een slimme stekker die op afstand met een app is te bedienen om stroom door te geven of juist niet. Een gewoon, dom apparaat dat is aangesloten op die WiFi-stekker valt zo aan of uit te zetten. Zoals een broodrooster of koffiezetapparaat. “Je koopt dan nog wat smartplugs, plus de apps daarbij. Je koopt nog wat smart devices, plus weer meer apps dáárbij.”
Dit praktijkscenario leidt echter niet naar een smarthome, zegt Kreuzer vastberaden. “Je hebt dan geen smarthome, maar een verzameling van diverse smart devices. Elk met eigen apps, eigen cloud log-ins, enzovoorts.” Het veelbelovende Internet of Things is hiermee een versplinterd initiatief en staat daarmee dus nog in de kinderschoenen. Aan developers de schone taak om verder te denken en te werken dan alleen voor hun eigen smart device of idee daarvoor.
Flexibele IDE voor smart devices
Kreuzer is daar jaren geleden al aan begonnen. Voor hemzelf en voor developers wereldwijd. Hij is enerzijds developer evangelist voor het connected home bij Deutsche Telekom (DT), anderzijds is hij is de man achter ontwikkelplatform OpenHAB. Deze absoluut leveranciers-neutrale software is geschreven in Java en geeft developers integratiemogelijkheden voor de wildgroei aan bestaande technologieën voor home automation. OpenHAB is open source, makkelijk uitbreidbaar en biedt zelf ook API’s voor integratie in andere ICT-systemen.
Terwijl OpenHAB volop in ontwikkeling is, heeft het al wel een innige relatie met het Eclipse SmartHome-framework. “OpenHAB bouwt daar op voort en Qivi is weer de communicatie-oplossing die Deutsche Telekom daarmee aanbiedt.” Kreuzer legt uit dat zijn werkgever DT de open software gebruikt om een pre-packaged pakket compleet met hardware in de markt te zetten. Van Eclipse-framework naar OpenHAB-IDE (integrated development environment) naar kant-en-klare oplossing voor de consument. Developers kunnen zelf kiezen waar zij zich in deze smarthome-keten willen begeven.
Lampen, bridges en weirde protocollen
Op de IoT Developers Day in Utrecht heeft Kai het niet alleen over smarthomes en OpenHAB, hij laat het ook zien. Zijn presentatie is er echt eentje voor developers: via de beamer wisselen vensters met code, hardware-strings, command prompts met switches en andere dagelijkse developers-dingen voorbij. Kreuzer showt OpenHAB in actie, met verschillende smart devices van verschillende fabrikanten, die normaliter elk hun eigen bediening en eigen apps hebben.
Een slimme Hue LED-lamp van Philips en een concurrerende smart bulb van LIFX. “Dit zijn twee devices, maar technisch gezien drie”, wijst Kreuzer op het bridge-apparaat dat de Philips Hue nodig heeft om aangestuurd te kunnen worden. De slimme LIFX-lamp heeft zelf WiFi, maar daarbij een proprietary “en weird” protocol op basis van UDP. Kreuzer vangt het allemaal in ‘zijn’ OpenHAB-software. Daarbij kan de bediening van de beide smart bulbs worden gedaan vanuit een enkel bedieningspaneel, zoals ook een app.
Aan, uit en nog veel meer
Aan zijn ter plekke opgetuigde en aan elkaar geprogrammeerde smart opstelling koppelt de Duitse developer nog een fysiek lichtknopje. Het is echter geen echte ouderwetse schakelaar: het is een draadloze switch van EnOcean. Dit kleine apparaatje heeft geen batterij nodig, want de energie voor het verzenden van zijn radiosignaal komt van het indrukken van de knop zelf. “Één keer bij het indrukken en één keer bij het loslaten.” Het draadloze signaal gaat naar een bijbehorende USB-stick in de Mac waar Kreuzer OpenHAB op heeft draaien.
Doordat de EnOcean-knop twee ‘contactmomenten’ kent voor het radiosignaal kan het meer dan alleen aan- en uitschakelen. In OpenHAB valt in te stellen dat vasthouden van de knop moet resulteren in dimmen van het licht, of juist weer feller laten branden. Eventueel kan het dimmen door vasthouden volgen op het inschakelen door één keer in te drukken en los te laten. Twee keer kort achter elkaar klikken, kan weer een andere actie ten gevolge hebben. Voor slimme lampen, maar ook voor allerlei andere connected devices in de thuisomgeving.
Abstractie van functionaliteit
“Het gaat om abstractie van de functionaliteit”, legt Kreuzer uit, “zodat het niet device-gebonden is.” OpenHAB werkt daarvoor met een events-bus, die via verschillende bindings dan connectie maakt met specifieke devices. De developer wijst opnieuw op het belang van eindgebruikersfunctionaliteit. “Denk na over wat een gewone gebruiker wil van zijn smart devices. Blijf niet hangen in de technische mogelijkheden. Alleen zó kun je een nuttig smart home creëren.”
“De use case moet je in de logic zien te vinden.” Hij noemt het idee van IFTTT (If This, Then That) het doel voor developers. “Maak IFTTT mogelijk”, luidt zijn opdracht. Daarbij is het zaak los te komen van een specifiek device, want het gaat om de functie die daarmee valt te vervullen. “Het beginpunt kan bijvoorbeeld de woonkamertemperatuur zijn”, als er een slimme thermostaat is verbonden met het onderling gekoppelde smarthome-systeem.
“Of juist de buitentemperatuur, op basis van informatie van Yahoo Weather. Totdat je bijvoorbeeld een eigen weerstation koopt en dat in je tuin weer verbindt met het smarthome-geheel. De input-bron van een online-weerdienst valt in OpenHAB zó uit te wisselen voor het meer lokale signaal van een fysieke weersensor. Geen vendor lock-in en zelfs geen devicetype lock-in.
“De diverse leveranciers zeggen dat self-learning clouds eraan komen. Maar ze zijn nu eerst bezig om jouw data op te zuigen”
Makkelijk uitwisselen en aanvullen
Deze flexibiliteit van OpenHAB demonstreert Kreuzer ook door op de IoT Developers Day de EnOcean-lichtknop aan te vullen met een bewegingssensor van Leap Motion. Dit kleine USB-apparaat gebruikt twee infraroodcamera’s en drie infrarood LED’s om hand- en vingerbewegingen te detecteren. Het toevoegen van enkele regels in het centrale OpenHAB-systeem volstaat om deze sensor ook macht over het licht te geven. Een vingerbeweging voor aan en uit. Een dimgebaar met de hele hand om, jawel, te dimmen. En een draaiende vinger om te schakelen langs het kleurenverloop van smart bulbs met meerdere LED’s. “Intuïtief!”, benadrukt Kreuzer.
Natuurlijk is de korte demonstratie met enkele slimme lampen, een fysieke schakelaar en een bewegingssensor slechts een impressie. Veel meer devices, functies en bedieningsmogelijkheden staan open voor developers en daarmee voor eindgebruikers. Kreuzer vertelt ook enthousiast over een scenario waarbij je computer of smartphone je bij vertrek uit je smarthome laat weten dat je licht nog aan is. Niet alleen dát het licht nog aan is, maar ook precies waar. “Natuurlijk kan dat uitschakelen ook automatisch. Of juist met een timer, zodat je nog licht hebt in de gang bij de voordeur.”
Kreuzer verbetert zijn eigen voorbeeld naar een scenario dat meer aansprekend is voor gewone gebruikers. “Een betere use case is een melding dat er nog een raam open staat, inclusief in welke kamer. Want ramen zijn niet automatisch te sluiten.” Daarbij haakt hij ook aan op privacy gevoeligheid en de ‘datalust’ van ICT-aanbieders. “Met OpenHAB draait alles in principe lokaal. De verschillende smart devices die via deze open software worden aangestuurd, willen misschien elk wel naar buiten, maar die internettoegang valt natuurlijk op routerniveau te blokkeren.”
Intránet of Things
Naast het probleem van versplintering door diverse smart devices, elk met eigen apps, is er nog de kwestie van de diverse cloud log-ins. Deze vorm van versplintering is méér dan slechts inloglast voor eindgebruikers. Het is ook data vergaren door aanbieders van cloudsystemen en smart devices. “De diverse leveranciers zeggen dat self-learning clouds eraan komen. Maar ze zijn nu eerst bezig om jouw data op te zuigen”, waarschuwt Kreuzer. “Maar je hebt je LAN al.”
Hij pleit dan ook voor eerst een Intránet of Things. Daarbij kan de logic voor de intelligentie best in de cloud zitten, maar ben je als developer en gebruiker niet afhankelijk van de cloud. Om deze droom van een Intranet of Things verder vooruit te helpen, wordt er ook hard gewerkt aan versie 2.0 van OpenHAB. Alpha-releases zijn er al wel, voor gretige developers om mee te spelen en om van te leren.
OpenHAB2 voor de massa
Voordat er een bèta komt, laat staan een definitieve release, valt er nog veel werk te verrichten, geeft de developer aan. “Ik wil dat alles, nou ja in ieder geval 80 tot 90 procent, werkt.” OpenHAB 2.0 moet bij de initiële release dus de functionele mogelijkheden van de huidige 1.6-reeks nagenoeg evenaren. Alleen dan met veel meer gemak, voor developers en gebruikers.
Kreuzer noemt de huidige versie “een tool voor techneuten, developers zoals wij.” Het is een tool met configuratie middels tekstbestanden. De 2.0-release moet het allemaal makkelijker maken, voor eindgebruikers. Daar voegt Kreuzer wel aan toe dat het wel enigszins technisch onderlegde eindgebruikers zijn. Vooralsnog is het zelf vormgeven van je smarthome toch nog iets voor mensen die met de techniek ervan bezig zijn. “De meeste OpenHAB-developers beginnen als gebruiker, met een device dat dan niet goed aansluit en ze hebben nog nooit aan Java-coding gedaan.”
“Denk na over wat een gewone gebruiker wil en blijf niet hangen in de technische mogelijkheden. Alleen zó kun je een nuttig smart home creëren.”
Een eigen huis
Maar de vooruitgang gaat nu snel, weet Kreuzer die de ontwikkeling zelf heeft ‘ondergaan’. Hij is serieus aan home automation verslingerd geraakt toen hij in 2008 een nieuw huis liet bouwen wat hij zelf wilde automatiseren. Zijn ervaring met industriële techniek, versplintering, elektriciens en verschillende standaarden heeft geleid tot een zoektocht en uiteindelijk eigen developmentproject. OpenHAB heeft zijn smarthome mogelijk gemaakt en moet dat voor vele anderen ook doen. Is OpenHAB2 dus ook voor onze moeders? “Nou, de persoon die de setup doet, is meestal een andere persoon dan degene die het gebruikt.”