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

thymjan

Zitat von: Markus M. am 27 Mai 2020, 01:03:44
[...]
Fix für zhimi.fan.za4

Danke Markus! Buzzer lässt sich jetzt richtig setzen.

Der RSSI-Wert erhält zwar nach "get device_info" einen neuen Timestamp, bleibt jedoch konstant (-46) und verändert sich auch bei Umstellen des Ventilators an einen anderen Ort nicht (ähnlich wie ac_power).

In der Xiaomi Home App gibt es noch die Einstellung "Störmeldung bei anormaler(em) Betrieb Ein/Aus". Diese Einstellung konnte ich noch nicht nachvollziehen. Vielleicht wenn es dem ESP32 zu heiss wird oder bei Blockade...

Welche Bedeutung hat der Wert level_on?
Edit: Ah, das ist der Speicher für die letzte level Einstellung!

Markus M.

Zitat von: dominik am 27 Mai 2020, 21:38:08
kannst du bitte wie für Zonen auch ein Attribut für Räume machen? Z.B. Schlafzimmer:16 Wohnung:16,17, welches dann bei clean_segment ausgewählt werden kann.
Hab das nochmal geändert auf segment, funktioniert mit dem Attribut segment_names analog zu den Zonen und Punkten


Zitat von: KernSani am 27 Mai 2020, 21:41:59Der cleaning_mode scheint korrekt gesetzt zu werden, aber beim 5se sollte fan_power (wenn über 100) auch den ,,sprechenden" Wert bekommen
Top. Im Sauger selbst gibt es nur fan_power - die Werte sind leider je Modell leicht unterschiedlich und cleaning_mode ist schon die sprechende Umsetzung.
Vielleicht nehm ich das Reading einfach raus.


Zitat von: thymjan am 27 Mai 2020, 23:31:17
Der RSSI-Wert erhält zwar nach "get device_info" einen neuen Timestamp, bleibt jedoch konstant (-46) und verändert sich auch bei Umstellen des Ventilators an einen anderen Ort nicht (ähnlich wie ac_power).
In der Xiaomi Home App gibt es noch die Einstellung "Störmeldung bei anormaler(em) Betrieb Ein/Aus"
RSSI liegt nicht am Modul und die Einstellung ist meines Wissens nur etwas App-internes ohne Auswirkung auf das Gerät.
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

Bengt79

Moin moin zusammen,

mit Hilfe dieses Forums meinen S5 Max schon brav in FHEM eingebunden, allerdings hänge ich jetzt gerade an der Raumzuordnung....
Hat jemand ne Idee wie wir die Room IDs auslesen können damit die clean_segment Befehle einfacher funktionieren :)

Mit dieser Hilfe ist es fast Hausfrauen-Kompatibel und der WAF geht schön nach oben...

allerdings erkennt er nicht alle Räume....

Für jede Hilfestellung bin ich dankbar :)

Lieben Gruß
Björn

Markus M.

Zitat von: Bengt79 am 28 Mai 2020, 14:34:52
Hat jemand ne Idee wie wir die Room IDs auslesen können damit die clean_segment Befehle einfacher funktionieren :)
Mit dieser Hilfe ist es fast Hausfrauen-Kompatibel und der WAF geht schön nach oben...
allerdings erkennt er nicht alle Räume....
Ändert sich eh nochmal auf segment

Es gibt wohl ein paar Befehle rund um das was du brauchst, sobald ich was zum Testen habe sag ich Bescheid.
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

KernSani

Zitat von: Bengt79 am 28 Mai 2020, 14:34:52
Moin moin zusammen,

mit Hilfe dieses Forums meinen S5 Max schon brav in FHEM eingebunden, allerdings hänge ich jetzt gerade an der Raumzuordnung....
Hat jemand ne Idee wie wir die Room IDs auslesen können damit die clean_segment Befehle einfacher funktionieren :)

Mit dieser Hilfe ist es fast Hausfrauen-Kompatibel und der WAF geht schön nach oben...

allerdings erkennt er nicht alle Räume....

Für jede Hilfestellung bin ich dankbar :)

Lieben Gruß
Björn
Die RoomIds fangen bei 16 an und werden dann hochgezählt. Schick einfach den S5 per FHEM zur 16 los, schau in der App wo er hinfährt, schick ihn zur 17 usw...


Kurz, weil mobil....
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Bengt79

