NEWS
Funktionsweise Tuya Adapter
-
Hallo Liebes Forum,
ich habe gestern einen Tuya Adapter eingerichtet um eine Smartlife Klimaanlage anzusteuern. Der Weg dahin war steinig und schwer - Stumpf nach Anleitung hat es aber problemlos funktioniert. Aus reiner Neugier interessiere ich mich aber für die Funktionsweise. Hier und da, in den Readmes von GitHub, PDF Anleitung wird grob beschrieben was da so passiert. Hier mal was ich verstanden habe: Bitte korrigiert mich wenn ich falsch liege:
- Es wird auf einem Mobiltelefon (oder Android Emulator) ein Proxy mit Zertifikat eingerichtet
- Das Zertifikat ist notwendig, da die Smartlife App über SSL nach Hause telefoniert
- Um diese Kommunikation mitzuhören wird der Proxy eingerichtet
- Der Proxy fängt beim Starten der Smartlife App einen Schlüssel ab
- Frage: Was für ein Schlüssel? Kommt der von der App? Kommt der von Smartlife-Servern?
- Anschließend wird dieser Schlüssel von dem Adapter selbst verwendet und man kann den Proxy / Emulator wieder stilllegen
- Frage: Was macht der Adapter mit dem Schlüssel? Kommuniziert der Adapter nun direkt mit den Smartlife Geräten und gibt sich als Smartlife-Server aus? Kommunizieren die Geräte nun direkt mit dem IO Broker Adapter? Welche Rolle spielen jetzt noch die Smartlife Server?
Im großen und ganzen bin ich tatsächlich leicht beeindruckt von dieser Vorgehensweise Der Adapter funktioniert und die Welt ist schön.
-
@kitzelblitze Ohne jetzt selbst den Tuya Adapter zu nutzen. Aber so wie Du es schilderst, ist das eine gängige Vorgehensweise.
Die Geschichte mit dem Proxy diente nur dazu, um den Schlüssel zu ermitteln und dann in den Adapter einzutragen.Was der Adapter mit dem Schlüssel macht? Er braucht diesen Schlüssel, um mit dem Gerät zu kommunizieren. Das machen die Hersteller, um die Entschlüsselung des Datenstroms/Kommunikation zu erschweren bzw. wird halt als Sicherheitsfeature verkauft, damit man nicht mitlesen kann, wie sich App und Gerät miteinander unterhalten.
Der Schlüssel wird dann meist zur symmetrischen Verschlüsselung verwendet. Das heißt App, wie Client/Gerät tauschen den Schlüssel aus, um dann miteinander zu kommunizieren.
Bei der symmetrischen Verschlüsselung haben beide Kommunikationspartner den gleichen Schlüssel. Dieser Schlüssel ist um es zu Vereinfachen sowas wie eine Tabelle zur Geheimschrift. Buchstabe A bedeutet Y usw.Somit kann man auf Deinen Frage nur so antworten - die Schlüssel können dynamisch erstellt werden (müssen sie aber nicht) - sie scheinen aber nicht zu wechseln, sonst müsstest Du ja das Spiel immer wieder wiederholen.
Die 2. Frage - mit dem Schlüssel sollte der Adapter nun direkt mit den Geräten kommunizieren können. Ob er sich dabei als Smartlife Server ausgibt oder nicht spielt für den Client ja keine Rolle - er hat ja einen Partner, der ihn versteht.
Sowie ich das verstehe - spricht das Gerät ja auch nicht direkt mit den Smartlife-Servern , sondern über die App. Die App kommuniziert via SSL nach Hause mit den Servern. Für das Endgerät ist das aber egal, weil es ja nur mit der App bzw. dem Adapter kommuniziert. Ob der Adapter oder die App nach Hause telefonieren, interessiert das Endgerät aber nicht.
-
@mickym Vielen Dank für die ausführliche Erklärung - Bzgl. Verschlüsselung ist mir das auch klar. Ist zwar schon ein paar Jahre her, dass ich mich damit beschäftigt habe aber ein bisschen was ist noch hängen geblieben.
ich hatte bisher angenommen, dass eine direkte Kommunikation zwischen App und Gerät gar nicht erfolgt
Habe gerade mal der Klimanlage das Internet verboten und schon kann ich diese über die App nicht mehr einschalten. Heisst für mich: Die App kommuniziert nicht mit den Geräten selbst.
Der IO Broker kann das aber dennoch ! Einschalten/Ausschalten ist kein Problem, selbst wenn das Gerät kein Internetzugang mehr hat - Heisst: Er spricht direkt mit den Geräten. Frage ist daher: Wer baut die Verbindung auf? Baut der IO Broker die Verbindung zum Gerät auf? Wozu gibt es diese Schnittstelle, die Smartlife Server können sicherlich keine Verbindung zu meinen Geräten aufbauen. Falls das Gerät die Verbindung zum IO Broker aufbaut - woher kennt es dessen IP?
-
@kitzelblitze sonst niemand? Ist Apollon77 auch hier irgendwo?
-
Für Domoticz gibt es ein Tuya Plugin was gut funktioniert. Ohne Proxy etc..
Man meldet sich nur an. Kann man das hier nicht übernehmen?