Python und Tuya

Nachdem die ersten Probleme gelöst wurden, geht es nun weiter. Bevor jetzt aber die ersten Zeilen Python-Code geschrieben werden kann, muss noch ein Tuya-Konto angelegt werden. (iot.tuya.com)

 

Wie das Entwicklerkonto/Tuya-Konto angelegt wird, ist auf https://pypi.org/project/tinytuya/ beschrieben. Bei Tuya bekommt man auch den API-Key und -Secret (Authorization Key) . Wenn die Einstellungen bei Tuya gemacht sind, muss man noch den tinytuya-Wizard ausführen, wobei man dann für jedes Smart Home-Gerät, welches in der tuya-App (ggf. auch SmartLife-App) eingerichtet ist, einen eigenen "Local Key", den man braucht, um im Python-Programm darauf zugreifen zu können.

Hier ein Beispiel-Python-Programm von der tinytuya-Webseite:

 

# Example Usage of TinyTuya
import tinytuya

d = tinytuya.OutletDevice('DEVICE_ID_HERE', 'IP_ADDRESS_HERE', 'LOCAL_KEY_HERE')
d.set_version(3.3)
data = d.status()
print('Device status: %r' % data)

Beschreibung:

Zuerst wird die tinytuya-API importiert.

 

Dann wird ein Gerät/Device verbunden und ein Objekt d angelegt. Hier ein OutletDevice. Das kann ein Schalter, Dimmer oder Steckdose sein. LED Lampen fallen unter die Klasse BulbDevice, Rollos und ähnliches dann CoverDevice.

Übergabe-Parameter sind als erstes die DEVICE_ID_HERE. Die Device-ID kann man über die Tuya-Webseite oder die tuya-App auslesen oder beim tinytuya Scan, bzw. Wizard erfahren. Die Device-ID ist 20 oder 22 Stellen lang.

Bei IP_ADDRESS_HERE handelt es sich um die IP-Adresse aus dem eigenen Netzwerk. Bei Standardadressierung der FRITZ!BOX zum Beispiel fängt die Adresse mit 192.168.178. an.
Mit LOCAL_KEY_HERE ist der Lokale Schlüssel/Local Key des Gerätes gemeint, den man durch den tinytuya Wizard bekommen hat.

Danach wird noch die Version gesetzt, hier die Version 3.3. Aktuell habe ich Geräte 6 Geräte der Version 3.1 und 11 Geräte mit Version 3.3.

In der tuya-App sind aber nur 8 Geräte, wovon 6 oder alle 8 mit der Version 3.3. Bei den beiden Temperatur- und Luftfeuchtigkeits-Sensoren kann ich das noch nicht genau sagen.

 

Über data = d. status() wird der Status des Geräts (On/Off und weitere Parameter) ausgelesen und mit der folgenden print-Zeile ausgegeben.

 

Bei Interesse der hier aufgeführten Flohmarkt-Artikel einfach bei mir melden...