Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Controle de Cobertura Tuya — Solução Local Simples

Interface gráfica minimalista em Python para controlar coberturas motorizadas via dispositivos Tuya (MCP 1001, MS-102 e compatíveis) diretamente pela rede local, sem depender de nuvem ou internet.

Testado com:

  • Intelbras MCP 1001
  • Intelbras MS-102
  • Qualquer dispositivo Tuya com relé e sensor de contato (DP 1 e DP 3)

Como funciona

Dispositivos Tuya (e marcas que usam a plataforma Tuya por baixo, como Intelbras, Positivo, Multilaser e muitas outras) se comunicam via um protocolo TCP proprietário na rede local. A biblioteca tinytuya faz a tradução entre Python e esse protocolo.

O comando sai do seu PC, vai pela rede local, e chega diretamente ao dispositivo — sem passar por nenhum servidor externo. Isso significa que funciona mesmo sem internet, com latência baixa (~200ms) e sem dependência de serviços de terceiros.

Requisito fundamental: o PC e o dispositivo precisam estar na mesma rede IP. Se ping SEU_IP_DO_DISPOSITIVO responde no terminal, o script vai funcionar.


Pré-requisitos

1. Python instalado

Baixe em python.org — qualquer versão 3.8 ou superior. Durante a instalação, marque a opção "Add Python to PATH".

2. Instalar a biblioteca tinytuya

Abra o terminal (PowerShell ou cmd) e rode:

pip install tinytuya

3. Conta Tuya Developer (para obter as credenciais)

Essa é a etapa mais trabalhosa, feita uma única vez.

Passo 1 — O dispositivo precisa estar no app Smart Life ou Tuya Smart

Se estiver em outro app (ex: Intelbras iSiC), peça ao administrador do dispositivo para migrá-lo para o Smart Life. O processo leva ~5 minutos e não afeta o funcionamento.

Passo 2 — Criar conta gratuita de desenvolvedor

Acesse iot.tuya.com e crie uma conta. Quando perguntar o tipo de conta, clique em Skip.

Passo 3 — Criar um projeto Cloud

  • Vá em Cloud → Development → Create Cloud Project
  • Nome: qualquer um
  • Data Center: escolha Western America (us) — funciona para a maioria dos dispositivos no Brasil. Se o wizard não encontrar seus dispositivos depois, tente Central Europe (eu).
  • Habilite as APIs: Device Status Notification, Authorization e Smart Home Scene Linkage

Passo 4 — Vincular sua conta do app ao projeto ← etapa mais importante

  • Dentro do projeto, vá em Devices → Link Tuya App Account → Add App Account
  • Escaneie o QR code com o app Smart Life no celular
  • Seus dispositivos aparecerão na aba All Devices

Passo 5 — Anotar as credenciais do projeto

Na página Overview do projeto, copie:

  • Access ID → você vai precisar no wizard
  • Access Secret → você vai precisar no wizard

Configuração inicial — rodando o wizard

Com o tinytuya instalado e as credenciais do projeto em mãos, rode:

python -m tinytuya wizard

O wizard vai pedir o Access ID, Access Secret e a região (us ou eu). Ao final, ele gera um arquivo devices.json com todos os seus dispositivos, incluindo os campos que precisamos:

  • id → Device ID
  • ip → IP local do dispositivo na sua rede
  • key → local_key (chave de criptografia local)

Configuração do script

Copie o arquivo de exemplo:

cp config.exemplo.json config.json

Abra o config.json e preencha com os dados do seu dispositivo obtidos no wizard:

{
    "device_id":  "abc123...",
    "device_ip":  "192.168.1.100",
    "device_key": "sua_chave_aqui",
    "version":    3.4
}

Importante: config.json está no .gitignore — suas credenciais não vão para o repositório se você fizer um fork.


Como rodar

Com janela de terminal visível (para debug):

python telhado.py

Sem janela de terminal (uso normal no Windows):

telhado.bat

Ou clique duas vezes no telhado.bat.


Sobre o IP do dispositivo

O IP local do dispositivo é atribuído pelo roteador via DHCP e pode mudar se o dispositivo ou o roteador for reiniciado.

Solução recomendada: peça ao administrador da sua rede para configurar uma reserva de IP por MAC address no roteador. Isso garante que o dispositivo sempre recebe o mesmo IP, sem precisar atualizar o config.json.

O MAC address do dispositivo aparece no devices.json gerado pelo wizard, campo mac.

Se não souber o IP atual do dispositivo, você pode descobri-lo assim:

python -c "import tinytuya; print(tinytuya.deviceScan())"

Esse comando faz um scan da rede e lista todos os dispositivos Tuya encontrados com seus IPs atuais.


Estrutura do repositório

tuya-telhado-simples/
├── telhado.py          # script principal — interface gráfica
├── telhado.bat         # atalho para Windows (sem janela de terminal)
├── config.exemplo.json # modelo de configuração — copie para config.json
├── .gitignore          # exclui config.json do versionamento
└── README.md

Limitações conhecidas

  • Windows only para o telhado.bat. O telhado.py roda em qualquer SO.
  • O script não tem fallback para nuvem — se o PC e o dispositivo não estiverem na mesma rede, o comando falha. Isso é intencional para manter a solução simples.
  • O agendamento (fechar automaticamente em um horário) não está incluído aqui. Para isso, use as automações do próprio app Smart Life — são mais confiáveis pois rodam nos servidores da Tuya independente do PC estar ligado.

Dependências

pip install tinytuya

Só isso. A interface gráfica usa tkinter, que já vem com o Python.


Referências

About

Controle de cobertura motorizada Tuya via rede local — Python + tkinter

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages