Gibt es ein Modul für den Xiaomi Mi Robot Vacuum

Begonnen von snic, 02 Februar 2017, 16:42:54

Vorheriges Thema - Nächstes Thema

Markus M.

Diese Version sollte wahlweise AES oder Rijandel benutzen können, je nachdem was installiert ist.
Wäre nett wenn das jemand mal auf einem System testen könnte auf dem es weder noch gibt.
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

Andy89

#46
habs nun in benutzung.. als ich einen Pause Befehl gemacht habe ist mein fhem abgestützt, aber ich kann nicht zu 100% sagen, dass es nur an dem modul lag xD

Couldn't load Crypt::Rijndael_PP: Can't locate Crypt/Rijndael_PP.pm in @INC (you may need to install the Crypt::Rijndael_PP module) (@INC contains: fhem.p/lib fhem.p/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /usr/local/FHEM/share/fhem/FHEM/lib . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl) at (eval 233210) line 1.
at ./FHEM/72_XiaomiDevice.pm line 503.
2017.04.23 14:22:02 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7073: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.04.23 14:22:02 1: BlockingInformParent (PRESENCE_ProcessLocalScan): Can't connect to localhost:7073: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.04.23 14:22:02 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7073: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.04.23 14:22:02 1: BlockingInformParent (PRESENCE_ProcessLocalScan): Can't connect to localhost:7073: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.04.23 14:22:05 1: BlockingInformParent (BlockingStart): Can't connect to localhost:7073: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
2017.04.23 14:22:05 1: BlockingInformParent (PRESENCE_ProcessLocalScan): Can't connect to localhost:7073: IO::Socket::INET: connect: Verbindungsaufbau abgelehnt
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 763, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/opt/yowsup-master/yowsup/demos/cli/cli.py", line 153, in startInputThread
    cmd = self._queuedCmds.pop(0) if len(self._queuedCmds) else input(self.getPrompt()).strip()
EOFError: EOF when reading a line


nach einem Neustart läuft das Modul aber ohne Probleme und Befehle sind möglich  ;D ;D ;D also keine Ahnung  ::) ::)

Beste Grüße
Andy


edit:
Frage: kann man die clean_area anpassen, so dass es komma zahlen sind? Die app sagt 26qm und das Modul 26277500  ;D

edit2:
intervalData kann man scheinbar nicht setzen. egal was ich eintippe, es wird immer auf 60 gesetzt
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Markus M.

Zitat von: Andy89 am 23 April 2017, 14:31:59
habs nun in benutzung.. als ich einen Pause Befehl gemacht habe ist mein fhem abgestützt, aber ich kann nicht zu 100% sagen, dass es nur an dem modul lag xD

edit:
Frage: kann man die clean_area anpassen, so dass es komma zahlen sind? Die app sagt 26qm und das Modul 26277500  ;D

edit2:
intervalData kann man scheinbar nicht setzen. egal was ich eintippe, es wird immer auf 60 gesetzt

Lag am Modul, passiert in der Version nur bei Versionswechsel und Reload ohne Restart. Sorry!
clean_area nun in Quadratmetern, clean_time bleibt in Sekunden.
Geänderte Readings: dnd (on/off) und consumables_* (%)

intervalData hat übrigens ein Minimum von 60 Sekunden, intervalSettings hat ein Minimum von 300 Sekunden.
Alles darüber sollte 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

Andy89

Zitat von: Markus M. am 23 April 2017, 16:35:35
Lag am Modul, passiert in der Version nur bei Versionswechsel und Reload ohne Restart. Sorry!

Kein Problem. Beim entwickeln ist mit Fehlern zu rechnen  ;D ;D

funktioniert mit der Version nun ohne Absturz. Danke für die Anpassung. Für die Zeit hab ich nun einfach ein Userreading erstellt.

