A Home Assistant Add-on that provides self-hosted Nest thermostat control via the NoLongerEvil API. Control your Nest thermostats locally without relying on external cloud services.
-
Click the button below to add this repository to your Home Assistant instance:
-
Find NoLongerEvil HomeAssistant in the Add-on store and click Install
-
Configure the Add-on (see Configuration below)
-
Start the Add-on
-
Select "Watchdog" to restart the server if it crashes
-
(Optional) Select "Add to sidebar" for ease of use during thermostat configuration
-
Navigate to Settings > Add-ons > Add-on Store
-
Click the menu icon (three dots) in the top right and select Repositories
-
Add this repository URL:
https://github.com/codykociemba/NoLongerEvil-HomeAssistant -
Click Add and close the dialog
-
Find NoLongerEvil HomeAssistant in the store and click Install
- Home Assistant OS (not Home Assistant Container) - Learn more
- Mosquitto broker add-on - Required for MQTT integration
After installing the add-on, configure it on the "Configuration" tab via the Home Assistant UI:
| Option | Required | Default | Description |
|---|---|---|---|
api_origin |
Yes | http://<homeassistant_IP>:9543 |
Full URL where Nest devices reach this add-on (protocol + host + port) |
entry_key_ttl_seconds |
No | 3600 |
How long entry keys remain valid (seconds) |
debug_logging |
No | false |
Enable verbose logging for troubleshooting |
mqtt_host |
No | (auto-detected) | MQTT broker hostname (leave empty to use Mosquitto add-on) |
mqtt_port |
No | 1883 |
MQTT broker port |
mqtt_user |
No | (empty*) | MQTT username for authentication |
mqtt_password |
No | (empty*) | MQTT password for authentication |
- Fields can be empty under HAOS. Enter your credentials if you're using an external MQTT broker.
api_origin: "http://192.168.1.100:9543"
entry_key_ttl_seconds: 3600
debug_logging: false| Port | Purpose | Access |
|---|---|---|
| 9543 (host) → 8000 (container) | Nest device communication | External (configurable) |
| 8081 | Control API | Internal only |
| 8082 | Web UI | Ingress only |
If the firmware flashing process (https://docs.nolongerevil.com/hosted/overview) did not ask how you want to connect the device, you'll need to configure the thermostat for self-hosting. (Choice of hosted or self-hosted feature during flashing is pending.)
- ssh to your thermostat
ssh root@<nest_ip> - Password is
nolongerevil - Use vi to edit the config file
vi /etc/nestlabs/client.config - Press "i" to edit
- Find
<a key="cloudregisterurl" value="https://backdoor.nolongerevil.com/"/>and update toDO NOT OMIT /entry FROM THE URL<a key="cloudregisterurl" value="http://<homeassistant_IP>:9543/entry"/> - Press escape to exit vi edit mode, then
:wqto write the file and quit the vi editor - Enter
rebootto reboot your device. - Once rebooted, on the thermostat, go to Settings (gear icon) -> Nest App -> Get Entry Key to generate an entry key for device pairing.
- Go to Home Assistant > Settings > Add Ons > NoLongerEvil HomeAssistant > Configuration
- In the Home Assistant NLE Web UI, enter the 7-character pairing code from your Nest thermostat and click Register
- Devices will appear in Home Assistant via MQTT discovery
- NoLongerEvil Discord - Join
#nle-home-assistantchannel - GitHub Issues - Bug reports and feature requests
- NoLongerEvil Thermostat - Core API server
- Home Assistant Nest Integration - Alternative integration
See the CONTRIBUTING guide for development setup instructions.
This project is licensed under the MIT License - see the LICENSE file for details.