Repository navigation
v1.0.29
Release Notes — v1.0.29
🚀 Novidades
- Integração completa com Tuya/Smart Life — lâmpadas, módulos relé Wi-Fi e sensores (temperatura, umidade, presença, porta) agora são suportados
- Transporte local (LAN) e nuvem — lâmpadas e relés usam TCP local para respostas instantâneas e funcionam sem internet; sensores usam a nuvem Tuya
- Negociação de chave de sessão e criptografia — protocolos Tuya v3.4 e v3.5 implementados do zero, com handshake de 3 mensagens e integridade via HMAC-SHA256/GCM
- Dashboard Tuya — interface para controlar lâmpadas (liga/desliga, brilho, cor, temperatura de cor) e relés (canais individuais) com cards e drawer lateral
- Triggers
onTuyaSensorChangeeonTuyaDeviceChange— reaja a mudanças de sensores e dispositivos com filtros por nome, tipo, código e valor; inclui suporte apreviousValuepara detecção de borda - Script API
utils/tuya— funções de controle (turnOn,turnOff,setBrightness,setColor,setChannel, etc.) e leitura (getTemperature,isDoorOpen,isMotionDetected, etc.) resolvendo por nome amigável ou ID Tuya - Jobs agendados —
tuya-catalogue(6h),tuya-sensor-readings(1min),tuya-sync(1min),tuya-discovery(5min) para sincronização automática, leitura de sensores e descoberta via UDP - Documentação completa —
docs/tuya.mdcom configuração, exemplos de automação, API HTTP, referência de data points e troubleshooting
🐛 Correções
(nenhuma correção de bug nesta versão)
⚡ Melhorias
- Novas variáveis de ambiente —
TUYA_LOCAL_KEY_SECRET,TUYA_ACCESS_ID,TUYA_ACCESS_SECRETeTUYA_DATA_CENTERadicionadas aodocs/environment.md - Dashboard reorganizado — Tuya aparece como primeiro item na lista de dashboards para acesso rápido
- Chaves locais criptografadas em repouso — o
localKeyde cada dispositivo é derivado de um segredo configurável e nunca é exposto pelas rotas HTTP - Colapsamento de histórico — mudanças de lâmpadas (ex: cenas de cor) são agrupadas em janelas de 10 segundos para evitar ruído nos logs
🔧 Mudanças internas
- Protocolo Tuya local implementado em
src/utils/tuya/protocol/usando apenasnode:crypto,node:zlib,node:netenode:dgram— sem dependências externas - Detecção automática de layout de lâmpadas (3 layouts: A, B, C) na primeira conexão
- Tokens de nuvem cacheados em processo e renovados 1 minuto antes da expiração com colapsamento de chamadas concorrentes
- Pruning de leituras com mais de 90 dias para manter o banco enxuto
- Sensores de movimento lidos via
/v2.0/cloud/thing/{id}/shadow/properties(thing model) em vez da API padrão