Mi vacuum: Unterschied zwischen den Versionen

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
Zeile 113: Zeile 113:
Ein List meines Dummys:
Ein List meines Dummys:
<code>
<code>
Internals:  
Internals:  
   CFGFN  
   CFGFN  
   NAME      Mi_Vacuum_Staubsauger  
   NAME      Mi_Vacuum_Staubsauger  
Zeile 121: Zeile 121:
   Readings:  
   Readings:  
     2017-09-18 21:10:12  state          on  
     2017-09-18 21:10:12  state          on  
Attributes:  
Attributes:  
   alexaName  Mi_Vacuum_Staubsauger  
   alexaName  Mi_Vacuum_Staubsauger  
   genericDeviceType switch  
   genericDeviceType switch  
Zeile 128: Zeile 128:


</code>
</code>
Mein DOIF:
Mein DOIF:


<code>
<code>
([Mi_Vacuum_Staubsauger:"on"]) (set Mi_Vacuum start) DOELSE (set Mi_Vacuum charge)
define di_Mi_Vacuum DOIF ([Mi_Vacuum_Staubsauger:"on"]) (set Mi_Vacuum start) DOELSE (set Mi_Vacuum charge)
</code>
</code>
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.
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.

Version vom 20. September 2017, 21:36 Uhr


Clock - Under Construction.svg An dieser Seite wird momentan noch gearbeitet.


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

Das ist insofern spannend, als das Modul nicht offiziell in FHEM eingecheckt ist. Man muss also das Modul runterladen, auf den FHEM Rechner bringen etc...

Vorarbeiten (Linux)

Zunächst fangen wir mal auf unserem FHEM Rechner an. Mit Putty verbinden wir uns per SSH mit dem FHEM Computer.

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-get install libcrypt-ecb-perl
  • sudo cpan Crypt::Cipher::AES

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, Android)

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.

Für Android gibt es eine alternative App (Flole) um den Roboter zu steuern. Die originale Steuerung der Mi-Home App wird dadurch nicht beeinträchtigt! Also keine Angst, die coolen Karten bleiben erhalten.

  • Ich kann nur beschreiben, wie es bei mir funktioniert hat. Wenn es wer einfacher oder anders hinbekommen hat, ergänzt bitte den Wiki Eintrag*

Zunächst muss die Flole-App installiert werden. Zur Installation muss die Installation von unbekannten Quellen in den Sicherheitseinstellungen von Android erlaubt werden. Bitte nicht vergessen, die Enstellung nach der Installation der App wieder zu korrigieren.

Ich hatte die Mi-Home App schon installiert:

  • Mi-Vacuum aus der Mi-Home App löschen
  • WLAN zurückgesetzt (die beiden Buttons lange gedrückt halten)
  • den Roboter per Reset Taster zurückgesetzt

=> dennoch hat die App den Roboter nicht gefunden

Lösung:

  • der Mi Vacuum spannt sein eigenes WLAN Netz auf (damit verbinden)
  • Tipp: ist man aus der App mal rausgeflogen (Verbindung gescheitert), muss man die App wirklich unter Android abschießen, bevor sie wieder funktioniert
  • jetzt die Verbindung mit der Flole App herstellen
  • WLAN am Android wieder auf den eigenen AP zurück stellen
  • die IP Adresse des Roboters rausfinden (z.B. FritzBox fragen)
  • in der Flole App die IP Adresse des Mi Vacuum eintragen
  • Die Settings nach Google Drive exportieren (sollte wenige Sekunden dauern. Wenn das Fenster grau bleibt, hat man vermutlich die IP Adresse noch nicht eingetragen ;) )
  • Anschließend kann man den Mi Vacuum wider mit Mi-Home suchen und verbinden


Jetzt kann man aus Google Drive die Datei "FloleXiaomiRemote.settings" runterladen und im Editor der eigenen Wahl öffnen. Ich nehme dafür gerne Notepad++


In meiner steht z.B.: [{"c":"192.168.222.77","d":64647999,"e":"55387753545937326a33396943557999","f":"Mi Vacuum","g":0}] Die Zahlenkolonne "55387753545937326a33396943557999" ist der Token. Den behalten wir mal im Auge, bzw. der Zwischenablage.

Installation des inoffiziellen Moduls

Der folgende Teil ist für völlige Noobs. Wenn ihr einen eleganteren Weg kennt, her damit.

Zunächst bitte das Modul aus dem Forum herunterladen. Hier befindet sich der Thread. Markus M. hat sich die Mühe gemacht, ein Modul zu schreiben. Solange es nicht offiziell eingecheckt ist, muss man es händisch installieren. Das kann man wie folgt machen:

  • das Modul zunächst auf seinem Windows PC speichern

Wie kommt das Modul nun auf den eigenen RasPi?

Ich nutze dafür einen kleinen HTTP Server auf meinem Windows Rechner: MiniWeb

Dieses Tool runterladen und irgendwohin entpacken. Zum starten habe ich eine kleine Batchdatei geschrieben: D:\Software\MiniWebServer\miniweb\miniweb.exe -p 80 Die sorgt nur dafür, dass der Server auf Port 80 läuft.

Im entpackten Verzeichnis ist ein Unterverzeichnis mit dem Namen "htdocs". Dahin kopieren wir das soeben runtergeladene Modul aus dem Forum-Thread.

Langsam sollte das cpan Tool auf unserer SSH Verbindung durchgelaufen sein.

Nun wechseln wir (auf dem Linux Rechner) in das FHEM Verzeichnis (cd /opt/fhem/FHEM).

wget http://IP-Adresse_EUres_Windows_Rechners/72_XiaomiDevice.pm

bringt die Datei in euer FHEM Verzeichnis.

Jetzt noch die Rechte anpassen:

sudo chown -R fhem:dialout /opt/fhem

Fertig.


Jetzt können wir auf die FHEM Oberfläche wechseln.

reload 72_XiaomiDevice.pm

und unser runtergeladenes Modul steht in FHEM zur Verfügung.

Einrichten des Moduls

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äßt unseren Mi Vacuum loslegen. "Alexa schalte den Staubsauger aus" schickt ihn wieder zurück zu seiner Station.

Quellen