Styr Tuya-enheter lokalt med tinytuya og LocalTuya

Tuya-enheter styres som standard via produsentens sky. Et trykk på bryteren går ut på internett og tilbake før lyset tennes. Det gir forsinkelse, og når internett er nede, svarer ikke enhetene. Signalet har bare noen meter å gå på det lokale nettet.

Med lokal styring går kommandoen rett til enheten over LAN. Det krever to verdier per enhet: device-id og local key. Begge hentes én gang fra Tuya-skyen. Etter det trengs skyen bare for nye enheter.

Hent device-id og local key

Skjematisk flyt: tinytuya-veiviser henter device-id og local key fra et Tuya-skyprosjekt koblet til app-kontoen

Opprett et gratis skyprosjekt i Tuya IoT-plattformen og koble det til app-kontoen der enhetene allerede ligger. Kjør deretter tinytuya-wizard for å liste ut nøklene.

pip install tinytuya
python -m tinytuya wizard
Wizarden spør etter API-id, API-secret og region fra skyprosjektet. Deretter skriver den device-id og local key for alle enhetene til en JSON-fil.

{
"name": "Stuelampe",
"id": "abcdef0123456789ab",
"key": "0123456789abcdef",
"ip": "192.168.x.x",
"version": "3.4"
}
Legg enheten inn lokaltI Home Assistant brukes LocalTuya. Hver enhet legges til med device-id, IP og local key. Sett fast IP på enheten i ruteren først. Ellers kan adressen endres ved neste DHCP-leie, og enheten slutter å svare.

device_id: abcdef0123456789ab
host: 192.168.x.x
local_key: 0123456789abcdef
protocol_version: "3.4"
Etter dette går av/på, dimming og statuslesing rett til enheten. Responsen er umiddelbar, og alt fungerer selv om WAN er nede.

To feller

Nettverkstopologi som sammenligner treg sky-styring mot rask lokal styring av Tuya-enheter over hjemmenettet

Local key endres ved ny paring. Fabrikkresetter du enheten eller parer den på nytt i appen, får den ny local key, og den gamle virker ikke lenger. Enheten svarer da ikke lokalt før du har kjørt wizarden på nytt og oppdatert nøkkelen.

Gratis skyprosjekt må fornyes, gjerne hvert halvår. Glemmer du det, slutter nøkkeloppslag mot skyen å virke. Enhetene du allerede har lagt inn, styres fortsatt lokalt, men du får ikke hentet nøkler for nye enheter før prosjektet er fornyet. Sett en påminnelse.

Når skyen trengs

Etter oppsettet trengs skyen bare når du legger til nye enheter og skal hente device-id og local key for dem. Den daglige driften er helt lokal, så en feil i produsentens sky slår ikke av lyset.