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

Dr. Smag

Irgendwie passiert hier nicht mehr viel. Ist das Modul abgeschrieben? Das wäre schade.

Delta80: Irgendwie finde ich auch in der Doku nichts über die mehrfache Raumreinigung im "segment". Wird das als Attribut gesetzt oder gibt man es bei dem set an?
RPi1,2,3,HMLAN,HM,CC-RT-DN,HM-TC-IT-WM-W-EU,HM-LC-SW2-PB-FM,HM-LC-Sw1PBU-FM,HM-LC-Dim1TPBU-FM,HM-SEC-RHS,HM-SEC-KEY-S,HM-SEC-S,C, HM-OU-LED16,HM-ES-PMSw1-Pl,HM-RC-Dis-H-x-EU,HM-LC-SW4-DR,HM-RC-8,HM-OU-CFM-TW,HM-SEC-WDS, HM-PB-2-WM55,HM-Sen-MDIR-O,HM-Dis-WM55,HM-Dis-EP-WM55,HM-ES-PMSw1-Pl-DN-R1...

Delta80

Zitat von: Markus M. am 28 Mai 2020, 01:30:36
Hab das nochmal geändert auf segment, funktioniert mit dem Attribut segment_names analog zu den Zonen und Punkten

@Dr. Smag: War nur ne Vermutung auf Basis der Aussage (analog zu Zones...) oben. Und in der App kann man es ja bei der Raumreinigung auch angeben. Habe aber auch in den MIOT Specs dazu nichts gefunden... https://github.com/marcelrv/XiaomiRobotVacuumProtocol

der-Lolo

Hallo Forum,
ich möchte mich gerne endlich mal um meinen etwas verwahrlosten Roborock S5 Max kümmern, bisher habe ich den S5 Max ausschliesslich via xiaomi app von einem iPad aus benutzt welches leider im iPad Himmel gelandet ist. Ich habe also keinen Zugriff mehr auf die App - auch der Account ist verloren.
Es läuft also wahrscheinlich darauf raus das ganze Gerät zurück zu setzen (falls das überhaupt geht) und neu in Betrieb zu nehmen. 
Braucht es hierfür zwingend eine App? Welche empfehlt ihr?

Zur Zeit nehme ich den Robo nur von seiner Ladestation, setze ihn an einem startpunkt ab, starte die Reinigung via Knopfdruck - wenn er fertig ist fährt er wieder zum laden.

Ich möchte ihn nun gerne in FHEM integrieren - gibt es irgendwo eine Anleitung zu diesem Thema..? Sorry dieser Thread ist über 150 Seiten lang - ich hoffe ein bisschen auf hilfsbereitschaft um nicht alles lesen zu müssen.

Dr. Smag

Hi, eigentlich ist der Xiaomi Roborock dazu gedacht mit der hauseigenen App gesteuert zu werden.
Dazu muss der Roborock 1x mit der Xiaomi-App verbunden werden und der Staubsauger lernt auch das Wifi-Passwort deines WLAN's.
Sobald du den Sauger mit der Xiaomi-App steuern kannst, steht der Steuerung mit FHEM nichts mehr im Wege.
Dazu musst du den Token (sozusagen ein Schlüssel) ermitteln, welcher mit dem Verbinden mit der App generiert wurde.
Solltest du das Gerät zurücksetzen und neu mit der App bekanntmachen, wird ein neuer Token generiert. Nur so als Hinweis.

Da du deinen Staubsauger schonmal verbunden hast, musst du ihn "zurücksetzen/resettieren". Dazu gibt es im Netz genug Anleitungen, wie das geht. Einfach mal bei Google "roborock s5 max reset" oder so eingeben.

Dann auf deinem Smartphone oder Tablet die Xiaomi-App installieren und dich mit deinem Account anmelden.
Da du schreibst, dass du dein Account vergessen hast, wirst du sicherlich noch deine E-Mail-Adresse kennen und dann sozusagen "Passwort vergessen" nutzen. Ansonsten einen neuen Account mit einer anderen E-Mail anlegen.

Ist die App installiert und der Sauger resettiert, den Sauger der App bekannt machen. Wenn du ihn dann mit der App steuern kannst, kannst du FHEM weitermachen. Dann brauchst du die App auch nicht mehr.

