Lidl WI-FI Steckdose SWS-A1 SilverCrest IAN 103043

Begonnen von ext23, 14 Juni 2015, 09:22:22

Vorheriges Thema - Nächstes Thema

SebiM

Zitat von: ext23 am 29 Dezember 2015, 21:05:43
Ich habe den TÜV Süd angeschrieben, der schaut sich das an. Immerhin wurde es ja vom TÜV Süd getestet. Mal schauen was die dazu sagen, vielleicht gibt es ja irgend eine Regel in der DIN VDE die das zulässt, ka. Ich bin ja nicht pingelig und bei mir knallt es auch gerne mal *hüstel* aber wenn dadurch eine Bude abfackelt ist das nicht mehr lustig und kann böse enden.

/Daniel

Das ist wohl wahr, ja...
Apropos, war da nicht dieser Tage was mit LED-Funzeln von Lidl? ;)

Was anderes, was wolltest Du eigentlich tracen? Den Datenverkehr WiFi-Modul -> STM?

Ich bin derweil mit der App etwas weitergekommen, was die Kommunikation mit dem Cloud-Service betrifft. Nur, irgendwie gehört das schon fast nicht mehr hier rein...
Man könnte sicherlich auch RF-Geräte dort registrieren (ist nur ein HTTP-POST), und mal etwas durchprobieren was so geht. Praktischer wäre es natürlich mit einen komkreten Gerät (CASAControl eben wieder), aber ich habe keines und mir fällt auch gerade nichts Sinnvolles ein, wozu ich eins bräuchte... :)
Also, Vorschläge, ob und wie was weiter, immer gerne.

ext23

Ich wollte eigentlich RF <-> µC und µC <-> WLAN etwas belauschen ja.

Naja ist ja alles auch nicht so wild, wichtig wäre ja, dass die Dose richtig unter FHEM läuft. Das mit dem RF ist ja nur on top und geht mit dem entsprechendem Befehl mit Sicherheit auch direkt ohne Cloud und App. Aber wie gesagt, ich hab da im Moment ein use case für. Die Grundfunktionen wären wichtiger, zum Beispiel auch ein Status check welchen Zustand die Dose gerade hat etc.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

SebiM

#137
Zitat von: ext23 am 29 Dezember 2015, 21:30:21
Naja ist ja alles auch nicht so wild, wichtig wäre ja, dass die Dose richtig unter FHEM läuft. Das mit dem RF ist ja nur on top und geht mit dem entsprechendem Befehl mit Sicherheit auch direkt ohne Cloud und App.

Ja, aber welchem halt. Ich kann das aber auch nicht so ohne Weiteres ausprobieren. Was soll's.

ZitatAber wie gesagt, ich hab da im Moment ein use case für. Die Grundfunktionen wären wichtiger, zum Beispiel auch ein Status check welchen Zustand die Dose gerade hat etc.

/Daniel

Gab's da die Befehle irgendwo schon?
Die App sendet jedenfalls zur Abfrage ein UDP-Paket
0140 + mac(6B) + 10 + enc(16B)
wobei der kodierte Befehl (enc) so aussieht:
00 0000 c1 11 7150 23 + mac + 0202
[EDIT beim 2. und 3. Byte wie üblich mit der Paketnummer aufpassen. Und bei der MAC müsste auch 6 mal FF als Broadcast an alle Geräte funktionieren; kommt zumindest in der App vor, habe ich aber noch nicht ausprobiert]

die Dose antwortet dann mit einem UDP-Paket.

ext23

Nabend,

so Aufklärung vom TÜV, alles im grünen Bereich!

Zitat:
"Auf der linken Seite des Relais, gibt die Aufschrift Auskunft darüber, dass das Relais für den amerikanischen Markt (mit den dort landesüblichen max. Bemessungsdaten) zertifiziert wurde.

Auf der rechten (verdeckten) Seite des Relais, befindet sich die Angabe über die Zertifizierung des Relais für den europäischen Markt."

