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

t1me2die

Moin, hat jemand von Euch schon einen Air Purifier 3C angebunden?
Ich bekomme ihn mit der Einstellung vom 3H ein wenig zum laufen, aber nicht so richtig.

Was geht:
set xxxx child_lock off -> Gerät schaltet sich aus
set xxxx level 1 -> Air Purifier geht in den Nachtmodus
set xxxx level 2 -> Air Purifier geht in den Favoritmodus


On / Off geht nicht
set xxxx level 3 -> keine Änderung

Hier mal ein List vom Device (IP, Token und stateFormat habe ich raus gelöscht):

Internals:
   CFGFN     
   DEF        192.xxx.xxx.xxx 1a654229240c9bfad0bxxxxxxxxxxx
   FD         22
   FUUID      62ff53c6-f33f-5a17-cf5b-e7ad49392619ca19
   NAME       ku_Luftreiniger
   NR         202559
   STATE      <div>Status: <img src="/fhem/images/default/10px-kreis-rot.png"> <br><br><img src="/fhem/images/default/on.png"> </div>
   TYPE       XiaomiDevice
   hardware   esp32
   mac        54:48:E6:C5:xx:xx
   mcu_firmware 0006
   model      zhimi.airpurifier.mb4
   token      1a654229240c9bfad0bxxxxxxxxxxx
   wifi_firmware cef6c09-dirty
   READINGS:
     2022-08-19 15:54:01   buzzer          on
     2022-08-19 15:55:24   child_lock      on
     2022-08-19 15:55:12   device_firmware 2.0.8
     2022-08-19 15:55:12   device_uptime   0.68
     2022-08-19 15:57:06   error           none
     2022-08-19 15:56:51   filter_life     243
     2022-08-19 15:55:36   led             dim
     2022-08-19 15:56:51   level           1
     2022-08-19 15:56:40   mode            favorite
     2022-08-19 15:57:06   power           on
     2022-08-19 15:55:12   wifi_rssi       -70
   helper:
     ConnectionState connected
     crypt      AES
     delay      60
     dev        176b
     id         27ea
     ip         192.xxx.xxx.xxx
     last_read  1660917426
     packetid   153
     port       54321
     sequence   1660914869
     token      1a654229240c9bfad0bxxxxxxxxxxx
     packet:
       150        air_status_3H
       151        air_status_3H
       152        air_status_3H
   hmccu:
Attributes:
   DbLogExclude .*
   devStateIcon connected:10px-kreis-gruen disconnected:10px-kreis-rot
   genericDeviceType AirPurifier
   icon       scene_cleaning
   room       Homekit,Kueche
   subType    AirPurifier3H
   verbose    1

juergen012

Moin,
habe auch gerade den 3C angemeldet. Gleiche Probleme.
Bei meiner Recherche habe ich folgende Lösung gefunden:
siehe Anhang.

Mit der Datei lässt sich der 3C steuern. Ein Update für 72_XiaomiDevice.pm muss dann unterbunden werden. (in global attr exclude_from_update)

Lösung stammt aus dem Forum.

Rechte der Datei anpassen.
Fhem unter Proxmox

t1me2die

Super danke, dass funktioniert gut.
Du hast nicht auch noch zufällig die passenden homebridgeMappings übrig?  ;)

Gruß

juergen012

Fhem unter Proxmox

PNinBB

Wir haben seit einigen Tagen einen Roborock S7 MaxV Ultra und sind generell mit den Leistungsmerkmalen sehr zufrieden.
Zur Steuerung stehen zwei Apps zur Verfügung ("Roborock" oder "Xiaomi Home").
Ich habe es mit beiden probiert und meine ersten Erfahrungen sagen mir, dass die "Roborock"-App besser auf das Gerät zugeschnitten ist.
Ich möchte vor allem die Aufteilung der Wohnung in Räume nutzen und dabei noch verschiedene Reinigungsfunktionen auswählen können (wischen, saugen, bzw. beides, wobei der Roboter bei der Kombifunktion beim Überfahren von Teppichen das Wischen unterbindet).
Mein Problem ist momentan, dass sich nur bei der "Xiaomi"-App das Token extrahieren lässt und nur damit gelingt eine Integration in FHEM. Das funktionierte auch, wobei ich bei einigen Funktionen noch Unklarheiten habe, beispielsweise bei "start_edit_map": wo liegt dann der Plan und wie kann ich ihn bearbeiten?
Aber alle Versuche mit den über FHEM-Forum oder Google erreichbaren Informationen führten bezüglich der Token-Gewinnung nicht zum Erfolg. Wahrscheinlich liegt es bei der "Roborock"-App auf einen anderem Server, den all die Hilfsprogramm zum Token-Extrahieren (noch) nicht auf dem Schirm haben.
Für jeden Tipp, wie ich weiter komme, bereits im  Voraus besten Dank !
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

Rince

Ich hätte eine ungewöhnliche Frage:
Gibt das Protokoll ne Nachricht, wenn der Staubsauger wo dagegen gefahren ist?
Wenn ja, könnte man das in die Readings mit auf nehmen?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

killah78

