Xiaomi WiFi Devices Modul (Vacuum/Airpurifier/Fan) - 72_XiaomiDevice (Support)

Begonnen von Markus M., 11 Juni 2017, 12:48:58

Vorheriges Thema - Nächstes Thema

Florie

Crypt::Cipher::AES not found

Installieren das doch Mal nach und starte FHEM neu

Gesendet von meinem ONEPLUS A5000 mit Tapatalk


olili

sicher?  benutze doch Rijndael anstatt AES

   ... initialized, using Rijndael ...
   ...
   ... 2018.05.15 23:25:28 5: SaugMops: decrypted

Men Roborock 2. Gen kann ich auch so ansprechen/koppeln.

Raven

Danke - Danke - Danke für das tolle Modul!  :)

Zitat von: Markus M. am 12 April 2018, 16:11:34

Oder du legst dir über die passenden Attribute erst ein Alias an:
Code (attr) Auswählen
attr vacuum point_names dock:[25600,25200] entrance:[22000,23750]
attr vacuum zone_names home:[16200,27250,31650,27650,1],[23700,23050,25200,24200,2] livingroom:[16200,26250,23000,30150,1]


Bei den Alias für die Zonen Reinigung wird die Anzahl der Reinigungen mit angegeben.
Es wäre klasse, wenn dies ein separater Parameter wäre und der Aufruf dann, wie folgt aussehen könnte:

set vacuum zone livingroom 1 oder set vacumm zone livingroom 3

Um den bestehenden Zone-Reinigungsbefehl nicht anpassen zu müssen, evtl. einen weiteren Zone-Reinigungsbefehl (zone_repeat o.ä.) einführen, der dann die Anzahl der Reinigungen erlaubt?  :o
Cubietruck-Prod: HM-LAN, Heizung, Rolläden, Schalter, Viessmann (optolink)
Cubietruck-DEV:
Fritzbox 7490

thymjan

... und das Eingabefeld vergrößern beim Eingeben der Zahlen wie z.B. bei dbLog?

olili

Info zu meinem Post #1004, neuer Roborock...

Also, ich habe mir das Log-File nun mal selbst genauer angeschaut und habe das Problem gefunden und versucht zu fixen.
Dieses Roborock-Model ("vacuum.c1") gibt leicht abweichende Antworten auf die Requests "serialNb" und "timezone".
Das habe ich mal als Non-Perl-Experte versucht zu erweitern:

if($msgtype eq "get_serial_number")
  {
    return undef if(!defined($json->{result}));
    return undef if(ref($json->{result}) ne "ARRAY");
if($hash->{model} ne "roborock.vacuum.c1")
       { readingsSingleUpdate( $hash, "serial_number", $json->{result}[0]{serial_number}, 1 ) if(defined($json->{result}[0]{serial_number})); }
       else { readingsSingleUpdate( $hash, "serial_number", $json->{result}[0], 1 ) }
return undef;
  }
.....

  if($msgtype eq "get_timezone")
  {
    return undef if(!defined($json->{result}));
    return undef if(ref($json->{result}) ne "ARRAY");
if($hash->{model} ne "roborock.vacuum.c1")
       {  readingsSingleUpdate( $hash, "timezone", $json->{result}[0], 1 ) if(defined($json->{result}[0])); }
   else{ readingsSingleUpdate( $hash, "timezone", $json->{result}[0]{olson}, 1 ); }
    return undef;
  }


Die übrigen Request scheinen unterstützt zu werden, soweit es der "C1"  auch kann.
So werden Zonecleaning-Kommondos einfach ignoriert, da nicht von HW-Seite unterstützt.
Der Rest scheint soweit zu funktionieren

P-

Markus M.

Zitat von: olili am 16 Mai 2018, 22:30:09Also, ich habe mir das Log-File nun mal selbst genauer angeschaut und habe das Problem gefunden und versucht zu fixen.
Dieses Roborock-Model ("vacuum.c1") gibt leicht abweichende Antworten auf die Requests "serialNb" und "timezone".

