Xiaomi & Aqara Devices - Pairing & Keeping them connected

I can get the Xiaomi original (round) temperature/humidity sensors to pair (I think?) and I’m using bspranger’s api but they don’t report temperature or humidity correctly. I think the api needs an overhaul. I get the following error:

For input string: "read attr - raw: 6DC50104020A0000298507, dni: 6DC5, endpoint: 01, cluster: 0402, size: 0A, attrId: 0000, encoding: 29, value: 0785" on line 220

Yes, I know exactly what is going on. I’ll have a Hubitat device driver ready to test very soon.


I tried to pair the ‘original’ Temperature and Humidity sensors and the pairing process worked perfectly again. Didn’t even have to try twice.
However, the reported values don’t seem to be recognized properly. Check-in times and the read Attr values do get updated but no temperature or humidity values are shown.

So this device is incompatible at the moment. However, I intend to keep this paired as is to test how long the pairing and Check-ins last, compared to the motion sensors I paired previously (which are still going strong).

That’s good to hear. When it paired, did it show up as “Device” or was the SmartThings device handler automatically chosen as the device driver?

I have posted a v0.1 beta device driver for the Xiaomi “Original” Temp/Humidity sensor on GitHub. EDIT: now updated to v0.5, fully functional and compatible with both of Xiaomi’s models of Temperature/Humidity sensors - please see this new thread for Xiaomi device driver releases.

It is reading the reported temperature and humidity values correctly so far, but I missed the first battery report after pairing, so I still need to change the code for that to work.

I did see the one Temp/Humidity sensor I was testing remain connected and reporting to the Hubitat for over an hour, but it dropped the connection after about 90 minutes. I was able to get it reconnected by going into “Discover Devices” mode, and then short-pressing the sensor’s reset button, waiting for one long blink (failed to connect) or three-quick-flashes (successful connection), after each press.

On the third press, I saw 3 quick flashes, and it was reconnected without having to do the full pairing process! That’s somewhat good news.

1 Like

I paired my round sensor to Hubitat and it did not choose the right driver even though I had already loaded your driver into the hub. It paired as a generic device and I had to manually select your driver after it paired. I will report back if it continues to stay connected. It was previously paired to ST and it remained connected and reported updates throughout the day.

I have fixed this issue, and created a new single unified device driver for both the Xiaomi “original” and Aqara Temperature/Humidity sensors.

As promised, I have started a new thread just for announcements of all new Xioami device drivers for Hubitat that I release.

Many thanks to you, @ajayjohnm, @oldernstone and others for your feedback! Please keep it up and hopefully we’ll get these things working with the Hubitat!

1 Like

I moved all my Xiaomi Motion and humidity/temp Sensors over to the Hubitat.

  • first removed them all from SmartThings
  • Then I powered off and removed the batteries from my SmartThings hub to try and avoid any interference.
  • I have not moved any other zigbee repeater devices to my Hubitat yet
  • Then I paired my Xiaomi sensors to the Hubitat

I have left my SmartThings hub powered off to see how long they stay connected. So far 3-4 hours

To get my Xiaomi sensors to stay paired to SmartThings afew months ago I had to kill all the power in the house (didn’t want to disconnect all the hard wired zigbee switches) then pair to SmartThings.
Going to try this way first.

2 original Motion Sensors
4 Aqara Motion Sensors
3 Aqara Temperature/Humidity

2 of the Aqara Motion Sensors kept showing up only as a device but I changed them to the proper device type and they are working fine. I did try removing them several times and adding them again but these 2 always showed up as just a device.

I also have 7 SmartThings zigbee water sensors installed and they took about the same time to pair.
All of the sensors took a little while and a few attempts to pair.

Thanks for the feedback!

I assume that you added my device driver code for both the original and also Aqara Motion sensors, so if that's true, then if you have time, could you try re-pairing one of your Aqara Motion Sensors, copy and post the text that appears when the "More" button is pressed?

With that text, I can check whether the "fingerprint" used in the device driver to match to the device being paired should be modified. I only have one Aqara Motion Sensor, and it is correctly recognized as a match to my device driver every time.

yes using your code

first one:

second one:

They both appear to have a hard time initializing I have to press the pairing button again sometimes several times after they are first found to complete the pairing.

Thanks for posting that information. So it appears there’s 2 variants of the Aqara Motion Sensor! As you’ve already seen, I’ve updated the device driver with the new fingerprint based on your data.

Hopefully that will help the hub to automatically chose the correct driver for your Aqara Motion Sensors.

Sorry to repeat the news from my other thread, but this one is important and shouldn’t be missed…


Both my original xiaomi temp humidity sensors are still sending updates. It’s been 6ish hours since the hub update. Great work!


More good news:

When I checked on all of my Xioami sensors this morning, everything is still connected.

Even better, the Hubitat hub started passing on the status reports from my “Original” & Aqara Door/Window contact sensors, Aqara Leak sensor, Aqara Motion sensor, “Original” button, and 2-panel wall-mount switch, which is evidenced from regular battery state events from all of these devices, either every 50 or 60 minutes. I’m not sure why it took over 2 hours after pairing for that to start happening, but the fact that they are still connected and reporting is a very good sign that they will no longer be dropping their connection with the Hubitat.

