Skip to main content

tis-smartbus

Async Python client for the TIS Control SmartBus, talking to a TIS IP gateway (IP-COM-PORT / GTY) over UDP on the local network. No cloud, no dependencies.

It powers the TIS Control integration for Home Assistant.

Install

pip install tis-smartbus

Use

import asyncio
from tis_smartbus import TISGateway, CurtainAction, PanelType

async def main():
    gw = TISGateway("192.168.1.50")          # the IP gateway on your LAN
    await gw.connect()

    for module in await gw.discover():        # read-only: every module identifies itself
        print(module.subnet, module.device, module.device_type.model, module.name)

    print(await gw.read_channels(1, 5))       # [100, 0, 40, ...] — levels in %
    gw.set_channel(1, 5, 2, 75, ramp_seconds=2)
    gw.run_scene(1, 8, area=1, number=3)
    gw.curtain(1, 6, 1, CurtainAction.OPEN)
    gw.panel(1, 10, PanelType.COOL_SETPOINT, 23)

    gw.add_listener(lambda tel: print(hex(tel.opcode), tel.source, tel.content.hex()))
    await asyncio.sleep(30)                    # watch the bus
    await gw.close()

asyncio.run(main())

What it covers

Opcode
Discovery (device type + address, module name) 0x0004 / 0x000E
Single channel (lights, relays), with fade 0x0031 → 0x0032
Channel status 0x0033 → 0x0034
Scenes 0x0002
Curtains 0xE3E0
AC / floor heating panel control 0xE3D8 → 0xE3D9
Universal switch 0xE01C → 0xE01D

The wire format (datagram header, telegram layout, CRC-16/XMODEM) is documented in protocol.py. The device-type table maps 250+ TIS module codes to their model names.

Notes

  • The gateway broadcasts replies to UDP port 6000, so TISGateway listens on 6000 by default. Only one program per machine should do that; pass bind_port=0 for a send-only test.
  • Commands are fire-and-forget UDP; state comes back as telegrams on the bus.

Development

PYTHONPATH=src python -m unittest discover -s tests -v

License

Apache-2.0 © TIS Control

Metadata

Release files for tis-smartbus 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tis-smartbus 0.1.1
File Size Uploaded
tis_smartbus-0.1.1.tar.gz 20.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tis-smartbus 0.1.1
File Interpreter ABI Platform
tis_smartbus-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 38.4 kB

Release files / tis_smartbus-0.1.1.tar.gz

Download URL tis_smartbus-0.1.1.tar.gz
Size 20.0 kB
Tags Source
SHA-256 checksum
How to use checksums
44e48f0c98ebbc026dea7fa17ce73de9017715ca30369202e270ee1ed4cb0b3b
BLAKE2b-256 checksum
How to use checksums
a0648cb33ed2b5fcc5cc9b13ad8d7518e5b2bb8f2efb7a6a54ef66de1c277ac8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / tis_smartbus-0.1.1-py3-none-any.whl

Download URL tis_smartbus-0.1.1-py3-none-any.whl
Size 18.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9992a16407fd77efdd10d2a72c70b61372ce5ae99f7e0ba6f75c1d7d9f0a37a2
BLAKE2b-256 checksum
How to use checksums
d67c91aceacd631977d2ebd9ec7684d511a475258c84a714f7300ea461122049
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.3

2 release files

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page