Skip to main content

TA-CMI

A Python wrapper to read out sensors from Technische Alternative using the C.M.I.

How to use package

Json API

import asyncio

from ta_cmi import CMI, Languages, ApiError, RateLimitError, InvalidCredentialsError, InvalidDeviceError, ChannelType


async def main():
    try:
        cmi = CMI("http://192.168.1.101", "admin", "admin")

        devices = await cmi.get_devices()

        device = devices[0]

        # Set type automatically
        await device.fetch_type()

        # Set type manually
        device.set_device_type("UVR16x2")

        await device.update()

        print(str(device))

        inputChannels = device.get_channels(ChannelType.INPUT)
        outputChannels = device.get_channels(ChannelType.OUTPUT)
        analogLogging = device.get_channels(ChannelType.ANALOG_LOGGING)

        for i in inputChannels:
            ch = inputChannels.get(i)
            print(str(ch))

        for o in outputChannels:
            ch = outputChannels.get(o)
            print(f"{str(ch)} - {ch.get_unit(Languages.DE)}")

        for al in analogLogging:
            ch = analogLogging.get(al)
            print(f"{str(ch)} - {ch.get_unit(Languages.DE)}")

    except (ApiError, RateLimitError, InvalidCredentialsError, InvalidDeviceError) as error:
        print(f"Error: {error}")


loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()

Supported data types

Device type Inputs Outputs DL-inputs System-values: General System-values: Date System-values: Time System-values: Sun System-values: Electrical power Analog network inputs Digital network inputs M-Bus Modbus KNX Analog logging Digital logging
UVR1611
UVR16x2
RSM610
CAN-I/O45
CAN-EZ2
CAN-MTx2
CAN-BC2
UVR65
CAN-EZ3
UVR610
UVR67

Note The supported data types may differ from the official API. If a device type supports other data types than listed here, please create an issue.

CoE Server

Data can be retrieved using this CoE to HTTP server

import asyncio

from ta_cmi import (
    ApiError,
    ChannelMode,
    CoE,
    InvalidCredentialsError,
    InvalidDeviceError,
    Languages,
    RateLimitError,
)


async def main():
    try:
        coe = CoE("http://192.168.2.201:9000")

        can_id = 42

        await coe.update(can_id)

        analog_channels = coe.get_channels(can_id, ChannelMode.ANALOG)
        digital_channels = coe.get_channels(can_id, ChannelMode.DIGITAL)

        for i in analog_channels:
            ch = analog_channels.get(i)
            print(str(ch))

        for o in digital_channels:
            ch = digital_channels.get(o)
            print(f"{str(ch)} - {ch.get_unit(Languages.DE)}")

    except (ApiError, RateLimitError, InvalidCredentialsError, InvalidDeviceError) as error:
        print(f"Error: {error}")


loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()

Download files

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

Source Distribution

ta_cmi-3.7.1.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

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

ta_cmi-3.7.1-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file ta_cmi-3.7.1.tar.gz.

File metadata

  • Download URL: ta_cmi-3.7.1.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.22

File hashes

Hashes for ta_cmi-3.7.1.tar.gz
Algorithm Hash digest
SHA256 a5d5d6272fc0dc6cf100a151abd32a9ef3cb942180a91461fdcbb2a1d7a391e4
MD5 994ab82ad3620756febca3085d6432a0
BLAKE2b-256 eb32debad4a3c6b5c3d168ef34ac6fff29c8bc956b68a8dc24798e8ad9c16ac7

See more details on using hashes here.

File details

Details for the file ta_cmi-3.7.1-py3-none-any.whl.

File metadata

  • Download URL: ta_cmi-3.7.1-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.22

File hashes

Hashes for ta_cmi-3.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 26824108a8107cd78862f018b6f619fbe03374d2a9b14f8b745efd9c805dc5a1
MD5 6b83ff809622adbe363327caeffdd124
BLAKE2b-256 0506dac3526eb7cd657f7f0c65faabbf3fdef4be2fd8eee54a3439aaf04c96e7

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

3.7.1 This release

2 files

3.7.0

2 files

3.6.3

2 files

3.6.2

2 files

3.6.1

2 files

3.6.0

2 files

3.5.0

2 files

3.4.0

2 files

3.3.2

2 files

3.3.1

2 files

3.3.0

2 files

3.2.0

2 files

3.1.0

2 files

3.0.1

2 files

3.0.0

2 files

2.2.0

2 files

2.1.2

2 files

2.1.1

2 files

2.1.0

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

1 file

1.4.0

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

0.3.0

2 files

0.2.0

1 file

0.1.5

1 file

0.1.4

2 files

0.1.3

2 files

0.1.2

1 file

0.1.1

2 files

0.1.0

2 files

Supported by

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