Lokale Steuerung

Mit der lokalen Steuerung (Local Control) spricht die Sinric Pro App deine Geräte direkt über dein WLAN an, ohne den Umweg über die Sinric Pro Cloud.

Das ist in zwei Situationen wichtig:

Local Control


Was du brauchst

Die lokale Steuerung ist in das SDK eingebaut und standardmäßig aktiv. Im Portal musst du nichts einstellen.

SDK Mindestversion
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

Außerdem brauchst du eine aktuelle Sinric Pro App, und das Smartphone muss im selben WLAN sein wie das Gerät. Die lokale Steuerung funktioniert weder über mobile Daten noch von außerhalb deines Zuhauses.


So funktioniert es

Das Gerät finden

Die App muss wissen, unter welcher Adresse ein Gerät erreichbar ist, bevor sie es ansprechen kann. Sie versucht es in dieser Reihenfolge:

  1. mDNS. Die Geräte kündigen _sinricpro._udp.local. im Netzwerk an. Das ist der schnellste Weg und findet alle Geräte mit einer einzigen Abfrage.
  2. Eine signierte Broadcast-Anfrage. Liefert mDNS nichts – viele Router blockieren Multicast –, sendet die App eine signierte Anfrage an die lokale Broadcast-Adresse. Nur das Gerät, dem die ID gehört, antwortet, und seine Antwort verrät seine Adresse.
  3. Die zuletzt bekannte Adresse, gemerkt vom letzten Mal, als das Gerät online war.

Das Ergebnis wird zwischengespeichert, die Suche läuft also einmal und nicht bei jedem Tippen.

Einen Befehl senden

Befehle gehen an UDP-Port 3333 des Geräts. Die Nachricht ist exakt derselbe signierte Umschlag, den auch die Cloud verwendet:

{
  "header":    { "payloadVersion": 2, "signatureVersion": 1 },
  "payload":   { "action": "setPowerState", "deviceId": "...", "value": { "state": "On" } },
  "signature": { "HMAC": "..." }
}

Das Gerät prüft die Signatur, führt denselben Callback aus wie bei einer Anfrage aus der Cloud und antwortet dem Smartphone. Dein Sketch ändert sich nicht: Ein Gerät, das onPowerState von Alexa verarbeitet, verarbeitet es auch aus dem LAN.


Sicherheit


Ausschalten

Die lokale Steuerung ist standardmäßig aktiviert. So deaktivierst du sie:

Arduino

#define SINRICPRO_NOMDNS   // keep local control, drop the mDNS announcement

ESP-IDF – in menuconfig, unter 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)

Fehlerbehebung

Die App meldet „No devices found on this Wi-Fi network“

Es funktioniert und hört nach einem Neustart des Routers auf

Wahrscheinlich hat sich die IP-Adresse des Geräts geändert. Öffne den Bildschirm Local Control und ziehe zum Aktualisieren nach unten, oder reserviere im Router eine feste Adresse für das Gerät.

Befehle kommen langsam oder nur zeitweise an

Gib dem Gerät nach dem Start ein paar Sekunden Zeit. Auf ESP32 und ESP8266 konkurriert der erste sichere Verbindungsaufbau zur Cloud um das Funkmodul, und lokale Antworten können sich verzögern, bis er abgeschlossen ist.

mDNS findet nie etwas

Das kommt häufig vor und ist kein Fehler. Viele Heimrouter verwerfen Multicast-Verkehr. Die App weicht automatisch auf eine Broadcast-Anfrage aus, die Suche funktioniert also trotzdem.