Die Ammis benutzen wohl eine andere Formel als unsere Physiker ;-) Wenn man die Thermosicherung abhebt steht auch 16A drunter.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

SebiM

Zitat von: ext23 am 30 Dezember 2015, 17:49:22
Nabend,

so Aufklärung vom TÜV, alles im grünen Bereich!

Zitat:
"Auf der linken Seite des Relais, gibt die Aufschrift Auskunft darüber, dass das Relais für den amerikanischen Markt (mit den dort landesüblichen max. Bemessungsdaten) zertifiziert wurde.

Auf der rechten (verdeckten) Seite des Relais, befindet sich die Angabe über die Zertifizierung des Relais für den europäischen Markt."

Die Ammis benutzen wohl eine andere Formel als unsere Physiker ;-) Wenn man die Thermosicherung abhebt steht auch 16A drunter.

Gruß
Daniel

Oh my god. ;)
Jetzt habe ich gerade seit gestern die Dose wieder zusammengeschraubt und alles. Soll ich mal ein neues korrigiertes und vollständigeres Übersichtsfoto basteln? [ ] ja   [ ] ja
also, mache ich mal demnächst, und stelle es hier rein und korrigiere die alten Beiträge. Nachdem ich das hier eh ganz leicht unübersichtlich finde, andererseits in FHEM selbst nicht wirklich drin bin (...habe im Moment nur ein bisserl openHAB am Laufen), daher mal die allgemeine Frage: Sollen nicht alle Infos, Erkentnisse etc. irgendwo im Wiki (http://www.fhemwiki.de/wiki/Silvercrest_SWS_A1_Wifi) gesammelt werden; und wenn ja, munter dort herum-editiieren, oder koordiniert das irgendwer?
@Daniel, wenn ich das jetzt richtig verstanden habe, ist Dein Problem v.a. die FHEM-Integration? Genau da kann ich leider nicht helfen, nur im Hintergrund (kann zwar Perl einigermaßen lesen, aber schreiben will ich definitiv nicht...)

JoergOstertag

#140
Bitte gerne jede  Info auch im Wiki eintragen :-)

SebiM

Zitat von: JoergOstertag am 30 Dezember 2015, 19:09:42
Bitte gerne jede  Info auch im Wiki eintragen :-)

So, da bin ich mal wieder. Guads Neues erstmal allerseits!

Alsooo... so eine kleine blöde Funksteckdose kann ja erstaunlich viel Arbeit machen.
Das ist alles recht unübersichtlich, bzw. muss halt in die passende Form gebracht werden. Weil das so viele Baustellen gleichzeitig sind, bin ich noch nirgends zu 100% durch, habe aber ein paar Zwischenergebnisse.

Erstanmeldung.
Es gibt keinen 'Hidden AP'. Das sieht sehr nach TI Smart Config aus. Den ganz genauen Ablauf habe ich noch nicht, aber im Wesentlichen broadcastet die App Pakete aus Bytes mit Wert 0x05 herum, und zwar mit einem bestimmten Timing und unterschiedlichen Paketlängen. Die Einstellungen SSID und Key/Kennwort sind über die Paketlängen kodiert; die Dose erkennt diese Datenpakete, ohne am AP angemeldet zu sein.
Hat die Dose dann nach einem Reset ein solches Config-Paket erkannt, verbindet sie sich mit dem AP.
Gleichzeitig wird "smartlinkfind" auf UDP 48899 gebroadcastet, und alle schon angemeldeten Dosen antworten auf 49999 mit einem Paket "smart_config" und ihrer MAC-Adresse. Die erste bislang unbekannte Dose wird App-intern in der Geräteliste vermerkt, und die weitere Suche gestoppt.
Es sei angemerkt, dass SSID+Key nicht wirklich verschlüsselt übertragen werden, was theoretisch sicherheitstechnisch bedenklich ist.

Eine Anmeldung einer Dose am AP könnte man also nachprogrammieren.
Wie es dann weitergeht: Soweit bin ich noch nicht.

