Skip to main content

pycmcontrol-mqtt

PyPI version Python versions Downloads Documentation License: MIT

Biblioteca Python para integração com o Driver Dispositivo CmControl v1.00 via MQTT, implementando o protocolo oficial do sistema.

Documentação

A documentação completa está disponível em:
https://pycmcontrol-mqtt.readthedocs.io/

Visão Geral

A biblioteca permite que aplicações Python atuem como um dispositivo CmControl totalmente compatível, suportando:

  • Comunicação MQTT nativa conforme especificação oficial
  • Proxy MQTT + REST com autenticação OAuth2
  • Apontamento de seriais com envio de evidências
  • Handlers automáticos para PING e STATE
  • Tipagem estática (PEP 561)
  • Suporte a TLS
  • Context manager para gerenciamento automático
  • Tratamento robusto de erros

Instalação Rápida

pip install pycmcontrol-mqtt

Exemplo Mínimo

from pycmcontrol_mqtt import CmControlClient, CmControlConfig

# Configuração básica
cfg = CmControlConfig(
    device_addr="device001",           # Identificador do dispositivo
    broker_host="cmcontrolbroker.exemplo.com",  # Host do broker MQTT
    broker_port=1883,                   # Porta do broker
    mqtt_user="usuario",                 # Usuário MQTT
    mqtt_pass="senha",                   # Senha MQTT
    api_user="api_user",                 # Usuário para OAuth2
    api_pass="api_pass",                  # Senha para OAuth2
)

# Uso com context manager (conexão automática)
with CmControlClient(cfg) as cmc:
    # Login OAuth2 automático
    cmc.ensure_login()
    
    # Apontamento de serial
    resultado = cmc.apontar_serial("00000203030300")
    print(f"Resultado: {resultado}")

Pré-requisitos

  • Python ≥ 3.8
  • Broker MQTT compatível com CmControl
  • Dispositivo previamente cadastrado no sistema CmControl

Estrutura do Pacote

pycmcontrol_mqtt/
 ├── __init__.py        # Inicializador do pacote
 ├── client.py          # Cliente principal (CmControlClient)
 ├── config.py          # Configurações (CmControlConfig, BrokerTLS)
 ├── models.py          # Modelos de dados (Evidence, ApontamentoResponse)
 ├── errors.py          # Exceções específicas (CmcConnectionError, CmcLoginError, ...)
 └── utils.py           # Utilitários internos

Licença

Distribuído sob licença MIT. Acesse LICENSE para mais informações.


Autor

Marcos Tullio Silva de Souza

Metadata

Release files for pycmcontrol-mqtt 0.2.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 pycmcontrol-mqtt 0.2.1
File Size Uploaded
pycmcontrol_mqtt-0.2.1.tar.gz 2.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pycmcontrol-mqtt 0.2.1
File Interpreter ABI Platform
pycmcontrol_mqtt-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.1 MB

Release files / pycmcontrol_mqtt-0.2.1.tar.gz

Download URL pycmcontrol_mqtt-0.2.1.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
c4a8c09830b69bff537308bbe42893a27c415278d5a2a22792291018d7c53289
BLAKE2b-256 checksum
How to use checksums
9971f38555211b82909401e43848f34724356516fdc64ff677776a17c6435905
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / pycmcontrol_mqtt-0.2.1-py3-none-any.whl

Download URL pycmcontrol_mqtt-0.2.1-py3-none-any.whl
Size 15.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b148ebae72a54309af3b5a3c51144c6446fbc85bcec8c067eb84a1dafce4ee2e
BLAKE2b-256 checksum
How to use checksums
f3e09f3262393465a463185a0dcb452d30c3b2c5c05f21e98435821d9741978f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.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