Ronald Wijnsema, op Tweakers actief als wijnsema, wilde een overzichtelijk en eenvoudig bedieningspaneel voor zijn smarthomesysteem, maar ontdekte dat geen systeem aansloot op zijn wensen. Dus ging hij aan de slag met een project dat hij inmiddels de Button+ noemt.
De Button+ is een modulair bedieningspaneel dat in principe aangesloten kan worden op ieder smarthomesysteem. Het geheel bestaat uit een basisplaat, modulaire knoppen met ingebouwde schermen en een groter display. De knoppen maken een 'ouderwets' klikgeluid en zijn allemaal voorzien van een klein tft-lcd. Zoals met veel technische oplossingen is het eindresultaat wellicht simpel, maar de weg daarnaartoe is dat volgens Wijnsema niet.
Het idee ontstond zo'n tien jaar geleden; Wijnsema bouwde in 2011 een huis en rustte het volledig met smarthometoepassingen uit. Dat zou via het open KNX-protocol moeten gebeuren, wat volgens hem een stabiele, maar dure standaard voor smarthomeautomatisering is. "Ik vroeg een offerte aan voor de installatie van een KNX-netwerk; het zou me 25.000 euro kosten. Dat kan goedkoper, dacht ik toen."
Hij besloot het protocol te gebruiken, maar alles zelf in te richten. Wijnsema laat via een videobelverbinding zijn meterkast zien, met daarnaast een samenstelling van talloze smarthomemodules. De aansturing hiervan kan via bestaande services van bijvoorbeeld Homey of Home Assistant. Maar hoe zit dat met de fysieke interface? Daarvoor gebruikte hij oorspronkelijk verschillende bedieningspanelen.
Wijnsema laat een paneel zien, een wit schermloos kastje met tien knoppen. "Ik woon hier al tien jaar en nog steeds druk ik regelmatig op het verkeerde knopje. Voor mij mist er informatie op de knoppen. De bediening zou eventueel ook via een app kunnen. Maar wat nou als de schoonmaakster of de oppas de zonwering wil bijstellen, moet diegene dan ook de app installeren? Of moet ik dan een wachtwoord delen?"
Dus besloot hij een bedieningspaneel te ontwikkelen, een project dat hij later Button+ zou noemen. Daarvoor was de Berker B.IQ een inspiratiebron, een bedieningspaneel met één centraal en relatief klein scherm.
Protocol uitkiezen: MQTT
Maar voordat de hardware ingericht kon worden, moest eerst het juiste communicatieprotocol uitgezocht worden. "Ik heb lang moeten wikken en wegen voordat ik koos voor MQTT. Dat is een heel 'licht' en behoorlijk oud iot-communicatieprotocol dat gebaseerd is op het publish-subscribemodel." Dit model draait om het verzenden van berichten naar een centrale hub, niet exclusief naar specifieke ontvangers. De verzender labelt als het ware de informatie en individuele ontvangers krijgen alleen berichten die een vooraf bepaald label hebben.
:strip_exif()/i/2005992174.jpeg?f=thumblarge)
Hij gaat verder: "Via MQTT worden hele kleine 'telegrammen' van verschillende modules of sensors naar een zogenoemde MQTT-broker gestuurd. Deze pakketjes krijgen een categorie toegeschreven, in MQTT een topic genoemd, bijvoorbeeld 'temperatuur' of 'accupercentage', en de broker geeft de informatie dan weer door naar geïnteresseerde modules die geabonneerd zijn op de desbetreffende topics."
MQTT is een asynchroon connectieprotocol en dat is volgens Wijnsema belangrijk. Een sensor of systeem kan op ieder moment iets versturen en dus moeten ontvangende modules op ieder moment beschikbaar zijn om pakketjes met informatie te verwerken. Een van de nadelen van het protocol, zo benadrukt hij, is dat de gebruiker hiermee moet leren omgaan. En voor hem was het ook nog eens extra werk om MQTT te vertalen naar het KNX-protocol; de twee protocollen kunnen namelijk niet rechtstreeks met elkaar communiceren.
De microcontroller en programmeertaal
Voor de connectie met een lokaal netwerk kreeg de Button+ een ESP32-microcontroller. Het apparaatje kost enkele euro's. "Het nadeel van de ESP32 is dat hij niet betrouwbaar op accu werkt en dat er het beste netstroom voor gebruikt kan worden; er is een spanning van 3,3V nodig . De soc moet namelijk altijd online zijn omdat je nooit weet wanneer pakketjes binnenkomen."
Op de vraag of een Raspberry Pi ook een kandidaat was, reageert Wijnsema resoluut: "Het probleem met Pi's is dat ze een complete Linux-kernel draaien en het duurt even voordat ze geboot zijn. En met de inconsistente intervallen waarmee pakketjes binnenkomen is dat niet goed genoeg. Overigens werken bepaalde brokers en servers van mijn smarthomesysteem wel op Pi's."
Naast alle hardware vereist een dergelijke gadget natuurlijk ook software. Daarvoor gebruikte Wijnsema uiteenlopende programmeertalen. "De firmware van de Button+ is geprogrammeerd in C++. Een van de grotere uitdagingen was overigens het bijspijkeren van mijn C-kennis. Die programmeertaal is nodig om een zo licht mogelijke software te kunnen schrijven."
Grote kopzorgen
Al deze losse componenten en disciplines moeten uiteindelijk tot een uniform product leiden. Wijnsema deelt enkele van de grootste obstakels en meevallers in het proces van het samenbrengen van onderdelen. "De firmware ontwikkelen zorgde verreweg voor de meeste kopzorgen. Dan schakelde een onderdeel niet en dan was ik letterlijk weken bezig met debuggen. En het paneel liep om de een of andere reden om de paar dagen vast. Dat probleem heeft me een half jaar achtervolgd. Steeds als ik dacht dat ik het had opgelost, kwam het weer terug. Ik heb er nog nare dromen van."
Wat volgens hem daarentegen enorm meeviel was de ontwikkeling van de daadwerkelijke hardware die voor de Button+ nodig is. "Je kunt gemakkelijk met gratis tools printplaatjes ontwerpen en deze in China laten fabriceren; dat kost enkele honderden euro's inclusief hardwarekosten. Ik heb grofweg tien iteraties van het huidige pcb doorgemaakt en heb zelden een printplaat met ingebakken fouten gekregen." Hij zegt veel soldeerwerk te hebben gedaan, in eerste instantie gewoon in een pannetje met zand, later in een geavanceerdere oven.
Knutselen is goedkoop, productontwikkeling niet
Wijnsema heeft na al die stappen uiteindelijk een werkend prototype weten te ontwikkelen. Zijn plan is om het product binnenkort in een grotere oplage te produceren en dat commercieel te verkopen. "Het aan elkaar solderen van een paar modules kost een paar tientjes", zegt Wijnsema. "Spelen met tech is goedkoop en toegankelijk, maar daadwerkelijk een product ontwikkelen kost al snel tienduizenden euro's."
De grootste kostenpost was volgens hem de vormgeving, waarvoor hij een commercieel ontwerpbureau inschakelde. Ook moet hij veel betalen om matrijzen te maken om het apparaat op grote schaal te produceren. Hij wil de Button+ in het vierde kwartaal van dit jaar gaan uitbrengen.