Früher war es schwieriger an das Token zu kommen. Mittlerweile gibt es aber Tools dafür, die einem das Leben einfacher machen.
Dazu nutze ich den Token-Extraktor:
https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor

Einfach den "token-extraktor" in der Konsole starten und deine Xiaomi-Account eingeben. Anschl. werden Dir alle Token aller deiner verbundnenen Xiaomi-Geräte angezeigt. U.A. auch die IP.

Du musst lediglich den Sauger mit der IP und dem Token anlegen und als subType "VacuumCleaner" einstellen. Fertig.

Bsp.:
define <name> XiaomiDevice <ip> <token>

also bspw.:
define meinSauger XiaomiDevice 192.168.178.123 12345678901234567890123456789012

und dann im attr meinSauger den subType "VacuumCleaner" setzen.

Viel Erfolg.
RPi1,2,3,HMLAN,HM,CC-RT-DN,HM-TC-IT-WM-W-EU,HM-LC-SW2-PB-FM,HM-LC-Sw1PBU-FM,HM-LC-Dim1TPBU-FM,HM-SEC-RHS,HM-SEC-KEY-S,HM-SEC-S,C, HM-OU-LED16,HM-ES-PMSw1-Pl,HM-RC-Dis-H-x-EU,HM-LC-SW4-DR,HM-RC-8,HM-OU-CFM-TW,HM-SEC-WDS, HM-PB-2-WM55,HM-Sen-MDIR-O,HM-Dis-WM55,HM-Dis-EP-WM55,HM-ES-PMSw1-Pl-DN-R1...

Papaloewe

Ich versuche gerade einen recht neuen Type: Smartmi Fan 3 (MODEL:zhimi.fan.za5) in FHEM einzubinden.
Wird das Modell noch nicht unterstützt? Habe alle vorhanden Sybtype durchprobiert.

Folgendes erscheint mit verbose 5 im Log:
2021.08.15 09:40:14 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.08.15 09:44:56 4: fan1: write {"id":1,"method":"set_power","params":["on"]} (45)
2021.08.15 09:44:56 5: fan1: initSend
2021.08.15 09:44:56 5: fan1 Send SUCCESS
2021.08.15 09:44:56 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.08.15 09:44:56 1: fan1: internal error, values missing
2021.08.15 09:45:02 3: fan1: initialized, using AES
2021.08.15 09:45:12 3: fan1: disconnecting
2021.08.15 09:45:12 2: fan1: connecting
2021.08.15 09:45:12 3: fan1: initialized
2021.08.15 09:45:12 5: fan1: initSend
2021.08.15 09:45:12 5: fan1 Send SUCCESS
2021.08.15 09:45:12 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff


Token stimmt, das habe ich auf zwei verschiedene Wege verifiziert. :-)

Dr. Smag

Zitat von: Dr. Smag am 01 Juli 2021, 13:19:58
Ich habe den Xiaomi Fan 3 implementiert. Habe nur noch das Problem, dass die Temperatur und Luftfeuchtigkeit nicht richtig angezeigt wird. Wer kann helfen?

Nicht offiziell. Ich habe es selber manuell eingebaut. Leider meldet sich hier keiner. Schade.
RPi1,2,3,HMLAN,HM,CC-RT-DN,HM-TC-IT-WM-W-EU,HM-LC-SW2-PB-FM,HM-LC-Sw1PBU-FM,HM-LC-Dim1TPBU-FM,HM-SEC-RHS,HM-SEC-KEY-S,HM-SEC-S,C, HM-OU-LED16,HM-ES-PMSw1-Pl,HM-RC-Dis-H-x-EU,HM-LC-SW4-DR,HM-RC-8,HM-OU-CFM-TW,HM-SEC-WDS, HM-PB-2-WM55,HM-Sen-MDIR-O,HM-Dis-WM55,HM-Dis-EP-WM55,HM-ES-PMSw1-Pl-DN-R1...

Papaloewe

Zitat von: Dr. Smag am 15 August 2021, 21:55:01
Nicht offiziell. Ich habe es selber manuell eingebaut. Leider meldet sich hier keiner. Schade.

Sorry, das habe ich in diesem Thread wohl noch nicht gefunden. Wo ist deine Anpassung? Ich möchte es gerne testen.

Dr. Smag

Zitat von: Papaloewe am 16 August 2021, 13:54:07
Sorry, das habe ich in diesem Thread wohl noch nicht gefunden. Wo ist deine Anpassung? Ich möchte es gerne testen.

