Xiaomi Robot Vacuum Binding

@shorty707 i think I may request too many properties in one go.I read somewhere that only 8 properties can be requested, for the purifier I think currently there are 9.
I don’t own one myself, so can’t test out locally.
I’ll see if I can split the request in 2.

Can you maybe enable the commands channel (advanced) and see if it works with less properties.

hi, in fact I think there is 2 missing field, 1 is temperature, 2 is fanspeed,

I found the binding is not very stable, air purifier stop response to OH binding while later ( I am not sure for how long), but at same time, I still able to use miio(JS) to control it.

May I know do you have schedule yet for next version release? I may give some help on debug.

@hamwong actually the new version has already been available, did not have the time yet to make a proper forum post around it. It is available on the marketplace.

For all the non-vacuum devices, indeed the debugging that would help is

  1. Indicate if discovery works, and what is the ‘Device Model String’ (in the advanced thing properties)
  2. send the log of the binding (from start to end, incl the discovery & first commands + responses)
  3. For your specific device: find which commands & properties are supported and execute those commands via the (advanced) commands channel. Than send example of the command & responses.
  4. Even better: Propose a database file for it (see examples in the github).

I’ll make a separate topic for the non-vacuum devices to discuss the specifics around those devices

New version available for the Xiaomi Vacuum
Significant ‘under the hood’ changes: Changed the communication from synchronous to async. This should improve the binding performance esp in case you have failing responses.

Main changes

  • Changed the communication from synchronous to async
  • Command queuing, ensuring all commands are executed
  • Improved online/offline detection. Note, if your device can be pinged, but does not accept commands it assumes a token issue and goes to offline with configuration error.
  • Support for IOS encrypted tokens ( @sradi can you pls test)
  • Faster discovery of miio things
  • 2nd discovery method (using mDNS), which may support discovery passing subnet boundary (@Multisaft7 this may fix your discovery issue)
  • Check for checksum errors
  • Added Xiaomi Philips Led Bulb support

As usual: To update to the latest version, uninstall the market place binding and re-install it. Remove your device and let it be discovered again to ensure the latest config is used.

4 Likes

In case anyone is running Android 8.0 (Oreo), the MiToolkit did not work for me. It threw an exception when it tried to unpack the backup. I believe this is because Oreo changed the version number in the backup file from 4 to 5. Thanks for that Google!

To get the token, I ended up following this procedure here, with one additional step. After the backup.ab file is created, I edited it with a hex editor and changed the backup version number from 5 to 4 (the number is near the beginning of the file).

@marcel_verpaalen Thanks for your work on this binding. The availability of the binding is one of the reasons I went with the Xiaomi vacuum (along with the fact that the vacuum does quite a nice job cleaning). :slight_smile:

Edit: Note that the procedure referred to above no longer requires editing the backup.ab file. It appears that the app that unpacks the file has been updated to support the backup file produced by Oreo.

@shorty707 I made another small update. Now the properties are requested max 5 per request.
This will hopefully fix the properties for your airpurifier.
Pls let me know the result

Hi Marcel,

I upgraded to the new version.
First change is that it is NOT automatically creating items.
Which is actually correct because I deactivated simple mode. For some reasons the MIIO binding created them anyways in the previous version.

So I created now 1 item manually for humidity which is not working,
I will check debug logs tomorrow.

image

btw with the previous version the channels for LED and BUZZER worked.
A channel for temperature seems totally missing

@shorty707 okay, I think I know what is going on.
Only version zhimi.airpurifier.m1 is currently in the database.
Pls go to advanced properties and change the model string to zhimi.airpurifier.m1
Than it will work as before.

There are 6 versions of the purifier. Let me know the exact version you have, which channels are different and I can add your specific model to the database.

does this help?
image

the device model string was already
image

@shorty707 thanks, indeed, than the model wasn’t the problem. Than the database needs to be modified. The source I used to find the channels did not specify exactly the model. it indicated was a 1, I guessed it was the m1

I would really like to see the debug (what is the device responding etc) and any channel you still miss.

