Skip to main content

pyBROTlib

Python interface to BROT telescopes, talking to the telescope's TwinCAT/PLC control system over MQTT.

Installation

uv add pybrotlib

Usage

Connect a transport (currently MQTT) to a named telescope and drive it through the BROT object:

import asyncio

from pybrotlib import BROT
from pybrotlib.transport import MQTTTransport


async def main() -> None:
    transport = MQTTTransport(host="localhost", port=1883)
    brot = BROT(transport, "MyTelescope")

    # the transport needs its own task to receive telemetry/publish commands
    asyncio.create_task(transport.run())
    await asyncio.sleep(2)  # give it a moment to connect and receive first telemetry

    await brot.telescope.track(ra=10.5, dec=41.2)
    print(brot.telescope.status)


asyncio.run(main())

transport.telemetry holds the live telemetry tree (see pybrotlib/telemetry.py), which is kept up to date by messages received on <telescope>/.../Telemetry topics and read by the component properties below.

Components

Each BROT instance exposes one component per subsystem, all constructed from the same transport and telescope name:

  • telescope (BROTTelescope) — pointing (track, move), offsets (set_offset_ha, set_offset_dec, set_offset_alt, set_offset_az), power/park/stop/reset, and status (status, motion_state, global_status).
  • focus (BROTFocus) — position, set(focus), powered, referenced.
  • dome (BROTDome) — shutter/tracking state, open, close, start_tracking, stop_tracking, park, reset.
  • roof (BROTRoof) — roll-off roof state, open, close, stop, reset.
  • mirrorcovers (BROTMirrorCovers) — status, open, close.

All commands are fire-and-forget MQTT publishes; callers are expected to poll telemetry (directly, or via the component's status properties) to observe the result.

Development

uv sync --group dev
uv run pytest

Metadata

Release files for pyBROTlib 1.2.2

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

Source distribution (sdist)

Source distribution for pyBROTlib 1.2.2
File Size Uploaded
pybrotlib-1.2.2.tar.gz 6.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyBROTlib 1.2.2
File Interpreter ABI Platform
pybrotlib-1.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 18.0 kB

Release files / pybrotlib-1.2.2.tar.gz

Download URL pybrotlib-1.2.2.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8286de24c2542f2dd59246bd97387a4c5f4fcfa0785074ac0b994d343da4189c
BLAKE2b-256 checksum
How to use checksums
3910849d638b4dabe808c72c85b6521c95fdf9429281a26d8145e369517a3606
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pybrotlib-1.2.2-py3-none-any.whl

Download URL pybrotlib-1.2.2-py3-none-any.whl
Size 11.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d513840ab0c8e6a2d264c900a02f9d4b75bfba2588ef2d14ec43898f6b3be32e
BLAKE2b-256 checksum
How to use checksums
e9730860d4d447b1af3b8d035113493c3ceb61af42fc7773c76308cc04de712d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

1.7.0

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

This release

1.2.2 This release

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.3.11

2 release files

0.3.10

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

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