NEWS
[Frage] Xiaomi Vacuum cleaner
-
Dumme Frage aber wo und wie muss ich den Code einfügen? Dann probiere ich mal mein Glück.
-
So hab mich die letzten morgende mit der Verschlüsselung herumgeschlagen. wenn jemand mit ios dieses mal testen könnte ob die Tokenberechnung so korrekt ist wäre das super. ist jetzt erst mal ein normales Js-script und der token wird im log aussgegeben. Da mit das so noch nicht gefällt, ich aber noch nciht weiß wie ich es schöner realisieren kann baue ich es im Adapter wenn ich es eleganter gelößt habe und Rückmeldung bekommen habe, ob die Berechnung so korrekt ist. `
Hat funktioniert! Was mir aufgefallen ist: Die letzten 32 Hex-Zeichen (0143db63ee66b0cdff9f69917680151e) sind bei meinem verschlüsselten Token identisch, das scheint Padding zu sein. Vielleicht lässt sich so die Entschlüsselung noch vereinfachen.Edit: Der Code lässt sich vereinfachen. Der Knackpunkt ist aes-128-ecb mit leerem IV ("") und AutoPadding=false:
var crypto = require('crypto'); var iostoken = '3a8e3ba61b7ad24a4132d9b55fd6b9cc4c952fbe34fc0bb298d3811d07a4c3310143db63ee66b0cdff9f69917680151e'; var expected = '6a66717767744f594f38714f52677a69'; // für Debug-Zwecke const key = Buffer.alloc(16, 0); // Oder new Buffer("0.....0", "hex") für alte NodeJS const iv = ""; const encrypted = Buffer.from(iostoken.substr(0,64), "hex"); const decipher = crypto.createDecipheriv("aes-128-ecb", key, ""); decipher.setAutoPadding(false); const decrypted = decipher.update(encrypted, "binary", "ascii") /*+ decipher.final("ascii")*/; log(`decrypted = ${decrypted} | expected = ${expected} | match = ${expected===decrypted}`);
Gibt bei mir aus:
decrypted = 6a66717767744f594f38714f52677a69 | expected = 6a66717767744f594f38714f52677a69 | match = true
-
Dumme Frage aber wo und wie muss ich den Code einfügen? Dann probiere ich mal mein Glück. `
Als neues Skript im JavaScript-Adapter. Ist nur testweise und kann später gelöscht werden. -
Dumme Frage aber wo und wie muss ich den Code einfügen? Dann probiere ich mal mein Glück.
Als neues Skript im JavaScript-Adapter. Ist nur testweise und kann später gelöscht werden.
Dann muss ich aber von Blockly auf JavaScript umschalten oder? Aber auf Blockly komme ich dann ja nicht mehr zurück. Mit JavaScript habe ich es nämlich nicht so.
Danke für die Hilfe.
-
Dann muss ich aber von Blockly auf JavaScript umschalten oder? Aber auf Blockly komme ich dann ja nicht mehr zurück. Mit JavaScript habe ich es nämlich nicht so. `
Ja, du erstellst einfach ein neues Skript, wählst dort JavaScript aus und fügst den Code ein. Brauchst du ja nicht mehr ändern (außer den 96-Zeichen Token). Wenn alles läuft, löschst du es einfach wieder, nachdem du den Token aus dem Log kopiert hast.Deine anderen Skripte bleiben davon unberührt.
-
So hab mich die letzten morgende mit der Verschlüsselung herumgeschlagen. wenn jemand mit ios dieses mal testen könnte ob die Tokenberechnung so korrekt ist wäre das super. ist jetzt erst mal ein normales Js-script und der token wird im log aussgegeben. Da mit das so noch nicht gefällt, ich aber noch nciht weiß wie ich es schöner realisieren kann baue ich es im Adapter wenn ich es eleganter gelößt habe und Rückmeldung bekommen habe, ob die Berechnung so korrekt ist. `
Hat funktioniert! Was mir aufgefallen ist: Die letzten 32 Hex-Zeichen (0143db63ee66b0cdff9f69917680151e) sind bei meinem verschlüsselten Token identisch, das scheint Padding zu sein. Vielleicht lässt sich so die Entschlüsselung noch vereinfachen.Edit: Der Code lässt sich vereinfachen. Der Knackpunkt ist aes-128-ecb mit leerem IV ("") und AutoPadding=false:
var crypto = require('crypto'); var iostoken = '3a8e3ba61b7ad24a4132d9b55fd6b9cc4c952fbe34fc0bb298d3811d07a4c3310143db63ee66b0cdff9f69917680151e'; var expected = '6a66717767744f594f38714f52677a69'; // für Debug-Zwecke const key = Buffer.alloc(16, 0); // Oder new Buffer("0.....0", "hex") für alte NodeJS const iv = ""; const encrypted = Buffer.from(iostoken.substr(0,64), "hex"); const decipher = crypto.createDecipheriv("aes-128-ecb", key, ""); decipher.setAutoPadding(false); const decrypted = decipher.update(encrypted, "binary", "ascii") /*+ decipher.final("ascii")*/; log(`decrypted = ${decrypted} | expected = ${expected} | match = ${expected===decrypted}`);
Gibt bei mir aus:
decrypted = 6a66717767744f594f38714f52677a69 | expected = 6a66717767744f594f38714f52677a69 | match = true ```` ` Super danke. Darauf hatte ich gehofft, dass jemand mit Ahnung von Verschlüsselung mir sagen kann wie man es vereinfacht. Ich wusste das es geht aber nur nicht wiem danke. Dann kann ich es morgen in den Adapter übernehmen.
Gesendet von meinem Handy
-
Ah ich hatte gedacht, die Einstellung bezieht sich dann auf alle Script deshalb habe ich es bis jetzt nicht gemacht.
Gesendet von iPhone mit Tapatalk
-
Eine zweite Instanz von dem Adapter laufen zu lassen ist aber nicht möglich oder? Ich bekomme hier im Log immer folgende Fehlermeldung: error instance system.adapter.mihome-vacuum.1 terminated with code 0 (OK)
Ich bräuchte eine zweite Instanz, da ich zwei von den teilen habe. Oder wie kann ich sonst den zweiten auch noch über ioBroker steuern?
Danke.
-
Das geht, Du musst den Port für den zweiten ändern.
-
Manchmal frag ich mich wofür ich mir die Mühe für die readme mache
Gesendet von meinem Handy
-
Sorry, jetzt wo du es geschrieben hast, habe ich es auch gesehen.
-
So hab mich die letzten morgende mit der Verschlüsselung herumgeschlagen. wenn jemand mit ios dieses mal testen könnte ob die Tokenberechnung so korrekt ist wäre das super. `
Mit 2 Vacuum Cleaner getestet und funktioniert. Vielen Dank dafür!
-
die 0.5.8 ist nun offiziell online, hier kann der 96 stellige code vom ios und wie gewohnt auch der 32 stelligen eingegeben werden
-
MeisterTr, einfach mal wieder ein schnelles Dankeschön
-
die 0.5.8 ist nun offiziell online, hier kann der 96 stellige code vom ios und wie gewohnt auch der 32 stelligen eingegeben werden `
Danke! Krasser Typ
Gesendet von iPad mit Tapatalk
-
Bitte berichten ob es geht, dann werden wir die Version ins "stable" verschieben.
-
für alle die es noch nciht mitbekommen haben, soeben wurde der Xiaomi vacuum2 vorgestellt er hat nun eine Bereichsauswahl/Ausgrenzung und Wischfunktion
1768_20170919_041437.jpg
1768_screenshot_20170919-042224.jpg
1768_screenshot_20170919-042444.jpg -
für alle die es noch nciht mitbekommen haben, soeben wurde der Xiaomi vacuum2 vorgestellt er hat nun eine Bereichsauswahl/Ausgrenzung und Wischfunktion `
Nettes Gerät, wird aber wohl zwischen 400 und 500 Euro kosten. Dafür kann ich mir fast zwei alte bestellen.
Zumal auch dieser nur den schmutzigen Lappen durch die Bude zu ziehen scheint. Kein vergleich zu tatsächlichem "wischen" mit sauberem Wasser/Tuch. Es gibt ja auch Schmutz den man nicht mit dem Auge sieht
Ich weiss nicht ob ich 100m2 mit einem einizigen winzigen Lappen geputzt haben möchte. Da hilft es auch nicht wenn immer wieder wasser drauf gekippt wird. Und wärend ich bei dem alten alle paar Tage mal den Behälter leeren muss, kann ich hier nach jeden Wischvorgang das Tuch austauschen. Meine Freundin hat so ein "Swiffer" Teil. Feuchtes Swiffer Tuch drauf und ab gehts. Selbst wenn ich das Tuch drei mal auswechsle, dauert das keine 10 Minuten wenn der Sauger vorher gefahren ist.
-
für alle die es noch nciht mitbekommen haben, soeben wurde der Xiaomi vacuum2 vorgestellt er hat nun eine Bereichsauswahl/Ausgrenzung und Wischfunktion `
Meist du den hier? https://www.geekbuying.com/item/Xiaomi- … 86076.html - Klingt nicht schlecht...Grüße,
ldittmar
-
na toll, der alte ist gerade bei mir angekommen