Den

Release v1.2.1.

den is a home for your home’s data.

Features

den is built on several APIs for home telemetry. The Nest Developer Program API. allows you to store data from your thermostat(s) for greater analysis and visualization than the Nest web application currently provides. It records thermostat data to InfluxDB where it can then be visualized with a dashboard tool like Grafana. The Tank Utility API allows you store propane tank data.

_images/dashboard.jpg

Requirements

den requires an InfluxDB version 1.0 or greater installation. The database name positional argument to den expects that the database exists in InfluxDB.

CLI Documentation

Den is a home for your home’s data.

usage: den [-h] [--version] [--port PORT] [--ssl]
           database {thermostat,weather,propane} ...
Positional arguments:
database Database name.
optional arguments
--version="==SUPPRESS==", -v="==SUPPRESS=="
 show program’s version number and exit
--port=8086 Database port.
--ssl=False Use HTTPS.
sub-commands
--version="==SUPPRESS==", -v="==SUPPRESS=="
 

show program’s version number and exit

--port=8086

Database port.

--ssl=False

Use HTTPS.

Possible choices: thermostat, weather, propane
Sub-commands:
thermostat

Record Nest thermostat data into the database. This function will attempt to recover from various network errors. It will run indefinitely until interrupted from the keyboard or an unexpected exception occurs.

usage: den thermostat [-h] [--access-token ACCESS_TOKEN]
optional arguments
--access-token=
 Nest API access token. Defaults to environment DEN_ACCESS_TOKEN value.
weather

Record weather data into the database. Powered by Dark Sky.

usage: den weather [-h] [--api-key API_KEY] [--lat LAT] [--lon LON]
optional arguments
--api-key= Weather API key. Defaults to environment DEN_WEATHER_API_KEY value.
--lat=39.952447
 Latitude. Defaults to environment DEN_LAT value.
--lon=-75.1635083
 Longitude. Defaults to environment DEN_LON value.
propane

Record propane data into the database.

usage: den propane [-h] [--username USERNAME] [--password PASSWORD]
optional arguments
--username Propane API username.
--password Propane API password.

API Documentation

Notebooks

The Jupyter (née IPython Notebook) project was used while developing den. The notebooks themselves are checked in to the GitHub repository and can be viewed there.

Authorization

How to generate the access token required by the Nest API.

API

How to use Nest’s REST Streaming API.

InfluxDB

How to build on the API notebook and persist thermostat data to InfluxDB.