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)
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.
Baixe em python.org — qualquer versão 3.8 ou superior. Durante a instalação, marque a opção "Add Python to PATH".
Abra o terminal (PowerShell ou cmd) e rode:
pip install tinytuya
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, tenteCentral 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
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 IDip→ IP local do dispositivo na sua redekey→ local_key (chave de criptografia local)
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.
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.
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.
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
- Windows only para o
telhado.bat. Otelhado.pyroda 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.
pip install tinytuya
Só isso. A interface gráfica usa tkinter, que já vem com o Python.