Wie tegenwoordig aan de slag wil met huisautomatisering en niet kiest voor een kant-en-klaar product, komt in zijn of haar zoektocht naar een softwarepakket al snel de naam Home Assistant tegen. Dit opensourceproject kan gedraaid worden op bescheiden hardware, zoals een Raspberry Pi, en vormt een centraal brein voor het aansturen van een slim huis. Er zijn een heleboel integrations voor Home Assistant beschikbaar, een soort plug-ins die ervoor zorgen dat de software kan communiceren met allerlei verschillende soorten producten over verschillende standaarden. Gebruikers kunnen met de ingebouwde automation engine vervolgens de logica bouwen om de lampen bijvoorbeeld te laten reageren op bewegingssensors, gordijnen dicht te laten gaan als er een film wordt gestart of de mechanische ventilatie samen met het licht in het toilet aan en uit laten gaan.
Home Assistant werd in 2012 bedacht door de Nederlander Paulus Schoutsen, die nog steeds leidinggeeft aan het project en er inmiddels fulltime aan werkt. Dat doet hij via zijn bedrijf Nabu Casa, dat ook de Home Assistant Cloud als dienst aanbiedt. Home Assistant is volledig gratis te gebruiken, maar via een maandabonnement bij Nabu Casa is het bijvoorbeeld mogelijk om eenvoudig integratie met Google Assistant en Amazon Alexa te regelen, op afstand bij het systeem te komen en om text-to-speechdiensten te gebruiken.
Wij spraken onlangs met Paulus over het ontstaan van Home Assistant, hoe hij zijn rol als oprichter vandaag de dag invult en wat zijn plannen voor de toekomst zijn.
:strip_exif()/i/2004163348.jpeg?f=imagenormal)
Hoe ben je zelf voor het eerst in aanraking gekomen met smarthome en wat deed je besluiten een eigen platform voor de aansturing te bouwen?
“Dat was rond 2012. Ik was toen bezig met de afronding van mijn studie bedrijfsinformatietechnologie aan de Universiteit Twente. Mijn masterscriptie schreef ik bij het San Diego Supercomputer Centrum in San Diego en ik woonde daarvoor in de VS. Ik werkte er aan software voor fraudedetectie rondom de gezondsheidszorg. Geen fraude door patiënten, maar door artsen die te vrij zijn met wat ze in rekening brengen. Voor dat onderzoek was ik veel met datamodellen bezig.”
“Rond die tijd kwamen de eerste Hue-lampen van Philips uit en dat vond ik vet. Ik heb toen meteen een set met een hub en lampen gekocht. Voor mijn scriptie was ik destijds al met Python aan het werk, maar dan vooral voor dataprocessing. Ik wilde mijn Hue-lampen graag aansturen via de api en besloot Python in te zetten om daar scripts voor te schrijven. Nadat ik dat mogelijk had gemaakt, wilde ik meer, bijvoorbeeld de lampen schakelen met zonsopkomst en zonsondergang. Daarvoor voegde ik aan het script een library toe die dat kon bepalen.”
“Vervolgens dacht ik: ja verdorie, nu gaan die lampen aan en uit als ik niet thuis ben, dat wil ik niet. Dus ik moest gaan bijhouden wanneer mijn vriendin en ik thuis waren. Dat deed ik op basis van de wifirouter, waarin ik kon zien welke telefoons met het wifinetwerk verbonden waren. Vanaf daar is het balletje gaan rollen en bleef ik verder hacken. Kort daarna kregen we bijvoorbeeld een Chromecast en heb ik ondersteuning daarvoor toegevoegd.”
Volgens Wikipedia hebben er meer dan 2275 mensen aan Home Assistant meegewerkt. Hoe zorg je ervoor dat je met zoveel mensen nog grip houdt op de richting van het project?
“Goede vraag. Ten eerste gelden die meer dan 2000 mensen over het bestaan van 7,5 jaar. Er zijn veel mensen die een bug tegenkomen, in de source kijken, de bug oplossen en vervolgens niet meer terugkomen. Als ik kijk naar hoeveel mensen er echt constant aan Home Assistant werken, dan zijn dat er eerder 20 tot 30. Dat is dan inclusief de mensen die aan populaire integraties werken.”
“In de opensourcewereld geldt vaak het principe van scratch your own itch; mensen werken aan dingen die ze zelf leuk vinden. Dat betekent dat ze vaak werken aan integraties voor apparaten die ze zelf in huis hebben. Als daarbij blijkt dat er beperkingen aan Home Assistant zijn waardoor ze dingen niet gedaan krijgen, dan spring ik vaak bij om te helpen en dat op te lossen.”
“Met opensourceontwikkeling is het verder heel moeilijk plannen, want vrijwilligers komen en vrijwilligers gaan. En er kan zomaar opeens een contributie binnenkomen, een pull request, voor een fantastische nieuwe feature die we helemaal niet verwacht hadden, maar waar nog wel wat aan moet gebeuren. En die willen we dan vaak toch wel in Home Assistant krijgen."
Wie bepaalt dan of zo’n feature opgenomen wordt in de codebase?
“De final say heb ik. Er zijn mensen die naar mij refereren als de bdfl, de benevolent dictator for life, vergelijkbaar met Guido van Rossum bij Python. Dat werkt eigenlijk best lekker vind ik zelf.”
Hoe bepaal je voor jezelf waar je wel aan meewerkt en waar niet. Hoe kader je dat af?
'Alle stukjes software werken los van elkaar en weten niets van elkaar'
“Toen ik dit nog vrijwillig deed, was ik bijna alleen bezig met GitHub-contributies doornemen. Van elke nieuwe contributie kreeg ik een ping in mijn mailbox en in het weekend ging ik die dan allemaal doorwerken en beoordelen. Soms was daar weer feedback op nodig en kwam het later aangepast terug mijn queue in.”
“Tegenwoordig kijk ik niet meer naar alles; aan de frontend werk ik bijvoorbeeld niet meer mee eigenlijk. Ik ben nog wel betrokken bij mock-ups, maar bouw er verder zelf niet meer aan mee. Ik probeer nu meer bezig te zijn met helpen bij het opzetten van nieuwe projecten. Mensen kunnen namelijk veel makkelijker bijdragen aan iets wat er al is, binnen een framework waarin ze iets kunnen maken. Met het neerzetten van dat soort frameworks heb ik veel ervaring opgedaan.”
“We hebben bijvoorbeeld een nieuwe Z-Wave-integratie op basis van Z-Wave JS, een driver op basis van JavaScript. Ik weet veel van JavaScript en Python, en kan dat redelijk snel in elkaar zetten. Daardoor kunnen anderen er weer makkelijker aan werken, doordat het bijvoorbeeld makkelijker is om hun werk te debuggen. Aan dit soort grote integraties waarbij veel data komt kijken en die lastig zijn om op te zetten, bouw ik veel mee.”
Toen je begon, wist je niet dat deze codebase later gebruikt en bijgewerkt zou worden door duizenden mensen. Deed je toen al wel je best om een solide technische basis neer te zetten?
“Het was niet quick en dirty. Ik gebruikte veel van de dingen die ik geleerd had tijdens mijn studie, gebaseerd op hoe ik Java-projecten maakte. Hoewel het er toen allemaal veel simpeler uitzag, is de structuur van het systeem grotendeels gelijk gebleven. Het is een events based systeem; we hebben events en dan hebben we de state van apparaten. Verandert er iets aan een apparaat, dan vuren we een state change af waar de oude en nieuwe staat in zitten. Het is allemaal erg decoupled, alle stukjes software werken los van elkaar en weten niets van elkaar. Daardoor kun je heel makkelijk losse stukken aanpassen. Die structuur is eigenlijk precies hetzelfde als toen. Ik wil niet zeggen dat ik daarom heel slim ben; het was meer een lucky shot.”
Dus je hebt nooit een rewrite van de code hoeven doen?
“Dat wel, maar niet zozeer om de datastructuur aan te passen. Wel voeren we de code nu anders uit. In Python kun je synchroon en asynchroon programmeren, en ik deed het eerste, want ik was niet bekend met asynchroon programmeren. Als je synchroon programmeert en bijvoorbeeld in een functie data van het internet opvraagt, blokkeert alles tot die data binnen is. Bij asynchroon programmeren heb je één thread die in een while-loop alle taken uitvoert. JavaScript werkt ook zo, om maar een populair voorbeeld te noemen. Dan zegt een functie ‘Ik ga even slapen, maak mij wakker als de data er is en ga intussen verder met de volgende taak.”
“Ik werd daar destijds op gewezen door Ben Bangert, een opensourceontwikkelaar bij Mozilla die tegenwoordig ook aan Home Assistant werkt. Hij raadde mij aan de code asynchroon op te zetten, omdat er zoveel taken tegelijk gebeuren en er ook code van anderen kan draaien. Als er dan code blijft hangen, ben je de klos.”
Vroege versies van de Home Assistant UI uit 2013 en 2014
De community rondom HA is groot en vocaal. In welke mate laat je je leiden door welke features die mensen willen? Hoe verwerken jullie al die input en hoe wegen jullie het af in keuzes voor de toekomst?
“Ik zit in een heleboel groepschats en besloten Discord-kanalen met anderen die aan Home Assistant werken. Daarin overleggen we veel. En over die wensen en ideeën: met open source loop je vaak tegen het probleem aan dat er ontzettend veel goede ideeën zijn, maar dat de mensen die het idee bedenken, niet bereid of in staat zijn om het zelf te gaan bouwen.”
“Voor de features die we zelf bouwen, kunnen mensen al in een vroeg stadium meekijken; alles gebeurt openbaar. Als je een GitHub-account hebt en Engels kunt, doe je al mee. Dat is soms best lastig. Je kunt feedback daarom niet negeren; je moet er wel op ingaan, maar vaak moet je uitleggen waarom we iets niet gaan uitwerken of waarom het geen goed idee is. Je moet ook wel een dikke huid hebben in de opensourcewereld; soms worden mensen boos en hoor je dingen als: hoe kunnen jullie zo dom zijn?”
Home Assistant kent jaarlijks een ‘state of the union’-evenement, waarin zowel terug als vooruit wordt gekeken naar de ontwikkeling van het platform. Daarin is het makkelijker maken voor gebruikers de laatste jaren een groot onderwerp. Waar gebruikers in de begindagen voor de configuratie en automatisering van Home Assistant enkel gebruik konden maken van de YAML-taal, zijn er de laatste jaren grote stappen gezet om steeds meer van dit soort taken via een UI te laten lopen. Bij de recente Home Assistant Conference 2020 was er bijvoorbeeld veel aandacht voor blueprints, een nieuwe functie om de onderliggende logica voor een automatisering eenvoudig met andere gebruikers te delen.
Hoe kijk je aan tegen het gebruik van YAML versus de UI om zaken te configureren en automatiseren. Wat is het einddoel?
“Het doel is tweeledig. We hebben aan de ene kant onze powerusers en die willen we blijven faciliteren. Die expertgebruikers, daar hebben we er heel veel van en die doen ook gewoon de gaafste dingen met Home Assistant. Die willen bijvoorbeeld makkelijk de koppeling kunnen maken met Node-Red (een tool om visueel te programmeren, red.) om daarmee te automatiseren. Dat moet gewoon werken en zullen we zeker nooit blokkeren. Datzelfde geldt voor custom integraties. We weten dat de kwaliteit daarvan niet altijd even hoog is, maar daarvoor hebben we dan gelukkig HACS (een onofficiële communitystore voor integraties, red.) Dankzij die constructie kunnen we gemakkelijker ‘nee’ zeggen tegen verzoeken om aanpassingen aan Home Assistant zelf.”
'Het makkelijker maken voor gebruikers is de laatste jaren een groot onderwerp'
“We willen dingen tegelijk ook makkelijker maken. Uiteindelijk wil ik het allebei, al weet ik dat dat nooit zal lukken. Er moet nog wel meer werk gebeuren om het echt goed te laten verlopen voor beginnende gebruikers, bijvoorbeeld als je naar automations kijkt. Je moet nu nog te veel interne terminologie kennen om daarmee aan de slag te gaan. Het zou voor een normale gebruiker niet nodig moeten zijn dat hij het verschil tussen een device en een entiteit kent.”
“Twee jaar geleden zijn we tijdens onze state of the union een beetje doorgeschoten in die messaging; het ging toen alleen maar over making it easier.”
En daar schrikte je mensen mee af?
“Ja, bij ons afgelopen congres hadden we de boodschap beter voor elkaar. We zijn nog steeds dingen makkelijker aan het maken en we hebben bijvoorbeeld blueprints, waardoor je automations makkelijk kunt delen, maar tegelijk is onze automation-engine enorm uitgebreid, waardoor je veel gavere dingen kunt maken.”
In 2018 richtte je Nabu Casa op, het bedrijf dat de betaalde Home Assistant Cloud-functionaliteit aanbiedt. Hoe kwam dat tot stand?
“Ik heb Nabu Casa opgericht met twee anderen, Ben Bangert en Pascal Vizeli. Pascal is degene die ons besturingssysteem gebouwd heeft. Home Assistant is begonnen als Python-applicatie; dat noemen we nu de core. Het hele gebeuren met het besturingssysteem erbij is Home Assistant.”
“We waren in het afgelopen jaar het op een na actiefste Python-project in de wereld, volgens de statistieken. Met die omvang hebben we gewoon ontzettend veel chores, dat is waar alle betaalde medewerkers uiteindelijk mee bezig zijn. Denk dan aan code reviews en releases voorbereiden; dat gebeurt bijna allemaal door de betaalde medewerkers.”
“We hebben op dit moment acht fulltimers en één parttimer. Dat is Ben Bangert, die me eerder op het belang van asynchroon programmeren had gewezen. En binnenkort begint een nieuwe medewerker. Vanwege corona heb ik expres niet zoveel mensen aangenomen in het afgelopen jaar, omdat we niet wisten wat er ging gebeuren. We zijn wel blijven doorgroeien en dat is ook goed te plannen, doordat mensen maandelijks betalen, waardoor we een goed beeld van de cashflow hebben.”
Hoe groot is die cashflow?
“Die cijfers zijn niet openbaar. We krijgen als opensourceproject al zoveel meningen over elke stap die we zetten, als we dan ook nog eens meningen krijgen over hoe we ons geld uitgeven. Moest je wel die hardware kopen? Waarom huur je mensen in uit West- en niet Oost-Europa? Dat soort dingen, die wil ik er niet ook nog bijhebben.”
Op dit moment biedt Nabu Casa de cloudfunctionaliteit om een Home Assistant-installatie op afstand te benaderen. Zijn er plannen om meer features aan het abonnement toe te voegen?
“Om te beginnen heeft de cloud zelf wel wat onderhoud nodig. Zo werkt ons betaalsysteem nog niet helemaal lekker. Eén ding waar mensen veel naar vragen, is de mogelijkheid om een jaarabonnement te nemen, dus daarom zijn we ons betaalsysteem aan het vernieuwen. Sommigen willen ook in euro’s betalen, maar die moeten maar eens goed naar de wisselkoers kijken (lacht).”
“Vorig jaar hebben we text-to-speech toegevoegd, maar dat hebben we eigenlijk nooit goed gepromoot. Dat willen we in de komende maanden beter gaan doen. In het text-to-speechpanel zit nu een soort try-outdialoog, waar je eenvoudig een taal kunt kiezen en tekst kunt intikken. Je kunt het dan in je browser of op een speaker laten uitspreken.”
“Waar we verder nog naar aan het kijken zijn, zijn bijvoorbeeld notificaties als je Home Assistant down is. Ook kijken we naar het maximumaantal toegestane notificaties per dag. Dat is nu gelijk, ongedacht of je betaalt voor Nabu Casa of niet. We kijken of we die limiet kunnen verhogen.”
Hebben jullie een duidelijk beeld van het soort features dat betaald kan zijn en wat nooit betaald kan zijn?
“We proberen van Home Assistant Cloud een doorgeefluik te maken van diensten die niet zonder cloudfunctie kunnen. Zoals de stemassistenten van Google en Amazon. Die diensten willen op een lokale plek een berichtje voor de gebruiker afleveren en wij moeten dan uitzoeken naar welk huis het moet gaan. Daar hebben we dus een cloud voor nodig, maar het uitvoeren van het commando dat Google stuurt, zit gewoon lokaal in Home Assistant. We gaan geen lokale code maken die alleen unlocked wordt als je betaalt.”
Mensen hoeven dus niet bang te zijn dat ze in de toekomst moeten betalen om een lokale feature te kunnen gebruiken?
“Nee, nooit, dan gaat het heel raar lopen. Je kunt de cloudintegratie nu ook gewoon uit je configuratie halen en dan zie je het ook helemaal niet. Dan zie je niets van Nabu Casa. We zijn echt bezig om met Nabu Casa alleen dingen te doen die echt de cloud nodig hebben, zoals text-to-speech. Er zijn ook lokale text-to-speechdingen beschikbaar, maar die zijn niet zo goed als op neurale netwerken gebaseerde engines, zoals Google, Microsoft en Amazon die aanbieden.”
Wie zie je als jullie concurrentie?
“Ik denk alle huisautomatiseringsprojecten waarin je custom dingen kunt hangen: Fibaro Home Center, SmartThings en Homey. Ik maak me alleen nooit zoveel zorgen over die concurrentie; ik houd me ook niet echt bezig met wat zij doen. Uiteindelijk bestaat de échte concurrentie uit alle producten die over de cloud gaan, die niet lokaal werken, zoals een Z-Wave-product van Fibaro wel doet. Eigenlijk zijn dat meer onze allies.”
“Een van de grote doelen van Home Assistant is dat we willen dat dit soort data gewoon standaard lokaal blijft. Ik zag een keer een tweet van de oprichter van Gnome. Die omschreef zijn organisatie als een politieke organisatie die software schrijft. Dat vond ik wel mooi eigenlijk. Wij willen dat privacy en lokale controle de standaard zijn en daar zijn we al een tijd mee bezig. Hoe groter we worden, hoe meer macht en inspraak we krijgen.”
'Wij willen dat privacy en lokale controle de standaard zijn'
“TP-Link is daar een goed voorbeeld van. Dat had onlangs lokale controle bij een apparaat weggehaald. Veel mensen hebben toen boos de supportafdeling opgebeld en gevraagd waarom dat gebeurd was. TP-Link snapte niet dat mensen dat gebruikten, omdat het geen officiële feature was. Toen bleek dat veel mensen het via Home Assistant gebruikten, dachten ze: we moeten maar eens met ze bellen.”
Onlangs brachten jullie een gelimiteerde editie van een eigen hardwareplatform uit, gebaseerd op de Odroid-N2+: Home Assistant Blue. Wat was de gedachte hierachter?
“Pascal Vizeli, die voor Nabu Casa aan ons besturingssysteem werkt, kwam op een gegeven moment de Odroid-N2 tegen en zei: ‘deze hardware is fantastisch’. Het is goed te betalen en loopt rondjes rondom de Raspberry Pi. We vonden dat meer mensen die hardware zouden moeten gebruiken, ook omdat er vaak problemen zijn met sd-kaartjes bij de Pi.”
“We besloten toen om er gewoon een kastje bij te ontwerpen en te bouwen, verder niets. Op de website van HardKernel, de makers van de Odroid-N2, zagen we dat ze eerder al een kit hadden uitgebracht, voor OpenElec. We hebben ze toen aangeschreven en gezegd dat we dat ook wel wilden, met een eigen behuizing. Die eerste e-mail naar HardKernel ging er grofweg een jaar geleden uit, op 7 januari 2020.”
Zat er geen groter plan achter?
“Nee, we wilden echt gewoon leren. Je kunt niet zomaar de hardwarebusiness instappen zonder ervaring. We wilden weten of dit bevalt, of we dit gaaf vonden. En ik moet zeggen, het bevalt. Het is leuk om al die foto’s te zien die blije gebruikers van hun Blue posten.”
Maar hadden jullie een doel gesteld? Een specifiek aantal dat je wilde verkopen? Een omzet die je wilde halen?
“Nou, dit was meer een soort investering in de community. Met eenmalige inkomsten uit hardware kun je geen bedrijf runnen, daar hebben we de cloud voor. We hebben er dan ook geen winst op gemaakt. Als je de prijs van alle losse onderdelen bij elkaar optelt op de site van HardKernel, dan blijft er iets van twaalf dollar over voor de case.”
De Blue-kit heeft een beperkte oplage. Zijn er plannen om er in de toekomst meer te produceren?
“We hebben wel een tweede run gedaan. Initieel hadden we tweeduizend stuks en daarbij waren ook wat kwaliteitsproblemen met het verchromen bijvoorbeeld. Voor de tweede run pakken we dat anders aan en gebruiken we zandstralen. Dat is het soort dingen dat we hiermee leren. Er komen er in ieder geval dus nog tweeduizend bij. Voor Hard Kernel was dit ook een leertraject; zij wilden wat meer te weten te komen over de iot-markt.”
En als de tweede run uitverkocht raakt, komt er dan een derde?
“We moeten even kijken hoe het met de kwaliteit van het product loopt. Tot nu zijn er vijfhonderd onderdelen afgekeurd en dat is heel veel. Het komt doordat verchromen een gevoelig proces is; elk klein haartje of luchtbubbeltje zie je al. Als we die kwaliteit kunnen verbeteren, dan wel. Er blijft vraag naar en Hard Kernel wil het blijven doen.”
Home Assistant heeft naast officiële integraties ook onofficiële integraties. Deze worden verspreid via de Home Assistant Community Store. Afgelopen januari bleek dat enkele van deze integraties en HACS zelf security vulnerabilities bevatten. Via een zogeheten directory traversal was het mogelijk om bij alle bestanden te komen waar de software toegang toe had, inclusief bestanden met daarin bijvoorbeeld logingegevens voor externe diensten.
Hoe zie jij de verantwoordelijkheden van Home Assistant als het aankomt op thirdpartyintegraties?
“In principe niets. Als je een custom integratie installeert, print Home Assistant bij het starten een waarschuwing waarin staat dat het je eigen verantwoordelijkheid is. Dat als er iets geks gebeurt, je eerst die integratie moet weghalen om te kijken of het probleem opgelost is voordat je een issue opent. En als je HACS installeert, moet je ook verschillende checkboxes aanvinken waarmee je aangeeft het risico te accepteren.”
“Aan de ene kant voel ik me niet verantwoordelijk, maar als zo’n securityincident voorkomt en ik weet dat wij de mogelijkheden hebben om in te grijpen... Het raakt wel onze gebruikers. Als een gebruiker vervolgens iets overkomt, dan staat er niet in de krant of op Tweakers: 'Deze custom integratie is lek', maar: ‘Mijn Home Assistant is gehackt'. Vandaar dat we het heel serieus hebben genomen.”
Wat hebben jullie gedaan om het lek te dichten?
“We hebben code toegevoegd die bij elke webrequest de URL scant op patronen van directory traversal, in feite twee puntjes achter elkaar, en blokkeert die dan gewoon. Het is een redelijk grove manier van blokkeren, maar hierdoor weten we zeker dat dit soort dingen niet meer kan gebeuren.”
Wat hebben jullie hiervan geleerd?
“Eigenlijk was het stom, want we wisten dat dit ooit een keer ging komen, maar we hadden er de infrastructuur niet voor. Met de maker van HACS, Joakim, die ook voor Nabu Casa werkt, had ik het al gehad over een blocklist, een bestand dat regelmatig gecheckt wordt. Als een integratie daarin is gemarkeerd, krijgt de gebruiker bericht dat hij de integratie moet verwijderen. Dat was het enige dat gebouwd was, maar al die andere functionaliteit hadden we nog niet. Dus we hebben de Android- en iOS-apps geüpdatet. Die checken nu of je versie te oud is en geven je een notificatie. De remote UI van Nabu Casa werkt nu niet meer als je een oude versie gebruikt, of je moet zelf een checkbox aanvinken waarmee ja aangeeft dat je weet dat het veilig is.”
“Uiteindelijk was Home Assistant gewoon veilig als je geen custom integraties gebruikte, maar of je dat doet, weten wij niet.”
“Als je kijkt naar de appstores van Google en Apple: die kunnen gewoon op afstand een bepaalde app van een telefoon verwijderen. Dat is functionaliteit die ik wel wil toevoegen. Opt-in natuurlijk, sommige mensen willen dat graag, anderen minder. Het grootste probleem daarbij is dat we de slechte code wel kunnen weghalen, maar je dan wel je Home Assistant opnieuw moet starten. Dus als jij een kritiek systeem aan Home Assistant hebt hangen, willen wij het niet zomaar voor je restarten. Dat kan gewoon echte impact hebben. Daar moeten we heel voorzichtig mee zijn.”
“We willen dit soort features bouwen; normale gebruikers vinden het fijn, sommige experts ook, maar we moeten er een balans in vinden. Uiteindelijk is het doel dat je met Home Assistant je huis kunt automatiseren zonder dat je een Linux-systeembeheerder bent die alle mailinglists in de gaten houdt.”
'Veel mensen zijn geschrokken van hoeveel macht er zit bij mensen in Silicon Valley'
Home Assistant kan samenwerken met Google of Amazon voor spraakbediening, maar dat brengt voor sommigen privacybezwaren met zich mee. Eind 2019 schreef je een blogpost over de opensourceassistant Almond en de voicefrontend Ada. Hoe staat het daarmee?
“Dat is niet van de grond gekomen zoals we hadden gehoopt. Ik denk dat dat de juiste samenvatting is. Almond is een project van een researchgroep van de Stanford Universiteit in Palo Alto. Een paar maanden geleden hebben ze een miljoen dollar opgehaald bij een fonds. Dat gaan ze onder andere inzetten door een programmeur aan te nemen die ook de Home Assistant-integratie gaat verbeteren. Ze willen zich gaan richten op de tien meestgebruikte scenario's en ervoor zorgen dat die echt goed werken.”
“Het probleem is dat dit onderzoekers zijn en onderzoekers moeten publiceren. Die zijn dus vooral bezig met nieuwe dingen maken en niet per se met bestaande functionaliteit robuuster maken, uitbreiden en toegankelijker maken. We hadden gehoopt dat meer mensen uit onze community zouden helpen met het verbeteren van Almond. Dat ligt ook een beetje aan ons; we hadden meer dingen moeten bouwen om die bijdragen te faciliteren. Als je dingen makkelijker maakt, dan gebeurt het uiteindelijk wel.”
Verwacht je dat er in de toekomst alternatieven voor Google Assistant of Amazon Alexa komen die hetzelfde niveau kunnen halen bij het aansturen van apparatuur?
“Ik ben daar niet heel optimistisch over. Er zijn echt heel veel resources voor nodig om dat goed werkend te krijgen. Ik denk wel dat veel mensen geschrokken zijn van hoeveel macht er zit bij mensen in Silicon Valley en bepaalde ceo’s, en ik hoop en verwacht dat er meer drive komt om alternatieven te bouwen. Er is nu veel te doen rondom hun macht bij sociale media, maar je wilt aan privacy gerelateerde zaken ook niet allemaal via deze bedrijven laten lopen. Ik hoop ook dat er vanuit de EU een bepaalde push komt om het bouwen van alternatieven te steunen.”
Zou dat een project voor Nabu Casa kunnen zijn?
“We hebben daar gewoon niet de expertise voor. Ik zou het wel willen draaien in onze cloud. Ik denk ook dat we uiteindelijk een persoon kunnen aannemen om daaraan te werken, maar je hebt daar eigenlijk een heel team voor nodig en dat is niet iets dat we zelf willen doen. Daarbij komt nog dat Google en Amazon super goedkoop speakers in ieders huis kunnen zetten; daar kun je moeilijk een opensourcealternatief tegenover zetten. Zeker als je daar ook nog maandelijks voor moet betalen, omdat de servers onderhouden moeten worden. Dat kun je bijna niet winnen.”
Een van de dingen waarmee Home Assistant zich profileert, is dat het samenwerkt met een grote hoeveelheid standaarden en andere platforms. Er bestaan Z-Wave, Zigbee, HomeKit en een heleboel apparaten via wifi. Hoe zie jij die ontwikkelingen verlopen? Gaat hier op termijn een winnaar uitkomen of zal het altijd een wirwar van standaarden blijven?
“Ik zie het eigenlijk wel consolideren. Vorig jaar is CHIP aangekondigd, Connected Home over IP. Dat is een standaard waarvan ik verwacht dat die wijde adoptie zal krijgen. Het gaat over IP/IPV6-adressen en volgt daarmee trends in andere sectoren, en ze hergebruiken de Zigbee-antenne. Daarbij gebruiken ze het Thread-meshnetwerk. Je zou een Zigbee-chip dus kunnen herprogrammeren voor CHIP in de toekomst.”
“Er zitten veel bedrijven achter die daar veel interesse in hebben en die hun technologie beschikbaar hebben gesteld om dat zonder licentie in CHIP te zetten. Bedrijven als Google, Amazon en Apple werken mee, maar ook IKEA, Signify en Xiaomi. Ik heb ook wat contacten bij Silicon Labs, het bedrijf achter Z-Wave. Dat doet ook mee en maakt naast alle Z-Wave-silicon ook tachtig procent van de Zigbee-chips.”
“Z-Wave en Zigbee hadden het probleem dat er geen opensource-implementatie was. Bedrijven moesten een licentie nemen óf alles zelf schrijven. Met CHIP is er een implementatie die je kunt draaien op bijvoorbeeld een ESP32- of Docker-container en ik verwacht dat iedereen gewoon die opensource-implementatie gaat gebruiken.”
/i/2004163358.png?f=imagenormal)
Zijn jullie, eventueel via Nabu Casa, betrokken bij de totstandkoming van deze standaarden of staan jullie aan de zijlijn?
“Met Silicon Labs hebben we nauw contact. Dat is nu ook actief betrokken bij onze Z-Wave-JS-integratie. Een aantal medewerkers geeft op persoonlijke titel, maar met goedkeuring van de baas, advies over hoe we dingen het best kunnen doen. Bij CHIP zijn we nog niet betrokken; dan moeten we eerst een paar duizend dollar betalen om lid te worden van de alliantie. Uiteindelijk denk ik dat we wel lid worden van zowel de Z-Wave- als de Zigbee-alliantie en CHIP valt onder die laatste.”
Welk deel van HA zou je het liefst vandaag aanpakken en verbeteren?
“De hele manier waarop je als gebruiker nu automatiseringen maakt in de GUI is te veel een een-op-eenvertaling geweest van hoe het in YAML moet. Dat werkt gewoon niet goed; die ervaring moet beter. Het doel is dat de eerste ervaring met Home Assistant meteen fantastisch is. Apparaten worden nu al meteen gevonden en je kunt ze dan besturen; dat is een goede ervaring. Dan komt automatiseren. De stap ervoor is polished en fantastisch, en dan doe je de volgende deur open en zie je… troep.”
“Verder is Home Assistant heel goed in de bouwstenen, maar minder goed in de vertaling. Als je bijvoorbeeld een luchtkwaliteitsmeter koopt, dan leest die niet alleen sensoren uit, maar interpreteert hij ze ook en trekt de conclusies voor jou. Dat wil ik bij Home Assistant wel toevoegen; we willen er meer microapps bovenop hebben. Als iemand bijvoorbeeld zonnepanelen en een p1-lezer heeft, willen wij een interface tonen met het stroomverbruik. Nu moeten mensen steeds dezelfde dingen uitzoeken en bouwen. Dat is gewoon stom; dat moet beter kunnen.”
'Het doel is dat de eerste ervaring met Home Assistant meteen fantastisch is'
Kan het opensourceproject Home Assistant tegenwoordig nog zonder Nabu Casa?
“Nee, ik denk het niet. Dat is omdat we gewoon te groot zijn en er te veel dingen gebeuren. Om maar even het securityincident van laatst te noemen: mensen moeten daar dan meteen naar kijken. We kunnen niet wachten tot een vrijwilliger van zijn werk de tijd krijgt om daar iets mee te doen. De software draait bij heel veel mensen thuis en dit soort dingen moeten dan meteen gefikst worden. Ook de releases zelf, daar gaat een heleboel tijd in zitten. Ik denk niet dat je dat nog zonder vaste mensen kunt doen, daar zijn we te groot voor.”
“De backlog stond onlangs op achthonderd bijdragen. Daar zijn we een paar dagen heel hard mee bezig geweest en we hebben er toen tweehonderd weten te verwerken. We hebben het over dat soort aantallen, hoewel we al zoveel mensen fulltime hebben werken. Veel vrijwilligers gaan niet door die bijdragen heen. Dat is niet leuk, dat zijn de klusjes voor de betaalde mensen. Nu kun je je afvragen of, als er geen fulltimers waren, meer mensen door die bijdragen zouden gaan, maar ik denk het niet.”
Waar ligt jouw focus in de ontwikkeling van HA voor het komende jaar. Wat moet er in 2021 gebeuren zodat jij begin 2022 kunt terugkijken op een geslaagd jaar?
“CHIP is er wel eentje, dat wil ik erin hebben komend jaar. Daarnaast meer doen met ESPHome. Veel mensen zijn bezig met het programmeren van ESP32- en ESP8266-microcontrollers. Ik wil het instellen, de provisioning makkelijker maken. Op dit moment wordt een wifiaccespoint gemaakt. Daar moet je op aanmelden en inloggen met je browser. Ik heb iemand aangenomen om een bluetooth-api te bouwen, zodat je op die manier de wifi kunt configureren. Zo moet het makkelijker worden om dit soort projecten in Home Assistant te hangen. Ik wil een goede ervaring bieden om do-it-yourselfprojecten in je huis te gebruiken.“
Voor veel tweakers is een smarthome ook een hobby, iets wat ze leuk vinden om er tijd in te steken. Is dat persoonlijk voor jou ook nog zo; ben je nog veel bezig met je huis?
“Wel bijvoorbeeld met die ESP-apparaatjes. Zo heb ik een NFC-scanner waarmee mijn zoon kinderliedjes aan kan zetten door een kaart te scannen. Verder heb ik een prototype van Blue draaien, Sonos, Google Home, een Chromecast en Zigbee-lampen van IKEA en Philips. Die eerste originele Philips-lampen zelfs.”
“Maar ik moet zeggen, vaak als ik Home Assistant aan het gebruiken ben, zie ik dingen die ik wil verbeteren en ga ik daar eigenlijk meteen mee aan de slag. Net zoals bij andere developers is het programmeren soms meer de hobby dan het huis automatiseren.”