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

erdnar

OT:
Hat jemand einen Link für einen wirklich passenden Ersatzakku für den "Xiaomi Mi" V1.
Bei meinem gefundenen Link stimmen die Farben der Drähte nicht (weis/gelb vertauscht), was aber nichts bedeuten muß.
https://www.ebay.de/itm/6000Mah-Li-Ion-18650-Akku-fur-Xiaomi-Mi-Staub-Sauger-Roboter-Roboter-Reini-L2X5/183998302724?hash=item2ad7274a04:g:0S8AAOSwwJVdqB0q
Mein Akku funktioniert noch, schafft aber die knapp 85m² zu reinigende Fläche nicht mehr in einem Durchgang (1440 Cleanups/62k m²/1231h).
Danke
erdnar

hoppel118

Mittlerweile wird die 2008er Firmware für den Roborock S5 übrigens auch über die iOS Xiaomi Home App angeboten.

Gerade installiert, läuft soweit. Wie das nun mit den Räumen funktioniert, bin ich allerdings noch nicht durchgestiegen.

Viele Grüße 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

moerte

Zitat von: eisenhauer1987 am 03 März 2020, 11:18:39
Hi,

ich hatte das hier noch nicht gelesen, aber wenn es doch doppelt ist ignorieren.

Mit der neuen FW und der Raumerkennung ist es möglich über clean_segment die einzelnen Räume saugen zu lassen. Die räume lassen sich in der App anpassen. Räume starten mit Nummer 16, 17, 18. Die Zuordung muss man sich einmal ausprobieren.

Vielen Dank für den Tipp. Funktioniert super. Bei mir sind es 6 Räume und diesen hat er folgende Nummer vergeben: 1,2,4,16,17,18
..also wie du schon geschrieben hast - muss einfach probiert werden.
Geht denk wie ich mitbekommen habe bis 35 ;)

.. vlt hat noch jemand eine Idee ihn ohne Koordinaten in einen Raum fahren zu lassen. Mit goto und die Raumnummer geht leider nicht. Wäre ja zu einfach ;)

Da bei mir die FloleVac app nicht geht... bin ich sehr dankbar über den Tipp.

Lg

Andy89

Zitat von: andlor am 25 Februar 2020, 22:46:12
Hallo zusammen, hallo Jiggi,

ich hab mich jetzt hinreißen lassen und hab nun auch einen Air Purifier 3H daheim. Jiggi's Aussage kann ich so bestätigen, der Air Purifier 3H lässt sich aktuell nicht sinnvoll einbinden. Die Alternative iPhone Xiaomi App gibt zwar ein paar Möglichkeiten zur Automation, in FHEM wäre das natürlich aber besser aufgehoben.

Meine Frage deshalb an die Entwickler: Vielleicht kann das Modul ausgehend vom Air Purifier 2 ja relativ leicht adaptiert werden? Was kann ich tun, um euch bei der Prüfung einer Anpassung des Moduls zu unterstützen?
da ich mir beim AliExpress Jubiläum einen gekauft habe und dieser gestern ankam, hat mich das Thema natürlich auch interessiert.

Auf der Suche nach einem "Hack" bin ich dann bei github gelandet:
https://github.com/rytilahti/python-miio/issues/577 da wird dann noch auf diesen Link verwiesen:
https://github.com/rytilahti/python-miio/issues/543

Die API des Gerätes hat sich wohl grundlegend geändert.

Ich werde nachher versuchen aus meinem Gerät den Token auszulesen und dann mal die python Library zu testen.
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

Andy89

ich hab mir mal das python Skript angeschaut.
Das hier funktioniert ohne Probleme: https://github.com/rytilahti/python-miio/pull/585#issue-347330995

Leider bin ich mir nicht sicher, wie ich das in das Modul integrieren könnte. Deswegen hab ich einfach beim Python Skript die Debug Funktion angeschaltet. Evtl kann Markus uns dann helfen, da er sein Modul besser kennt, als ich.

nach und nach hier die Python Befehle.

info:
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'miIO.info', 'params': []}
DEBUG:miio.miioprotocol:192.168.2xxxx:54321 (ts: 1970-01-01 00:32:58, id: 1) << {'id': 1, 'result': {'life': 1978, 'uid': 1796642943, 'model': 'zhimi.airpurifier.mb3', 'token': 'xxx', 'fw_ver': '2.0.5', 'mcu_fw_ver': '0009', 'miio_ver': '0.0.5', 'hw_ver': 'esp32', 'mmfree': 62016, 'mac': '44:23:xx:xx:C2:D9', 'wifi_fw_ver': 'v3.1.4-56-g8ffb04960', 'ap': {'ssid': 'WLAN', 'bssid': '74:83:xx:xx:BB:C9', 'rssi': -46, 'primary': 11}, 'netif': {'localIp': '192.168.xx.xx', 'mask': '255.255.255.0', 'gw': '192.168.xx.1'}, 'config_type': 'app'}}


