This repository contains a simple API which queries the Drayton Wiser Heating sysystem used in the UK.
The API functionality provides the following functionality
- Ability to query all rooms
- Ability to query all thermostats and room stats
- Ability to set temperature of room and TRV thermostats
- Ability to query various data about the system (like heating status)
- Ability to query and set and copy schedules
- Ability to query and set smartplugs (modes and states)
The project is closely associated with the Wiser HomeAssitant component availabe here https://github.com/asantaga/wiserHomeAssistantPlatform
Reference https://it.knightnet.org.uk/kb/nr-qa/drayton-wiser-heating-control/#controlling-the-system
-
Press the setup button on your HeatHub, the light will start flashing Look for the Wi-Fi network (SSID) called ‘WiserHeatXXX’ where XXX is random
-
Connect to the network from a Windows/Linux/Mac machine
-
Execute the secret url :-)
- For Windows use
Invoke-RestMethod -Method Get -UseBasicParsing -Uri http://192.168.8.1/secret/
- For Linux (or Windows WSL) use
curl http://192.168.8.1/secret
This will return a string which is your system secret, store this somewhere. If you are running the test script simply put this value , with the ip address of the hub, in your wiserkeys.params
- For Windows use
-
Press the setup button on the HeatHub again and it will go back to normal operations
-
Copy the secret and save it somewhere.
Using your router, or something else, identify the IP address of your HeatHub, it usually identifies itself as the same ID as the WiserHeatXXXXXX
Create a file called wiserkeys.params and place two lines, one with the wiser IP and the other with the key it self. e.g.
wiserkey=ABCDCDCDCCCDCDC
wiserhubip=192.168.0.22
To help understand the api simply look at the sample code wiserapitest.py
and the fully commented code.
Documentation available in docs directory and within comments in the code
Additionally @steversig has also created a repository with some nice examples which be of use, see https://github.com/steversig/wiserheatingapi-examples
Changelog
1.0.2.1
- Added ability to turn trvs off and then back on by using setRoomMode
- Fixed bug in setRoomTemperature that wasnt checking the ranges properly
1.0.2.2
- Changed temperature variables to be the real variable, and internally *10
1.0.3
1.0.4
- Merged asantaga#9 : Schedule export/import
1.0.5.2
- Added support for smartplugs, both mode and state
1.0.6
- Added support for network data 1.0.7
- Merged pull17, Enhancement to detect invalid JSON from the hub, thanks @TobyLL! fixed bug in getSmartplug state not working correctly 1.0.8
- Merged [pull20(asantaga#20 ) Fix for TRVs not keeping off setting 1.0.9
- Ability to get,set and copy schedules for all devices
1.0.10
- Added PR#23: Added setRoomScheduleAvance and other APIs from @stevesig (thank you!)