All Projects → orangecoding → heatsheet

orangecoding / heatsheet

Licence: MIT license
HeatSheet -> The Tado Metrics "cheatsheet"

Programming Languages

javascript
184084 projects - #8 most used programming language
Handlebars
879 projects
CSS
56736 projects
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to heatsheet

ioBroker.tado
Tado cloud connector to control Tado devices
Stars: ✭ 25 (+8.7%)
Mutual labels:  thermostat, tado
Raspberry-Pi-Clock
A quick and simple Raspberry Pi touchscreen clock with Philips hue, Tado, Dark Sky and Philips TV JointSpace API controls/data
Stars: ✭ 23 (+0%)
Mutual labels:  tado, tado-api
SmartThings-VirtualThermostat-WithDTH
Virtual Thermostat Device with Device Type Hander to create a proper thermostat device (Works With Google Home and Alexa)
Stars: ✭ 33 (+43.48%)
Mutual labels:  thermostat
tado-exporter
A Prometheus exporter for tado smart heating solution
Stars: ✭ 32 (+39.13%)
Mutual labels:  tado
pywavethermo
Basic module to control the Worcester Wave thermostat from Python
Stars: ✭ 26 (+13.04%)
Mutual labels:  thermostat
home-assistant-bosch-custom-component
HA custom component for Bosch thermostats
Stars: ✭ 76 (+230.43%)
Mutual labels:  thermostat
homebridge-pi-thermostat
Homebridge Plugin to make Raspberry Pi into Thermostat
Stars: ✭ 33 (+43.48%)
Mutual labels:  thermostat
heat-examples
Heat examples tested against the SysEleven Stack infrastructure cloud.
Stars: ✭ 36 (+56.52%)
Mutual labels:  heat
thermos
ThermOS is a HomeKit compatible thermostat designed for multi-zone hydronic heating systems
Stars: ✭ 61 (+165.22%)
Mutual labels:  thermostat
esphome-panasonic-ac
Open source alternative for Panasonic air condition wifi adapters that works locally without the Comfort Cloud
Stars: ✭ 109 (+373.91%)
Mutual labels:  heat
chpc
CHPC: Cheap Heat Pump Controller
Stars: ✭ 27 (+17.39%)
Mutual labels:  thermostat
P1P2Serial
P1P2Serial library and P1P2Monitor program for low-level reading and writing Daikin/Rotex P1/P2 bus (based on Japanese Home Bus System), likely also for DIII-NET (F1/F2) bus, Mitsubishi M-Net bus, Toshiba TCC-Link, Hitachi H-link, Panasonic/Sanyo SIII-Net, Haier, York, ..
Stars: ✭ 91 (+295.65%)
Mutual labels:  thermostat
lovelace-climate-mode-entity-row
Climate mode entity for Lovelace
Stars: ✭ 49 (+113.04%)
Mutual labels:  thermostat
python-eq3bt
Python library and command-line tool for eQ-3 Smart Bluetooth thermostats
Stars: ✭ 107 (+365.22%)
Mutual labels:  thermostat
thermomat
Low cost smart home IOT heating with adapted eq3n and esp8266-07. Server, Webapp and ESP8266 code for autonomous thermostat controling over the internet.
Stars: ✭ 17 (-26.09%)
Mutual labels:  thermostat
PyTado
Python binding for Tado web API. Pythonize your central heating!
Stars: ✭ 50 (+117.39%)
Mutual labels:  tado
home-assistant-opentherm-thermostat
Home Assistant OpenTherm Thermostat
Stars: ✭ 26 (+13.04%)
Mutual labels:  thermostat
EMS-Wiki
Buderus Logamatic EMS and EMS+/EMS Plus bus Wiki for Bosch, Buderus, Nefit, Junkers, Worcester devices
Stars: ✭ 22 (-4.35%)
Mutual labels:  thermostat
W1209
W1209 data logging thermostat w/ STM8 eForth
Stars: ✭ 24 (+4.35%)
Mutual labels:  thermostat
homebridge-panasonic-air-conditioner
Panasonic Air Conditioner / Heat Pump plugin for HomeBridge using the Panasonic Comfort Cloud API to expose Panasonic Air Conditioners to Apples HomeKit
Stars: ✭ 32 (+39.13%)
Mutual labels:  heat

HeatSheet

An overview for your Tado data. Build Status

Tado thermostats are an easy and comfortable way to turn any heater into a smart-heater. We're using them throughout our apartment to not worry about heating.

However as good as the hardware is, the software (still) lacks the ability to export data and show them on a yearly basis (or showing bigger time-windows than just a single day).