nächste Frage  :-X es wird zur Zeit der Status 8 - Charging angezeigt. In der App ists Fully Charged. Nen extra Status Fully Charged gibts, nehm ich mal an, nicht. Kann es sein, dass die einfach Charging mit 100% Akku als Fully Charged deklarieren?
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Markus M.

Zitat von: Andy89 am 23 April 2017, 17:17:38nächste Frage  :-X es wird zur Zeit der Status 8 - Charging angezeigt. In der App ists Fully Charged. Nen extra Status Fully Charged gibts, nehm ich mal an, nicht. Kann es sein, dass die einfach Charging mit 100% Akku als Fully Charged deklarieren?

Ja, so machen die das.
Reicht dir "Docked" dafür auch? Hab ich vor 5 Minuten gebastelt :)
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

Andy89

Zitat von: Markus M. am 23 April 2017, 17:21:37
Ja, so machen die das.
Reicht dir "Docked" dafür auch? Hab ich vor 5 Minuten gebastelt :)
ja reicht  ;D ;D ;D danke  :) :) :)
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Markus M.

Spot cleaning hatte noch nicht funktioniert und die manuelle Steuerung ist jetzt auch mit drin :)

Steuerung über folgende Commands, hab das Ganze auf Grad und Prozent umgebastelt um es einigermassen intuitiv zu halten:
remotecontrol start/stop
turn degrees (-280 .. 280)
drive speed (0% .. 100%)
remotecontrol move degrees speed

Bitte berichten ob die Drehungen in etwa passen, kalibriert ist es auf meinen Sauger.
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

Andy89

Zitat von: Markus M. am 23 April 2017, 21:39:49
remotecontrol start/stop
funktioniert.

Zitat von: Markus M. am 23 April 2017, 21:39:49
turn degrees (-280 .. 280)
nur -90 bis 90 auswählbar. Evtl als Slider? Aber die Drehungen passen!

Zitat von: Markus M. am 23 April 2017, 21:39:49
drive speed (0% .. 100%)
bei speed bewegt sich der Roboter nach vorne. bei 100% sinds ca (geschätzte!) 40-50cm. Evtl speed in cm angeben? Ich kann gerne dazu eine Versuchsreihe aufstellen  ;D ;D

Zitat von: Markus M. am 23 April 2017, 21:39:49
remotecontrol move degrees speed
move ist zwar wählbar, aber degrees und speed können nicht eingegeben werden. Das Textfeld fehlt hier :D

Coole Sache mit RemoteControl, aber ich weiß nicht, ob ich das nutzen werde  ??? .... Vielleicht nur um mit einer aufmontierten goPro Videos zu machen xD

Beste Grüße
Andy

FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Markus M.

#53
Zitat von: Andy89 am 23 April 2017, 22:36:01
nur -90 bis 90 auswählbar. Evtl als Slider? Aber die Drehungen passen!

Du kannst ca. -280 bis 280 frei eingeben

Zitatbei speed bewegt sich der Roboter nach vorne. bei 100% sinds ca (geschätzte!) 40-50cm. Evtl speed in cm angeben? Ich kann gerne dazu eine Versuchsreihe aufstellen  ;D ;D

Gerne :)
Intern arbeitet der Staubsauger mit Werten < 0.3 für die Geschwindigkeit (und 3.1 bis -3.1 für die Drehung links/rechts)

Zitatmove ist zwar wählbar, aber degrees und speed können nicht eingegeben werden. Das Textfeld fehlt hier :D

Geht nur über die direkte Eingabe, mehr Felder lässt FHEMWEB nicht zu.
Also einfach oben set vacuumname remotecontrol move -180 0 eintippen und er sollte sich 180˚ gegen den Uhrzeigersinn drehen

ZitatCoole Sache mit RemoteControl, aber ich weiß nicht, ob ich das nutzen werde  ??? .... Vielleicht nur um mit einer aufmontierten goPro Videos zu machen xD