Zu den RF-Geräten (433 MHz).
In den "normalen" UDP-Datenpaketen an die Dose haben wir ja bislang:
Paketzähler, CompanyCode, DeviceCode, AuthCode...
und dann eine Befehlsnummer. Bei SilverCrest halt nur die 01 00 00 FF FF zum Anknipsen, 01 00 00 00 FF zum Ausknipsen, und eben die Statusabfrage (0x23).
RF-Geräte werden mit 08 <Adress-Code> angesteuert, und da gibt's dann verschiedene Unterbefehle, auch z.B. für Dimmer.
Die Länge der Payload ergibt sich aus dem Befehls-Wert. Dank der AES-CBC-Verschlüsselung kommt aber immer ein 16-Byte-Block heraus; man sollte also die übrigen hinteren Bytes nicht versuchen, großartig zu interpretieren...

So, wer schreibt das jetzt nun mal irgendwie sinnvoll zusammen. Immer der, der fragt?  :o

ext23

Meinst du im ernst, dass der HF-LPB100 SmartConfig kann? Müsste man mal googlen aber glauben kann ich das ja fast nicht. Ich hab die Dinger schon öfter mal verbaut für ganz einfache Sachen aber das wäre mir jetzt neu.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

SebiM

Zitat von: ext23 am 02 Januar 2016, 20:51:08
Meinst du im ernst, dass der HF-LPB100 SmartConfig kann?

Ja. Ob's 100% dasselbe ist wie TI's weiß ich noch nicht, da gibt es ja anscheinend auch verschiedene Versionen.
Ich habe das dekompilierte Zeugs noch nicht 100%ig aufgedröselt, aber...
die App broadcastet erstmal 200x mit 50ms Pause ein 76 Byte langes Paket aus 5er-Bytes.
Danach überträgt er dann SSID und Key über die variable Paketlänge; aber der Decompiler hat da etwas versagt, da müsste ich mich erstmal durch die Goto-Wüste durcharbeiten, um das genauer herauszufinden...

ext23

Wäre zumindest sehr interessant, erklärt auch warum die eine anderen Firmware für das Modul benutzen. Aber ich meine das muss die HW ja auch können, der muss ja den tuner auf allen Kanälen lauschen parallel tunen können oder breitbandempfänger oder was auch immer.

Naja viel Erfolg. Btw. die icomen App geht doch für die Lidl Dosen, ich hab natürlich vergessen die Firewall auf meinem Android Telefon frei zu schalten ;-)

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

SebiM

Zitat von: ext23 am 02 Januar 2016, 21:06:10
Wäre zumindest sehr interessant, erklärt auch warum die eine anderen Firmware für das Modul benutzen. Aber ich meine das muss die HW ja auch können, der muss ja den tuner auf allen Kanälen lauschen parallel tunen können oder breitbandempfänger oder was auch immer.

Reicht das nicht, wenn er schnell durchschaltet, bis er was findet? Der 1. Init der App mit immer denseben Paketen ist ja schon 10 Sekunden lang, das dürfte doch reichen.

ZitatNaja viel Erfolg. Btw. die icomen App geht doch für die Lidl Dosen, ich hab natürlich vergessen die Firewall auf meinem Android Telefon frei zu schalten ;-)
/Daniel

Ja, das ist ein Spaß. Mit der Icomen-App habe ich noch nicht verglichen; mal alles der Reihe nach... Ein anderer Punkt wäre noch offen: Wie genau sind die Antwort-/Status-Pakete eigentlich aufgebaut, bzw. wie werden sie interpretiert.

SebiM

Sooo, der Anmeldevorgang am AP wäre dann mal zu 100% entschlüsselt.

(Sorry ext23, die 200 "Init-Pakete" werden nur gut 2 Sekunden lang gesendet, mea culpa, habe ne falsche Konstante im Code genommen. 10ms und nicht 50ms zwischen 2 Paketen. Wie die Dose das dann also mit den Kanälen macht... tja, gute Frage, nächste Frage.)


