homebridge-http-therm-temp
v2.0.5
Published
HTTP Thermostat plugin which uses external HTTP temperature sensor.
Readme
Homebridge HTTP Temperature Thermostat
A Homebridge plugin that creates a thermostat accessory using an external HTTP temperature sensor.
Features
- Control your thermostat through HomeKit
- Fetch temperature data from an external HTTP endpoint
- Support for JSON responses with configurable JSON path
- Separate URLs for turning thermostat on/off
- Optional status URL to check thermostat state
Installation
Install the plugin using npm:
npm install -g homebridge-http-therm-tempConfiguration
Add the platform to your Homebridge config.json:
{
"platforms": [
{
"platform": "HttpThermostatTemperature",
"name": "Thermostat",
"temperatureUrl": "http://192.168.0.111/temperature",
"temperatureJsonPath": "temperature",
"thermostatOnUrl": "http://192.168.0.222/on",
"thermostatOffUrl": "http://192.168.0.222/off",
"thermostatStatusUrl": "http://192.168.0.222/status"
}
]
}Configuration Options
| Option | Required | Description | Default |
|--------|----------|-------------|---------|
| name | No | Name of the thermostat accessory | "Thermostat" |
| temperatureUrl | Yes | URL to fetch current temperature | "http://192.168.0.111/temperature" |
| temperatureJsonPath | Yes | JSON path to extract temperature value | "temperature" |
| thermostatOnUrl | Yes | URL to turn thermostat on | "http://192.168.0.222/on" |
| thermostatOffUrl | Yes | URL to turn thermostat off | "http://192.168.0.222/off" |
| thermostatStatusUrl | No | URL to check thermostat status | "http://192.168.0.222/status" |
Temperature Endpoint
The temperature endpoint should return a JSON response. For example:
{
"temperature": 22.5
}If your response has a nested structure, adjust the temperatureJsonPath accordingly:
{
"sensor": {
"temperature": 22.5
}
}Use temperatureJsonPath: "sensor.temperature"
Development
Clone the repository and install dependencies:
git clone https://github.com/Stichoza/homebridge-http-therm-temp.git
cd homebridge-http-therm-temp
npm installBuild the plugin:
npm run buildWatch for changes during development:
npm run watchLicense
MIT © Levan Velijanashvili
Issues
Report issues at GitHub Issues