Es sollte reichen um den Sauger gezielt aus dem Dock in ein Zimmer bzw. vordefinierte Stellen der Wohnung fahren zu können. Spotcleaning im Eingangsbereich?
Wenn im manuellen Modus dann noch die Magnetbänder ignoriert werden würden wäre das genial - das bezweifle ich aber und kann es auch nicht testen.


Edit: Ich hab noch eine dritte Variable übersehen, die Fahrzeit. Aktuell fix bei 1500ms.
Werde die manuelle Steuerung also wohl nochmal komplett umbauen. Ich würde an eurer Stelle mal noch keine Fahrmanöver aufwändig ausprobieren ;)
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

Andy89

Zitat von: Markus M. am 24 April 2017, 01:37:02
Es sollte reichen um den Sauger gezielt aus dem Dock in ein Zimmer bzw. vordefinierte Stellen der Wohnung fahren zu können. Spotcleaning im Eingangsbereich?
Wenn im manuellen Modus dann noch die Magnetbänder ignoriert werden würden wäre das genial - das bezweifle ich aber und kann es auch nicht testen.


Edit: Ich hab noch eine dritte Variable übersehen, die Fahrzeit. Aktuell fix bei 1500ms.
Werde die manuelle Steuerung also wohl nochmal komplett umbauen. Ich würde an eurer Stelle mal noch keine Fahrmanöver aufwändig ausprobieren ;)

darauf hätte man auch selbst kommen können, dass man das einfach frei eingeben kann  ::) ::)

ja ok. Da die "Dockingstation" immer am gleichen Ort steht, ist das natürlich eine gute Idee. Die Frage ist nur, wie sich das Ding verhält, wenn dann auf einmal die Tür zu ist und er aber auf diese zufährt...


zu deinem edit: Das erklärt auch, warum er bei einer kleiner Geschwindigkeit nicht so weit kommt  :D :D Dann werde ich wohl keinen Feldversuch durchführen bezüglich der Strecke, die er in 1,5 Sekunden mit maximal Geschwindigkeit zurücklegt  ;)
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Markus M.

Zitat von: Andy89 am 24 April 2017, 16:43:35
darauf hätte man auch selbst kommen können, dass man das einfach frei eingeben kann  ::) ::)

ja ok. Da die "Dockingstation" immer am gleichen Ort steht, ist das natürlich eine gute Idee. Die Frage ist nur, wie sich das Ding verhält, wenn dann auf einmal die Tür zu ist und er aber auf diese zufährt...

Ich mappe das dann demnächst noch auf -100 bis 100 für die Drehgeschwindigkeit und nehme die Zeit extra mit rein.
Beides gleichzeitig zu nutzen macht aber sowieso keinen Sinn, viel zu kompliziert.
Die Sache wird schon grenzwertig dadurch dass er nicht immer mittig auf dem Dock stehen muss.

Wenn was im Weg steht gibt es eine vorsichtige Kontaktfahrt mit Bumper und der Sauger steht am Ende irgendwo anders, höchstwahrscheinlich noch am Hindernis.
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

oli82

#56
Hi Markus.

Bei mir bringt ein das Ausführen eines Kommandos Fhem zum Absturz, sobald der Sauger ausgeschaltet, bzw nicht verbunden ist:

Subroutine XiaomiDevice_Initialize redefined at ./FHEM/72_XiaomiDevice.pm line 83.
Subroutine XiaomiDevice_Define redefined at ./FHEM/72_XiaomiDevice.pm line 100.
Subroutine XiaomiDevice_Undefine redefined at ./FHEM/72_XiaomiDevice.pm line 173.
Subroutine XiaomiDevice_Get redefined at ./FHEM/72_XiaomiDevice.pm line 184.
Subroutine XiaomiDevice_Set redefined at ./FHEM/72_XiaomiDevice.pm line 287.
Subroutine XiaomiDevice_Init redefined at ./FHEM/72_XiaomiDevice.pm line 494.
Subroutine XiaomiDevice_GetUpdate redefined at ./FHEM/72_XiaomiDevice.pm line 519.
Subroutine XiaomiDevice_GetSettings redefined at ./FHEM/72_XiaomiDevice.pm line 535.
Subroutine XiaomiDevice_GetSpeed redefined at ./FHEM/72_XiaomiDevice.pm line 551.
Subroutine XiaomiDevice_WriteJSON redefined at ./FHEM/72_XiaomiDevice.pm line 565.
Subroutine XiaomiDevice_ParseJSON redefined at ./FHEM/72_XiaomiDevice.pm line 615.
Subroutine XiaomiDevice_connect redefined at ./FHEM/72_XiaomiDevice.pm line 738.
Subroutine XiaomiDevice_initSend redefined at ./FHEM/72_XiaomiDevice.pm line 781.
Subroutine XiaomiDevice_disconnect redefined at ./FHEM/72_XiaomiDevice.pm line 794.
Subroutine XiaomiDevice_Read redefined at ./FHEM/72_XiaomiDevice.pm line 815.
Subroutine XiaomiDevice_Write redefined at ./FHEM/72_XiaomiDevice.pm line 918.
Subroutine XiaomiDevice_Attr redefined at ./FHEM/72_XiaomiDevice.pm line 948.
Subroutine XiaomiDevice_DbLog_splitFn redefined at ./FHEM/72_XiaomiDevice.pm line 977.
2017.04.27 16:47:05 2: Xiaomi_Sauger: connecting
send: Cannot determine peer address at ./FHEM/72_XiaomiDevice.pm line 930.


Kannst du dir das erklären?
Danke
Oli

EDIT:
Bin da etwas weiter gekommen. Sobald der Sauger Online ist, gibt es keine Probleme oder Abstürze.

EDIT2:
Erhalte ständig die Meldung:
Crypt::Rijndael_PP: set keysize to 128.
Kannst du das noch aus dem Modul entfernen?

Markus M.

Zitat von: oli82 am 27 April 2017, 16:53:17Bei mir bringt ein das Ausführen eines Kommandos Fhem zum Absturz, sobald der Sauger ausgeschaltet, bzw nicht verbunden ist:
2017.04.27 16:47:05 2: Xiaomi_Sauger: connecting
send: Cannot determine peer address at ./FHEM/72_XiaomiDevice.pm line 930.


Kannst du dir das erklären?
Sobald der Sauger Online ist, gibt es keine Probleme oder Abstürze.
Kann das Problem nicht nachvollziehen. Bitte nochmal mit dem Anhang testen.


ZitatErhalte ständig die Meldung:
Crypt::Rijndael_PP: set keysize to 128.
Kannst du das noch aus dem Modul entfernen?
Nein, da ich das Perl Modul selbst nicht installiert habe und AES nutze.
AES wieder präferiert, was Shadow3561 den Tag versauen wird. Geht aber wohl nicht anders.
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

Shadow3561

#58
Nein, versaut mir nicht den Tag. Das hat der Paketzusteller von DPD heute schon erledigt.
Habe mir das Modul für meine Ansprüche schon umgebogen und noch ein paar Readings angepasst.
Die ständigen Log-Einträge vom Rijndael habe ich auch im Griff.
Habe einfach im Rijndael_PP.pl einfach die entsprechende Zeile auskommentiert da sie nur den Hinweis auf das Keysize ist.
Man kann dem Modul auch eine Standart-Keysize mitgeben, aber das lasse ich lieber, man weiss ja nie wozu es noch benötigt wird.

MfG

Markus M.

- State-Readings zusammengefasst
- Timer Readings & Sets, Beispiele für neue Timer:
   set vacuum timer 12:00 31 12 Silvester Mittags
   set vacuum timer 17:00 all täglich 17:00
   set vacuum timer 22:00 Mo,Tu Montag und Dienstag 22:00
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