Nun aber alle Infos zusammengefasst, wenigstens dieser Punkt ist dann schomal abgehakt:

Im Auslieferungszustand kennt die Dose noch kein WLAN, oder man will einen neuen Access Point verwenden und drückt daher die Taste lange, bis sie rot blinkt. Wie kommt die Dose dann ins WLAN? Indem die offizielle App ihr das versteckt übermittelt.
Es wird übrigens NUR das Passwort, also der Pre-Shared Key (PSK), übertragen. Sie nimmt dann wohl das erste WLAN mit öffentlicher SSID (versteckte gehen also nicht!), die diesen PSK akzeptiert.

Die App broadcastet auf UDP-Port 49999 Datenpakete, die alle aus dem Byte 05 bestehen, aber eine unterschiedliche Länge aufweisen. Diese Länge kann dann wieder als Byte interpretiert werden.
Der ganze Vorgang wird nach 30 Sekunden abgebrochen.

Einfach zusammengefasst ("xy senden" bedeutet dabei "5er-UDP-Paket mit Länge xy senden"):

Start
  60x
    76 (0x6c) senden
    10ms Pause
  5x PSK übertragen, s.u.
  zurück zu Start, solange kein Abbruch erfolgt ist

PSK übertragen
  89 (0x59) senden, entspricht ASCII 13
  50ms Pause
  89 (0x59) senden, entspricht ASCII 13
  50ms Pause
  89 (0x59) senden, entspricht ASCII 13
  100ms Pause
  PSK, pro Zeichen (Byte)
    Bytewert + 76 (0x6c) übertragen
    100ms Pause, auch nach dem letzten Zeichen
  86 (0x56) senden, entspricht ASCII 10
  50ms Pause
  86 (0x56) senden, entspricht ASCII 10
  50ms Pause
  86 (0x56) senden, entspricht ASCII 10
  200ms Pause
  Länge des PSK senden: Länge als Byte + 256 + 76 (0x6c)
  50ms Pause
  Länge des PSK senden
  50ms Pause
  Länge des PSK senden
  500ms Pause


Viel Spaß damit allerseits, vielleicht ist es ja nützlich  8)

ext23

Moin,

also das WLAN Modul kann das auch offiziell:
- Support Smart Link Function

eben nochmal das Datenblatt studiert.

Da gibts auch eine eigene App für wie es aussieht:
http://www.hi-flying.com/downloadsfront.do?method=picker&flag=all&id=df1f1d86-8c64-42af-a91a-0aa0f2fdc2d6&fileId=076393b3-3321-4d78-88fb-0a26af8423e3
Und da ist auch ein Link drin für ein SDK.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

SebiM

Zitat von: ext23 am 03 Januar 2016, 10:08:00
Moin,

also das WLAN Modul kann das auch offiziell:
- Support Smart Link Function

ICH habe ja auch nie etwas anderes behauptet ;)

die App verwendet ja auch noch die alte com.example.smartlinklib-Bibliothek. Aber ich wollte mal wissen, was genau passiert, und habe das halt mal auf unterster Ebene zusammengefasst. Will ja nicht jeder ne Android-/iOS-App aus fertigen Libs zusammenstöpseln, und soo aufwendig war das RE nun nicht. Hätte man nur die Docs und den Source aus dem SDK gelesen, hätte man auch erstmal verifizieren müssen, ob die konkreten Dosen sich auch daran halten...
Aber gut, anscheinend ja, das wäre dann SmartLink v3, kann man (*hust*) ja noch entsprechend ergänzen, sollte das mal irgendwo im Wiki landen

ext23

Die Frage ist nur ob das auch ohne Handy funktioniert mit über ein LAN wo irgendwo ein WLAN AP hängt ...

Aber nie genutzt diese Funktion, ich mach da immer ein WLAN auf bei meinen Modulen, aber eben über AT Kommandos vom µC. Ist eigentlich auch besser als dieser SmartConfig scheiss, aber gut naja.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)