Skip to main content

Async library to communicate with Heatmiser NeoHub 2 API.

Project description


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.temperature}")
        await device.identify()

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.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neohubapi-1.1.tar.gz (25.8 kB view hashes)

Uploaded source

Built Distribution

neohubapi-1.1-py3-none-any.whl (14.3 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page