I’ve added the temperature channel.
(update should be downloadable from the market in about 20 min)

I deleted the thing and added it again. log attached. I will gather the infomation about missing channels etc in another posting in short while

09:55:08.148 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'miio:basic:035CAFE2' changed from ONLINE to REMOVING
09:55:08.158 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'miio:basic:035CAFE2' changed from REMOVING to REMOVED
09:55:08.232 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Disposing Xiaomi Mi IO Basic handler 'miio:basic:035CAFE2'
09:55:08.243 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'miio:basic:035CAFE2' changed from REMOVED to UNINITIALIZED
09:55:08.245 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Finished Mi IO MessageSenderThread
09:55:08.278 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'miio:basic:035CAFE2' changed from REMOVED to UNINITIALIZED (HANDLER_MISSING_ERROR)
09:55:41.045 [DEBUG] [iio.internal.discovery.MiIoDiscovery] - Start Xiaomi Mi IO discovery
09:55:41.057 [DEBUG] [iio.internal.discovery.MiIoDiscovery] - Xiaomi Mi IO discovery done
09:55:41.071 [DEBUG] [l.discovery.MiIoDiscoveryParticipant] - mDNS zhimi-airpurifier-m1 identified as thingtype miio:basic
09:55:41.080 [DEBUG] [l.discovery.MiIoDiscoveryParticipant] - mDNS zhimi-airpurifier-m1 identified as thingtype 035CAFE2
09:55:41.089 [DEBUG] [l.discovery.MiIoDiscoveryParticipant] - Mi IO mDNS Discovery found miio:basic:035CAFE2 with address '192.168.1.73:54321' name 'zhimi-airpurifier-m1_miio56405986'
09:55:41.114 [INFO ] [smarthome.event.InboxAddedEvent     ] - Discovery Result with UID 'miio:basic:035CAFE2' has been added.
09:55:41.106 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'miio:basic:035CAFE2' to inbox.
09:55:41.135 [DEBUG] [l.discovery.MiIoDiscoveryParticipant] - mDNS zhimi-airpurifier-m1 identified as thingtype miio:basic
09:55:41.143 [DEBUG] [l.discovery.MiIoDiscoveryParticipant] - mDNS zhimi-airpurifier-m1 identified as thingtype 035CAFE2
09:55:41.151 [DEBUG] [l.discovery.MiIoDiscoveryParticipant] - Mi IO mDNS Discovery found miio:basic:035CAFE2 with address '192.168.1.73:54321' name 'zhimi-airpurifier-m1_miio56405986'
09:55:58.098 [INFO ] [smarthome.event.InboxRemovedEvent   ] - Discovery Result with UID 'miio:basic:035CAFE2' has been removed.
09:55:58.131 [DEBUG] [ing.miio.handler.MiIoAbstractHandler] - Initializing Mi IO device handler 'miio:basic:035CAFE2' with thingType miio:basic
09:55:58.139 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'miio:basic:035CAFE2' changed from UNINITIALIZED to INITIALIZING
09:55:58.162 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'miio:basic:035CAFE2' changed from INITIALIZING to OFFLINE (CONFIGURATION_ERROR): Token required. Configure token
09:56:14.054 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Disposing Xiaomi Mi IO Basic handler 'miio:basic:035CAFE2'
09:56:14.092 [DEBUG] [ing.miio.handler.MiIoAbstractHandler] - Initializing Mi IO device handler 'miio:basic:035CAFE2' with thingType miio:basic
09:56:14.096 [INFO ] [smarthome.event.ThingUpdatedEvent   ] - Thing 'miio:basic:035CAFE2' has been updated.
09:56:14.116 [DEBUG] [ing.miio.handler.MiIoAbstractHandler] - Polling job scheduled to run every 30 sec. for 'miio:basic:035CAFE2'
09:56:14.154 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Starting Mi IO MessageSenderThread
09:56:14.156 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'miio:basic:035CAFE2' changed from OFFLINE (CONFIGURATION_ERROR): Token required. Configure token to ONLINE
09:56:14.191 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'miio:basic:035CAFE2' changed from ONLINE to OFFLINE
09:56:19.116 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Periodic update for 'miio:basic:035CAFE2' (miio:basic)
09:56:19.123 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Model needs to be determined
09:56:19.162 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":1,"method":"miIO.info","params":[]} -> 192.168.1.73 (Device: 035CAFE2 token: 92CB1EE585A1B10982EA2A71DC23F26D Queue: 1)
09:56:19.183 [INFO ] [me.event.ThingStatusInfoChangedEvent] - 'miio:basic:035CAFE2' changed from OFFLINE to ONLINE
09:56:29.452 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Communication error for Mi IO device at 192.168.1.73: Receive timed out
09:56:29.461 [DEBUG] [nal.transport.MiIoAsyncCommunication] - No response from device 035CAFE2 at 192.168.1.73 for command {"id":1,"method":"miIO.info","params":[]}.
09:56:29.474 [DEBUG] [ing.miio.handler.MiIoAbstractHandler] - Received response for 035CAFE2 type: MIIO_INFO, result: null, fullresponse: {"error":"No Response"}
09:56:29.480 [DEBUG] [ing.miio.handler.MiIoAbstractHandler] - Error received: "No Response"
09:56:49.188 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Periodic update for 'miio:basic:035CAFE2' (miio:basic)
09:56:49.195 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Model needs to be determined
09:56:49.220 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":2,"method":"miIO.info","params":[]} -> 192.168.1.73 (Device: 035CAFE2 token: 92cb1ee515a1b10111ea2a73dc23f26d Queue: 1)
09:56:49.275 [DEBUG] [ing.miio.handler.MiIoAbstractHandler] - Received response for 035CAFE2 type: MIIO_INFO, result: {"life":88749,"cfg_time":0,"token":"92cb1ee515a1b10111ea2a73dc23f26d","mac":"34:CE:00:84:D6:83","fw_ver":"1.2.4_59","hw_ver":"MC200","model":"zhimi.airpurifier.m1","wifi_fw_ver":"SD878x-14.76.36.p79-702.1.0-WM","ap":{"rssi":-36,"ssid":"here","bssid":"34:81:C4:24:29:66"},"netif":{"localIp":"192.168.1.73","mask":"255.255.255.0","gw":"192.168.1.199"},"mmfree":27272,"ot":"otu","otu_stat":[307,292,247,0,247,419],"ott_stat":[0,0,0,0]}, fullresponse: {"result":{"life":88749,"cfg_time":0,"token":"92cb1ee515a1b10111ea2a73dc23f26d","mac":"34:CE:00:84:D6:83","fw_ver":"1.2.4_59","hw_ver":"MC200","model":"zhimi.airpurifier.m1","wifi_fw_ver":"SD878x-14.76.36.p79-702.1.0-WM","ap":{"rssi":-36,"ssid":"here","bssid":"34:81:C4:24:29:66"},"netif":{"localIp":"192.168.1.73","mask":"255.255.255.0","gw":"192.168.1.199"},"mmfree":27272,"ot":"otu","otu_stat":[307,292,247,0,247,419],"ott_stat":[0,0,0,0]},"id":2}
09:56:49.308 [INFO ] [smarthome.event.ThingUpdatedEvent   ] - Thing 'miio:basic:035CAFE2' has been updated.
09:56:49.316 [INFO ] [ing.miio.handler.MiIoAbstractHandler] - Mi IO model zhimi.airpurifier.m1 identified as: Mi Air Purifier (zhimi.airpurifier.m1). Matches thingtype miio:basic
09:57:19.254 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Periodic update for 'miio:basic:035CAFE2' (miio:basic)
09:57:19.259 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Building Channel Structure for miio:basic:035CAFE2 - Model: zhimi.airpurifier.m1
09:57:19.264 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - bundle: org.openhab.binding.miio_2.2.0.201709162050 [235], /database/zhimi.airpurifier.m1.json, {}
09:57:19.288 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Device Mapper: /database/zhimi.airpurifier.m1.json, {"deviceMapping":{"id":["zhimi.airpurifier.m1"],"channels":[{"property":"power","friendlyName":"Power","channel":"power","type":"OnOffType","refresh":true,"channelGroup":"actions","actions":[{"command":"set_power","parameterType":"ONOFF"}]},{"property":"mode","friendlyName":"Mode","channel":"mode","type":"String","refresh":true,"ChannelGroup":"actions","actions":[{"command":"set_mode","parameterType":"STRING"}]},{"property":"humidity","friendlyName":"Humidity","channel":"humidity","type":"Number","refresh":true,"ChannelGroup":"Status","actions":[]},{"property":"aqi","friendlyName":"Air Quality Index","channel":"aqi","type":"Number","refresh":true,"ChannelGroup":"Status","actions":[]},{"property":"bright","friendlyName":"Brightness","channel":"brightness","type":"Number","refresh":true,"ChannelGroup":"actions","actions":[{"command":"set_led_b","parameterType":"NUMBER"}]},{"property":"led","friendlyName":"Led Status","channel":"led","type":"Switch","refresh":true,"ChannelGroup":"actions","actions":[{"command":"set_led","parameterType":"ONOFF"}]},{"property":"act_det","friendlyName":"Air AutoDetect","channel":"act_det","type":"Switch","refresh":true,"ChannelGroup":"actions","actions":[]},{"property":"buzzer","friendlyName":"Buzzer Status","channel":"buzzer","type":"Switch","refresh":true,"ChannelGroup":"actions","actions":[{"command":"set_buzzer","parameterType":"ONOFF"}]},{"property":"f1_hour","friendlyName":"Filter Max Life","channel":"filtermaxlive","type":"Number","refresh":true,"ChannelGroup":"Status","actions":[]},{"property":"filter1_life","friendlyName":"Filter Life","channel":"filterlive","type":"Number","refresh":true,"ChannelGroup":"Status","actions":[]}]}}, {}
09:57:19.351 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Current thing channels miio:basic:035CAFE2:network#ssid, type: miio:ssid
09:57:19.356 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Current thing channels miio:basic:035CAFE2:network#bssid, type: miio:bssid
09:57:19.365 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Current thing channels miio:basic:035CAFE2:network#rssi, type: miio:rssi
09:57:19.379 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Current thing channels miio:basic:035CAFE2:network#life, type: miio:life
09:57:19.388 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Current thing channels miio:basic:035CAFE2:actions#commands, type: miio:commands
09:57:19.399 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - properties [ Channel = power, friendlyName = Power, type = OnOffType, channelType = power, ChannelGroup = null, channel = power, property = power, refresh = true]
09:57:19.408 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - properties [ Channel = mode, friendlyName = Mode, type = String, channelType = mode, ChannelGroup = actions, channel = mode, property = mode, refresh = true]
09:57:19.416 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - properties [ Channel = humidity, friendlyName = Humidity, type = Number, channelType = humidity, ChannelGroup = Status, channel = humidity, property = humidity, refresh = true]
09:57:19.424 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - properties [ Channel = aqi, friendlyName = Air Quality Index, type = Number, channelType = aqi, ChannelGroup = Status, channel = aqi, property = aqi, refresh = true]
09:57:19.432 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - properties [ Channel = brightness, friendlyName = Brightness, type = Number, channelType = brightness, ChannelGroup = actions, channel = brightness, property = bright, refresh = true]
09:57:19.440 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - properties [ Channel = led, friendlyName = Led Status, type = Switch, channelType = led, ChannelGroup = actions, channel = led, property = led, refresh = true]
09:57:19.447 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - properties [ Channel = act_det, friendlyName = Air AutoDetect, type = Switch, channelType = act_det, ChannelGroup = actions, channel = act_det, property = act_det, refresh = true]
09:57:19.454 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - properties [ Channel = buzzer, friendlyName = Buzzer Status, type = Switch, channelType = buzzer, ChannelGroup = actions, channel = buzzer, property = buzzer, refresh = true]
09:57:19.461 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - properties [ Channel = filtermaxlive, friendlyName = Filter Max Life, type = Number, channelType = filtermaxlive, ChannelGroup = Status, channel = filtermaxlive, property = f1_hour, refresh = true]
09:57:19.468 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - properties [ Channel = filterlive, friendlyName = Filter Life, type = Number, channelType = filterlive, ChannelGroup = Status, channel = filterlive, property = filter1_life, refresh = true]
09:57:19.475 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Current thing channels added: 10

