MCO Home C221 (MH-C221) - Cheaper Z-Wave Roller Shutter

Tags: #<Tag:0x00007f739ab79e80>

Hi there,

I already have a couple of Fibaro Roller Shutter 3 at home and I was looking to integrate the rest of the blinds. At the moment, I can’t find the Fibaros for under 60€, so I started to look for cheaper Z-Wave Plus alternatives and I found the MCO Home C221 (MH-C221) roller shutter for about 30€ on AliExpress (edit: I removed the original link because it’s no longer working, but you can find many other stores selling it).

This seems to be a fairly new product, but from what I’ve seen, MCO Home is already a known Z-Wave manufacturer famous for their thermostats, touch panels, and air quality products.

The product page for the MH-C221 roller shutter is the following: http://www.mcohome.com/ProductDetail/3897786.html

The manual with the device parameters, calibration, wiring, etc. can also be downloaded from the product page.

It looks like the device isn’t explicitly supported by OpenZWave as I can’t find it in the device database, so I was wondering if anybody has tried (or is trying) to integrate it in Home Assistant already.

I’ve bought one device to try it out, so when I get my hands on it I’ll update the thread with my impressions and findings.

Cheers.

Update. I received the device, installed it, and calibrated it according to the documentation. Despite the device not being explicitly supported by OpenZWave, it’s detected correctly in Home Assistant as a roller shutter and I can set the position and access the rest of entities exposed (power, energy consumed, voltage, current, alarm, …). The device also reports the position correctly and it’s instantly updated in Home Assistant as the shutters open and close.

I started to create the XML for the device to add support for OpenZWave and get the device properly identified. The work-in-progress XML is the following: https://gist.github.com/adrianmo/88e9fd959f9a4cf0e0d01cb7787c518e (This is my first time attempting to add a device to OpenZWave, so happy to receive contributions and comments).

One more thing I’m struggling at the moment is setting the parameters. Every time I try to set a configuration parameter I get a timeout. The device seems to ignore all configuration commands.

I have two physical toggle switches that control the shutters, but the device is configured by default to deal with momentary switches. According to the documentation, you can change this behavior by setting parameter 13 (0x0D) to 1 or 2, but the device ignores my commands.

Below is a part of the log where I set param 13 (external switch type) to 2 (toggle switches reversed) and how the device fails to acknowledge the command and times out.

2020-08-19 09:15:20.321 Info, Node006, Value::Set - COMMAND_CLASS_CONFIGURATION - Switch type - 13 - 1 - Toggle switches (reversed)
2020-08-19 09:15:20.322 Info, Node006, Configuration::Set - Parameter=13, Value=2 Size=1
2020-08-19 09:15:20.322 Detail, Node006, Queuing (Send) ConfigurationCmd_Set (Node=6): 0x01, 0x0c, 0x00, 0x13, 0x06, 0x05, 0x70, 0x04, 0x0d, 0x01, 0x02, 0x25, 0x63, 0xdf
2020-08-19 09:15:20.322 Detail, Node006, Queuing (Send) ConfigurationCmd_Get (Node=6): 0x01, 0x0a, 0x00, 0x13, 0x06, 0x03, 0x70, 0x05, 0x0d, 0x25, 0x64, 0xda
2020-08-19 09:15:20.323 Detail,
2020-08-19 09:15:20.323 Info, Node006, Sending (Send) message (Callback ID=0x63, Expected Reply=0x13) - ConfigurationCmd_Set (Node=6): 0x01, 0x0c, 0x00, 0x13, 0x06, 0x05, 0x70, 0x04, 0x0d, 0x01, 0x02, 0x25, 0x63, 0xdf
2020-08-19 09:15:20.332 Detail, Node006,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2020-08-19 09:15:20.332 Detail, Node006,   ZW_SEND_DATA delivered to Z-Wave stack
2020-08-19 09:15:20.350 Detail, Node006,   Received: 0x01, 0x07, 0x00, 0x13, 0x63, 0x00, 0x00, 0x02, 0x8a
2020-08-19 09:15:20.350 Detail, Node006,   ZW_SEND_DATA Request with callback ID 0x63 received (expected 0x63)
2020-08-19 09:15:20.350 Info, Node006, Request RTT 26 Average Request RTT 26
2020-08-19 09:15:20.350 Detail,   Expected callbackId was received
2020-08-19 09:15:20.350 Detail,   Expected reply was received
2020-08-19 09:15:20.350 Detail,   Message transaction complete
2020-08-19 09:15:20.351 Detail,
2020-08-19 09:15:20.351 Detail, Node006, Removing current message
2020-08-19 09:15:20.351 Detail,
2020-08-19 09:15:20.351 Info, Node006, Sending (Send) message (Callback ID=0x64, Expected Reply=0x04) - ConfigurationCmd_Get (Node=6): 0x01, 0x0a, 0x00, 0x13, 0x06, 0x03, 0x70, 0x05, 0x0d, 0x25, 0x64, 0xda
2020-08-19 09:15:20.360 Detail, Node006,   Received: 0x01, 0x04, 0x01, 0x13, 0x01, 0xe8
2020-08-19 09:15:20.360 Detail, Node006,   ZW_SEND_DATA delivered to Z-Wave stack
2020-08-19 09:15:20.376 Detail, Node006,   Received: 0x01, 0x07, 0x00, 0x13, 0x64, 0x00, 0x00, 0x03, 0x8c
2020-08-19 09:15:20.376 Detail, Node006,   ZW_SEND_DATA Request with callback ID 0x64 received (expected 0x64)
2020-08-19 09:15:20.376 Info, Node006, Request RTT 25 Average Request RTT 25
2020-08-19 09:15:20.377 Detail,   Expected callbackId was received
2020-08-19 09:15:30.352 Error, Node006, ERROR: Dropping command, expected response not received after 1 attempt(s)
2020-08-19 09:15:30.352 Detail, Node006, Removing current message
2020-08-19 09:15:30.352 Detail, Node006, Notification: Notification - TimeOut

Any directions or hints on what to try are appreciated.

Hello Adrianmo, did you resolved the problem? I have the same problem like you.

Thank you very much.

Kind regards

Hey Javier,

Yes, I managed to resolve it by removing the device from the network, then cutting off the power to the device (effectively doing a factory reset according to the device manual), and then adding it back to the network, which gave it a new node ID.

The only remaining problem I have is that I can’t get my physical toggle switches to work properly. The device configuration does not support toggle switches (2 keys) where each key controls one direction.

Hi,
I was struggling with the same unit and found this post. I don’t have home assistant but in Domoticz, but the sensor and way of working will be very comparable I guess.

I checked and used the xml file which is shared in this post to get it working.
And eventually I got it working.

There are some copy/paste errors in the shared XML.
See for example:

<Value type="list" genre="config" instance="1" index="14" label="Switch input" units="" min="0" max="0" vindex="1" size="1">

the “min” and “max” value are set to 0, I can imagine an out-of-range value is not send. So change min to 1 and max to 4.
The “vindex” should be changed to “value”

I think the file should start with.

<?xml version="1.0" encoding="utf-8"?>

many “thinks” and assumptions, because this was also my first xml edit. But after these changes it worked for me, I am able to change the button functions.

The only issue I have at this moment is that the feedback/status is not updating after opening and closing. Only after the second command to close it will show close.

Kind regards

@NielsD - I’m glad the config file was helpful to you. Also thanks a lot for reporting the errors, I’ve fixed them in the gist. I’ll check what’s the procedure to contribute this to the Open-ZWave code so that it’s included in future releases.

Cheers.