Hi,
ich habe mir einen Air Purifier 4 gekauft und versucht diesen einzubinden. Leider scheint dieser nicht voll ünterstützt zu werden, habe alle subTypes durchprobiert, aber leider passen Readings nicht und schalten funktioniert entweder falsch oder garnicht.

Genauso ist es bei meinem SmartFan 4. Den kann ich einbinden, aber Readings bzw. Schalten funktioniert nicht oder falsch.

Was kann ich tun, damit diese auch überstützt werden?
Gruss
killah78

hkspks


hoppel118

Ohje..., hier ist ja etwas Chaos entstanden. :)

Vor einiger Zeit habe ich hier irgendwo im Thread eine Config für meinen SmartFan 3 gefunden und installiert. Das läuft auch seither. Das hatte natürlich zur Folge, dass ich dieses Modul von den Updates ausschließen musste. Nun sehe ich, dass es mittlerweile verschiedene Eigenentwicklungen gibt, die das ebenfalls zur Folge haben.

Das kriegt doch niemand mehr zusammen. ;)

Keine Ahnung, wie wir das jemals wieder aufgeräumt bekommen. Wahrscheinlich müsste erstmal ein neuer Entwickler her und dann müsste man zusammenkratzen, was es schon gibt.

Wieso muss eigentlich jedes Gerät mühselig hinzuentwickelt werden? Geht das nicht irgendwie eleganter?

Ich bin übrigens auch kein Entwickler. ;)

Gruß Hoppel
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi

erdnar

Hallo Staubsaugerfreunde  ;)
nachdem mein Roborock V1 nach über 100.000qm Reinigungsfläche und mehr als 2100h erste Ausfallerscheinungen zeigt (er bleibt manchmal unmotiviert stehen und bemängelt sporadisch alles mögliche), habe ich mir einen Roborock S7 gekauft.
Erster Eindruck ist sehr positiv  :)

Frage: wer hat damit oder mit ähnlichen Vorgänger-Modellen Erfahrung?

Z.B. zone_names bzw point_names, also die Definition und Benennung von Punkten/Zonen/Räumen für Fhem, die "alten" Werte vom V1 liegen völlig anders.
Oder wie schickt ihr den Sauger per Fhem in ein bestimmtes Zimmer?

Dann fehlen mir die vom V1 bekannten Readings total_clean_area und total_clean_time.
Ist das irgendwo anders versteckt?
Oder berechnet ihr das aus last_clean_area etc.?

Ich danke schon mal vorab und wünsche ein schönes langes Restwochenende
ErdnaR

PNinBB

Wir haben einen Roborock S7 MaxV Ultra seit 29.08.2022 (siehe Beitrag #2494) und sind nachwievor sehr zufrieden. Die Funktionalität ist erstaunlich.
Von einer FHEM-Einbindung bin ich aber meilenweit entfernt.
Genauer: nutzt man die Xiaomi-App, extrahiert das Token wie beschrieben und definiert das Gerät geht eigentlich alles problemlos, allerdings ist die volle Funktionalität nicht gegeben - weder in der App noch in FHEM. Also eigentlich unbefriedigend !
Die Roborock-App unterstützt das Gerät perfekt: Parametereinstellungen, alle bzw. nur einzelne Räume reinigen, Punktreinigung, Karten anlegen, Karten bearbeiten etc. Aber FHEM ist fern !
Offensichtlich benutzt diese App einen anderen Server (?), auf jeden Fall (zumindest bisher für mich) ist das Token nicht zu ermitteln. Diverse Versuche (Android als VM in Window, dort die App installieren und Netzwerkverkenr analysieren; whireshark-Analyse von FritzBox-Logs) waren bisher erfolglos.
Momentan warte ich, bis die "Token-Extrahierer" etwas anbieten !? Ist jemand schon weiter ?
Peter
Raspi 4B + RaZberry2 (Deb 10), FritzBox 7490;
AEOTec: KeyFobGen5: 1x;
Danfoss: Living Connect 2.51: 3x;
Fibaro: FGK: 10x: 3x; FGBS: 001: 8x, 222: 1x; FGMS001: 2x; FGR: 222: 3x, 223: 2x; FGRGBWM-441: 1x; FGBS: 222: 2x, 223: 2x,224: 1x;
Philio: PAN06-1A: 3x;

hoppel118

Zitat von: PNinBB am 03 Oktober 2022, 17:24:24
Momentan warte ich, bis die "Token-Extrahierer" etwas anbieten !? Ist jemand schon weiter ?

Hast du es schonmal mit einem unverschlüsselten iPhone Backup probiert? Das hat bei mir bisher immer funktioniert. Setzt allerdings voraus, dass man ein iPhone hat oder jemanden kennt, der da kurz mal mitmacht... ;)
Server: Openmediavault, XEON E3-1240L-v5, Supermicro X11SSH-CTF, 64GB ECC RAM, SSD, RAID-Z2
Homebridge | Alexa | Yowsup
Homematic | HomeConnect | MQTT | Philips Hue | Sonos | Unifi Network & Protect | vbus | Xiaomi

erdnar

