Skip to main content

Python module to talk to ISY devices from UDI.

Project description

PyISY

Python library for the Universal Devices ISY-994, Polisy, and eisy controllers.

This library allows for easy interaction with ISY nodes, programs, variables, and the network module. It provides asynchronous communication and supports near real-time updates via WebSocket or SOAP event streams.

The full documentation is available at https://pyisy.readthedocs.io.

Features

  • Asynchronous communication via asyncio and aiohttp.
  • Support for ISY-994 (v4 and v5 firmware), Polisy, and eisy.
  • Automatic updates from the device via WebSocket or SOAP.
  • Interaction with nodes, groups, programs, variables, and networking modules.
  • Command-line interface for quick testing and monitoring.

Installation

pip install pyisy

Quick Start

You can test the connection to your ISY directly from the command line:

python3 -m pyisy http://your-isy-url:port username password

Basic Usage

import asyncio
from pyisy import ISY

async def main():
    # Connect to ISY controller
    isy = ISY("192.168.1.10", 80, "admin", "password")

    # Initialize the connection and download information
    await isy.initialize()

    # Get a node by its address
    node = isy.nodes["1A 2B 3C 1"]
    print(f"Node Name: {node.name}")
    print(f"Node Status: {node.status}")

    # Turn a node on
    await node.turn_on()

    # Shutdown the connection
    await isy.shutdown()

if __name__ == "__main__":
    asyncio.run(main())

Development

Contributions are welcome! This project uses pre-commit to ensure code quality.

Setup

# Clone the repository
git clone https://github.com/automicus/PyISY.git
cd PyISY

# Install development dependencies
pip install -r requirements.txt -r requirements-dev.txt
pip install -e .

# Install pre-commit hooks
pre-commit install

We use ruff for formatting and linting. You can run it manually:

ruff check .
ruff format .

A VSCode DevContainer is also provided for a consistent development environment.

Releases

Detailed change logs are available on the GitHub Releases page.

Credits

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

pyisy-3.5.1.tar.gz (80.9 kB view details)

Uploaded Source

Built Distribution

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

pyisy-3.5.1-py3-none-any.whl (73.0 kB view details)

Uploaded Python 3

File details

Details for the file pyisy-3.5.1.tar.gz.

File metadata

  • Download URL: pyisy-3.5.1.tar.gz
  • Upload date:
  • Size: 80.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyisy-3.5.1.tar.gz
Algorithm Hash digest
SHA256 70c5c39a0f8c3c96fbc5256976c62536f93c5c858812fd4e3e41b09e445a02d5
MD5 c33d40a4d7dda36f36ec69828537c66d
BLAKE2b-256 f80acd488e93ecd1eb9b1d8df3c85a3e7fe6410066b5490ec28cedbd8858011d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyisy-3.5.1.tar.gz:

Publisher: pythonpublish.yml on automicus/PyISY

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyisy-3.5.1-py3-none-any.whl.

File metadata

  • Download URL: pyisy-3.5.1-py3-none-any.whl
  • Upload date:
  • Size: 73.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyisy-3.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 75d6ee8a4d488c27dd39dd9a817d668767fda17a8b0a6dbc7894f72af0a4da73
MD5 2286fa9ad0cf1921392d5ee88e7c16f7
BLAKE2b-256 ca6e1fc7eb28f39233d27c6943ea2aa1b8d16735e1dda025dbd7f4f6c4676efb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyisy-3.5.1-py3-none-any.whl:

Publisher: pythonpublish.yml on automicus/PyISY

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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