Jupp 16-21 funktionieren auch, allerdings sind mehr Räume eingerichtet, da 2 Etagen. 3 Räume EG 16-18, 4 von 7 Räumen oben auch per 19-22, nur der Rest fehlt :)
Aber erstmal danke für die Infos, sobald was zum testen da ist, bin ich dabei :)

LG
Björn

KernSani

Zitat von: Bengt79 am 28 Mai 2020, 15:32:14
Jupp 16-21 funktionieren auch, allerdings sind mehr Räume eingerichtet, da 2 Etagen. 3 Räume EG 16-18, 4 von 7 Räumen oben auch per 19-22, nur der Rest fehlt :)
Aber erstmal danke für die Infos, sobald was zum testen da ist, bin ich dabei :)

LG
Björn

Die IDs werden dummerweise pro Stockwerk (bzw. pro Karte) neu vergeben, d.h. im OG fängt es vermutlich auch wieder bei 16 an.
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

dkreutz

Ich habe hier eine Xiaomi Mi Home Security Camera 360° 1080p Kamera (Modell MJSXJ05CM / chuangmi.camera.ipc019).

Über python-miio kann ich die Kamera ansprechen und steuern.
Die möglichen MiIO-Protokoll Requests müssten hier ersichtlich sein: https://github.com/rytilahti/python-miio/blob/master/miio/chuangmi_camera.py

Besteht damit die Möglichkeit die Kamera auch durch das XiaomiDevice Modul zu unterstützen? Stelle mich natürlich als Beta-Tester gerne zur Verfügung...
Raspberry Pi3B+ (Bullseye) / JeeLink868v3c (LaCrosse), nanoCUL433 (a-culfw V1.24.02), HM-MOD-UART (1.4.1), TEK603, MapleCUL / diverse Sensoren/Sender/Aktoren von Technoline, Intertechno, Shelly, Homematic und MAX!, Froggit Wetterstation, Luftdaten.info / Autor des fhem-skill für Mycroft.ai

Bengt79

Zitat von: KernSani am 28 Mai 2020, 16:05:48
Die IDs werden dummerweise pro Stockwerk (bzw. pro Karte) neu vergeben, d.h. im OG fängt es vermutlich auch wieder bei 16 an.

Du hast absolut recht, wieso bin ich da nicht drauf gekommen..... :)
Ok, dann muss ich jetzt mal schauen wie ich das eventMap sauber hinbekomme wenn die IDs doppelt sind....

Aber erstmal vielen DANK !!! für den Wink mit dem Zaunpfahl :)

LG
Björn

KernSani

Zitat von: Bengt79 am 28 Mai 2020, 16:52:44
Du hast absolut recht, wieso bin ich da nicht drauf gekommen..... :)
Ok, dann muss ich jetzt mal schauen wie ich das eventMap sauber hinbekomme wenn die IDs doppelt sind....

Aber erstmal vielen DANK !!! für den Wink mit dem Zaunpfahl :)

LG
Björn

Markus hat segment_names eingebaut, damit sollte es gehen (ich habe es selbst noch nicht probiert).
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Bengt79

Mit würde ja reichen wenn ich per ID den Raum anfahren kann..... Problem ist wie wechsel ich hab per FHEM die Karten? In der App wechseln und dann per ID los legen klappt.
Ich trau mich nur nicht an die Map Funktionen des Moduls.... Nicht das es mir meine Mühsam genauen Zimmer zerschießt.... Dann wäre der WAF wieder bei 0 :-D

LG

Markus M.

Bitte mal mit dem S5Max o.ä. ein get testdata und dann das Log posten
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

KernSani

Zitat von: Markus M. am 28 Mai 2020, 21:38:20
Bitte mal mit dem S5Max o.ä. ein get testdata und dann das Log posten

Nicht sehr erhellend...

2020.05.29 00:10:13 0:  EG_Abst_vacuum: request for id 6245, contains get_room_mapping
2020.05.29 00:10:13 0:  EG_Abst_vacuum: request for id 6246, contains get_recover_map
2020.05.29 00:10:13 0:  EG_Abst_vacuum: request for id 6247, contains get_recover_maps
2020.05.29 00:10:13 0:  EG_Abst_vacuum: request for id 6248, contains get_segment_status
2020.05.29 00:10:13 0:  EG_Abst_vacuum: request for id 6249, contains get_segment_status 17
2020.05.29 00:10:13 0:  EG_Abst_vacuum: request for id 6250, contains app_get_init_status
2020.05.29 00:10:13 0:  EG_Abst_vacuum: result for id 6245, return is
$VAR1 = {
          'result' => [
                        [
                          16,
                          '749001010932'
                        ],
                        [
                          17,
                          '749001010925'
                        ],
                        [
                          18,
                          '749001010926'
                        ],
                        [
                          19,
                          '749001010927'
                        ],
                        [
                          20,
                          '749001010922'
                        ],
                        [
                          21,
                          '749001010956'
                        ],
                        [
                          22,
                          '749001010928'
                        ]
                      ],
          'id' => 6245
        };