Here is the Information that can be read in the App…
from these I would derive the channels:
PM2.5 = Airquality (probably your AQI channel)
Temperature
Humidity
Comfort Level
Filter Remaining days
Filter Remaining percent
Running time
Clean Air delivered
MODE Select
Notification Sound (activates/deactives is the device confirms a setting chnage with a beep)
light (has 3 settings for the LED: off; bright; dim)

maybe another useful information for you:

the default binding config says the there is a 30second cycle for refresh…
I never see a cyclic communication in the log

PM2.5 = Airquality (probably your AQI channel)
Temperature
Humidity
Comfort Level
Filter Remaining days
Filter Remaining percent
Running time
Clean Air delivered
MODE Select
Notification Sound (activates/deactives is the device confirms a setting chnage with a beep)
light (has 3 settings for the LED: off; bright; dim)

Comfort Level should be local calculation on app
Clean Air delivered should be local calculation on app
Notification Sound = buzzer
light = brightness 0, 1, 2 > off; bright; dim

this should be cloud or a real channel

if it was only local caluclation then the value would be zero when installing the app on another device.

@shorty707 strange that the scheduled refresh is not working. In my setup the sceduled refresh is working when (faking) I I configure a airpurifier. From your log there is no obvious error. So after this bit nothing is happening?

