Async library to communicate with Heatmiser NeoHub 2 API
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Andrius Štikonas d811131f8a Bump version to 0.8. 4 months ago
LICENSES Add minimal 10 months ago
neohubapi Lint and fix some subtle bugs 4 months ago
scripts Expand our own enums. 9 months ago
tests Add retries, close connection on timeout (fix #6) 9 months ago
.gitignore Add dependency on async_property. 10 months ago
.gitlab-ci.yml Add a few tests for NeoHub._send 9 months ago Resolve "Add README for CLI" 9 months ago Initial support for timeclocks. 10 months ago Bump version to 0.8. 4 months ago


This is a simple python wrapper around Heatmiser's Neohub API.

It's primary purpose is to be used via Home Assistant integration but it can also be used as a standalone library.

Usage example

import asyncio
import neohubapi.neohub as neohub

async def run():
    hub = neohub.NeoHub()
    system = await hub.get_system()
    hub_data, devices = await hub.get_live_data()
    for device in devices['thermostats']:
        print(f"Temperature in zone {}: {device.temperature}")
        await device.identify()

NeoHub API documentation

API documentation can be found from various places online or you can request the latest version from

This package includes a CLI for performing common tasks.

$ help  # Shows all commands
$ help set_time  # Displays help for the set_time function
$ --hub_ip=myneohub set_time "2021-01-31 15:43:00"  # Specify times like this
$ --hub_ip=myneohub set_lock 1234 "Living Room"  # Name NeoStats like this.