Cliente MQTT para Driver CmControl v1.00 (MQTT + MQTT+REST + OAuth2) com QoS=0 e retained=false
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pycmcontrol_mqtt-0.2.1.tar.gz.
File metadata
- Download URL: pycmcontrol_mqtt-0.2.1.tar.gz
- Upload date:
- Size: 2.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4a8c09830b69bff537308bbe42893a27c415278d5a2a22792291018d7c53289
|
|
| MD5 |
48467c9aef340f7757817e4714277779
|
|
| BLAKE2b-256 |
9971f38555211b82909401e43848f34724356516fdc64ff677776a17c6435905
|
File details
Details for the file pycmcontrol_mqtt-0.2.1-py3-none-any.whl.
File metadata
- Download URL: pycmcontrol_mqtt-0.2.1-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b148ebae72a54309af3b5a3c51144c6446fbc85bcec8c067eb84a1dafce4ee2e
|
|
| MD5 |
86beb0134e16b8310fe237de303b9ba3
|
|
| BLAKE2b-256 |
f3e09f3262393465a463185a0dcb452d30c3b2c5c05f21e98435821d9741978f
|