Mi vacuum: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
(Link zu fhempy zum Auslesen des Tokens hinzugefügt) |
||
(28 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{ | {{Todo|Aktualiserung / Text weniger flapsig formulieren / Einbindung Info-Box. Information, die generell für das Modul [[XiaomiDevice]] gilt, sollte auf die Modulseite "verschoben" werden.}} | ||
=Mi Vacuum= | =Mi Vacuum= | ||
Wie der preiswerte Staubsaugerroboter auch auf FHEM hört... | Wie der preiswerte Staubsaugerroboter auch auf FHEM hört... | ||
Zeile 13: | Zeile 13: | ||
==Die Einrichtung des Moduls== | ==Die Einrichtung des Moduls== | ||
===Vorarbeiten (Linux)=== | ===Vorarbeiten (Linux)=== | ||
Zunächst fangen wir mal auf unserem FHEM Rechner an. Mit Putty verbinden wir uns per SSH mit dem FHEM Computer. | Zunächst fangen wir mal auf unserem FHEM Rechner an. Mit Putty verbinden wir uns per SSH mit dem FHEM Computer (Todo: Das ist hier ist für Windows-Nutzer...) | ||
Folgende Befehle können benötigt werden (Debian): | Folgende Befehle können benötigt werden (Debian): | ||
* sudo apt-get install | * <code>sudo apt-get install libjson-perl</code> | ||
* sudo apt-get install | * <code>sudo apt-get install libdigest-md5-perl</code> | ||
* sudo apt-get install | * <code>sudo apt-get install libcrypt-cbc-perl</code> | ||
* sudo | * <code>sudo apt install libcryptx-perl</code> | ||
===Vorarbeiten am Smartphone (Token | |||
* <code>sudo apt-get install libcrypt-ecb-perl</code> (nur nötig, wenn ihr einen verschlüsselten Token mit 96 Zeichen habt) | |||
* <code>sudo cpan Crypt::Rijndael_PP</code> (nur nötig, wenn libcryptx-perl aus irgendwelchen Gründen nicht funktioniert) | |||
* <code>sudo cpan Crypt::Cipher::AES</code> (nur nötig, wenn Crypt::Rijndael_PP aus irgendwelchen Gründen nicht funktioniert) | |||
Wenn bei dem ein oder anderen Modul die Meldung kommt, dass es schon installiert ist, einfach mit dem nächsten Befehl weiter machen. Das CPAN Teil würde ich am Schluss machen, das braucht ziemlich lang zum installieren. | |||
===Vorarbeiten am Smartphone (Token)=== | |||
Das Problem ist folgendes: | Das Problem ist folgendes: | ||
Wenn der Roboter mit dem WLAN verbunden wird, generiert er einen Token. Das ist ein Schlüssel, ohne den er sich nicht steuern lässt. Damit FHEM drauf zugreifen kann, benötigt man diesen Token. | Wenn der Roboter mit dem WLAN verbunden wird, generiert er einen Token. Das ist ein Schlüssel, ohne den er sich nicht steuern lässt. Damit FHEM drauf zugreifen kann, benötigt man diesen Token. | ||
Mit den neueren Versionen der MiHome App klappt das Auslesen der Tokens leider nicht mehr. | |||
====Auslesen bei Android Endgeräten==== | |||
Ich gehe davon aus, dass der Staubsauger mit der original MiHome App eingebunden ist und funktioniert. (Ich habe bei der Einrichtung des Servers => "other" gewählt. Offenbar wollen neuere Staubsauger sich mit "China Mainland" nicht mehr verbinden. Tut hier an dieser Stelle zwar nichts zur Sache, aber vielleicht hilft es dem ein oder anderen. Wenn man die Region gewechselt hat, muss man auch den Staubsauger neu einbinden) | |||
* MiHome löschen | |||
* alte MiHome suchen (APKMirror z.B., Version 5.0.19 hat bei mir funktioniert, unsichere Quellen müssen erlaubt sein) | |||
* runtergeladene MiHome App öffnen und anmelden (sollte ganz normal den Sauger finden) | |||
* USB-Debugging am Handy einschalten (Entwickleroptionen...) | |||
* Handy mit USB Kabel und PC verbinden | |||
* [https://github.com/ultrara1n/MiToolkit/releases MiToolkit] 1.6 runterladen und öffnen | |||
* [https://github.com/ultrara1n/MiToolkit/releases MiToolkit] erzeugt nun am Handy ein Backup | |||
* anschließend zeigt es den Token direkt am PC an | |||
====Auslesen bei iOS Endgeräten==== | |||
Zum Auslesen des Tokens mit iOS Endgeräten kann die Anleitung unter folgendem Link befolgt werden: [https://forum.smartapfel.de/forum/thread/370-xiaomi-token-auslesen/] | |||
'''Auslesen mit fhem / fhempy''' | |||
In fhem gibt es auch noch das [https://github.com/fhempy/fhempy/blob/master/README.md fhempy-System], dafür gibt es auch ein Modul zum Auslesen von Xiaomi-Token aus deren Cloud, u.a. auch das Token für unseren Mi-Vacuum. | |||
===Installation des inoffiziellen Moduls=== | ===Installation des inoffiziellen Moduls=== | ||
Das Modul ist seit 28.02.2018 ein offizielles Modul. Eine separates Installation ist nicht (mehr) notwendig. | |||
==Einrichten des Moduls [[XiaomiDevice]] == | |||
<pre> | |||
define Mi_Vacuum XiaomiDevice 192.168.222.77 55387753545937326a33396943557999 | |||
attr Mi_Vacuum subType VacuumCleaner | |||
</pre> | |||
Und schon (=etwa nach 10 Sekunden) sollte euer Roboter in FHEM mit ganz vielen Readings auftauchen. | |||
==Anwendung: Sprachsteuerung mit Alexa (einfach, ein und aus)== | ==Anwendung: Sprachsteuerung mit Alexa (einfach, ein und aus)== | ||
Wie bindet man das jetzt schnell in Alexa ein? | |||
Wir legen uns in FHEM einen Dummy an. Dieser wird ein Switch (on off). Dazu noch ein DOIF oder ein notify, welches diesen Switch überwacht. Je nach Status des Dummys schalten wir den Roboter. | |||
Ein List meines Dummys: | |||
<pre> | |||
Internals: | |||
CFGFN | |||
NAME Mi_Vacuum_Staubsauger | |||
NR 719473 | |||
STATE on | |||
TYPE dummy | |||
Readings: | |||
2017-09-18 21:10:12 state on | |||
Attributes: | |||
alexaName Mi_Vacuum_Staubsauger | |||
genericDeviceType switch | |||
room alexa | |||
setList on off | |||
</pre> | |||
Mein DOIF: | |||
<pre> | |||
define di_Mi_Vacuum DOIF ([Mi_Vacuum_Staubsauger:"on"]) (set Mi_Vacuum start) DOELSE (set Mi_Vacuum charge) | |||
</pre> | |||
Das Attribut do always nicht vergessen! | |||
Den Dummy setzen wir in den Raum, der unsere Alexa Geräte beinhaltet. Nun den Alexa FHEM Service neu starten. Anschließend sollte eine Suche nach neuen Geräten in Alexa unseren Dummy finden. Für diesen legen wir in Alexa einen neuen Raum an, z.B. Staubsauger. | |||
Fertig. | |||
Ein "Alexa schaltet den Staubsauger ein" lässt unseren Mi-Vacuum loslegen. "Alexa schalte den Staubsauger aus" schickt ihn wieder zurück zu seiner Station. | |||
==Zonenreinigung== | |||
Um nur Teilbereiche einer Wohnung zu reinigen, ist es möglich über das Modul Zonen zu definieren. Hierzu ist es notwendig, die Koordinaten der gewünschten Zone zu ermitteln. Hierzu eignet sich die [https://xiaomi.flole.de/ FloleVac App] die entweder auf einem Android Device oder auf einem Android Emulator (z.B. [https://www.bluestacks.com/download.html BlueStacks]) verwendet werden kann. In der App kann man in der Karte eine Zone für die Reinigung markieren und durch langes Gedrückthalten des "Reinigen-Buttons" in der FloleVac App die Koordinaten dieser Zone in die Zwischenablage kopieren. | |||
Mit diesen Koordindaten im Format [16200,27250,31650,27650,1] kann man dann loslegen die Zonen in FHEM zu definieren: | |||
Entweder direkt über die Werte: | |||
<pre> | |||
set vacuum zone 16200,27250,31650,27650,1 23700,23050,25200,24200,2 | |||
</pre> | |||
Oder über die passenden Attribute erst ein Alias anlegen: | |||
<pre> | |||
attr vacuum zone_names home:[16200,27250,31650,27650,1],[23700,23050,25200,24200,2] livingroom:[16200,26250,23000,30150,1] | |||
</pre> | |||
Ein Alias kann dann wie folgt genutzt werden: | |||
<pre> | |||
set vacuum zone home | |||
</pre> | |||
==Probleme und Lösungen== | |||
===Crypt::Cipher::AES or Crypt::Rijndael_PP is required!=== | |||
Die Meldung im STATE des Devices bedeutet, dass noch einige Debian/Perl-Module installiert werden müssen. Siehe [[#Vorarbeiten (Linux)]]. | |||
Danach ist darauf zu achten, dass das Device wieder aktiviert wird. | |||
attr <devicename> disable 0 | |||
==Quellen== | ==Quellen== | ||
* {{Link2Forum|Topic=73052|LinkText=Forums-Thread}} | |||
* {{Link2Forum|Topic=76940|LinkText=Diskussionsthread}} | |||
* [http://miniweb.sourceforge.net/ MiniWeb], kleiner WebServer für Windows | |||
* [https://xiaomi.flole.de/ Flole], alternative App für Android, die das Token nach GoogleDrive exportiert | |||
* [http://www.roboter-forum.com/forumdisplay.php?130-Xiaomi Roboter-Forum] deutschsprachiges Forum, welches sich mit dem Mi Vacuum beschäftigt (auch vor dem Kauf des Roboters lohnt sich ein Besuch dort) | |||
[[Kategorie:Other Components]] |
Aktuelle Version vom 16. Juni 2024, 16:25 Uhr
Todo: Aktualiserung / Text weniger flapsig formulieren / Einbindung Info-Box. Information, die generell für das Modul XiaomiDevice gilt, sollte auf die Modulseite "verschoben" werden. |
Mi Vacuum
Wie der preiswerte Staubsaugerroboter auch auf FHEM hört...
Für wen ist die Anleitung gedacht?
Ich gehe davon aus, dass ihr ein funktionierendes FHEM auf einem Linux Rechner (Debian) betreibt.
Weiterhin denke ich, dass euer Hauptarbeitsrechner unter Windows läuft.
Als Smartphone OS Android (wer Apple hat, kann gerne die Token-Auslese-Geschichte hier beschreiben).
Um das Teil auch von Alexa aus ein und aus zu schalten, sollte auch die Installation von Alexa in FHEM fertig sein.
Die Einrichtung des Moduls
Vorarbeiten (Linux)
Zunächst fangen wir mal auf unserem FHEM Rechner an. Mit Putty verbinden wir uns per SSH mit dem FHEM Computer (Todo: Das ist hier ist für Windows-Nutzer...)
Folgende Befehle können benötigt werden (Debian):
sudo apt-get install libjson-perl
sudo apt-get install libdigest-md5-perl
sudo apt-get install libcrypt-cbc-perl
sudo apt install libcryptx-perl
sudo apt-get install libcrypt-ecb-perl
(nur nötig, wenn ihr einen verschlüsselten Token mit 96 Zeichen habt)sudo cpan Crypt::Rijndael_PP
(nur nötig, wenn libcryptx-perl aus irgendwelchen Gründen nicht funktioniert)sudo cpan Crypt::Cipher::AES
(nur nötig, wenn Crypt::Rijndael_PP aus irgendwelchen Gründen nicht funktioniert)
Wenn bei dem ein oder anderen Modul die Meldung kommt, dass es schon installiert ist, einfach mit dem nächsten Befehl weiter machen. Das CPAN Teil würde ich am Schluss machen, das braucht ziemlich lang zum installieren.
Vorarbeiten am Smartphone (Token)
Das Problem ist folgendes:
Wenn der Roboter mit dem WLAN verbunden wird, generiert er einen Token. Das ist ein Schlüssel, ohne den er sich nicht steuern lässt. Damit FHEM drauf zugreifen kann, benötigt man diesen Token.
Mit den neueren Versionen der MiHome App klappt das Auslesen der Tokens leider nicht mehr.
Auslesen bei Android Endgeräten
Ich gehe davon aus, dass der Staubsauger mit der original MiHome App eingebunden ist und funktioniert. (Ich habe bei der Einrichtung des Servers => "other" gewählt. Offenbar wollen neuere Staubsauger sich mit "China Mainland" nicht mehr verbinden. Tut hier an dieser Stelle zwar nichts zur Sache, aber vielleicht hilft es dem ein oder anderen. Wenn man die Region gewechselt hat, muss man auch den Staubsauger neu einbinden)
- MiHome löschen
- alte MiHome suchen (APKMirror z.B., Version 5.0.19 hat bei mir funktioniert, unsichere Quellen müssen erlaubt sein)
- runtergeladene MiHome App öffnen und anmelden (sollte ganz normal den Sauger finden)
- USB-Debugging am Handy einschalten (Entwickleroptionen...)
- Handy mit USB Kabel und PC verbinden
- MiToolkit 1.6 runterladen und öffnen
- MiToolkit erzeugt nun am Handy ein Backup
- anschließend zeigt es den Token direkt am PC an
Auslesen bei iOS Endgeräten
Zum Auslesen des Tokens mit iOS Endgeräten kann die Anleitung unter folgendem Link befolgt werden: [1]
Auslesen mit fhem / fhempy
In fhem gibt es auch noch das fhempy-System, dafür gibt es auch ein Modul zum Auslesen von Xiaomi-Token aus deren Cloud, u.a. auch das Token für unseren Mi-Vacuum.
Installation des inoffiziellen Moduls
Das Modul ist seit 28.02.2018 ein offizielles Modul. Eine separates Installation ist nicht (mehr) notwendig.
Einrichten des Moduls XiaomiDevice
define Mi_Vacuum XiaomiDevice 192.168.222.77 55387753545937326a33396943557999 attr Mi_Vacuum subType VacuumCleaner
Und schon (=etwa nach 10 Sekunden) sollte euer Roboter in FHEM mit ganz vielen Readings auftauchen.
Anwendung: Sprachsteuerung mit Alexa (einfach, ein und aus)
Wie bindet man das jetzt schnell in Alexa ein?
Wir legen uns in FHEM einen Dummy an. Dieser wird ein Switch (on off). Dazu noch ein DOIF oder ein notify, welches diesen Switch überwacht. Je nach Status des Dummys schalten wir den Roboter.
Ein List meines Dummys:
Internals: CFGFN NAME Mi_Vacuum_Staubsauger NR 719473 STATE on TYPE dummy Readings: 2017-09-18 21:10:12 state on Attributes: alexaName Mi_Vacuum_Staubsauger genericDeviceType switch room alexa setList on off
Mein DOIF:
define di_Mi_Vacuum DOIF ([Mi_Vacuum_Staubsauger:"on"]) (set Mi_Vacuum start) DOELSE (set Mi_Vacuum charge)
Das Attribut do always nicht vergessen!
Den Dummy setzen wir in den Raum, der unsere Alexa Geräte beinhaltet. Nun den Alexa FHEM Service neu starten. Anschließend sollte eine Suche nach neuen Geräten in Alexa unseren Dummy finden. Für diesen legen wir in Alexa einen neuen Raum an, z.B. Staubsauger.
Fertig.
Ein "Alexa schaltet den Staubsauger ein" lässt unseren Mi-Vacuum loslegen. "Alexa schalte den Staubsauger aus" schickt ihn wieder zurück zu seiner Station.
Zonenreinigung
Um nur Teilbereiche einer Wohnung zu reinigen, ist es möglich über das Modul Zonen zu definieren. Hierzu ist es notwendig, die Koordinaten der gewünschten Zone zu ermitteln. Hierzu eignet sich die FloleVac App die entweder auf einem Android Device oder auf einem Android Emulator (z.B. BlueStacks) verwendet werden kann. In der App kann man in der Karte eine Zone für die Reinigung markieren und durch langes Gedrückthalten des "Reinigen-Buttons" in der FloleVac App die Koordinaten dieser Zone in die Zwischenablage kopieren.
Mit diesen Koordindaten im Format [16200,27250,31650,27650,1] kann man dann loslegen die Zonen in FHEM zu definieren:
Entweder direkt über die Werte:
set vacuum zone 16200,27250,31650,27650,1 23700,23050,25200,24200,2
Oder über die passenden Attribute erst ein Alias anlegen:
attr vacuum zone_names home:[16200,27250,31650,27650,1],[23700,23050,25200,24200,2] livingroom:[16200,26250,23000,30150,1]
Ein Alias kann dann wie folgt genutzt werden:
set vacuum zone home
Probleme und Lösungen
Crypt::Cipher::AES or Crypt::Rijndael_PP is required!
Die Meldung im STATE des Devices bedeutet, dass noch einige Debian/Perl-Module installiert werden müssen. Siehe #Vorarbeiten (Linux).
Danach ist darauf zu achten, dass das Device wieder aktiviert wird.
attr <devicename> disable 0
Quellen
- Forums-Thread
- Diskussionsthread
- MiniWeb, kleiner WebServer für Windows
- Flole, alternative App für Android, die das Token nach GoogleDrive exportiert
- Roboter-Forum deutschsprachiges Forum, welches sich mit dem Mi Vacuum beschäftigt (auch vor dem Kauf des Roboters lohnt sich ein Besuch dort)