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. 1 year ago
LICENSES Add minimal 2 years ago
neohubapi Lint and fix some subtle bugs 1 year ago
scripts Expand our own enums. 2 years ago
tests Add retries, close connection on timeout (fix #6) 2 years ago
.gitignore Add dependency on async_property. 2 years ago
.gitlab-ci.yml Add a few tests for NeoHub._send 2 years ago Resolve "Add README for CLI" 2 years ago Initial support for timeclocks. 2 years ago Bump version to 0.8. 1 year 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.