Binding for Xiaomi wifi plug and power strips - Xiaomi Mi IO Binding

@DaAndy sorry think my text was indeed confusing.
Try with smarthome:send
as with update indeed the binding is not receiving the command

get_prop[ā€œcurrentā€]:

21:41:23.099 [INFO ] [smarthome.event.ItemCommandEvent    ] - Item 'MiPowerStripV2LivingTV_Actions_ExecuteCommand' received command get_prop[current]
21:41:23.132 [INFO ] [marthome.event.ItemStateChangedEvent] - MiPowerStripV2LivingTV_Actions_ExecuteCommand changed from get_prop[current] to {"result":[0.00],"id":10918}

get_prop[ā€œtemperatureā€]:

21:43:17.008 [INFO ] [marthome.event.ItemStateChangedEvent] - MiPowerStripV2LivingTV_Actions_ExecuteCommand changed from {"result":[0.00],"id":10925} to get_prop[temperature]
21:43:17.026 [INFO ] [marthome.event.ItemStateChangedEvent] - MiPowerStripV2LivingTV_Actions_ExecuteCommand changed from get_prop[temperature] to {"result":[36.86],"id":10926}

After that I activated the socket and tried ā€œcurrentā€ again:

21:44:13.046 [INFO ] [smarthome.event.ItemCommandEvent    ] - Item 'MiPowerStripV2LivingTV_Actions_ExecuteCommand' received command get_prop[current]
21:44:13.055 [INFO ] [marthome.event.ItemStateChangedEvent] - MiPowerStripV2LivingTV_Actions_ExecuteCommand changed from {"result":[36.86],"id":10926} to get_prop[current]
21:44:13.080 [INFO ] [marthome.event.ItemStateChangedEvent] - MiPowerStripV2LivingTV_Actions_ExecuteCommand changed from get_prop[current] to {"result":[0.13],"id":10929}
21:44:28.375 [INFO ] [smarthome.event.ItemCommandEvent    ] - Item 'MiPowerStripV2LivingTV_Actions_ExecuteCommand' received command get_prop[current]
21:44:28.390 [INFO ] [marthome.event.ItemStateChangedEvent] - MiPowerStripV2LivingTV_Actions_ExecuteCommand changed from {"result":[0.13],"id":10929} to get_prop[current]
21:44:28.410 [INFO ] [marthome.event.ItemStateChangedEvent] - MiPowerStripV2LivingTV_Actions_ExecuteCommand changed from get_prop[current] to {"result":[0.24],"id":10930}
21:44:36.338 [INFO ] [smarthome.event.ItemCommandEvent    ] - Item 'MiPowerStripV2LivingTV_Actions_ExecuteCommand' received command get_prop[current]
21:44:36.357 [INFO ] [marthome.event.ItemStateChangedEvent] - MiPowerStripV2LivingTV_Actions_ExecuteCommand changed from {"result":[0.24],"id":10930} to get_prop[current]
21:44:36.586 [INFO ] [marthome.event.ItemStateChangedEvent] - MiPowerStripV2LivingTV_Actions_ExecuteCommand changed from get_prop[current] to {"result":[0.26],"id":10932}
1 Like

Cool, Iā€™ll add those 2 properties than.
What do you see in the screen with those values
e.g. is 36.86 the degree celcius?
is 0.26 the A? = 0.26*230V=59.8W

1 Like

I left it running for some time and the current stayed at ā€œ0.29ā€ - the app said between 42 and 44 Watt. At 0.28 the app said 41 Watt.

Dont know what it really counts there :confused:

About the temperature:

The room is around 22-23 degree celcius. I guess it is the temperature of the device itself? It raised over time - the strip ran for like 10 Minutes at around 41-44 Watt and had 41.54 at temperature. After that I turned the device off and the temperature started to sink (current was on 0). I will take a look at it this evening again - just a cold start and try the command again :slight_smile:

To make it easyā€¦ Iā€™ve added the channels for these properties. It is available on the market.

1 Like

Very nice, most of my xiaomi wifi things are not autodeteced.
What type of thing should I use for the wifi single plug and the 6 plug wifi powerstrip?

Make it a basic type. Only the strip v2 is in the database right now, so if you see an error message change the ā€˜Device Model Stringā€™ (advanced) configuration to zimi.powerstrip.v2 as you can see in the screenshot.

Let me know the results for the single plug with itā€™s type and I can make a database file for that one as well.

Hi Marcel
Iā€™m not compleatly sure of what information you are looking for. I canā€™t upload screen shots, I donā€™t know why, but I have the device model string: chuangmi.plug.m1

is that the one you are looking for?

I just downloaded the new version and the Strip is recognized okay.

BUT I do have the problem that the Binding seems to kick out all my Yeelights I used with the dedicated Yeelight Bindingā€¦ Now I try to restore it - any benefits with kicking out the Yeelight Binding and using yours?

Edit: Dont know what happened - all Yeelights are offline now and I cannot bring them online again. Reboot does not help.

Edit 2: After another reboot and turning on and off the developer mode on some bulbs all are online again with the old binding. What I did was also to replace your new binding-version with a old one I had as backup (23.09.17). I will try that again on the weekend I guess when I have time.

Would be nice to only have one binding for all Xiaomi stuff, but what I saw is that I also need to put in a token for Yeelights? Also I did not see any channels for Color & Color-Temperature.

The binding also seems to detect the xiaomi wifi repeater 2, it also find the token without any help somehow.
The device subtype is xiaomi.repeater.v2

Yes, plus if it works for those devices when you send the same commands as for the strip (tested by changing the model string in the config)

It works with both the chuangmi.plug.m1 and the zimi.powerstrip.v2 sub type

@DaAndy as long as you donā€™t add the yeelights as things, the yeelight should not be affected.

I havenā€™t had the chance to implement yeeligjts fully yet. So if you need all the channels, currently you better use the yeelight binding

This is added now to the database with same channels as the powerstrip.

I removed and added the binding today, and it found my xiaomi things automatically, very nice.

It also reconized the power strip and plug antomatically, but Im not getting any current readings from it. REST API is saying the item is NULL when I ask to get the state.

If I can help you in any way tell me :slight_smile:

You can try to get these properties

load_voltage
load_power
power_consumed

By going to the command channel and send e.g get_prop[ā€œload_voltageā€]

What also helps is to send the plugin apk (from your backup where you got your key, the files with somenumber.apk filename.)
I can than try my emulator for your devices.

Okay, I donā€™t know how to do that, could you post an example or guide me to more information on this? I really like to use it.

You can enable the command channel by going to paperUI, open your your thing.
Than when you see the list of channels, click on show all, and the enhanced channels can be selected. Enable the command channel (it is a advanced channel, so otherwise invisible)
You can than paste the commands there, wait a bit and the value of the channel will be updated with the response.

(I think in the vacuum thread there are some screenshots as well).

okay I tried to do it, I added a item for the executing command:

I send the get_prop[ā€œload_voltageā€] via REST API:

The result was a bit unexpected.

I think I did something worng :S

Nope, you did it rightā€¦
It means that property is not supported by your device. Can you try the other 2?