Jau, derzeit ist der "SmartFan3" noch bei mir lokal. Habe es mal hier abgelegt:
http://www.biest.de/fhem/72_XiaomiDevice.pm

Sollte eigentlich alles gehen: on, off, level (in %), led (Helligkeit in %), anion (Ionisierung) (on/off), buzzer (on/off), mode (straight/natural), angle (30,60,90,120), angle_enable (on/off), move (left,right), child_lock (on/off)
Bis auf die Temperatur und Feuchtigkeits-Ermittlung.
Vielleicht hat ja mal jemand die Zeit das anzupassen.

Die Version basiert auf der letzten Version "72_XiaomiDevice.pm 23021 2020-10-25 08:38:27Z moises $$$".
Vielleicht kann es ja Markus integrieren.

Als Attribute habe ich noch gesetzt:

eventMap: { usr=>{'^pct(.*)'=>'level$1'} }
(Damit gehts dann auch mit Alexa)

stateFormat: mode level% power
(Angepasste Leistenansicht)

subType: SmartFan3
(DeviceSubType eben)

webCmd: level 1:level 25:level 50:level 75:level 100:on:off:pct
(Schnellzugriffe)


Und in "global" habe ich noch temporär das Update der Unit verhindert mit dem Attribut:
exclude_from_update: 72_XiaomiDevice.pm

Gruß
Sebastian
RPi1,2,3,HMLAN,HM,CC-RT-DN,HM-TC-IT-WM-W-EU,HM-LC-SW2-PB-FM,HM-LC-Sw1PBU-FM,HM-LC-Dim1TPBU-FM,HM-SEC-RHS,HM-SEC-KEY-S,HM-SEC-S,C, HM-OU-LED16,HM-ES-PMSw1-Pl,HM-RC-Dis-H-x-EU,HM-LC-SW4-DR,HM-RC-8,HM-OU-CFM-TW,HM-SEC-WDS, HM-PB-2-WM55,HM-Sen-MDIR-O,HM-Dis-WM55,HM-Dis-EP-WM55,HM-ES-PMSw1-Pl-DN-R1...

Papaloewe

Leider will es auf Anhieb nicht funktionieren:

2021.08.16 19:45:33 3: fan1: initialized, using AES
2021.08.16 19:45:45 3: fan1: disconnecting
2021.08.16 19:45:45 2: fan1: connecting
2021.08.16 19:45:45 3: fan1: initialized
2021.08.16 19:45:45 5: fan1: initSend
2021.08.16 19:45:45 5: fan1 Send SUCCESS
2021.08.16 19:45:45 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.08.16 19:51:12 3: fan1: disconnecting
2021.08.16 19:51:36 3: fan1: disconnecting
2021.08.16 19:51:36 2: fan1: connecting
2021.08.16 19:51:36 3: fan1: initialized
2021.08.16 19:51:36 5: fan1: initSend
2021.08.16 19:51:36 5: fan1 Send SUCCESS
2021.08.16 19:51:36 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.08.16 19:54:07 4: fan1: write {"id":1,"method":"set_properties","params":[{"did": "power", "siid": 2, "piid": 1, "value": true}]} (99)
2021.08.16 19:54:07 5: fan1: initSend
2021.08.16 19:54:07 5: fan1 Send SUCCESS
2021.08.16 19:54:07 5: fan1 > 21310020ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
2021.08.16 19:54:07 1: fan1: internal error, values missing

Papaloewe

defmod fan1 XiaomiDevice 192.168.xxx.yyy <token>
attr fan1 eventMap { usr=>{'^pct(.*)'=>'level$1'} }
attr fan1 icon Ventilator_fett
attr fan1 room Schlafen
attr fan1 stateFormat mode level% power
attr fan1 subType SmartFan3
attr fan1 verbose 5
attr fan1 webCmd level 1:level 25:level 50:level 75:level 100:on:off:pct

setstate fan1 mode level% power

Dr. Smag

Du hast das Gerät aber komplett gelöscht (delete fan1), die Unit neu geladen (reload 72_XiaomiDevice.pm) und neu angelegt (define fan1 XiaomiDevice IP token)?

Gibt halt neue Variablen.

