Async library to communicate with Heatmiser NeoHub 2 API.
Project description
NeoHubAPI
This is a simple python wrapper around Heatmiser's Neohub API. Up-to-date documentation for the API can be obtained from the Heatmiser Developer Portal. You will need to sign up for a free account.
The primary purpose of this module is to help with Home Assistant integration but it can also be used as a standalone library for other projects.
Connection methods
The API provides two connection methods. The so-called "legacy" method is by way of an unencrypted connection to port 4242 of the Neohub. The newer method uses an encrypted websocket on port 4243, but only works on a second generation hub (look for the sticker on the back).
To use the websocket connection, you need to obtain a token from the Heatmiser Neo app. Go to Settings > API > +
in the app and create one.
On newer hubs, the legacy connection may be disabled by default. If you want to use it, go to Settings > API
in the app, and enable it from there.
Usage example
import asyncio
import neohubapi.neohub as neohub
async def run():
# Legacy connection
hub = neohub.NeoHub()
# Or, for a websocket connection:
# hub = neohub.Neohub(port=4243, token='xxx-xxxxxxx')
system = await hub.get_system()
hub_data, devices = await hub.get_live_data()
for device in devices['thermostats']:
print(f"Temperature in zone {device.name}: {device.temperature}")
await device.identify()
asyncio.run(run())
neohub_cli.py
This package includes a CLI for performing common tasks.
$ neohub_cli.py help # Shows all commands
$ neohub_cli.py help set_time # Displays help for the set_time function
$ neohub_cli.py --hub_ip=myneohub set_time "2021-01-31 15:43:00" # Specify times like this
$ neohub_cli.py --hub_ip=myneohub set_lock 1234 "Living Room" # Name NeoStats like this.
$ neohub_cli.py --hub_ip=myneohub --hub_token=XXX get_system # Get system variables with websocket connection
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.