2020.05.29 00:10:13 0:  EG_Abst_vacuum: result for id 6246, return is
$VAR1 = {
          'id' => 6246,
          'result' => 'unknown_method'
        };

2020.05.29 00:10:13 0:  EG_Abst_vacuum: result for id 6247, return is
$VAR1 = {
          'id' => 6247,
          'result' => 'unknown_method'
        };

2020.05.29 00:10:13 0:  EG_Abst_vacuum: result for id 6248, return is
$VAR1 = {
          'result' => [
                        1
                      ],
          'id' => 6248
        };

2020.05.29 00:10:13 0:  EG_Abst_vacuum: result for id 6249, return is
$VAR1 = {
          'id' => 6249,
          'result' => [
                        1
                      ]
        };

2020.05.29 00:10:13 0:  EG_Abst_vacuum: result for id 6250, return is
$VAR1 = {
          'result' => [
                        {
                          'status_info' => {
                                             'in_returning' => 0,
                                             'is_locating' => 0,
                                             'lab_status' => 3,
                                             'water_box_carriage_status' => 0,
                                             'clean_area' => 4040000,
                                             'mop_forbidden_enable' => 0,
                                             'map_status' => 3,
                                             'water_box_mode' => 202,
                                             'battery' => 100,
                                             'in_cleaning' => 0,
                                             'lock_status' => 0,
                                             'error_code' => 0,
                                             'in_fresh_state' => 1,
                                             'state' => 8,
                                             'clean_time' => 117,
                                             'water_box_status' => 0
                                           },
                          'feature_info' => [
                                              111,
                                              112,
                                              113,
                                              114,
                                              115,
                                              116,
                                              117,
                                              118,
                                              119,
                                              120,
                                              122,
                                              123,
                                              124,
                                              125
                                            ],
                          'local_info' => {
                                            'name' => 'custom_A.03.0070_CE',
                                            'location' => 'de',
                                            'bom' => 'A.03.0070',
                                            'wifiplan' => '',
                                            'logserver' => 'awsde0.fds.api.xiaomi.com',
                                            'timezone' => 'Europe/Berlin',
                                            'featureset' => 1,
                                            'language' => 'en'
                                          },
                          'new_feature_info' => 7
                        }
                      ],
          'id' => 6250
        };

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Bengt79

und hier meine Logs.... hab direkt mal 2 gemacht, 1. aus dem EG nachdem Olaf2 gestern nacht noch brav gemoppt hat, 2. aus dem OG nach Wechsel der Karte ohne Tätigkeit seinerseits ( wollte mir anschauen was an den Daten zur Map wechselt... :) )

btw, @KernSani wie bekommst du die ordentliche Formatierung hin ? Sprache per Notepad++ ?

übrigens finde ich die Infos schon gut, die hast die Raum IDs pro Etage deutlich sichtbar, nicht im Wortlaut aber immerhin nicht mehr blind Nummern durchtesten.

EG
get testdata

