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

Markus M.

CPAN ist kein Package Manager.
Und das sind auch keine APT Pakete.
Du musst das kaputte Paket manuell aus dem Filesystem löschen.
Und dann nur AES mit CPAN wieder installieren.
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

zensbert

also ich habe jetzt den kompletten Pfad "/home/zensbert/.local/share/.cpan" weggesichert und "sudo cpan Crypt::Cipher::AES" ausgeführt, das Ergebnis

zensbert@Smarty:~$ sudo cpan Crypt::Cipher::AES
Loading internal null logger. Install Log::Log4perl for logging messages

CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.

Would you like to configure as much as possible automatically? [yes] yes
CPAN: Storable loaded ok (v2.62)
CPAN: LWP::UserAgent loaded ok (v6.31)
Fetching with LWP:
http://www.cpan.org/authors/01mailrc.txt.gz
Reading '/home/zensbert/.local/share/.cpan/sources/authors/01mailrc.txt.gz'
CPAN: Compress::Zlib loaded ok (v2.074)
............................................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/02packages.details.txt.gz
Reading '/home/zensbert/.local/share/.cpan/sources/modules/02packages.details.txt.gz'
  Database was generated on Fri, 15 Mar 2019 15:17:03 GMT
.............
  New CPAN.pm version (v2.25) available.
  [Currently running version is v2.18]
  You might want to try
    install CPAN
    reload cpan
  to both upgrade CPAN.pm and run the new version without leaving
  the current session.


...............................................................DONE
Fetching with LWP:
http://www.cpan.org/modules/03modlist.data.gz
Reading '/home/zensbert/.local/share/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /home/zensbert/.local/share/.cpan/Metadata
Running install for module 'Crypt::Cipher::AES'
Fetching with LWP:
http://www.cpan.org/authors/id/M/MI/MIK/CryptX-0.063.tar.gz
CPAN: Digest::SHA loaded ok (v5.96)
Fetching with LWP:
http://www.cpan.org/authors/id/M/MI/MIK/CHECKSUMS
Checksum for /home/zensbert/.local/share/.cpan/sources/authors/id/M/MI/MIK/CryptX-0.063.tar.gz ok
'YAML' not installed, will not store persistent state
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)
CPAN: CPAN::Meta loaded ok (v2.150010)
CPAN: Module::CoreList loaded ok (v5.20170922_26)
Configuring M/MI/MIK/CryptX-0.063.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for CryptX
Writing MYMETA.yml and MYMETA.json
  MIK/CryptX-0.063.tar.gz
  /usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK
Running make for M/MI/MIK/CryptX-0.063.tar.gz
  MIK/CryptX-0.063.tar.gz
  make -- NOT OK
  No such file or directory

zensbert

..also:
nachdem ich "sudo apt-get install build-essential" ausgeführt hatte, war nun auch make installiert und dann lief das "sudo cpan Crypt::Cipher::AES" auch soweit durch! Danke für die Hilfe!

chq

#1578
Hallo,

da ich weiss, dass es für einen Laien manchmal (sehr) schwierig sein kann neue Devices einzubinden, hier eine mögl. detaillierte Anleitung, wie ich meinen Xiaomi S50 Roborock2/ Smart Vacuum Cleaner V2 (3.3.9:001720) mit einem Mac (OS 10.13.6) in FHEM angelernt habe:

1. Backup der FHEM-SD-Karte
2. iPhone App "Mi Home" laden
3. Mac App "iBackupViewer" laden
4. Mi Account erstellen
5. Saugroboter in "Mi Home" App anlernen
6. Unverschlüsseltes iPhone Backup via iTunes erstellen
7. iTunes schließen
8. iBackupViewer starten
9. Backup auswählen (Doppelklick in Bild)
10. Icon mit Baum-Symbol auswählen
11. In der linken Spalte "AppDomain-com.xiaomi.mihome" auswählen
12. In der rechten Splate nach "Documents/xxxxxxxxxx_mihome.sqlite" (xxxxxxxx variiert) suchen
13. Diese Datei exportieren
14. DB Browser laden http://sqlitebrowser.org
15. "Datenbank öffnen"
16. Reiter "Daten durchsuchen" -> Tabelle "ZDEVICE" auswählen
17. Unter "ZLOCALIP" die IP des Saugroboters eintragen
18. Unter "ZTOKEN" kann nun der (verschlüsselte) Token ausgelesen werden. Verschlüsselt ist er, wenn er länger als 32 Zeichen lang ist (dies war bei mir der Fall).
19. http://aes.online-domain-tools.com
20.   Input text: Die Zeichen des verschlüsselte Tokens reinkopieren
   Hex
   Function: AES
   Mode: ECB (electronic codebook)
   Key: 00000000000000000000000000000000
   Hex
   > Decrypt!
