Skip to main content

Cliente MQTT para Driver CmControl v1.00 (MQTT + MQTT+REST + OAuth2) com QoS=0 e retained=false

Project description

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

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

pycmcontrol_mqtt-0.2.1.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

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

pycmcontrol_mqtt-0.2.1-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

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

Hashes for pycmcontrol_mqtt-0.2.1.tar.gz
Algorithm Hash digest
SHA256 c4a8c09830b69bff537308bbe42893a27c415278d5a2a22792291018d7c53289
MD5 48467c9aef340f7757817e4714277779
BLAKE2b-256 9971f38555211b82909401e43848f34724356516fdc64ff677776a17c6435905

See more details on using hashes here.

File details

Details for the file pycmcontrol_mqtt-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pycmcontrol_mqtt-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b148ebae72a54309af3b5a3c51144c6446fbc85bcec8c067eb84a1dafce4ee2e
MD5 86beb0134e16b8310fe237de303b9ba3
BLAKE2b-256 f3e09f3262393465a463185a0dcb452d30c3b2c5c05f21e98435821d9741978f

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