homebridge-enjoyable-warmth
v0.1.9
Published
Homebridge plugin for Enjoyable Warmth infrared heaters using the local REST API.
Maintainers
Readme
homebridge-enjoyable-warmth
Homebridge plugin for Enjoyable Warmth IH-3200-DZ infrared heaters using the local REST API.
Author: P-Black
Version 0.1.9
Recommended Apple Home setup for a heater in the room Terrasse:
IR- main on/off switch using/v1/device/onand/v1/device/offIR Plus- one/v1/device/upcommandIR Minus- one/v1/device/downcommand
The plugin polls the real on/off state from /info, because firmware 1.0.2 redirects /v1/device to the configuration page. HomeKit read handlers return the last cached state immediately, while /info is refreshed in the background and by the polling timer. This avoids Homebridge slow-read warnings.
The HeaterCooler accessory is disabled by default because Apple Home did not show a useful regulator for this heater. It remains available as an optional experimental feature.
Features
- Local REST control, no cloud required for Homebridge operation.
- Main on/off accessory.
- Optional step buttons for power level up/down.
- Status polling from
/info. - Cached HomeKit read responses to avoid slow read warnings.
- Optional inverted state and inverted command handling.
- Optional experimental HeaterCooler accessory.
Installation from npm
sudo npm install -g homebridge-enjoyable-warmthFor the official Homebridge Raspberry Pi image, install through the Homebridge UI or use:
sudo /opt/homebridge/bin/node /opt/homebridge/bin/npm install --prefix /var/lib/homebridge homebridge-enjoyable-warmth
sudo hb-service restartVerify installation:
sudo /opt/homebridge/bin/node /opt/homebridge/bin/npm list --prefix /var/lib/homebridge --depth=0 | grep enjoyableExample config
{
"platform": "EnjoyableWarmth",
"name": "Enjoyable Warmth",
"_bridge": {
"username": "0E:C1:F3:45:E6:87",
"port": 34288,
"name": "Homebridge Enjoyable Warmth"
},
"devices": [
{
"name": "IR",
"host": "10.0.0.156",
"port": 80,
"model": "IH-3200-DZ",
"deviceId": "1247",
"firmwareVersion": "1.0.2",
"pollInterval": 30,
"requestTimeout": 5000,
"statusPath": "/info",
"lastErrorPath": "/v1/device/lastError",
"logStatusChanges": true,
"invertState": true,
"invertPowerCommands": true,
"exposeStepButtons": true,
"stepUpName": "Plus",
"stepDownName": "Minus",
"stepCommandCooldownMs": 900,
"exposeAsHeaterCooler": false,
"exposePowerLevel": false,
"enableExperimentalPowerLevel": false
}
]
}Local API used
PUT /v1/device/onPUT /v1/device/offPUT /v1/device/upPUT /v1/device/downGET /infoGET /v1/device/lastError
Notes
The tested IH-3200-DZ firmware does not provide the actual device state through /v1/device. The plugin therefore reads the ON/OFF state from the local /info page.
The device does not report the current power level locally. The stable HomeKit setup is therefore:
IRfor on/offIR Plusfor increasing the heater levelIR Minusfor decreasing the heater level
The actual on/off state is read from /info and cached for HomeKit read handlers.