21.   Rechts die ersten zwei Reihen abschreiben (2 x 16 Zeichen). Das ist der Token.

Per SSH:

1. sudo apt-get update

2.   sudo apt-get install libjson-perl
   sudo apt-get install libdigest-md5-perl
   sudo apt-get install libcrypt-cbc-perl
   sudo cpan Crypt::Rijndael_PP (entweder hierbei, oder bei dem Befehl in der nächsten Zeile wurden mir Fehlermeldungen angezeigt, die ich ignorierte)
   sudo apt-get install libcrypt-ecb-perl
   sudo cpan Crypt::Cipher::AES (dauert sehr lange)

3. sudo shutdown -r 0

4. define saugroboter XiaomiDevice 192.168.0.xx <Token>

Ich hoffe, es hilft dem Einen oder Anderen.

Gruß Chris

Edit: Bereits wenn das Wlan und/oder das Passwort geändert/gewechselt wird, wird (zumindest in meinem Fall) ein neuer Token benötigt.
So einfach wie möglich, so kompliziert wie nötig

chq

Hab da ein paar Fragen:

Wenn ein Xiaomi S50 Roborock2/ Smart Vacuum Cleaner V2 (3.3.9:001720) sich bereits per FHEM steuern lässt,..

..ist es dann möglich die Kommunikation nach China seitens des Saugroboters zu unterbinden und falls ja, wie?

..und die Kommunikation nach China seitens des Saugroboters unterbunden wurde, ist es dann noch möglich, die Wohnung in einzelne Zonen aufzuteilen, so dass bei Bedarf nur bestimmte Bereiche gesaugt/gewischt werden?

..und die Kommunikation nach China seitens des Saugroboters unterbunden wurde, ist es dann noch möglich, Bereiche zu definieren, in die der Saugroboter nicht fahren soll?

Werden die Maps/Karten auf dem Gerät gespeichert?

Gruß Chris
So einfach wie möglich, so kompliziert wie nötig

Esjay

Zu 1. Die Kommunikation lässt sich beispielsweise in einer FritzBox verbieten. Danach ist es immer noch möglich den Robi aus fhem heraus zu steuern.
Zu 2. Wenn sie vorher definiert sind, sollte das kein Problem sein.
Zu 3. Nein, da du das in der App machst, und diese dann keinen Zugriff mehr hat.
Zu 4. Ich bin der Meinung , das die Karten mittlerweile gespeichert werden, aber die bringen dir nicht mehr viel, wenn du ihm die Kommunikation zur App abdrehst.

Meiner Meinung nach, solltest du dich mit dem Thema root beschäftigen. Stichwort xiaomi valetudo.


Grüße

stoxx

ZitatDer Air Purifier kann aktuell auch ohne Token eingerichtet werden, ebenso der Ventilator und die Lampe.
Ist das noch aktuell? Ich bekomme den Purifier v2 seit dem letzten MiApp Update nicht mehr verbunden.. Das Modul schaltet sich sofort auf disable 1
Grüße
stoxx


2019.03.25 19:13:59 3: Luftreiniger: disconnecting
2019.03.25 19:13:59 2: Luftreiniger: connecting
2019.03.25 19:13:59 3: Luftreiniger: initialized
2019.03.25 19:13:59 5: Luftreiniger: initSend
2019.03.25 19:13:59 5: Luftreiniger Send SUCCESS
2019.03.25 19:13:59 5: Luftreiniger > 21300020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2019.03.25 19:13:59 5: Luftreiniger < 213000200000000003aff5fd00000cf700000000000000000000000000000000 (32)
2019.03.25 19:13:59 1: Luftreiniger: Token could not be retrieved automatically from already cloud-connected device!
2019.03.25 19:14:03 4: Luftreiniger: write {"id":5,"method":"miIO.wifi_assoc_state","params":[""]} (55)
2019.03.25 19:14:03 3: XiaomiDevice Luftreiniger is disabled, communication cancelled.
FHEM 5.8 auf Raspberry mit CUL, FS20, FHT, HMS, BLE, Z-Wave ..

Markus M.

Zitat von: stoxx am 25 März 2019, 20:06:58
Ist das noch aktuell? Ich bekomme den Purifier v2 seit dem letzten MiApp Update nicht mehr verbunden.. Das Modul schaltet sich sofort auf disable 1

Das ist mit Sicherheit nicht mehr aktuell :(
Aus der alten App sollte es aber noch funktionieren.
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

chq

So einfach wie möglich, so kompliziert wie nötig

Markus M.

Zitat von: chq am 26 März 2019, 10:24:55Wo findet man mehr Informationen zu start_edit_map?
Nirgends - ebensowenig wie zu den anderen neuen Funktionen.
Ich habe keinen S50 und keine Ahnung was es tut.
Wenn du durch Ausprobieren was rausfindest, bitte hier im Forum teilen :)
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