Notwendig ist nur die IP mit dem Token und subType SmartFan3.
RPi1,2,3,HMLAN,HM,CC-RT-DN,HM-TC-IT-WM-W-EU,HM-LC-SW2-PB-FM,HM-LC-Sw1PBU-FM,HM-LC-Dim1TPBU-FM,HM-SEC-RHS,HM-SEC-KEY-S,HM-SEC-S,C, HM-OU-LED16,HM-ES-PMSw1-Pl,HM-RC-Dis-H-x-EU,HM-LC-SW4-DR,HM-RC-8,HM-OU-CFM-TW,HM-SEC-WDS, HM-PB-2-WM55,HM-Sen-MDIR-O,HM-Dis-WM55,HM-Dis-EP-WM55,HM-ES-PMSw1-Pl-DN-R1...

michiatlnx

Hallo Zusammen,

Leider fehlt noch in der letzten Version "72_XiaomiDevice.pm 23021 2020-10-25 08:38:27Z moises $$$" noch der SubType AirPurifier3C.
Dies wurde im Post https://forum.fhem.de/index.php/topic,73052.msg1108078.html#msg1108078 von Markus M. in sein Perl Modul erfolgreich eingebaut.
Währe schön wenn dies später auch in die Offizielle Update Version kommt.

Bis dahin habe ich den Tip von Dr. Smag, Vielen Dank dafür, die Datei vom Update Excluded: exclude_from_update: 72_XiaomiDevice.pm

List of new / modified files since last update:
UPD FHEM/72_XiaomiDevice.pm (excluded from update)
FHEM Container with mysql on Debian 8 INTEL NUC5PPYB (Celeron N3050) - FTUI on Blackview Tab 8E 10,1" - HMLAN - CCU3 with piVCCU on Raspberry Pi 4B - some HM-Devices - EM 1000-WZ via nanoCUL868 - SIGNALduino - SIGNALESP - AirPurifier3C - MQTT for CO2-Sensor(MH-Z19C), Gosund SP1, XY-WFUSB

Dr. Smag

Hey michiatlnx, danke für die Info. Ich habe mal die von Dir verlinkte "aktuellere Version" als Basis und meine Version zusammengeführt.
So wie es aussieht, wurde da noch ein ToiletSeat neben dem AirPurifier3C eingebaut.

Kannst du es dann zumindest für den "AirPurifier3C" testen?

Der Link weiter oben (https://forum.fhem.de/index.php/topic,73052.msg1170596.html#msg1170596)
enthält nun die neuere Version mit dem AirPurifier3C, ToiletSeat durch Markus und meiner Implementierung des SmartFan3.
RPi1,2,3,HMLAN,HM,CC-RT-DN,HM-TC-IT-WM-W-EU,HM-LC-SW2-PB-FM,HM-LC-Sw1PBU-FM,HM-LC-Dim1TPBU-FM,HM-SEC-RHS,HM-SEC-KEY-S,HM-SEC-S,C, HM-OU-LED16,HM-ES-PMSw1-Pl,HM-RC-Dis-H-x-EU,HM-LC-SW4-DR,HM-RC-8,HM-OU-CFM-TW,HM-SEC-WDS, HM-PB-2-WM55,HM-Sen-MDIR-O,HM-Dis-WM55,HM-Dis-EP-WM55,HM-ES-PMSw1-Pl-DN-R1...

michiatlnx

Ich habe die Version von dir in das fhem eingebaut.
Das Modul funktioniert weiterhin mit dem AirPurifier3C.
FHEM Container with mysql on Debian 8 INTEL NUC5PPYB (Celeron N3050) - FTUI on Blackview Tab 8E 10,1" - HMLAN - CCU3 with piVCCU on Raspberry Pi 4B - some HM-Devices - EM 1000-WZ via nanoCUL868 - SIGNALduino - SIGNALESP - AirPurifier3C - MQTT for CO2-Sensor(MH-Z19C), Gosund SP1, XY-WFUSB

hkspks

Hi,

der Konfiguration entnehme ich, dass fhem mit den Xiaomi-Geräten über das lokale Netz spricht, d.h. die Geräte/ fhem müssen im gleichen LAN sein, korrekt?

Ich fände es ja charmant, wenn fhem über die Cloud mit meinem Staubsauger sprechen würde (analog der App), dann könnte ich den Staubsauger ins Gastnetz schieben und hätte zumindest ein bisschen ein besseres Gefühl ;-) Gibt es da eine Bridge o.ä.?

Gruß