status:

DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'get_properties', 'params': [{'did': 'power', 'siid': 2, 'piid': 2}, {'did': 'fan_level', 'siid': 2, 'piid': 4}, {'did': 'mode', 'siid': 2, 'piid': 5}, {'did': 'humidity', 'siid': 3, 'piid': 7}, {'did': 'temperature', 'siid': 3, 'piid': 8}, {'did': 'aqi', 'siid': 3, 'piid': 6}, {'did': 'filter_life_remaining', 'siid': 4, 'piid': 3}, {'did': 'filter_hours_used', 'siid': 4, 'piid': 5}, {'did': 'buzzer', 'siid': 5, 'piid': 1}, {'did': 'buzzer_volume', 'siid': 5, 'piid': 2}, {'did': 'led_brightness', 'siid': 6, 'piid': 1}, {'did': 'led', 'siid': 6, 'piid': 6}, {'did': 'child_lock', 'siid': 7, 'piid': 1}, {'did': 'favorite_level', 'siid': 10, 'piid': 10}, {'did': 'favorite_rpm', 'siid': 10, 'piid': 7}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:35:42, id: 1) << {'id': 1, 'result': [{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0, 'value': True}, {'did': 'fan_level', 'siid': 2, 'piid': 4, 'code': 0, 'value': 1}, {'did': 'mode', 'siid': 2, 'piid': 5, 'code': 0, 'value': 0}, {'did': 'humidity', 'siid': 3, 'piid': 7, 'code': 0, 'value': 27}, {'did': 'temperature', 'siid': 3, 'piid': 8, 'code': 0, 'value': 19.5}, {'did': 'aqi', 'siid': 3, 'piid': 6, 'code': 0, 'value': 2}, {'did': 'filter_life_remaining', 'siid': 4, 'piid': 3, 'code': 0, 'value': 99}, {'did': 'filter_hours_used', 'siid': 4, 'piid': 5, 'code': 0, 'value': 20}, {'did': 'buzzer', 'siid': 5, 'piid': 1, 'code': 0, 'value': False}, {'did': 'buzzer_volume', 'siid': 5, 'piid': 2, 'code': -4001}, {'did': 'led_brightness', 'siid': 6, 'piid': 1, 'code': 0, 'value': 1}, {'did': 'led', 'siid': 6, 'piid': 6, 'code': 0, 'value': True}, {'did': 'child_lock', 'siid': 7, 'piid': 1, 'code': 0, 'value': False}, {'did': 'favorite_level', 'siid': 10, 'piid': 10, 'code': 0, 'value': 14}, {'did': 'favorite_rpm', 'siid': 10, 'piid': 7, 'code': 0, 'value': 2150}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 2, 'method': 'get_properties', 'params': [{'did': 'motor_speed', 'siid': 10, 'piid': 8}, {'did': 'use_time', 'siid': 12, 'piid': 1}, {'did': 'purify_volume', 'siid': 13, 'piid': 1}, {'did': 'average_aqi', 'siid': 13, 'piid': 2}, {'did': 'filter_rfid_tag', 'siid': 14, 'piid': 1}, {'did': 'filter_rfid_product_id', 'siid': 14, 'piid': 3}, {'did': 'app_extra', 'siid': 15, 'piid': 1}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:35:42, id: 2) << {'id': 2, 'result': [{'did': 'motor_speed', 'siid': 10, 'piid': 8, 'code': 0, 'value': 390}, {'did': 'use_time', 'siid': 12, 'piid': 1, 'code': 0, 'value': 72900}, {'did': 'purify_volume', 'siid': 13, 'piid': 1, 'code': 0, 'value': 830}, {'did': 'average_aqi', 'siid': 13, 'piid': 2, 'code': 0, 'value': 6}, {'did': 'filter_rfid_tag', 'siid': 14, 'piid': 1, 'code': 0, 'value': '81:66:58:da:34:b:4'}, {'did': 'filter_rfid_product_id', 'siid': 14, 'piid': 3, 'code': 0, 'value': '0:0:31:31'}, {'did': 'app_extra', 'siid': 15, 'piid': 1, 'code': 0, 'value': 0}]}


off:

DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'power', 'siid': 2, 'piid': 2, 'value': False}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:36:19, id: 1) << {'id': 1, 'result': [{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0}]}
[{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0}]


on:

DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'power', 'siid': 2, 'piid': 2, 'value': True}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:37:14, id: 1) << {'id': 1, 'result': [{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0}]}
[{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0}]


set_buzzer true:

DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'buzzer', 'siid': 5, 'piid': 1, 'value': True}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:37:36, id: 1) << {'id': 1, 'result': [{'did': 'buzzer', 'siid': 5, 'piid': 1, 'code': 0}]}


set_buzzer false:

DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'buzzer', 'siid': 5, 'piid': 1, 'value': False}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:38:02, id: 1) << {'id': 1, 'result': [{'did': 'buzzer', 'siid': 5, 'piid': 1, 'code': 0}]}



Da sich nur die Values ändern, ab sofort nur noch einmalig.

set_child_lock <true|false>

DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'child_lock', 'siid': 7, 'piid': 1, 'value': True}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:39:09, id: 1) << {'id': 1, 'result': [{'did': 'child_lock', 'siid': 7, 'piid': 1, 'code': 0}]}


set_fan_level <1-3>

DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'fan_level', 'siid': 2, 'piid': 4, 'value': 1}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:40:31, id: 1) << {'id': 1, 'result': [{'did': 'fan_level', 'siid': 2, 'piid': 4, 'code': 0}]}


set_favorite_level <0-14>

DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'favorite_level', 'siid': 10, 'piid': 10, 'value': 1}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:41:33, id: 1) << {'id': 1, 'result': [{'did': 'favorite_level', 'siid': 10, 'piid': 10, 'code': 0}]}


set_led <true|false>

DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'led', 'siid': 6, 'piid': 6, 'value': True}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:42:12, id: 1) << {'id': 1, 'result': [{'did': 'led', 'siid': 6, 'piid': 6, 'code': 0}]}


set_led_brightness <off|dim|bright> (off=2,dim=1,bright=1)

DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'led_brightness', 'siid': 6, 'piid': 1, 'value': 1}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:42:40, id: 1) << {'id': 1, 'result': [{'did': 'led_brightness', 'siid': 6, 'piid': 1, 'code': 0}]}
[{'did': 'led_brightness', 'siid': 6, 'piid': 1, 'code': 0}]


set_mode <auto|fan|favorite|silent> (auto=0,fan=3,favorite=2,silent=1)

DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'set_properties', 'params': [{'did': 'mode', 'siid': 2, 'piid': 5, 'value': 0}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:44:19, id: 1) << {'id': 1, 'result': [{'did': 'mode', 'siid': 2, 'piid': 5, 'code': 0}]}




edit:
hier noch mal ein kompletter Auszud aus dem Debug Output inkl. Eingabe:
python3 miio/cli.py -d airpurifiermiot --ip 192.168.xx.xx --token 10xxxxa9 status
INFO:__main__:Debug mode active
DEBUG:miio.protocol:Unable to decrypt, returning raw bytes: b''
DEBUG:miio.miioprotocol:Got a response: Container:
    data = Container:
        data = b'' (total 0)
        value = b'' (total 0)
        offset1 = 32
        offset2 = 32
        length = 0
    header = Container:
        data = b'!1\x00 \x00\x00\x00\x00\x10\xda\xc7"\x00\x00\x0c\x05' (total 16)
        value = Container:
            length = 32
            unknown = 0
            device_id = unhexlify('10dac722')
            ts = 1970-01-01 00:51:17
        offset1 = 0
        offset2 = 16
        length = 16
    checksum = b'\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' (total 16)
