Skip to main content

ISY99 Controller Rest and Websocket client v5 firmware

Project description

ISY994v5

Class based interface to the ISY994 device with V5 firmware.

Provides a common interface to all devices, variables, programs, and scenes on an ISY controller.

After connecting to the ISY, the 4 types (device, scenes, programs, and variables) of items on the ISY are enumerated. The event handler generates 'add' events are items are discovered. Each item has properties that generate 'property' events as they are changed.

Currently supports Insteon dimmers, switches, keypadlincs, fanlincs, templinc and contact devices ZWave locks and switches ISY Scenes ISY Programs ISY Variables

All item/node types (device,scene,program,variable) are retrieved and updated via websockets. No polling.

Each device has a common base class so that the user does not need to aware of the technology (Insteon/zWave etc) to use that device

Designed to be easy to expand support to other ISY device types and technologies such as zWave.

Requires 5.xx firmware. Tested against 5.16. Requires chunk mode to be OFF

An event handler is supplied when the controller is started. All device events (add, remove, property) can be captured through the event handler for processing as needed.

This library is used in IYS994-Homie-Bridge, an MQTT Client to serve ISY devices to a MQTT broker using the Homie 3/4 protocol.

Example usage: The program below connects to the ISY and enumerates all items. If it finds a device with the address specified, it will flash that device on and off every 2 seconds

import time

from isy994.controller import Controller

url = '192.168.1.213'
#url = None # use autodiscovery

dimmer_address = '42 C8 99 1' # dimmer to flash on/off

dimmer = None

def isy_event_handler(container,item,event,*args):
    print ('Event {} from {}: {} {}'.format(event,container.container_type,item.name,*args))

    if container.container_type == 'Device' and event == 'add' and item.address == dimmer_address:
        global dimmer
        dimmer = item


try:
    c = Controller(url,username='admin',password='admin',use_https=False,event_handler=isy_event_handler)

    while True:
        if dimmer is not None:
            dimmer.set_level (0)

        time.sleep(2)

        if dimmer is not None:
            dimmer.set_level (100)


except KeyboardInterrupt:
    print("KeyboardInterrupt has been caught.")

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.

Source Distribution

ISY994v5-0.5.9.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ISY994v5-0.5.9-py3-none-any.whl (70.7 kB view details)

Uploaded Python 3

File details

Details for the file ISY994v5-0.5.9.tar.gz.

File metadata

  • Download URL: ISY994v5-0.5.9.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0

File hashes

Hashes for ISY994v5-0.5.9.tar.gz
Algorithm Hash digest
SHA256 884fc0b3497453d53a68a4eebc56645bf2a1a32781cf31a75e570e4f56ec30d7
MD5 ae7252fcc8018697ef1cbf20482bc78a
BLAKE2b-256 6e8c00793ba49fc688b2eba4ea08ae8bb842c9107f14affb57d5e58d684da85a

See more details on using hashes here.

File details

Details for the file ISY994v5-0.5.9-py3-none-any.whl.

File metadata

  • Download URL: ISY994v5-0.5.9-py3-none-any.whl
  • Upload date:
  • Size: 70.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0

File hashes

Hashes for ISY994v5-0.5.9-py3-none-any.whl
Algorithm Hash digest
SHA256 6f28f6db84c58c93f4e5e3afcef22c06026709c071adc2fa333035400d1c7f14
MD5 34bbf81be59e9075cf6fda873201f8a4
BLAKE2b-256 af34c071bd2f541ee6336772e08ee2324add4ee1d1925bf9347974b85458dcf5

See more details on using hashes here.

Supported by

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