Gespreksverslag bezoek Nefit/Bosch
Onlangs ben ik door Nefit uitgenodigd om eens bij ze langs te komen in Deventer. Ze hadden mijn postings en projecten gezien en waren geïnteresseerd naar het hoe en waarom.
Vandaag ben ik langsgeweest, en bij deze een gespreksverslagje.
Om met het begin te beginnen: mijn gesprekspartners (senior manager software, product manager Nefit Easy en de techneut die gewerkt heeft aan de implementatie) waren vooral erg geïnteresseerd in wat ik/wij allemaal met onze Easy willen doen. Geen enkel negatief woord over dat het communicatieprotocol openbaar gemaakt is, enkel een paar waarschuwingen (daar kom ik zo nog op).
Nefit is de Easy, en ook de infrastructuur er omheen, aan het doorontwikkelen, en daarbij horen ze graag wat wij er allemaal mee doen, of mee wíllen doen.
Zelf komen ze op zeer korte termijn met
IFTTT ondersteuning, waarvan ik al een kleine demo heb gezien. In eerste instantie met twee triggers (
als de temperatuur in huis lager/hoger is dan...) en twee actions (
...stel de temperatuur in op... en een "overwerkmodus" om de temperatuur voor een bepaalde tijd op een bepaald niveau te houden, vooral handig voor kantoren waarbij de temperatuur op een vaste tijd automatisch lager gezet wordt). Uiteraard is het de bedoeling om de hoeveelheid triggers en actions in de toekomst uit te breiden.
Er lopen intern nog discussies over het meer open maken van het product, maar met het "open gooien" van het communicatieprotocol is dat wel wat meer actueel geworden.
Aan het openen van het product kleven wel wat haken en ogen, want het systeem is in eerste instantie ingericht op een infrastructuur waarbij de clients (de apps) en de Easy precies weten van elkaar wat ze verwachten qua data.
Ik kan door netwerk sniffen wel zien wat er over en weer gestuurd wordt, maar het is niet altijd even duidelijk wat de verschillende velden inhouden. Voor het lezen van data van de Easy zit daar geen risico aan, maar zodra je gaat schrijven loop je risico dat je iets schrijft dat de Easy niet verwacht, met als ultiem risico het bricken van je thermostaat. Die kans
is aanwezig.
Ik heb aangegeven dat ik denk dat een centraal gehoste (door Nefit zelf) HTTP-REST interface waarschijnlijk een goede optie zou zijn om problemen te voorkomen. HTTP-REST praat voor veel mensen makkelijker dan XMPP, en de HTTP server zou alle inkomende data kunnen valideren zodat de kans op bricken een stuk minder wordt. Daarnaast staat Nefit welwillend tegenover het openbaar maken van documentatie voor in ieder geval een deel van de endpoints. Daar gaan ze over nadenken.
Voor de doemdenkers is er ook een aantal positieve dingen te melden
Ten eerste: Nefit slaat écht geen data op. Ik heb uiteraard niet meegekeken op de servers, maar ik ben ervan overtuigd dat ze het gewoon niet doen. Ze gaven aan dat ze niet in de big data business zitten, en dat klopt natuurlijk ook.
De opzet met een centrale server is puur en alleen om de communicatie tussen een thuisnetwerk en het internet mogelijk te maken (iets waar in deze thread al over gespeculeerd is, en dat ik volledig kan begrijpen: je wilt niet dat je klanten poorten moeten gaan forwarden in hun router om de apps ook buitenshuis te kunnen gebruiken).
Overigens houdt dit ook in dat als je je Easy moet resetten omdat je er teveel mee hebt zitten kl*ten, je zaken als bv historisch gasgebruik kwijt bent, want dat wordt alleen in je Easy opgeslagen. Hou daar rekening mee (ga b.v. die data zelf loggen, dat doe ik ook).
Ten tweede: de Easy zelf heeft een HTTP-REST interface aan boord, die open gezet wordt zodra er geen verbinding met de Nefit backend gemaakt kan worden. Zo kunnen de apps binnen het thuisnetwerk altijd met de Easy communiceren, ook al is de internetverbinding weg. Die interface werkt via HTTP-REST en zou de
endpoints die ook over XMPP gebruikt worden moeten ondersteunen. Ik heb het nog niet getest, maar ga dat nog wel doen. De Easy gaat in dat geval op UDP poort 50505 zitten broadcasten zodat de apps z'n interne IP-nummer kunnen achterhalen.
Let wel: als je deze modus aanzet (je zou bv in je router verkeer naar de backend kunnen blokkeren zodat de Nefit altijd alleen lokaal werkt) dan werken bepaalde diensten, zoals het weersafhankelijk regelen van de binnentemperatuur, niet meer (tenzij je CV-ketel een eigen buitentemp sensor heeft, anders komt die data namelijk van het internet).
Omdat alle data in de Easy zelf zijn opgeslagen (want geen cloud, remember

) kun je dus zonder afhankelijkheid van Nefit of een internetverbinding het apparaat gewoon bedienen en uitlezen.
Verder nog:
- Op zeer korte termijn komen er app updates die sneller zouden moeten zijn dan de huidige. Het woord "irritatiegrens" kwam ter sprake, omdat het behoorlijk lang duurt (~10s) voordat je met de (in ieder geval iOS) app zoiets simpels als de temperatuur kunt instellen. Dat zou bij de nieuwe appupdates sneller moeten gaan.
- De hoeveelheid extra dataverkeer/-connecties door ons gefröbel komen niet boven het ruisniveau uit, zeker niet nu Nefit de Easy wereldwijd aan het uitrollen is. Dat betekent niet dat je dus maar elke seconde een nieuwe verbinding op moet gaan zetten, maar het is ook niet zo dat je je zorgen hoeft te maken dat je geblacklist wordt als je bv wat aan het testen bent.
- Over blacklisten gesproken: ze hebben technisch gezien de mogelijkheid, maar zetten het niet actief in. Zolang je je netjes gedraagt valt het dataverkeer van onze eigen clients waarschijnlijk niet eens op.
- Uiteraard leest Nefit zelf dit forum ook

Tot zover!