pycmcontrol-mqtt
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)
| File | Size | Uploaded | |
|---|---|---|---|
| pycmcontrol_mqtt-0.2.1.tar.gz | 2.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|