Skip to main content

Relay and control for tessie

Project description

tessie relay

A relay and control server for tessie MQTT messages.

Installation

This project uses uv for management and currently uses Python 3.11.

pip install tessie_relay

Running coldbox controller

Example script:

from tessie_relay.psi_coldbox import Coldbox
from time import sleep

def handle_error_message(error_payload):
    """
    Custom callback to handle "Error" messages.
    :param error_payload: The parsed "Error" payload
    """
    print("WARNING: Error detected!")
    print(error_payload)


if __name__ == "__main__":

    # initialize the Coldbox controller and provide a callback for alarms
    coldbox = Coldbox(host='coldbox02.psi.ch', error_callback=handle_error_message)

    with coldbox:
        coldbox.flush()
        print("air temperature    ", coldbox.get_air_temperature())
        print("water temperature  ", coldbox.get_water_temperature())
        print("interlock status   ", coldbox.get_interlock_status(timeout=10))
        print("traffic light      ", coldbox.get_traffic_light())
        print("flow switch        ", coldbox.get_flow_switch())
        print("lid                ", coldbox.get_lid_status())
        channel = 8
        print(f"voltage probes for channel {channel} = ", coldbox.get_voltage_probe(channel)) 

        try:
            while True:
                print("relative humidity ", coldbox.get_relative_humidity())
                sleep(10)
        except KeyboardInterrupt:
            print('interrupted!')

    print("shutting down")

Running coldbox QuestDB relay

The relay requires a QuestDB instance running. Furthermore, an environment variable QDB_CLIENT_CONF must be set. In the example below, the QuestDB instance is running on the same machine as the relay and the client is authenticated with the default credentials.

export QDB_CLIENT_CONF='http::addr=localhost:9000;username=admin;password=quest;'
uv run -m tessie_relay.relay

Development

Important: for local development, please make sure to always prepend uv.

After changes have been made to the library (which means code in the src directory), update the local tessie_relay installation as follows:

uv pip install -e .

Then to test your changes, take e.g. the code in examples/run_coldbox.py and make the changes that would test the code. Then run:

uv run examples/run_coldbox.py

Creating a new release

Install bump-my-version:

uv tools install bump-my-version

Choose between major, minor, and patch and run (here for patch):

bump-my-version bump patch --dry-run -vv

This displays the changes that would be made. If you are happy with the changes, run:

bump-my-version bump patch

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

tessie_relay-0.2.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

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

tessie_relay-0.2.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file tessie_relay-0.2.0.tar.gz.

File metadata

  • Download URL: tessie_relay-0.2.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.8

File hashes

Hashes for tessie_relay-0.2.0.tar.gz
Algorithm Hash digest
SHA256 c59f3077002db57fc0e2634a2f756166211d97eb4cff56e08f05f861d0bc3970
MD5 2272c8d27fdb1d4c857c513b0a37ef11
BLAKE2b-256 acb9330c1ecb827fba82a3aee1eee6f2e50b309bf723dfb794b2de61c764eb1b

See more details on using hashes here.

File details

Details for the file tessie_relay-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for tessie_relay-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 016df7c5866ffb7a67791a572dad8dd741eee909cb041378886f6a30107d6ab7
MD5 601a5306f6e4c432d8e32d5b613197b6
BLAKE2b-256 d90ea932b01c704e5fa997e9477a86f21890ca0844dcdfd8d1f72eeb07211fd2

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