DEBUG:miio.miioprotocol:Discovered 10dac722 with ts: 1970-01-01 00:51:17, token: b'ffffffffffffffffffffffffffffffff'
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 1, 'method': 'get_properties', 'params': [{'did': 'power', 'siid': 2, 'piid': 2}, {'did': 'fan_level', 'siid': 2, 'piid': 4}, {'did': 'mode', 'siid': 2, 'piid': 5}, {'did': 'humidity', 'siid': 3, 'piid': 7}, {'did': 'temperature', 'siid': 3, 'piid': 8}, {'did': 'aqi', 'siid': 3, 'piid': 6}, {'did': 'filter_life_remaining', 'siid': 4, 'piid': 3}, {'did': 'filter_hours_used', 'siid': 4, 'piid': 5}, {'did': 'buzzer', 'siid': 5, 'piid': 1}, {'did': 'buzzer_volume', 'siid': 5, 'piid': 2}, {'did': 'led_brightness', 'siid': 6, 'piid': 1}, {'did': 'led', 'siid': 6, 'piid': 6}, {'did': 'child_lock', 'siid': 7, 'piid': 1}, {'did': 'favorite_level', 'siid': 10, 'piid': 10}, {'did': 'favorite_rpm', 'siid': 10, 'piid': 7}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:51:18, id: 1) << {'id': 1, 'result': [{'did': 'power', 'siid': 2, 'piid': 2, 'code': 0, 'value': True}, {'did': 'fan_level', 'siid': 2, 'piid': 4, 'code': 0, 'value': 1}, {'did': 'mode', 'siid': 2, 'piid': 5, 'code': 0, 'value': 0}, {'did': 'humidity', 'siid': 3, 'piid': 7, 'code': 0, 'value': 27}, {'did': 'temperature', 'siid': 3, 'piid': 8, 'code': 0, 'value': 19.5}, {'did': 'aqi', 'siid': 3, 'piid': 6, 'code': 0, 'value': 2}, {'did': 'filter_life_remaining', 'siid': 4, 'piid': 3, 'code': 0, 'value': 99}, {'did': 'filter_hours_used', 'siid': 4, 'piid': 5, 'code': 0, 'value': 20}, {'did': 'buzzer', 'siid': 5, 'piid': 1, 'code': 0, 'value': False}, {'did': 'buzzer_volume', 'siid': 5, 'piid': 2, 'code': -4001}, {'did': 'led_brightness', 'siid': 6, 'piid': 1, 'code': 0, 'value': 1}, {'did': 'led', 'siid': 6, 'piid': 6, 'code': 0, 'value': True}, {'did': 'child_lock', 'siid': 7, 'piid': 1, 'code': 0, 'value': True}, {'did': 'favorite_level', 'siid': 10, 'piid': 10, 'code': 0, 'value': 1}, {'did': 'favorite_rpm', 'siid': 10, 'piid': 7, 'code': 0, 'value': 660}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 >>: {'id': 2, 'method': 'get_properties', 'params': [{'did': 'motor_speed', 'siid': 10, 'piid': 8}, {'did': 'use_time', 'siid': 12, 'piid': 1}, {'did': 'purify_volume', 'siid': 13, 'piid': 1}, {'did': 'average_aqi', 'siid': 13, 'piid': 2}, {'did': 'filter_rfid_tag', 'siid': 14, 'piid': 1}, {'did': 'filter_rfid_product_id', 'siid': 14, 'piid': 3}, {'did': 'app_extra', 'siid': 15, 'piid': 1}]}
DEBUG:miio.miioprotocol:192.168.xx.xx:54321 (ts: 1970-01-01 00:51:18, id: 2) << {'id': 2, 'result': [{'did': 'motor_speed', 'siid': 10, 'piid': 8, 'code': 0, 'value': 390}, {'did': 'use_time', 'siid': 12, 'piid': 1, 'code': 0, 'value': 73800}, {'did': 'purify_volume', 'siid': 13, 'piid': 1, 'code': 0, 'value': 845}, {'did': 'average_aqi', 'siid': 13, 'piid': 2, 'code': 0, 'value': 6}, {'did': 'filter_rfid_tag', 'siid': 14, 'piid': 1, 'code': 0, 'value': '81:66:58:da:34:b:4'}, {'did': 'filter_rfid_product_id', 'siid': 14, 'piid': 3, 'code': 0, 'value': '0:0:31:31'}, {'did': 'app_extra', 'siid': 15, 'piid': 1, 'code': 0, 'value': 0}]}
Power: on
AQI: 2 μg/m³
Average AQI: 6 μg/m³
Humidity: 27 %
Temperature: 19.5 °C
Fan Level: 1
Mode: OperationMode.Auto
LED: True
LED brightness: LedBrightness.Dim
Buzzer: False
Buzzer vol.: None
Child lock: True
Favorite level: 1
Filter life remaining: 99 %
Filter hours used: 20
Use time: 73800 s
Purify volume: 845 m³
Motor speed: 390 rpm
Filter RFID product id: 0:0:31:31
Filter RFID tag: 81:66:58:da:34:b:4
Filter type: FilterType.Regular
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

Andy89

ich habe es geschafft, wahrscheinlich sehr unschön, aber alle Daten werden nun angezeigt in FHEM.
Leider ist das Steuern noch nicht funktionierend. Es ist also nur ein Read-Only...

Hier das List meines Devices:
Internals:
   DEF        192.168.xx.xx 10xxxa9
   FD         69
   FUUID      5e887a50-f33f-61f0-f6e5-e2aa57f5c9661155
   FVERSION   72_XiaomiDevice.pm:0.200610/2019-08-25
   NAME       xz_xiaomi_airpurifier3H
   NR         473
   STATE      2 µg/m³ / 389 rpm / auto
   TYPE       XiaomiDevice
   hardware   esp32
   mac        44:23:xx:xx:C2:D9
   mcu_firmware 0009
   model      zhimi.airpurifier.mb3
   token      10xxxa9
   wifi_firmware v3.1.4-56-g8ffb04960
   Helper:
     DBLOG:
       filter_volume:
         logdb:
           TIME       1586079537.71801
           VALUE      1397
       speed:
         logdb:
           TIME       1586079597.42722
           VALUE      389
   READINGS:
     2020-04-05 11:06:53   absFeuchte      6.3
     2020-04-05 11:13:39   app_extra       0
     2020-04-05 11:13:39   buzzer          off
     2020-04-05 11:13:39   child_lock      off
     2020-04-05 11:13:37   device_firmware 2.0.5
     2020-04-05 11:13:37   device_uptime   0.19
     2020-04-05 11:06:53   dewpoint        4.7
     2020-04-05 11:39:57   error           none
     2020-04-05 11:39:57   fan_level       1
     2020-04-05 11:39:57   favorite_level  1
     2020-04-05 11:39:57   favorite_rpm    660
     2020-04-05 11:39:57   filter_life     99
     2020-04-05 11:13:39   filter_rfid_product_id 0:0:31:31
     2020-04-05 11:13:39   filter_rfid_tag 81:66:58:da:34:b:4
     2020-04-05 11:39:57   filter_used     35
     2020-04-05 11:39:57   filter_volume   1397
     2020-04-05 11:39:57   humidity        35
     2020-04-05 11:13:39   led             on
     2020-04-05 11:13:39   led_brightness  bright
     2020-04-05 11:39:57   mode            auto
     2020-04-05 11:39:57   pm25            2
     2020-04-05 11:39:57   pm25_average    4
     2020-04-05 11:39:57   power           on
     2020-04-05 11:39:57   speed           389
     2020-04-05 11:06:47   state           connected
     2020-04-05 11:39:57   temperature     20.700001
     2020-04-05 11:39:57   usage           35.8
     2020-04-05 11:13:37   wifi_rssi       -50
   helper:
     ConnectionState connected
     crypt      AES
     delay      60
     dev        10da
     id         c722
     ip         192.168.xx.xx
     last_read  1586079597
     packetid   31
     port       54321
     sequence   1586077332
     token      10xxxa9
     packet:
Attributes:
   DbLogInclude fan_level,filter_used,mode,pm25,pm25_average,power,filter_volume,speed,temperature,humidity
   event-on-change-reading .*
   intervalData 60
   room       Geräte->Xiaomi
   stateFormat pm25 µg/m³ / speed rpm / mode
   subType    AirPurifier3H
   verbose    3


Im Anhang ist das angepasste Device sowie ein Patch. Bei mir stürzt das Programm nicht ab! Aber ich würde ein vorheriges Backup dennoch empfehlen!

Beste Grüße
Andy

edit: Anhänge gelöscht, weil es gleich (16.4. ca 22 Uhr) nen neuen Post inkl funktionierenden Settern gibt
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

kotaro

Zitat von: Thoffi1978 am 24 Januar 2020, 15:12:09
Hej,

was bedeutet das Reading
in_fresh_state


Vielen Dank
Thoffi

Das würde ich auch gerne wissen. Weiß einer. wofür der Status steht???

und noch eine Frage, gibt es eine Möglichkeit, zu erfahren, ob der Müllbehälter entfernt wird? eine Ansage vom Sauger (S50) gibt es ja, also scheint es ja entsprechend ein Status zu geben. Kann man den irgendwie auslesen?

RappaSan

Ich habe ein notify, das die verschiedenen Zustände des Saugers verarbeitet:
#Wait-loop, provoziert einen Event "Error" bei Entnahme vom Staubbehälter
   fhem "set SauBaer volume 0; define tmp_time1 at +00:00:03 set SauBaer remotecontrol start; set SauBaer remotecontrol stop";

rakete123

Hallo zusammen,

ich habe jetzt auch den xiaomi_airpurifier3H wie Andy89 und würde mich sehr über eine Erweiterung des Modules freuen. Kann dann auch gerne testen.
Zwave: ZMEEUZB1 (Fibaro, Aeotec, diverse)
Zigbee: Conbee (HUE, Xiaomi, osram)
Homematic: HM-MOD-RPI-PCB + diverse HM-CC-RT-DN
Sonstiges: Harmony, Android, Netatmo, Jabber (talk2fhem)
https://resize2fs.de

TWART016

Ich will mir auch einen Air Purifier zulegen. Welchen würdet ihr empfehlen? 2H / 2S / 3H?
Auch in Hinblick auf die Integration in FHEM.

jbraeu

Da kann ich jetzt nicht anders und muss meinen Senf dazu geben.. Ich habe seit über 15 Jahren einen Venta im Einsatz (glaub den hab ich noch in Mark bezahlt 300.- rum hat das ding gekostet) der braucht 25 Watt geht nicht kaputt und ist eigentlich überteuert ABER.. den rest kann sich jeder selber denken. Da kann ich nur  ;D
PS: die Steuern bleiben da wo Sie hingehören und mit Stinknormaler Schaltsteckdose ist das Thema erledigt.

kotaro

Hey Ho,

Ich wollte Mal fragen, ob es möglich ist, die Werte pull_map oder load_map von Valetudo Re einbinden könnte. Das wäre Klasse. Da ich eine für das OG Und eine für das EG habe...

Mit den Reading wäre es toll, um dies für DOIF nutzen zu können...

Danke euch

lichtimc

Hi,

wie stoxx und pumabaer würde ich mich auch über eine korrekte Einbindung des zhimi.humidifier.cb1 freuen.
Deswegen habe ich mal alle Infos, die ich gefunden habe zusammenkopiert:

Zitat von: stoxx am 15 Dezember 2019, 15:07:51
wäre es möglich, beim Xiaomi Humidifier noch den mode "Auto" zu ergänzen?
Zitat von: pumabaer am 26 Dezember 2019, 17:25:26
folgende "set" befehle:
ein aus, geht
mode, geht (alerdings schaltet "idle" aus. bei meinem gibt es noch einen "auto" modus")
led, geht nicht
limit_hum, ich glaube das hat die version nicht, zumindest nicht in der app
childlock, geht
buzzer, geht

hier ein list wie ich es momentan habe, token ist geändert:
Internals:
   CFGFN     
   DEF        192.168.178.47 df80c61de67208c107607cb123c991a7
   FD         36
   FUUID      5e04da62-f33f-df7b-b4ae-c78a125a82ef3827
   NAME       Luftbefeuchter
   NR         50800
   STATE      on
   TYPE       XiaomiDevice
   hardware   MTK7697
   mac        04:CF:8C:A6:58:D3
   mcu_firmware 1005
   model      zhimi.humidifier.cb1
   token      xxxxxxxxxxxxx
   wifi_firmware 20180702211408
   Helper:
     DBLOG:
       depth:
         DBLogging:
           TIME       1577385744.96844
           VALUE      106
       humidity:
         DBLogging:
           TIME       1577386042.67045
           VALUE      58
       speed:
         DBLogging:
           TIME       1577386042.67045
           VALUE      788
       temperature:
         DBLogging:
           TIME       1577385204.76648
           VALUE      0
   READINGS:
     2019-12-26 19:41:25   Mode            0
     2019-12-26 19:46:39   buzzer          on
     2019-12-26 19:46:39   child_lock      off
     2019-12-26 19:47:22   depth           106
     2019-12-26 19:46:30   device_firmware 1.6.3
     2019-12-26 19:46:30   device_uptime   3.72
     2019-12-26 19:47:22   dry             off
     2019-12-26 19:47:22   error           none
     2019-12-26 19:47:22   humidity        58
     2019-12-26 19:47:22   laufzeit        6.40
     2019-12-26 19:46:39   led             dim
     2019-12-26 19:46:39   limit_hum       70
     2019-12-26 19:47:22   mode            auto
     2019-12-26 19:47:22   power           on
     2019-12-26 19:47:22   speed           788
     2019-12-26 19:47:22   temperature     0
     2019-12-26 19:47:22   trans_level     null
     2019-12-26 19:46:39   use_time        23057
     2019-12-26 17:08:15   wifi_auth_fail_count 0
     2019-12-26 17:08:15   wifi_conn_fail_count 0
     2019-12-26 17:08:15   wifi_conn_success_count 1
     2019-12-26 17:08:15   wifi_dhcp_fail_count 0
     2019-12-26 19:46:30   wifi_rssi       -42
     2019-12-26 17:08:15   wifi_state      connecting
   helper:
     ConnectionState connected
     crypt      AES
     delay      60
     dev        07f2
     id         e9a5
     ip         192.168.178.47
     last_read  1577386042
     packetid   278
     port       54321
     sequence   1577372599
     token      xxxxxxxxxxxxxx
     packet:
Attributes:
   DbLogExclude .*
   DbLogInclude depth,humidity,speed,temperature
   event-on-change-reading .*
   homebridgeMapping On:power,cmdOn=on,cmdOff=off,valueOn=on,valueOff=off
RelativeHumidityHumidifierThreshold:limit_hum,minValue=30,maxValue=80,minStep=1,cmd=limit_hum,delay=1
AudioFeedback:buzzer,cmdOn=buzzer+on,cmdOff=buzzer+off,valueOn=on,valueOff=off
RotationSpeed=speed,minValue=0,maxValue=1000
LockPhysicalControls=child_lock,values=on:CONTROL_LOCK_ENABLED;;off:CONTROL_LOCK_DISABLED,cmds=CONTROL_LOCK_ENABLED:child_lock+on;CONTROL_LOCK_DISABLED:child_lock+off
history:size=1024
   intervalData 60
   room       Heizung,Homekit
   stateFormat power
   subType    Humidifier
   userReadings laufzeit {sprintf("%.2f",(ReadingsVal($name,"use_time",0)/3600))}


wenn ich noch weitere infos geben kann, nur zu!:)

edit:
temperatur wird nicht übergeben
wasser füllstand auch nicht

Beisteuern kann ich hierfür folgendes aus den Logs:

Auf diese Anfrage ...
2020.04.12 03:17:12 4: Schlafzimmer_Luftbefeuchter: write {"id":17,"method":"get_prop","params":["power","mode","temp_dec","humidity","trans_level","speed","depth","dry","temperature","button_pressed"]} (144)
folgt diese Antwort:
$VAR1 = {
          'id' => 17,
          'result' => [
                        'on',
                        'high',
                        'null',
                        49,
                        'null',
                        1000,
                        100,
                        'on',
                        '21.5'
                      ]


        };

Somit nehme ich an, dass es temp_dec, trans_level und button_pressed nicht gibt, oder?
Dafür gibt es temperature und ein depth. depth zählt von knapp über 100 langsam runter, also wsl. das Wasserlevel.
Diese beiden Werte werden aber nicht in die entsprechenden Readings im Device eingetragen.

Welche Logs werden noch benötigt? Kann diese gerne noch nachliefern.
Hier hat übrigens bereits jemand alle unterstützten Commands eingestellt: https://www.home-assistant.io/integrations/fan.xiaomi_miio/#air-humidifier-cb-zhimihumidifiercb1

Danke, lg

TWART016

Hallo Andy,

Besten dank für die Version.

Zitat von: Andy89 am 05 April 2020, 11:43:14
ich habe es geschafft, wahrscheinlich sehr unschön, aber alle Daten werden nun angezeigt in FHEM.
Leider ist das Steuern noch nicht funktionierend. Es ist also nur ein Read-Only...

Hier das List meines Devices:
Internals:
   DEF        192.168.xx.xx 10xxxa9
   FD         69
   FUUID      5e887a50-f33f-61f0-f6e5-e2aa57f5c9661155
   FVERSION   72_XiaomiDevice.pm:0.200610/2019-08-25
   NAME       xz_xiaomi_airpurifier3H
   NR         473
   STATE      2 µg/m³ / 389 rpm / auto
   TYPE       XiaomiDevice
   hardware   esp32
   mac        44:23:xx:xx:C2:D9
   mcu_firmware 0009
   model      zhimi.airpurifier.mb3
   token      10xxxa9
   wifi_firmware v3.1.4-56-g8ffb04960
   Helper:
     DBLOG:
       filter_volume:
         logdb:
           TIME       1586079537.71801
           VALUE      1397
       speed:
         logdb:
           TIME       1586079597.42722
           VALUE      389
   READINGS:
     2020-04-05 11:06:53   absFeuchte      6.3
     2020-04-05 11:13:39   app_extra       0
     2020-04-05 11:13:39   buzzer          off
     2020-04-05 11:13:39   child_lock      off
     2020-04-05 11:13:37   device_firmware 2.0.5
     2020-04-05 11:13:37   device_uptime   0.19
     2020-04-05 11:06:53   dewpoint        4.7
     2020-04-05 11:39:57   error           none
     2020-04-05 11:39:57   fan_level       1
     2020-04-05 11:39:57   favorite_level  1
     2020-04-05 11:39:57   favorite_rpm    660
     2020-04-05 11:39:57   filter_life     99
     2020-04-05 11:13:39   filter_rfid_product_id 0:0:31:31
     2020-04-05 11:13:39   filter_rfid_tag 81:66:58:da:34:b:4
     2020-04-05 11:39:57   filter_used     35
     2020-04-05 11:39:57   filter_volume   1397
     2020-04-05 11:39:57   humidity        35
     2020-04-05 11:13:39   led             on
     2020-04-05 11:13:39   led_brightness  bright
     2020-04-05 11:39:57   mode            auto
     2020-04-05 11:39:57   pm25            2
     2020-04-05 11:39:57   pm25_average    4
     2020-04-05 11:39:57   power           on
     2020-04-05 11:39:57   speed           389
     2020-04-05 11:06:47   state           connected
     2020-04-05 11:39:57   temperature     20.700001
     2020-04-05 11:39:57   usage           35.8
     2020-04-05 11:13:37   wifi_rssi       -50
   helper:
     ConnectionState connected
     crypt      AES
     delay      60
     dev        10da
     id         c722
     ip         192.168.xx.xx
     last_read  1586079597
     packetid   31
     port       54321
     sequence   1586077332
     token      10xxxa9
     packet:
Attributes:
   DbLogInclude fan_level,filter_used,mode,pm25,pm25_average,power,filter_volume,speed,temperature,humidity
   event-on-change-reading .*
   intervalData 60
   room       Geräte->Xiaomi
   stateFormat pm25 µg/m³ / speed rpm / mode
   subType    AirPurifier3H
   verbose    3


Im Anhang ist das angepasste Device sowie ein Patch. Bei mir stürzt das Programm nicht ab! Aber ich würde ein vorheriges Backup dennoch empfehlen!

Beste Grüße
Andy

Ich habe sie bei mir installiert und bekomme auch wie gewünscht die Readings.
Wann werden die automatisch aktualisiert?
Wenn er off ist, bekomme ich das in keinem Reading mit. Sollte das bei power = off stehen?
Edit: child_lock wird auch nicht richtig übertragen

Bei set on bekomme ich das im Log per verbose 5
2020.04.16 16:12:55 4: Xiaomi_AirPurifier3: write {"id":10,"method":"set_properties","params":[{"did": "power", "siid": 2, "piid": 2, "value": True}]} (100)
2020.04.16 16:12:55 5: Xiaomi_AirPurifier3: send 213100900000000010dc536e00001750d3adfd146854553c0e4fc9cbceca30a09e9997689a0d7d4b9d056d1b6dbcc903f02d010a0fba5943089d4465336437e3c8878ecc3e8f1bbfa79b951882dcc26864c5d63f85315934e319bbfb4b4e2a425d224f293cfda7a0effe700c1db6a123b0dc1f679aebf3ad801a10743b538c3f6db3a551a61ade5aa9c57ada3bf3d003
2020.04.16 16:12:55 5: Xiaomi_AirPurifier3 Send SUCCESS
2020.04.16 16:12:55 5: Xiaomi_AirPurifier3 > 213100900000000010dc536e00001750d3adfd146854553c0e4fc9cbceca30a09e9997689a0d7d4b9d056d1b6dbcc903f02d010a0fba5943089d4465336437e3c8878ecc3e8f1bbfa79b951882dcc26864c5d63f85315934e319bbfb4b4e2a425d224f293cfda7a0effe700c1db6a123b0dc1f679aebf3ad801a10743b538c3f6db3a551a61ade5aa9c57ada3bf3d003


set off
2020.04.16 16:14:35 4: Xiaomi_AirPurifier3: write {"id":14,"method":"set_properties","params":[{"did": "power", "siid": 2, "piid": 2, "value": False}]} (101)
2020.04.16 16:14:35 5: Xiaomi_AirPurifier3: send 213100900000000010dc536e000017b48a9e9194d0658b124a53b551b71f77574957a6132ad8739e02ce1baf68ecfb0b72a9a54e9754040b43b7e547725b120a32462ce3a7453437001ffbc1fa9adc6575613fa329205eab5e426c6c072984f0a7cfb977f81107521348df3242e86d8c143b7eb472d0a29cf0ab691c14018608cb1ff3d9c1785cce6831c63135dabd8e
2020.04.16 16:14:35 5: Xiaomi_AirPurifier3 Send SUCCESS
2020.04.16 16:14:35 5: Xiaomi_AirPurifier3 > 213100900000000010dc536e000017b48a9e9194d0658b124a53b551b71f77574957a6132ad8739e02ce1baf68ecfb0b72a9a54e9754040b43b7e547725b120a32462ce3a7453437001ffbc1fa9adc6575613fa329205eab5e426c6c072984f0a7cfb977f81107521348df3242e86d8c143b7eb472d0a29cf0ab691c14018608cb1ff3d9c1785cce6831c63135dabd8e




Andy89

Zitat von: TWART016 am 16 April 2020, 16:16:20
Ich habe sie bei mir installiert und bekomme auch wie gewünscht die Readings.
Wann werden die automatisch aktualisiert?
Aktualisiert werden sie - meiner Meinung nach - in dem Interval, was im Attribut intervalData hinterlegt ist. Standmäßig ist das 300 Sekunden. Zusätzlich gibt es noch das Attribut intervalSettings, was standardmäßig 3600 Sekunden ist.
Aber ob das wirklich stimmt, weiß ich nicht. Ich werde aus dem Modul nicht ganz schlau

Zitat von: TWART016 am 16 April 2020, 16:16:20
Wenn er off ist, bekomme ich das in keinem Reading mit. Sollte das bei power = off stehen?
Edit: child_lock wird auch nicht richtig übertragen
Child_lock gehört zu den Settings und wird somit nur alle 60 Minuten abgerufen. Evtl lag es daran.
Im Code hatte ich bei Power große "F" bei False. Evtl lag es daran, ich weiß es nicht.



Zitat von: TWART016 am 16 April 2020, 16:16:20
Bei set on bekomme ich das im Log per verbose 5
Set funktioniert leider nicht und ich weiß nicht, wie man das machen kann. Ich versteh nicht, was da passiert. Leider werde ich aus dem Python Modul (https://github.com/rytilahti/python-miio/pull/634) auch nicht schlau, wie die Daten versendet werden müssen.

Sorry =(
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