O controle local permite que o app Sinric Pro fale com seus dispositivos diretamente pelo seu Wi-Fi, sem passar pela nuvem do Sinric Pro.
Ele faz diferença em duas situações:

O controle local já vem integrado ao SDK e fica ativado por padrão. Não há nada para configurar no portal.
| SDK | Versão mínima |
|---|---|
| Arduino (ESP8266 / ESP32 / RP2040) | 5.0.0 |
| ESP-IDF | 1.3.0 |
| Raspberry Pi Pico W (C SDK) | 2.0.0 |
| Python | 6.0.0 |
| Node.js | 6.0.0 |
| MicroPython | 3.0.0 |
Você também precisa de uma versão recente do app Sinric Pro, e o celular deve estar na mesma rede Wi-Fi que o dispositivo. O controle local não funciona com dados móveis nem de fora da sua casa.
O app precisa saber em qual endereço o dispositivo está antes de poder falar com ele. Ele tenta, nesta ordem:
_sinricpro._udp.local. na rede. Esse é
o caminho mais rápido e encontra todos os dispositivos em uma única consulta.O resultado fica em cache, então a descoberta acontece uma vez só, e não a cada toque.
Os comandos vão para a porta UDP 3333 do dispositivo. A mensagem é exatamente o mesmo envelope assinado que a nuvem usa:
{
"header": { "payloadVersion": 2, "signatureVersion": 1 },
"payload": { "action": "setPowerState", "deviceId": "...", "value": { "state": "On" } },
"signature": { "HMAC": "..." }
}
O dispositivo verifica a assinatura, executa o mesmo callback que executaria
para uma requisição da nuvem e responde ao celular. Seu sketch não muda: um
dispositivo que trata onPowerState vindo da Alexa também o trata vindo da LAN.
O controle local vem ativado por padrão. Para desativá-lo:
Arduino
#define SINRICPRO_NOMDNS // keep local control, drop the mDNS announcement
ESP-IDF — no menuconfig, em SinricPro:
CONFIG_SINRICPRO_ENABLE_LOCAL_CONTROL=n
Python
config = SinricProConfig(app_key=..., app_secret=..., local_control=False)
Node.js
await SinricPro.begin({ appKey: ..., appSecret: ..., localControl: false });
MicroPython
sinricpro.start(APP_KEY, APP_SECRET, local_control=False)
O app diz “No devices found on this Wi-Fi network”
UDP: listening on port 3333 logo após a inicialização.Funciona, mas para depois que o roteador reinicia
Provavelmente o endereço IP do dispositivo mudou. Abra a tela Local Control e puxe para atualizar, ou reserve um endereço fixo para o dispositivo no roteador.
Os comandos estão lentos ou intermitentes
Dê alguns segundos ao dispositivo depois que ele inicializar. No ESP32 e no ESP8266, a conexão segura inicial com a nuvem disputa o rádio, e as respostas locais podem atrasar até que ela se estabilize.
O mDNS nunca encontra nada
Isso é comum e não é um defeito. Muitos roteadores domésticos descartam tráfego multicast. O app recorre automaticamente a uma sonda de broadcast, então a descoberta continua funcionando.