Poste mal bitte noch den Log-Ausschnitt mit der Timezone und probier für die Serial den Anhang aus.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

olili

hier das log mit timezone, bei get_volume ist auch noch ein Problem.

Markus M.

Bitte testen.
Hat dein C1 Sprachausgabe und Sprachpakete?

Edit: Sprachpakete gibt es wahrscheinlich nicht.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

olili

werde ich heute abend ausprobieren. Melde mich dann.

Ja der C1 hateine Sprachausgabe.
Habe aber bisher noch keine Möglichkeit gefunden, eine andere Sprache als Chinesisch zu aktivieren.

Der Robot geht mit der Xiaomi-App bisher auch nur mit China-Land-Servern...

   

olili

@Markus M.
tut. Bisher keine Abstürze ...

Woran machst Du fest, dass es kein dt. Sprachpaket gibt?

O.

Markus M.

Zitat von: olili am 17 Mai 2018, 22:47:10tut. Bisher keine Abstürze ...
Woran machst Du fest, dass es kein dt. Sprachpaket gibt?
Die Abstürze hatte ich ;)
In der Version die du runtergeladen hast sollte aber alles passen.

Daran dass du die Funktion in der App nicht findest, dein Sauger kein Linux hat und nur OK zurück gibt. Dass es dafür irgendwann noch Sprachpakete geben wird ist nicht unmöglich, aber eher unwahrscheinlich.
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0

borsTiHD

Hallo zusammen,

ich habe meinen ersten Xiaomi Robo erfolgreich in FHEM integriert.
An dieser Stelle vielen Dank für das Modul, mach bitte weiter.  ;D

Dann allerdings auch noch eine Bitte. Könntest du eine Anleitung zum encpryton eines 96-stelligen Tokens noch in die erste Seite schreiben?
Du schreibst zwar, dass der verschlüsselte Token auch verwendet werden kann (aber wie?), doch bei mir kam immer ein Fehler und mein Device stand ständig auf disabled.

2018.05.21 10:12:14 3: XiaomiRobo: initialized, using AES
2018.05.21 10:12:14 3: XiaomiRobo: token decryption using Crypt::Cipher::AES
2018.05.21 10:12:14 1: XiaomiRobo: token decryption failed
Asked to truncate 153 bytes, which is greater than Crypt::Cipher::AES's blocksize (16 bytes).


Möglich das ich bei der Device Erstellung was falsch gemacht habe?
Nach einem händischen encrypten und eintragen eines 32 stelligen Tokens hats geklappt. :)

Markus M.

Ich suche das mal raus. Siehe 3. Post
Im Modul scheint es irgendwie nur bei mir zu funktionieren...
Wenn irgendwer Code findet mit dem es funktioniert, immer her damit ;)
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0


Markus M.

Es gab eine Diskussion zur Vereinheitlichung der Battery Readings.
Da ich das unterstützen möchte, gibt es ein paar kleine Änderungen.
Bitte passt eure Notifys etc. nach dem nächsten Update entsprechend an:

battery -> batteryState (ok/low)
batteryLevel -> batteryPercent (0..100)

Die alten Readings werden nach einem Update nicht mehr befüllt und können z.B. so gelöscht werden:
deletereading xiaomi_.* (battery|batteryLevel)
FHEM dev + HomeBridge + Lenovo Flex15 + HM-CFG-USB + RFXtrx433 + Fritz!Box 7590/7580/546E

HM Aktor/Sensor/Winmatic/Keymatic/Thermostat, HUE, Netatmo Weather/Security/Heating, Xiaomi AirPurifier/Vacuum, Withings Aura/BPM/Cardio/Go/Pulse/Thermo, VSX828, Harmony, Siro ERB15LE
https://paypal.me/mm0