Wir haben den "normalen" S7 und ich fand irgendwie keinen Unterschied zwischen der Roborock- und der Xiaomi-App.
Was kann denn letztere nicht? (Wie gesagt, habe keine Ab-, Auf- und Umfüllstation)

Die Readings total_clean_area und total_clean_time berechne ich mir jetzt aus dem last_clean_area.

Was mir halt noch fehlt sind die zone_names bzw point_names, also die Definition und Benennung von Punkten/Zonen/Räumen für Fhem.
Also, wie schickt man den Sauger per Fhem in ein bestimmtes Zimmer?

TheTrumpeter

Ich nutze das Modul schon einige Zeit mit einem "normalen Roborock" und finde im FHEM-Logfile immer wieder diese Einträge:
2022.10.06 03:29:00 1: ERROR: Select error -1 (9), error count= 0
2022.10.06 03:29:00 1: Found and deleted bad fileno for myVacuum


Manchmal kommt davor auch noch ein
2022.10.01 10:42:32 1: myVacuum: connect to device failed


Offensichtliche Auswirkung habe ich bisher nicht gefunden, allerdings läuft das Modul auch "nur so mit", wirkliche Automatisierung/Steuerung habe ich abgesehen von Benachrichtigung bei den Verbrauchsmaterialien nicht.

Habe das "found and deleted bad fileno" ganz am Anfang des Threads schon wo gefunden, aber eine Erklärung/Lösung gab's dafür nicht.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

setstate

Zitat von: PNinBB am 03 Oktober 2022, 17:24:24
Wir haben einen Roborock S7 MaxV Ultra seit 29.08.2022 (siehe Beitrag #2494) und sind nachwievor sehr zufrieden. Die Funktionalität ist erstaunlich.
Von einer FHEM-Einbindung bin ich aber meilenweit entfernt.
Genauer: nutzt man die Xiaomi-App, extrahiert das Token wie beschrieben und definiert das Gerät geht eigentlich alles problemlos, allerdings ist die volle Funktionalität nicht gegeben - weder in der App noch in FHEM. Also eigentlich unbefriedigend !
Die Roborock-App unterstützt das Gerät perfekt: Parametereinstellungen, alle bzw. nur einzelne Räume reinigen, Punktreinigung, Karten anlegen, Karten bearbeiten etc. Aber FHEM ist fern !
Offensichtlich benutzt diese App einen anderen Server (?), auf jeden Fall (zumindest bisher für mich) ist das Token nicht zu ermitteln. Diverse Versuche (Android als VM in Window, dort die App installieren und Netzwerkverkenr analysieren; whireshark-Analyse von FritzBox-Logs) waren bisher erfolglos.
Momentan warte ich, bis die "Token-Extrahierer" etwas anbieten !? Ist jemand schon weiter ?
Peter

Ich habe es bis jetzt auch nicht geschafft.
Die Xiaomi-App redet mit de.api.io.mi.com, fr-app-chat-global-xiaomi-net1-1667981913.eu-central-1.elb.amazonaws.com, stat.youpin.mi.com, restapi.amap.com usw.
Die RoboRock-App redet mit api-eu.roborock.com, euiot.roborock.com, mqtt-eu-4.roborock.com usw.

Einen gültigen Token bekomme ich bis jetzt nur per token_extractor.py und das redet nur mit  de.api.io.mi.com.
Ich hatte gehofft, nach einem Wifi-Reset und per miio discover einen gültigen Token zu bekommen, aber die Apps benutzen nach dem Einrichten einen anderen, als vorher per local-Wifi von Device direkt abgefragt ausgespuckt wurde.

Die awsde0.fds.api.xiaomi.com habe ich im PiHole schon gesperrt. Darüber versucht der Robi seine Logs loszuwerden, egal ob per RoboRock-App  oder Xiaomi-App gekoppelt. Funktioniert trotzdem noch alles, außer in der Xiaomi-App können dann keine Maps mehr angezeigt werden.

Am Ende benutzt man aber die App nur zum Einrichten. Ziel ist es ja, dass der Sauger automatisiert alleine seine Arbeit verrichtet -> Wohnung verlassen: set RoboRock start.  HomeComing -> set RoboRock stop (falls er gerade läuft) und maximal noch per täglichen Timer. Die App braucht man dann nicht mehr, auch wenn sie am Anfang schön bunt und interessant ist, um zu Endecken, was alles so Schönes geht.

EDIT: ich merke gerade, der Sauger versteht mit dem Block per PiHole umzugehen und versucht die IP für awsde0.fds.api.xiaomi.com selber per public.114dns.com zu ermitteln. Außerdem sendet er fleißig an lb-hadoop-fds-awsde0-eco-tcp-*.eu-central-1.elb.amazona
Und ich wundere mich, warum die Xiaomi-App außerhalb des Home-Netz noch Daten bekommt.

Ich hasse dieses Cloud-Gedöns .... keine Privatsphäre mehr

@Markus M: kannst Du bitte noch Folgendes für cleaning_mode ergänzen, damit auch der RoboRock S7 Pro Ultra 'auto' angezeigt bekommt. Danke.

|| $hash->{model} eq "roborock.vacuum.a62"