2020.05.29 08:02:54 0 : Olaf_2: request for id 857, contains get_room_mapping
2020.05.29 08:02:54 0 : Olaf_2: request for id 858, contains get_recover_map
2020.05.29 08:02:54 0 : Olaf_2: request for id 859, contains get_recover_maps
2020.05.29 08:02:54 0 : Olaf_2: request for id 860, contains get_segment_status
2020.05.29 08:02:54 0 : Olaf_2: request for id 861, contains get_segment_status 17
2020.05.29 08:02:54 0 : Olaf_2: request for id 862, contains app_get_init_status
2020.05.29 08:02:54 0 : Olaf_2: result for id 857, return is $VAR1 = { 'id' => 857, 'result' => [ [ 16, '684001011321' ], [ 17, '684001011343' ], [ 18, '684001011344' ] ] };
2020.05.29 08:02:54 0 : Olaf_2: result for id 858, return is $VAR1 = { 'id' => 858, 'result' => 'unknown_method' };
2020.05.29 08:02:54 0 : Olaf_2: result for id 859, return is $VAR1 = { 'result' => 'unknown_method', 'id' => 859 };
2020.05.29 08:02:54 0 : Olaf_2: result for id 860, return is $VAR1 = { 'id' => 860, 'result' => [ 1 ] };
2020.05.29 08:02:54 0 : Olaf_2: result for id 861, return is $VAR1 = { 'result' => [ 1 ], 'id' => 861 };
2020.05.29 08:02:54 0 : Olaf_2: result for id 862, return is $VAR1 = { 'id' => 862, 'result' => [ { 'feature_info' => [ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125 ], 'local_info' => { 'featureset' => 1, 'location' => 'de', 'wifiplan' => '', 'language' => 'en', 'bom' => 'A.03.0070', 'logserver' => 'awsde0.fds.api.xiaomi.com', 'name' => 'custom_A.03.0070_CE', 'timezone' => 'Europe/Berlin' }, 'status_info' => { 'state' => 8, 'clean_time' => 2239, 'in_fresh_state' => 1, 'in_cleaning' => 0, 'lock_status' => 0, 'water_box_mode' => 204, 'clean_area' => 49247500, 'battery' => 100, 'water_box_status' => 0, 'lab_status' => 3, 'mop_forbidden_enable' => 0, 'error_code' => 0, 'map_status' => 3, 'is_locating' => 0, 'in_returning' => 0, 'water_box_carriage_status' => 0 }, 'new_feature_info' => 7 } ] };


OG

get testdata
2020.05.29 08:06:02 0 : Olaf_2: request for id 863, contains get_room_mapping
2020.05.29 08:06:02 0 : Olaf_2: request for id 864, contains get_recover_map
2020.05.29 08:06:02 0 : Olaf_2: request for id 865, contains get_recover_maps
2020.05.29 08:06:02 0 : Olaf_2: request for id 866, contains get_segment_status
2020.05.29 08:06:02 0 : Olaf_2: request for id 867, contains get_segment_status 17
2020.05.29 08:06:02 0 : Olaf_2: request for id 868, contains app_get_init_status
2020.05.29 08:06:03 0 : Olaf_2: result for id 863, return is $VAR1 = { 'id' => 863, 'result' => [ [ 16, '684001011398' ], [ 17, '684001011402' ], [ 18, '684001011401' ], [ 19, '684001011395' ], [ 20, '684001011397' ], [ 21, '684001011400' ], [ 22, '684001011403' ] ] };
2020.05.29 08:06:03 0 : Olaf_2: result for id 864, return is $VAR1 = { 'id' => 864, 'result' => 'unknown_method' };
2020.05.29 08:06:03 0 : Olaf_2: result for id 865, return is $VAR1 = { 'id' => 865, 'result' => 'unknown_method' };
2020.05.29 08:06:03 0 : Olaf_2: result for id 866, return is $VAR1 = { 'id' => 866, 'result' => [ 1 ] };
2020.05.29 08:06:03 0 : Olaf_2: result for id 867, return is $VAR1 = { 'result' => [ 1 ], 'id' => 867 };
2020.05.29 08:06:03 0 : Olaf_2: result for id 868, return is $VAR1 = { 'id' => 868, 'result' => [ { 'new_feature_info' => 7, 'status_info' => { 'in_fresh_state' => 1, 'in_cleaning' => 0, 'clean_time' => 2239, 'water_box_mode' => 204, 'lock_status' => 0, 'state' => 8, 'clean_area' => 49247500, 'battery' => 100, 'mop_forbidden_enable' => 0, 'error_code' => 0, 'lab_status' => 3, 'water_box_status' => 0, 'water_box_carriage_status' => 0, 'is_locating' => 0, 'in_returning' => 0, 'map_status' => 7 }, 'local_info' => { 'timezone' => 'Europe/Berlin', 'name' => 'custom_A.03.0070_CE', 'logserver' => 'awsde0.fds.api.xiaomi.com', 'bom' => 'A.03.0070', 'featureset' => 1, 'wifiplan' => '', 'location' => 'de', 'language' => 'en' }, 'feature_info' => [ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 122, 123, 124, 125 ] } ] };


Markus M.

Du hast quasi die Maps umgeschaltet auf dem gleichen Sauger?
Dann brauchen wir ja eigentlich nur noch irgendwoher diesen Befehl.

Raum IDs fangen also immer bei 16 an, Namen gibt es zumindest bei diesen Befehlen nicht. Hmm...

Ich suche mal weiter.
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