Hallo zusammen. Es geht um das folgende Leuchtmittel: https://www.pearl.de/a-ZX2893-3103.shtml?query=gu10+wlan+led+alexa Ich vermute mal, dass da der übliche ESP das Kommando inne hat. Die LED funktioniert mit einer China-APP (die auch fleißig nach Hause telefoniert) namens IO.e auf dem Android. Ich also erstmal mit "Fing" festgestellt, welche IP die LED hat. Dann habe ich mit "Packet Capture" mal mitgeschnitten, was IO.e an die ermittelte Adresse schickt. Wird IO.e gestartet, wird im Klartext die LED nach ihrem Status gefragt. Die Anfrage besteht im Wesentlichen aus Start-Muster (55AA), der LED-eigenen ID und End-Muster (AA55). Damit ist das Packet komplett. Die LED antwortet (auch im Klartext, mit Start (auch 55AA), ihrer ID und "false" wenn LED aus, "true" wenn LED an und End-Muster (AA55). True und False stehen da wirklich als String, tatsächlich als "true" mit Anführungszeichen. Alles Klartext. Das Mitschneiden eines Einschaltbefehls den IO.e an die LED schickt, war nun nicht wirklich ein Hexenwerk. Start-Muster 55AA, aber dann: Lauter verschlüsseltes Zeug. Antwort der LED ebenso verschlüsselt. Ebenso die Befehle zum Dimmen. Mit einem bischen hin und her habe ich die Sequenzen aus dem Datenstrom einzeln isoliert, auf den PC geladen und mit "Packet Sender" vom PC aus auf die LED geschickt. Wunderbar, funktioniert ganz prächtig. Die Vorgehensweise, das oben Beschriebene in einen ESP zu packen und den senden zu lassen, wäre ebenfalls kein Hexenwerk. Aber: Ich habe nicht eine LED sondern neun. Und alle LED's einzeln aufzeichnen und die Befehle zu extrahieren, nee, oder? Ausserdem: Gibt eine LED auf, folgt die ganze Prozedur mit der neuen LED. So, und nun: Hat ijmd damit mal rum gemacht, kennt sich viell. mit Verschlüsselung aus und wie man die knackt? Ich habe davon keine Ahnung. Danke an Alle, freue mich auf euere Beiträge. LG
Matthias G. schrieb: > aber dann: Lauter verschlüsseltes Zeug. Das muss nicht unbedingt verschlüsselt sein, kann auch ein Binärprotokoll sein. > Ich habe nicht eine LED sondern neun. Und alle LED's einzeln aufzeichnen > und die Befehle zu extrahieren, nee, oder? Zwei LEDs aufzeichnen und anschließend das Protokoll byteweise vergleichen. Wenn Du Glück hast, unterscheidet es sich nur um ein paar Bytes, nämlich die LED-Adresse. Mit dieser Information kannst Du es dann auf alle LEDs anwenden.
Brummbär schrieb: > Matthias G. schrieb: >> Lauter verschlüsseltes Zeug > > Vielleicht chinesische Schriftzeichen? Nee, Alles Hex/ASCII
Frank M. schrieb: > Zwei LEDs aufzeichnen und anschließend das Protokoll byteweise > vergleichen. Wenn Du Glück hast, unterscheidet es sich nur um ein paar > Bytes, nämlich die LED-Adresse. Mit dieser Information kannst Du es dann > auf alle LEDs anwenden. Das ist ja mal ne gute Idee, danke!
Matthias G. schrieb: > Frank M. schrieb: > >> Zwei LEDs aufzeichnen und anschließend das Protokoll byteweise >> vergleichen. Wenn Du Glück hast, unterscheidet es sich nur um ein paar >> Bytes, nämlich die LED-Adresse. Mit dieser Information kannst Du es dann >> auf alle LEDs anwenden. > > Das ist ja mal ne gute Idee, danke! So, hab ich gemacht. Das Progrämmchen "Hex-Editor MX" kann 2 Dateien verkleichen. Bede Dateien (jeweils der Einschaltbefehl von 2 versch. LED's) haben eine Länge von 170 Bytes. Da gibt es 145 Unterschiede. War zwar eine gute Idee, aber leider brachte sie keinen Erfolg. Trotzdem danke. Noch jmd eine Idee?
Matthias G. schrieb: > Brummbär schrieb: >> Matthias G. schrieb: >>> Lauter verschlüsseltes Zeug >> >> Vielleicht chinesische Schriftzeichen? > > Nee, Alles Hex/ASCII Dann nimm einen chinesischen Editor, der zeigt die richtigen Zeichen. Leute gibts... vhk,bnc,nb,c
Anbei die pcap-Datei. Kann z.B. mit Wireshark geöffnet werden. Die Datei heisst nicht nur "pcap", sie hat auch das Format "pcap". Sollte mit einigen Progr. lesbar/auswertbar sein. Ein Screenshot oder Hex-File hätte nicht die Struktur der Nachrichten offenbart, daher meine Wahl "pcap" zu nehmen. In dem File steht der ges. Netzwerkverhehr zw. meinem Smartphone und der LED 192.168.1.64:6668 f. den aufgezeichneten Zeitraum. Der 1. lesbare Block ist die Statusabfrage der LED. Der 2. die Antwort der LED (true = LED eingesch.). Der 3. große Block ist der Ausschaltbefehl an die LED, im 4. Block dann die Antwort der LED. Den Kleinkram zw. den Blocks kann man, denke ich, vergessen. Dient der APP wahrsch. dazu zu prüfen ob die LED noch Online ist. LG
vhk,bnc,nb,c schrieb: > Matthias G. schrieb: >> Brummbär schrieb: >>> Matthias G. schrieb: >>>> Lauter verschlüsseltes Zeug >>> >>> Vielleicht chinesische Schriftzeichen? >> >> Nee, Alles Hex/ASCII > > Dann nimm einen chinesischen Editor, der zeigt die richtigen Zeichen. > Leute gibts... > > vhk,bnc,nb,c Uuuh, wie kann man nur auf so eine Idee kommen? Aber gut, ich probiere es. LG Und was passiert, wenn der europäische Editor die chinesischen Bits nicht lesen kann? Die heissen da ja auch anders als Null und Eins. LG
Matthias G. schrieb: > Ich vermute mal, dass da der übliche ESP das Kommando inne hat. Dann sollte man das Ding mal aufmachen und sich versichern ob wirklich ein ESP drin ist. Dann RX,TX,GND,3.3 finden und was ordentliches drauf flashen.
Hallo Matthias, ich habe mehrere Luminea Steckdosen ZX-2820 analysiert und kann diese nun ansteuert. Das mit chinesischen Zeichen ist Blödsinn, es ist wirklich verschlüsselt, und zwar wird bei der ersten Verbindung mit dem Server der Schlüssel individuell ausgehandelt. Mit ein paar Tricks kann man den herausbekommen und dann selbst ver- und entschlüsseln. Falls du noch interesse hast ... Aber Oliver hat recht, die bessere Variante ist sicherlich eigene Software aufzuspielen, z.B. Tasmota. Das habe ich inzwishcne auch gemacht, funktioniert super und es gibt kein telefonieren nach hause mehr :-) Bei einer Luninea E27 Lampe ZX2831 habe ich das auch versucht, allerdings gehen die schlecht auf (und noch schwieriger wieder zu) und auf den Platinen sind die seriellen Anschlüsse nicht markiert. Hier ist also die obige Lösung besser. Wenn du stattdessen Sonof lampen nimmst, bei denen geht das auch besser. Gruß Rainer
Zitat: Bei einer Luninea E27 Lampe ZX2831 habe ich das auch versucht, allerdings gehen die schlecht auf (und noch schwieriger wieder zu) und auf den Platinen sind die seriellen Anschlüsse nicht markiert. Hier ist also die obige Lösung besser. Ja, ich habe auch versucht, eine Lampe zu öffnen. Bin aber dann davor zurückgeschreckt, den Draht zur Fassung zu kappen. Ich wüßte spontan nicht, wie ich den wieder dran bekommen soll. Daher wäre für mich die einzige Lösung, das mit dem Ver- und Entschlüsseln zu probieren zumal ich hier 9 dieser Lampen im Betrieb habe. Wäre nett, wenn Du mir weitere Infos zum Ver-/Entschlüsseln geben könntest. Egal, ich danke Dir und allen anderen die sich hier beteiligt haben. Matthias
Hallo Matthias, Anbei die bestimmung des local Keys: Bestimmung des LokalKey bei Luninea Komponenten Das Verfahren stammt von https://github.com/Marcus-L/m4rcus.TuyaCore und verwendet das Tool ADB (https://www.xda-developers.com/install-adb-windows-macos-linux/) - ADB herunterladen von https://dl.google.com/android/repository/platform-tools-latest-windows.zip und entpackenin Verzeichnis D:\Daten\Petzoldt\Rainer\Entwicklung\Android\platform-tools - Smartphone per USB verbinden - CMD öffnen, in diese Verzeichnis wechseln, Puffergröße auf 9999 Zeilen setzen - adb shell - am Smartphone debuggin erlauben - logcat -s Tuya - nun muss man die App beenden neu starten, die Komponente schalten und dann die App wieder beenden, irgendwann tauchen im log sie richtiogen Zeilen auf. Dann Log alles markieren und in Editor einfügen - suchen nach localKey, dann muss noch geschaut werden, ob der zur richtigen Komponete gehört. Ein Ausschnitt aus einer solchen Logdatei steht unten 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "result": [ 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé { 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "devId": "012000035ccxxxxxxxxx", 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "dpMaxTime": 1516560040285, 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "virtual": false, 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "productId": "fTxxxxxxxxxxxxxx", 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "dps": { 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "1": false, 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "2": 25, 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "3": 0 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé }, 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "activeTime": 1516553844, 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "ip": "95.208.xxx.xxx", 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "lon": "", 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "moduleMap": { 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "wifi": { 01-21 19:40:57.985 17556 17619 D Tuya : Ôöé "bv": "5.07", 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "cdv": "", 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "pv": "2.1", 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "verSw": "1.0.0", 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "isOnline": true, 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "cadv": "" 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé }, 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "mcu": { 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "cdv": "", 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "verSw": "1.0.0", 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "isOnline": true, 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "cadv": "" 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé } 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé }, 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "uuid": "012000xxxxxxxxxxxxxx", 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "name": "Luminea03w", 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "isShare": false, 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "timezoneId": "Europe\/Berlin", 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "iconUrl": "https:\/\/images.tuyaus.com\/smart\/icon\/1502765635_0.png", 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "lat": "", 01-21 19:40:57.986 17556 17619 D Tuya : Ôöé "runtimeEnv": "prod", 01-21 19:40:57.987 17556 17619 D Tuya : Ôöé "localKey": "xxxxxxxxxxxxxxxx" 01-21 19:40:57.987 17556 17619 D Tuya : Ôöé }, Gruß Rainer
Hallo, anbei im Anhang noch die Beschreibung des Luninea Protokolls Dafür habe ich mir dann ein C# Programm geschrieben um die Komponenten abzufragen und zu steuern .. Gruß Rainer
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.