Xiaomi Air Purifier 3H in OH3/4

Hi, does anybody know how to get the Xiaomi Air Purifier 3H running in OH 4?

I used OH 2.x for a couple of years know with the purifier added. The control of the device was sometimes slow or had to be triggered a second time but all in all it worked.

Now I set up OH 4, and added the thing and items.
(Some weeks ago I already tried in OH 3 with the same result.)

Thing:
Thing miio:basic:airpurifier1 "airpurifier1" [ host="192.168.24.16", token="xyz123", deviceId="358311438", model="zhimi.airpurifier.mb3", communication="direct" ]

Items (beside device_id exactly from the docs):

Group G_airpurifier "Mi Air Purifier 3/3H" <status>
Number air_purifier1_fault "Air Purifier - Fault" (G_airpurifier) {channel="miio:basic:airpurifier1:Fault"}
Switch air_purifier1_on "Air Purifier - Switch Status" (G_airpurifier) {channel="miio:basic:airpurifier1:On"}
Number air_purifier1_fan_level (G_airpurifier) {channel="miio:basic:airpurifier1:FanLevel"}
Number air_purifier1_mode "Air Purifier - Mode" (G_airpurifier) {channel="miio:basic:airpurifier1:Mode"}
Number air_purifier1_pm2_5_density "Environment - Pm2.5 density" (G_airpurifier) {channel="miio:basic:airpurifier1:Pm25Density"}
//Number:Dimensionless air_purifier1_relative_humidity "Environment - Relative Humidity" (G_airpurifier) {channel="miio:basic:airpurifier1:RelativeHumidity"}
Number air_purifier1_relative_humidity "Environment - Relative Humidity" (G_airpurifier) {channel="miio:basic:airpurifier1:RelativeHumidity"}
Number:Temperature air_purifier1_temperature "Environment - Temperature" (G_airpurifier) {channel="miio:basic:airpurifier1:Temperature"}
//Number:Dimensionless air_purifier1_filter_life_level "Filter - Filter Life Level" (G_airpurifier) {channel="miio:basic:airpurifier1:FilterLifeLevel"}
Number air_purifier1_filter_life_level "Filter - Filter Life Level" (G_airpurifier) {channel="miio:basic:airpurifier1:FilterLifeLevel"}
Number:Time air_purifier1_filter_used_time "Filter - Filter Used Time" (G_airpurifier) {channel="miio:basic:airpurifier1:FilterUsedTime"}
Switch air_purifier1_alarm "Alarm - Alarm" (G_airpurifier) {channel="miio:basic:airpurifier1:Alarm"}
Number:Dimensionless air_purifier1_brightness "Indicator Light - Brightness" (G_airpurifier) {channel="miio:basic:airpurifier1:Brightness"}
Switch air_purifier1_on1 "Indicator Light - Switch Status" (G_airpurifier) {channel="miio:basic:airpurifier1:On1"}
Switch air_purifier1_physical_controls_locked "Physical Control Locked - Physical Control Locked" (G_airpurifier) {channel="miio:basic:airpurifier1:PhysicalControlsLocked"}
String air_purifier1_button_pressed "Button - Button Pressed" (G_airpurifier) {channel="miio:basic:airpurifier1:ButtonPressed"}
Number air_purifier1_filter_max_time "Filter Time - Filter Max Time" (G_airpurifier) {channel="miio:basic:airpurifier1:FilterMaxTime"}
Number air_purifier1_filter_hour_debug "Filter Time - Filter Hour Debug" (G_airpurifier) {channel="miio:basic:airpurifier1:FilterHourDebug"}
Number air_purifier1_motor_strong "Motor Speed - Motor Strong" (G_airpurifier) {channel="miio:basic:airpurifier1:MotorStrong"}
Number air_purifier1_motor_high "Motor Speed - Motor High" (G_airpurifier) {channel="miio:basic:airpurifier1:MotorHigh"}
Number air_purifier1_motor_med "Motor Speed - Motor Med" (G_airpurifier) {channel="miio:basic:airpurifier1:MotorMed"}
Number air_purifier1_motor_med_l "Motor Speed - Motor Med L" (G_airpurifier) {channel="miio:basic:airpurifier1:MotorMedL"}
Number air_purifier1_motor_low "Motor Speed - Motor Low" (G_airpurifier) {channel="miio:basic:airpurifier1:MotorLow"}
Number air_purifier1_motor_silent "Motor Speed - Motor Silent" (G_airpurifier) {channel="miio:basic:airpurifier1:MotorSilent"}
Number air_purifier1_motor_favorite "Motor Speed - Motor Favorite" (G_airpurifier) {channel="miio:basic:airpurifier1:MotorFavorite"}
Number air_purifier1_motor_speed "Motor Speed - Motor Speed" (G_airpurifier) {channel="miio:basic:airpurifier1:MotorSpeed"}
Number air_purifier1_motor_set_speed "Motor Speed - Motor Set Speed" (G_airpurifier) {channel="miio:basic:airpurifier1:MotorSetSpeed"}
Number air_purifier1_favorite_fan_level "Motor Speed - Favorite Fan Level" (G_airpurifier) {channel="miio:basic:airpurifier1:FavoriteFanLevel"}
Number:Time air_purifier1_use_time "Use Time - Use Time" (G_airpurifier) {channel="miio:basic:airpurifier1:UseTime"}
Number:Volume air_purifier1_purify_volume "Aqi - Purify Volume" (G_airpurifier) {channel="miio:basic:airpurifier1:PurifyVolume"}
Number air_purifier1_average_aqi "Aqi - Average Aqi" (G_airpurifier) {channel="miio:basic:airpurifier1:AverageAqi"}
Number air_purifier1_average_aqi_cnt "Aqi - Average Aqi Cnt" (G_airpurifier) {channel="miio:basic:airpurifier1:AverageAqiCnt"}
String air_purifier1_aqi_zone "Aqi - Aqi Zone" (G_airpurifier) {channel="miio:basic:airpurifier1:AqiZone"}
String air_purifier1_sensor_state "Aqi - Sensor State" (G_airpurifier) {channel="miio:basic:airpurifier1:SensorState"}
Number air_purifier1_aqi_goodh "Aqi - Aqi Goodh" (G_airpurifier) {channel="miio:basic:airpurifier1:AqiGoodh"}
Number air_purifier1_aqi_runstate "Aqi - Aqi Runstate" (G_airpurifier) {channel="miio:basic:airpurifier1:AqiRunstate"}
Number air_purifier1_aqi_state "Aqi - Aqi State" (G_airpurifier) {channel="miio:basic:airpurifier1:AqiState"}
Number air_purifier1_aqi_updata_heartbeat "Aqi - Aqi Updata Heartbeat" (G_airpurifier) {channel="miio:basic:airpurifier1:AqiUpdataHeartbeat"}
String air_purifier1_rfid_tag "Rfid - Rfid Tag" (G_airpurifier) {channel="miio:basic:airpurifier1:RfidTag"}
String air_purifier1_rfid_factory_id "Rfid - Rfid Factory Id" (G_airpurifier) {channel="miio:basic:airpurifier1:RfidFactoryId"}
String air_purifier1_rfid_product_id "Rfid - Rfid Product Id" (G_airpurifier) {channel="miio:basic:airpurifier1:RfidProductId"}
String air_purifier1_rfid_time "Rfid - Rfid Time" (G_airpurifier) {channel="miio:basic:airpurifier1:RfidTime"}
String air_purifier1_rfid_serial_num "Rfid - Rfid Serial Num" (G_airpurifier) {channel="miio:basic:airpurifier1:RfidSerialNum"}
Number air_purifier1_app_extra "Others - App Extra" (G_airpurifier) {channel="miio:basic:airpurifier1:AppExtra"}
Number air_purifier1_main_channel "Others - Main Channel" (G_airpurifier) {channel="miio:basic:airpurifier1:MainChannel"}
Number air_purifier1_slave_channel "Others - Slave Channel" (G_airpurifier) {channel="miio:basic:airpurifier1:SlaveChannel"}
String air_purifier1_cola "Others - Cola" (G_airpurifier) {channel="miio:basic:airpurifier1:Cola"}
Switch air_purifier1_buttom_door "Others - Buttom Door" (G_airpurifier) {channel="miio:basic:airpurifier1:ButtomDoor"}
Number air_purifier1_reboot_cause "Others - Reboot Cause" (G_airpurifier) {channel="miio:basic:airpurifier1:RebootCause"}
Number air_purifier1_hw_version "Others - Hw Version" (G_airpurifier) {channel="miio:basic:airpurifier1:HwVersion"}
Number air_purifier1_iic_error_count "Others - Iic Error Count" (G_airpurifier) {channel="miio:basic:airpurifier1:IicErrorCount"}
Number air_purifier1_manual_level "Others - Manual Level" (G_airpurifier) {channel="miio:basic:airpurifier1:ManualLevel"}
Number air_purifier1_country_code "Others - National Code" (G_airpurifier) {channel="miio:basic:airpurifier1:CountryCode"}
String air_purifier1_FirmwareRevision "Firmware" (G_airpurifier) {channel="miio:basic:airpurifier1:FirmwareRevision"}
String air_purifier1_Model "Model" (G_airpurifier) {channel="miio:basic:airpurifier1:Model"}
String air_purifier1_SerialNumber "SerialNumber" (G_airpurifier) {channel="miio:basic:airpurifier1:SerialNumber"}
Number air_purifier1_Life "Life" (G_airpurifier) {channel="miio:basic:airpurifier1:network#life"}
String air_purifier1_ExecuteCommand "Execute Command" (G_airpurifier) {channel="miio:basic:airpurifier1:actions#commands"}

