Homebridge plugin for Emerald Heat Pump Hot Water Systems.
Provides monitoring and basic control of the Emerald HWS through Apple HomeKit.
- Turn heating on or off
- View current tank temperature
- View target temperature (read-only)
- Turn Boost Mode on or off
- View water level (exposed as a humidity sensor)
- Report online/offline system status
- Uses the standard HomeKit Heater/Cooler service with additional accessories where appropriate
This plugin relies on the emerald_hws_py Python library, which requires Python to be installed on the system running Homebridge.
Update packages and install Python:
sudo apt update
sudo apt install -y python3 python3-pipConfirm installation:
python3 --version
pip3 --versionWhen Homebridge is installed using hb-service, Python must still be installed system-wide using the commands above.
The library will then be installed under the Homebridge user.
This library must be installed under the Homebridge service user on systems where Homebridge is run using a dedicated service user (commonly homebridge). It should not be installed as root.
Install:
sudo -u homebridge pip3 install emerald_hwsVerify:
sudo -u homebridge python3 -c "import emerald_hws"If no output or errors appear, the installation is correct.
Install the plugin:
sudo npm install -g homebridge-emerald-hwsAdd the following to your Homebridge config.json:
{
"platform": "EmeraldHWS",
"devices": [
{
"name": "Emerald HWS",
"username": "YOUR_EMERALD_EMAIL",
"password": "YOUR_EMERALD_PASSWORD",
"pollInterval": 60
}
]
}| Key | Description |
|---|---|
name |
Accessory display name in HomeKit |
username |
Emerald account email |
password |
Emerald account password |
pollInterval |
Data refresh interval in seconds (default and recommended: 60) |
This plugin communicates with the Emerald cloud API through the
emerald_hws_py Python library.
The plugin retrieves:
- Current tank temperature
- Target temperature (read-only)
- Water level
- Heating state
- Boost state
- Online/offline availability
It can also send commands to control heating and Boost Mode.
All data is exposed to HomeKit using standard HomeKit services.
If the system becomes unreachable, the accessory will report "No Response" until the next successful update.
Install under the Homebridge user:
sudo -u homebridge pip3 install emerald_hws_pyEdit the service file:
sudo nano /etc/systemd/system/homebridge.service
Add the following line:
Environment=PATH=/usr/bin:/usr/local/bin
Reload:
sudo systemctl daemon-reload
sudo systemctl restart homebridgeIncrease the polling interval:
"pollInterval": 60This plugin relies on the emerald_hws_py Python library created and maintained by
ross-w: https://github.com/ross-w/emerald_hws_py
Without this library, Homebridge integration for Emerald HWS would not be possible.
MIT License


