homebridge-thermostat
v0.0.52
Published
thermostat plugin for homebridge: https://github.com/nfarina/homebridge
Downloads
119
Readme
homebridge-thermostat
Homebridge plugin to control a web-based thermostat
Installation
- Install homebridge
- Install this plugin:
npm install -g homebridge-thermostat
- Update your
config.json
file (See below).
Configuration example
"accessories": [
{
"accessory": "Thermostat",
"name": "Thermostat",
"apiroute": "http://myurl.com"
}
]
Structure
| Key | Description |
| --- | --- |
| accessory
| Must be Thermostat
|
| name
| Name to appear in the Home app |
| apiroute
| Root URL of your Thermostat device (excluding the rest of the requests) |
| temperatureDisplayUnits
(optional) | Whether you want °C (0
) or °F (1
) as your units (0
is default) |
| currentHumidity
(optional) | (true
or false
) Whether to include currentRelativeHumidity
as a field in /status
(false
is default) |
| targetHumidity
(optional) | (true
or false
) Whether to include targetRelativeHumidity
as a field in /status
and be able to set it via /targetRelativeHumidity
(false
is default) |
| heatOnly
(optional) | (true
or false
) Whether the thermostat only supports heating (true
) or heating and cooling (false
) (false
is default) |
| maxTemp
(optional) | Upper bound for the temperature selector in the Home app (30
is default) |
| minTemp
(optional) | Lower bound for the temperature selector in the Home app (15
is default) |
| timeout
(optional) | Time (in milliseconds) until the accessory will be marked as "Not Responding" if it is unreachable (5000
is default) |
| http_method
(optional) | The HTTP method used to communicate with the thermostat (GET
is default) |
| username
(optional) | Username if HTTP authentication is enabled |
| password
(optional) | Password if HTTP authentication is enabled |
| model
(optional) | Appears under "Model" for your accessory in the Home app |
| serial
(optional) | Appears under "Serial" for your accessory in the Home app |
| manufacturer
(optional) | Appears under "Manufacturer" for your accessory in the Home app |
API Interfacing
Your API should be able to:
- Return thermostat info when it recieves
/status
in the JSON format like below:
{
"targetHeatingCoolingState": INT_VALUE_0_TO_3,
"targetTemperature": FLOAT_VALUE,
"currentHeatingCoolingState": INT_VALUE_0_TO_2,
"currentTemperature": FLOAT_VALUE
}
Note: You can also add the currentRelativeHumidity
and targetRelativeHumidity
fields individually or together above if enabled in the config.json
(read Structure)
- Set
targetHeatingCoolingState
when it recieves:
/targetHeatingCoolingState/{INT_VALUE_0_TO_3}
- Set
targetTemperature
when it recieves:
/targetTemperature/{INT_VALUE}
- If enabled in
config.json
(read Structure), settargetRelativeHumidity
when it recieves:
/targetRelativeHumidity/{FLOAT_VALUE}
HeatingCoolingState Key
| Number | Name |
| --- | --- |
| 0
| Off |
| 1
| Heat |
| 2
| Cool |
| 3
| Auto |
Heatmiser Support
Folder 'heatmiser' contains a contributed example of the API. It supports Heatmiser wireless thermostats, as long as https://github.com/thoukydides/heatmiser-wifi is installed and working.