The DEBUG log shows this:

==> data/openhab_userdata/logs/openhab.log <==
2023-07-27 14:19:02.654 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Periodic update for 'miio:basic:airpurifier1' (miio:basic)
2023-07-27 14:19:02.655 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel fault for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.656 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel on for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.656 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel fan-level for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.657 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel mode for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.657 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel pm2_5-density for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.657 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel relative-humidity for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.658 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel temperature for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.658 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel filter-life-level for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.659 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel filter-used-time for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.659 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel alarm for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.659 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel brightness for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.660 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel on1 for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.660 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel physical-controls-locked for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.661 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel button-pressed for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.661 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel filter-max-time for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.661 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel filter-hour-debug for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.662 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel motor-strong for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.662 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel motor-high for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.663 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel motor-med for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.663 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel motor-med-l for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.664 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel motor-low for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.664 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel motor-silent for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.664 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel motor-favorite for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.665 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel motor-speed for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.665 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel motor-set-speed for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.666 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel favorite-fan-level for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.666 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel use-time for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.667 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel purify-volume for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.667 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel average-aqi for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.667 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel average-aqi-cnt for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.668 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel aqi-zone for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.668 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel sensor-state for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.669 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel aqi-goodh for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.669 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel aqi-runstate for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.669 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel aqi-state for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.670 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel aqi-updata-heartbeat for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.670 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel rfid-tag for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.671 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel rfid-factory-id for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.671 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel rfid-product-id for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.672 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel rfid-time for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.672 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel rfid-serial-num for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.673 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel app-extra for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.673 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel main-channel for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.674 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel slave-channel for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.674 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel cola for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.675 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel buttom-door for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.675 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel reboot-cause for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.676 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel hw-version for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.676 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel iic-error-count for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.677 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel manual-level for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.677 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Skip refresh of channel country-code for miio:basic:airpurifier1 as it is not linked
2023-07-27 14:19:02.678 [DEBUG] [io.internal.handler.MiIoBasicHandler] - Custom Refresh for device 'miio:basic:airpurifier1': 0 channels
2023-07-27 14:19:02.678 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":4808,"method":"miIO.info","params":[]} -> 192.168.24.16 (Device: 358311438 token: xyz123 Queue: 1).
2023-07-27 14:19:03.379 [DEBUG] [internal.handler.MiIoAbstractHandler] - Received response for device airpurifier1 type: MIIO_INFO, result: {"life":2008,"uid":6432360155,"model":"zhimi.airpurifier.mb3","token":"xyz123","ipflag":1,"fw_ver":"2.0.8","mcu_fw_ver":"0017","miio_ver":"0.0.8","hw_ver":"esp32","mmfree":79616,"mac":"54:48:E6:4D:8C:A3","wifi_fw_ver":"cef6c09-dirty","ap":{"ssid":"Home_2","bssid":"78:45:58:48:B6:DD","rssi":-51,"primary":1},"netif":{"localIp":"192.168.24.16","mask":"255.255.255.0","gw":"192.168.24.1"}}, fullresponse: {"id":4808,"result":{"life":2008,"uid":6432360155,"model":"zhimi.airpurifier.mb3","token":"xyz123","ipflag":1,"fw_ver":"2.0.8","mcu_fw_ver":"0017","miio_ver":"0.0.8","hw_ver":"esp32","mmfree":79616,"mac":"54:48:E6:4D:8C:A3","wifi_fw_ver":"cef6c09-dirty","ap":{"ssid":"Home_2","bssid":"78:45:58:48:B6:DD","rssi":-51,"primary":1},"netif":{"localIp":"192.168.24.16","mask":"255.255.255.0","gw":"192.168.24.1"}},"exe_time":50}

The item air_purifier1_Life is the only one that gets updated.
2023-07-27 14:21:33.155 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'air_purifier1_Life' changed from 2068 to 2158

PS: A xiaomi vaccum cleaner is running without any problem.

Does anybody know what I’m missing?

Thank you for your help.

Best to try first by discovering and creating the channels via the UI.

If that works closely monitor the log while updating the items file for any errors/messages.
It is likely small typo in the item for that prevents it from correctly loading

Thanks marcel! You were right and I could find out the correct channel names with the gui.
There were some small changes in the names like On against on.

.

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.