[OBSOLETE] Xiaomi Magic Cube Controller (Advanced DTH)

Yea, the Cube is cheap and fun to use but not as practical as it could be.It would be so much better if it sent the orientation on every gesture. And believe me I spent entire day looking at the binary data it was sending hoping I’ll find the magical 3 bit combination for face number like I managed to do with other gestures. Unfortunately all I found was a Float value that probably represents approximate rotation angle.

Knock and slide gestures are safe - the Cube sends orientation on those gestures so you don’t have to worry about them activating for wrong face.

If you are looking for a small remote with 30 actions I recommend Fibaro KeyFob it is more expensive but much more practical :wink:

Great DTH. Is there also a SA that accompanies it? When I try using it with the ST SmartLighting app, it allows me to select it as a button controller, but the next screen (where you would select the buttons) is blank. I was able to get the “Mi Cube” DTH and SA working, but your DH seems to have many more options.

That unfortunately is an issue with the SmartLighting app - it doesn’t work with devices that present more than 20 buttons. The same goes for SmartThings routines.

Please use WebCORE tu utilize full potential of this DTH.

For an absolute noob, can you give me a step by step - ive managed to get the cube recognised by my ST, and ive installed webcore, but now I have 0 idea what I am doing.

Say I want to add 36 functions to the cube, how do i go about doing it?

Edit: Ok figured it out, just needed so spend abit more time on the piston dashboard and it kind of makes sense

Struggling to pair to ST.

Am adding a thing in ST app then holding pair button on magic cube for around 3-5sec. Looking for catchall in IDE log but nothing appearing. Have tried searching the IDE for catchall and nothing at all.

Any advice or help would be appreciated.

Got it working finally.

So got a basic WebCore piston to work for when rotating and looking at a knock trigger. Got the knock working but would like my Hue bulbs to all change to a different colour to each other. At the moment they change to a random hue but are in sync to each other. Any ideas:


1 Like

How did you get it to work? I have the same problem. Previously able to find deviceID for Xiaomi temp sensors, but no such luck with the magic cube.

Went to the ‘SmartThing IDE’ then clicked on ‘My Hubs’ the clicked on ‘List Events’. When i then tried to pair i found the deviceID in here. 8th set of digits i believe is the actual ID code.

so there is no “catchall” item I should look for? I see two distinct logged events, one is “read attr-raw” and other is “ssdpTerm”. which line did you get the deviceID from, there is one called ID. is that it? also was it 7th or 8th?
thanks for your help in advance.

In case someone has the same problem as I do, you have to hold the reset button on for several seconds until you see the light flashing three times. I just kept playing with it, while keeping the ST hub app open on my phone and ST IDE page open to see if it registers a catchall. You may have to refresh your browser. In general, the Xiaomi made devices don’t have the most straight forward pairing process, so wait until you see the catchall.

Hi, I add the cube and work on the smartthings app. But I don’t know how to set a function with the face.
I try to add - automation-smart lightning… I select botton but not work. I don’t know what I must do.
Can you write me the step to follow. Thnks

Got the 7 button version working fantastic, thanks and Kudos…can’t seem to get the 36 button version to work with Core, the simulated app- buttons work but the cube functions do nothing despite showing correct face orientations in the app

When I am evaluating the device in WebCore, how do I get access to the data:buttonNumber value?

1 Like

@toddbecker, sorry, liked your earlier post, so I had a book mark :slight_smile:

Hope this info helps. The below are the button numbers that relate to the cubes actions

I use the following logic, whereby the button in question is pushed and some action takes place


So you looking for button and then whatever number relating to your cubes face.

1 Like

@KellyDarren thanks for the follow up. I understand which button values map to the corresponding actions, similar to what you posted. I was having troubles because the value returned by the button push action was not reflecting the advanced configuration. The Switch/Case statement doesn’t allow you to select from pre-identified values, so I couldn’t determine what to evaluate. I figured out how to do it with data from the CurrentDevice, but there could be a better way.

Can you publish your entire piston so I can see the entire logic flow?

This worked, but I’m not sure it is the optimal way to go.

@toddbecker I used if statements instead of case

1 Like

Is there any good app that can utilize all of device events?
I tried the one by SteveTheGeekHA but it does not support dimming.

you can use this one here it does support dimming

After several tries I got my new Aqara Cube to connect to my ST hub. I do not see any desired events however (in the ST app, device, recently screen). Actually, it does show one event which was initiated by the config screen setting the number of buttons. Also created a WebCoRE piston looking for orientation OR face changes OR button presses, and it never prints any debug.

i put it into pair(?) mode again and it gave a new device id so i changed the ST device id in the IDE. still no face orientation changes

pair again and create a new device. again it seems to respond to configure buttons from ST device config but no orientation or button events. it does flash the internal blue led sometimes when i shake or flip sides

any ideas?