I’m going to leave all of my Xioami sensors in the same room as the Hubitat hub for a few days, and if they remain connected, move them to more distant locations. I don’t have any other Zigbee devices that are routers (repeaters) so I don’t currently have a way to test if Xioami sensors will work in that kind of mesh topography along with the Hubitat. Hopefully someone else with Xioami sensors who does also have Zigbee router-capable devices can report here with their findings.

1 Like

that update happened about the middle of pairing all my devices and not sure all which where paired on the new vs old update. But I did have to re-pair my temp/humidity late last night after the update (they were initially paired on the old update) and re-pair late last night on the new update, they have stayed connected now over 14 hours now. Motion sensors I am not sure on which update they were paired half stayed paired over 14 hours but have now re-paired them on the new update so will see.
note: to re-pair I removed the devices and then re-added them.
Great news if they stay paired

I just paired a Xioami round button to Hubitat. It paired as a Device; when I push the button it produces the logging below (is there a button driver to try?). I’ve mapped the mesh with my XStick and see that it is routing through an Iris SmartPlug. I’ll let you know if it stays paired.

Xiaomi Button 6, parse description: read attr - raw: 4D3C0100060800001001, dni: 4D3C, endpoint: 01, cluster: 0006, size: 08, attrId: 0000, encoding: 10, value: 01

For me, the Hubitat chose my new Xioami Door/Window device driver when I paired my Xiaomi “original” button and I can check the Events to make sure it’s still connected and sending reports, but since the “Device” device handler produces log messages, you could keep your Log window open to watch for that. If left idle, it should send a “status report” message every 60 minutes which will look like this:

read attr - raw: 81470100003002FF4C0600100121BA0B21A813240100000000215D062058, dni: 8147, endpoint: 01, cluster: 0000, size: 30, attrId: FF02, encoding: 4C, value: 0600100121BA0B21A813240100000000215D062058

If the Iris SmartPlug can pass on all messages and allow Xioami devices to remain connected, that would be awesome. Thank you for the feedback, and let us all know how it does. I do wish the Hubitat could give ZigBee mesh routing information. I’m going to have to get a ZigBee sniffer myself.

Not yet. But I have already done all the testing I need to make it. The big problem is how to approach the functionality of the device driver, considering that the button’s hardware supports multi-clicks, and sends unique messages for double to quadruple-clicks.

Please refer to my Xiaomi device driver forum thread for more detailed information on my findings with the round button. I’m hoping to get other user’s input on what they’d like from the device driver before I sit down to complete it.

After about an hour it stopped logging button presses. I put the hub in add mode and did a short press which produced 4 blinks, then this was logged (subsequent presses produced the shorter log entry as in my prior post; I’ll give it a couple of hours to see if it drops off again):

2018-02-25 14:44:37.871:debugXiaomi Button 6, parse description: read attr - raw: 7DB10100003002FF4C0600100021EC0B21A8012400000000002182002063, dni: 7DB1, endpoint: 01, cluster: 0000, size: 30, attrId: FF02, encoding: 4C, value: 0600100021EC0B21A8012400000000002182002063

dev:2442018-02-25 14:44:37.818:debugXiaomi Button 6, parse description: read attr - raw: 7DB10100002C050042126C756D692E73656E736F725F737769746368, dni: 7DB1, endpoint: 01, cluster: 0000, size: 2C, attrId: 0005, encoding: 42, value: 126C756D692E73656E736F725F737769746368

So, weird thing here. Of my two round Xiaomi Temperature Humidity Sensors (I’m just gonna start calling them RXTHS from now on) one is still reporting temperature and humidity every .5C change or so, and battery reports every hour. The other one is only reporting battery, hasn’t reported a temperature or humidity change in 2 hours. Maybe the temperature has been stable enough not to report anything, but that seems unlikely.

2 of my 3 Aqara Temperature/Humidity fell asleep as well just stopped reporting after 14 hours. I pushed the pairing button a bunch of times to wake them up and off they went.
I did move them to their locations so maybe just to far away but SmartThings work in these locations but maybe Hubitat can not do the distance. Will put them back there and see how they do.
The third one is closer to the hub and it is still working fine.
All of the motion sensor are still working fine as well but they are still sitting on my desk next to the hub.

This is exactly the behavior I was experiencing before I applied Hub 698 update. Now, it’s been connected and still working 17 hours later.

I assume you’re running on the new .698 update, so the other thing I did that may have help was to remove all of my Xiaomi devices and Reset the ZigBee Stick (in Settings > Zigbee Information). If you do the same just be aware that all Zigbee devices will lose their connection, and need to be rejoined (though they will still be in the Devices list, so that should just involve using the “Discover Devices” mode and putting the devices in pairing mode).

That is the “status report” and your button’s voltage data is present. I’ve boldfaced it. It’s big-endian so the value is 0BEC, which is equal to 3052, divided by 1000 to give us 3.052 Volts.

That message is another kind of announcement message. ZigBee Cluster 0000 is for “Basic” information about the device, and Attribute ID 0005 of cluster 0000 is for the Model Identifier.

If you take the value 126C756D692E73656E736F725F737769746368 and convert it to ASCII text, it’s lumi.sensor_switch.

Don’t worry about sending more of the read attr - raw: messages for the button, as I’ve already got all of that from mine. Really what I’d like to help get working for you is the connection, seeing as my button is staying connect while your is not for some reason.

By they way, I’ve posted all of my findings on the button over here, and would love any input on what you think would be a good way to set up the device drivers’ output of the messages received from the button.

Thanks again for sharing feedback!

1 Like

Download the Hubitat app