Sinds een jaar maken wij in huis gebruik van de Nest slimme thermostaat. De Nest regelt zichzelf in door te leren en weet dan wanneer we thuis zijn, komen of weggaan. I.v.m. persoonlijke redenen maken wij van die optie geen gebruik maar hebben we vaste tijden ingesteld. Het grootste voordeel tegenover ‘analoge’ thermostaten is dat we nu op afstand de verwarming kunnen bedienen. Wel zo handig als je na 30km opeens denkt: “De verwarming staat nog op 21 graden te loeien”.

Toon of Nest?
NEST uitlezenToen we nadachten over een slimme thermostaat kwam ook de Toon in beeld. Het voordeel van Toon is dat je naast een slimme thermostaat ook gelijk inzicht hebt op gas- en stroomverbruik en je dit tot jaren terug kunt inkijken. Bij de Nest kun je eigenlijk helemaal niets terug zien. Waarom hebben we dan toch voor Nest gekozen? Enkel de uitstraling. Een touchscreen aan de muur vinden wij niet mooi. De Nest, zo vinden wij, is een stuk mooier, past bij de inrichting en is eenvoudig en snel in de bediening.

De API van Nest
Toch vond ik het jammer dat er geen historie bijgehouden wordt. Als IT’er dacht ik al snel: “Het hangt aan het internet dus is het uit te lezen”. Zodoende ging ik op zoek en kwam op GitHub een Python-applicatie tegen dat praat met de API van Nest (https://github.com/jkoelker/python-nest). Met dit programma is het mogelijk om zowel de huidige waarden zoals ingestelde temperatuur, actuele temperatuur en luchtvochtigheid op te vragen en zelfs om bijv. de ingestelde temperatuur aan te passen.

Het idee
Thuis hebben we een servertje draaien met CentOS 7. Het idee is om daarop de Nest applicatie te installeren en een script te schrijven dat ieder kwartier Nest uitleest (huidige temperatuur, luchtvochtigheid en de ingestelde temperatuur) en deze wegschrijft naar bestanden. Die bestanden worden dan uitgelezen door Zabbix. Zabbix is overigens een stukje open-source software waarmee je routers, servers, etc kunt monitoren maar ook de waarden van een bestand kunt laten uitlezen en weergeven in een grafiek (zie onder).

NEST uitlezenNEST uitlezen

 

 

 

NEST uitlezen

Nest Script
Het Nest-script dat ik schreef was erg eenvoudig. Hieronder staat het script uitgeschreven en werd iedere kwartier d.m.v. een cronjob ingesteld. Voel je vrij om dit over te nemen als dit volstaat.

#!/bin/bash

# Get actual temperature and write it to a file.
nest -u GEBRUIKERSNAAM -p WACHTWOORD -c temp > /var/NEST/huidigtemp

# Get actual humidity and write it to a file.
nest -u GEBRUIKERSNAAM -p WACHTWOORD -c humid > /var/NEST/huidigvocht

# Get actual target temperature and write it to a file.
nest -u GEBRUIKERSNAAM -p WACHTWOORD -c target > /var/NEST/targettemp

Voorbeeld van de output
NESTRetriever v2.0
Naarmate ik dit scriptje gebruikte kreeg ik de vraag van mensen of zij dit mochten gebruiken. Dat is geen probleem maar dan wilde ik het wel iets mooier maken met bijvoorbeeld ingebouwde logging en meer configuratiemogelijkheden. Dat resulteerde dan ook in een applicatie met de leuke naam NESTRetriever. 

Downloaden
Mocht je nu ook een Nest hebben en historie willen bijhouden dan kun je het programma downloaden. Klik op de onderstaande link om de NESTRetriever te downloaden. Mocht je vragen en/of opmerkingen hebben dan verneem ik het graag even.

Download NESTRetriever v2.0  –  MD5 Checksum: 6fca1fc00b23dec797d861cb3a235644
Download Python-NEST  –  (Doorverwijzing naar GitHub)