HeatSheet is changing this. It uses (unofficial) Tado API's, to get the data out of your account and displays them either as a chart or table view. Depending on the chosen granularity, you can analyse your heating behaviour much better, therefor safe money and maybe.. just maybe save the 🌍 by adapting your heating behaviours.

Charts

Table

What do you need?

  • Tado thermostats (obviously)
  • NodeJS (min. v12.16)

Optional

  • An InfluxDb Account

Storage

There are 2 ways of storing data. Locally (will always be done) into a json file or into InfluxDB.
Lately I found it extremely convenient to store all my time-related data into influxdb, as with this, you can create dashboards without any coding and slice and dice data as you like. If you're serious with data analysis (and you might have some IOT stuff running), you should give it a try. I for myself have installed InfluxDb on my server, however you can create an account at InfluxCloud. It's free, however you have the limitation that data older than 30 days will be removed, thus it might make sense for you to install Influx somewhere and store data there. Give it a try ;)

One note on influxdb, as this is extremely powerful, I'm not storing daily data, but hourly data into the database. You can rollup to hours if you want using the db internal queries.

Example of Visualization using InfluxDB

Table

Influx Migration

If you want to import existing metrics into InfluxDB, you can do so by starting node influxMigration.js. Make sure you've setup your configuration file correctly.

How to use

  • Clone this repository
  • go to /config and rename the example config to config.json
  • add your Tado username and password (see configuration settings for more...)
  • install dependencies by running yarn or npm i
  • run HeatSheet by running yarn run start

Assuming your user and password is correct, HeatSheet will automagically detect it has never gotten any data, therefor it will run an initial migration. This might take a while, check the log output of Heatsheet.
When it's done, goto http://localhost:9999, and enjoy all of your data. The data is stored in a file called db.json and obviously never transported to me or anybody else.
Heatsheet will collect data on a daily basis, meaning shortly after midnight, it will collect the data for the previous day. If you've added a new thermostat, it will show up the day after automatically.

Configuration

The configuration file is located under ./config.

{  
	//these are the credentials you're using to log into the tado system
	"tado": { 
		//this is the username you're using to log into the tado app
		"tadoUser": "*your tado username*", 
		//this is the password you're using to log into the tado app		
		"tadoPassword": "*your tado password*" 
	}, 
	//these are the credentials you're using to log into the heatsheet ui
	"ui": { 
		//this is the username you're using to log into the ui
		"user": "admin",  
		//this is the password you're using to log into the ui		
		"password": "admin", 
		//this is the port, heatsheet's ui is reachable from your browser
		"apiPort": "9999",  
		//set this to false if you don't want to secure the ui. (ONLY DO THIS LOCALLY)		
		"loginNeeded": true
	},
	"storage": {
	    //if this is set to false, heatsheet will not fetch/record any data from Tado
        "dataRecording": true,
        //this is the configugration for influxdb. if set to fales, data is only storted locally
        "influxdb": {
          "enabled": false,
          "url": "https://someUrl.com:somePort",
          "token": "someToken",
          "org": "someOrganization",
          "bucket": "someBucket"
        }
    }
}  

Security

Make sure to change the ui user and password within your config.json! You might also want to change the port...

Contribution

You've decided to contribute? Awesome! Please make sure to run the tests and the formatter before sending a pr. (Best is to use husky's pre-commit. Due to a weird husky issue, the pre-commit is only installed when you run yarn --force...

Docker

The following section is a contribution by https://github.com/throbbingcat. Thank you! ❤️

Installation

  1. Clone this project
  2. cp env to .env
  3. Edit .env to fit your needs
  4. If you don't want to use InfluxDB comment out the service in docker-compose.ymland set INFLUXDB_ENABLED=false
  5. docker-compose build
  6. docker-compose pull
  7. docker-compose up -d

If you need to change the HeatSheet settings in .env or docker-compose.yml you first have to remove the config.json from volumes/app or you have to edit this file directly. Same with influxDB configuration.

Upgrade from local installation

Stop containers and copy db.json to volumes/app/config/ and restart

Use InfluxDB at a later stage

If you did not use InfluxDB at the start but you want to use it at a later stage after db.json already has data, follow this guide:

  1. create the config in .env (i.e. set INFLUXDB_ENABLED=true and generate the other settings)
  2. rm volumes/app/config/config.json or change the settings there
  3. probably best also to remove volumes/influxdb
  4. docker-compose up -d
  5. docker-compose exec app node influxMigration.js
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].