Can you execute via the (advanced) command channel these 2 commands:
get_prop["power","mode","humidity","aqi","bright"]
get_prop["led","act_det","buzzer","f1_hour","filter1_life"]

I’ll take another look @ the code

NB. I also know that paperUI sometimes needs a refresh when the channels are defined. They are there, but just not visible in the UI. (refresh with e.g. with F5 or reloading the page)

I created an item for that
String XAIR_commandchannel "Manual Command Channel" {channel="miio:basic:035CAFE2:actions#commands"}

tried to execute your command on console with smarthome:update … seems wrong approach :wink:

ah cool can fire that on paper ui … never seen this

15:56:09.436 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":3,"method":"get_prop","params":["power","mode","humidity","aqi","bright"]} -> 192.168.1.73 (Device: 035CAFE2 token: 92CB1EE585A1B10982EA2A71DC23F26D Queue: 1)
15:56:09.465 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Locating action for channel actions#commands:get_prop["power","mode","humidity","aqi","bright"]
15:56:09.480 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Channel Id actions#commands not in mapping. Available:
15:56:09.507 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - entries: mode : org.openhab.binding.miio.internal.basic.MiIoDeviceAction@14460c
15:56:09.517 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - entries: brightness : org.openhab.binding.miio.internal.basic.MiIoDeviceAction@128f475
15:56:09.527 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - entries: buzzer : org.openhab.binding.miio.internal.basic.MiIoDeviceAction@1a288aa
15:56:09.536 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - entries: led : org.openhab.binding.miio.internal.basic.MiIoDeviceAction@8f37d1
15:56:09.546 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - entries: power : org.openhab.binding.miio.internal.basic.MiIoDeviceAction@6b266a
15:56:09.565 [INFO ] [smarthome.event.ItemCommandEvent    ] - Item 'XAIR_commandchannel' received command get_prop["power","mode","humidity","aqi","bright"]
15:56:09.601 [INFO ] [marthome.event.ItemStateChangedEvent] - XAIR_commandchannel changed from get_prop to get_prop["power","mode","humidity","aqi","bright"]
15:56:09.861 [DEBUG] [ing.miio.handler.MiIoAbstractHandler] - Received response for 035CAFE2 type: GET_PROPERTY, result: ["on","auto",68,10,null], fullresponse: {"result":["on","auto",68,10,null],"id":3}
15:56:09.894 [INFO ] [marthome.event.ItemStateChangedEvent] - XAIR_commandchannel changed from get_prop["power","mode","humidity","aqi","bright"] to {"result":["on","auto",68,10,null],"id":3}
15:56:09.899 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Error while handing message {"result":["on","auto",68,10,null],"id":3}
java.lang.UnsupportedOperationException: JsonNull
	at com.google.gson.JsonElement.getAsString(JsonElement.java:191) [23:com.google.gson:2.3.1]
	at org.openhab.binding.miio.handler.MiIoBasicHandler.updateProperties(MiIoBasicHandler.java:331) [237:org.openhab.binding.miio:2.2.0.201709170737]
	at org.openhab.binding.miio.handler.MiIoBasicHandler.onMessageReceived(MiIoBasicHandler.java:349) [237:org.openhab.binding.miio:2.2.0.201709170737]
	at org.openhab.binding.miio.internal.transport.MiIoAsyncCommunication$MessageSenderThread.run(MiIoAsyncCommunication.java:209) [237:org.openhab.binding.miio:2.2.0.201709170737]