chq

Zitat von: Skusi am 19 April 2018, 21:10:56Ich habe dann einfach eine Zone definiert die über die gesamte Wohnung geht.

Wie kann man denn eine Zone definieren?

Gruß Chris
So einfach wie möglich, so kompliziert wie nötig

Esjay

In der App kannst du Zonen definieren. Wenn ich mich richtig erinnere musst du dann die Koordinaten der Zone herausbekommen. In der alternativen App ging dass mit "lange auf den Punkt drücken" dann laut Syntax in fhem als Attribut hinterlegen.

Grüße

chq

Hallo,

da die Steuerung des Saugroboter bei mir im Bezug auf WAF ein sehr heikles Thema zu sein scheint, würde ich gerne nochmals ein paar Gedanken bzgl. des Problems der sich drehenden Karte austauschen wollen.

Ich habe den kompletten Thread gelesen und gehe von folgendenden Gegebenheiten aus:

1. Die Karte kann sich drehen, wenn nicht ausschließlich per Zonenreinigung gereinigt wird.
2. Die Karte kann sich drehen, sobald ein "normaler Reinigungsvorgang über die Reinigungstaste am Saugroboter" eingeleitet wurde.

Insbesondere der zweite Punkt stellt mich vor eine etwas größere Herausforderung, da Frau (ganz pragmatisch) den Saugroboter am Gerät bedienen möchte und keine Lust auf eine Bedienung via Smartphone hat. Sie hat auch keine Lust darauf, irgendwelche Schalter (oder Taster) zu drücken, die sich nicht am Saugroboter befinden, um die Reinigungsvorgänge einzuleiten.

Da ich den Roboter jedoch gerne inkl. dem Feature "Zonenreinigung" vollumfänglich in FHEM einbinden möchte, bin ich bei folgendem Gedanken angekommen:

Ich baue z.B. einen ESP8266 in den Roboter und sorge dafür, dass die Taste auf dem Roboter von da an lediglich dem ESP8266 als Eingabequelle dient. Dabei könnte ich evtl. gleich die LED(s) am Roboter entfernen, da wir diese nicht benötigen. Der ESP8266 würde dann bei Druck auf die Reinigungstaste via WLAN und FHEM eine Zonenreinigung des kompletten Stockwerks anweisen.

Natürlich würde ich dabei in Kauf nehmen müssen, dass der Reinigungsvorgang nicht gestartet werden könnte, wenn kein WLAN vorhanden und/oder FHEM nicht erreichbar wäre, doch das würde ich in Kauf nehmen, da ich das dann ja immer noch auf eine Fehlfunktion vom Saugroboter schieben könnte. :P

Hat evtl. Einer von Euch ähnliche Probleme?  ;D

Gruß Chris
So einfach wie möglich, so kompliziert wie nötig

Hotbird

ich hätte auch nochmal eine Frage bezüglich der Zonenreinigung. Ich habe mir jetzt den s50 zugelegt ( der speichert ja die Karten ). Wenn ich den in der FloleVac App zur Zonenreinigung schicke passt alles. Wenn ich ihn über FHEM mit einem DoIF da hin schicke kommen Fehler und er irrt herum...

Fehlermeldung laut Event Monitor
2019-03-28 18:39:09 DOIF di_Staubi_Kueche cmd_nr: 1
2019-03-28 18:39:09 DOIF di_Staubi_Kueche cmd: 1
2019-03-28 18:39:09 DOIF di_Staubi_Kueche cmd_event: Staubi_Alexa_sauge_Kueche
2019-03-28 18:39:09 DOIF di_Staubi_Kueche error: 17181: Unknown command 17181, try help. 29072: Unknown command 29072, try help. 19331: Unknown command 19331, try help. 1: Unknown command 1, try help.
2019-03-28 18:39:09 DOIF di_Staubi_Kueche cmd_1
2019-03-28 18:39:09 dummy Staubi_Alexa_sauge_Kueche on


Mein DoIf sieht so aus
([Staubi_Alexa_sauge_Kueche:"on"]) (set Staubi zone 26972,17181,29072,19331,1)

Wenn ich den Befehl so absetze in FHEM
set Staubi zone 26972,17181,29072,19331,1
dann macht er, was er soll...

Hat jemand einen Tipp?



thymjan

Wenn Du zunächst Zonen nach folgendem Schema definierst:
attr vacuum zone_names table:[19700,20800,22600,23600,1] kitchen:[20300,23900,21600,26500,2] bathroom:[23500,30750,23750,31000,2],[24300,29800,26500,31900,2]
kannst Du sie z.B. über
set vacuum zone table
aufrufen (über drop-down-menü).