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.