15:56:09.921 [INFO ] [marthome.event.ItemStateChangedEvent] - XAIR_mode changed from NULL to auto
15:56:09.946 [INFO ] [marthome.event.ItemStateChangedEvent] - XAIR_humidity changed from NULL to 68
15:56:09.967 [INFO ] [marthome.event.ItemStateChangedEvent] - XAIR_airquality changed from NULL to 10

second one timed out

15:59:00.534 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Command added to Queue {"id":4,"method":"get_prop","params":["led","act_det","buzzer","f1_hour","filter1_life"]} -> 192.168.1.73 (Device: 035CAFE2 token: 92CB1EE585A1B10982EA2A71DC23F26D Queue: 1)
15:59:00.562 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Locating action for channel actions#commands:get_prop["led","act_det","buzzer","f1_hour","filter1_life"]
15:59:00.578 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - Channel Id actions#commands not in mapping. Available:
15:59:00.588 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - entries: mode : org.openhab.binding.miio.internal.basic.MiIoDeviceAction@14460c
15:59:00.597 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - entries: brightness : org.openhab.binding.miio.internal.basic.MiIoDeviceAction@128f475
15:59:00.604 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - entries: buzzer : org.openhab.binding.miio.internal.basic.MiIoDeviceAction@1a288aa
15:59:00.611 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - entries: led : org.openhab.binding.miio.internal.basic.MiIoDeviceAction@8f37d1
15:59:00.624 [DEBUG] [inding.miio.handler.MiIoBasicHandler] - entries: power : org.openhab.binding.miio.internal.basic.MiIoDeviceAction@6b266a
15:59:00.637 [INFO ] [smarthome.event.ItemCommandEvent    ] - Item 'XAIR_commandchannel' received command get_prop["led","act_det","buzzer","f1_hour","filter1_life"]
15:59:00.670 [INFO ] [marthome.event.ItemStateChangedEvent] - XAIR_commandchannel changed from {"result":["on","auto",68,10,null],"id":3} to get_prop["led","act_det","buzzer","f1_hour","filter1_life"]
15:59:10.573 [DEBUG] [nal.transport.MiIoAsyncCommunication] - Communication error for Mi IO device at 192.168.1.73: Receive timed out
15:59:10.577 [DEBUG] [nal.transport.MiIoAsyncCommunication] - No response from device 035CAFE2 at 192.168.1.73 for command {"id":4,"method":"get_prop","params":["led","act_det","buzzer","f1_hour","filter1_life"]}.
15:59:10.582 [DEBUG] [ing.miio.handler.MiIoAbstractHandler] - Received response for 035CAFE2 type: GET_PROPERTY, result: null, fullresponse: {"error":"No Response"}
15:59:10.585 [DEBUG] [ing.miio.handler.MiIoAbstractHandler] - Error received: "No Response"