Skip to content

feat(add): Somfy Ysia 1#10694

Merged
Koenkk merged 3 commits into
Koenkk:masterfrom
burmistrzak:add-somfy-ysia1
Nov 9, 2025
Merged

feat(add): Somfy Ysia 1#10694
Koenkk merged 3 commits into
Koenkk:masterfrom
burmistrzak:add-somfy-ysia1

Conversation

@burmistrzak

Copy link
Copy Markdown
Contributor

Pretty much the same as the Ysia 5, but with only a single group channel.

Link to picture pull request: Koenkk/zigbee2mqtt.io#4401

Comment thread src/devices/somfy.ts Outdated
burmistrzak and others added 2 commits November 9, 2025 21:35
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
@Koenkk Koenkk merged commit b1747f2 into Koenkk:master Nov 9, 2025
3 checks passed
@Koenkk

Koenkk commented Nov 9, 2025

Copy link
Copy Markdown
Owner

Thanks!

jacky202509 pushed a commit to jacky202509/zigbee-herdsman-converters that referenced this pull request Nov 13, 2025
Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
@iay

iay commented Dec 14, 2025

Copy link
Copy Markdown

@burmistrzak I've just acquired one of these so it was really nice to see that this was supported already. Unfortunately it's not working for me and I wondered if you might comment on what steps you went through to onboard the device.

I have tried holding down the reset button until the second red flash; the device then joins my network. The interview and configuration claims to have worked but pressing any button just causes the light on the device to flash three times; I don't see anything at the Z2M end which suggests that the action is being triggered. Nothing in the logs.

I realise this isn't the best way to get support, but your profile doesn't include an e-mail address...

Any assistance appreciated.

(I have a Ysia 5 Europe, with the same behaviour)

@burmistrzak

Copy link
Copy Markdown
Contributor Author

@iay Happy to take a look. What's the firmware version of your remote?
Also, do you intend to use it via MQTT or direct Zigbee binding to a shutter?

@iay

iay commented Dec 14, 2025

Copy link
Copy Markdown

@iay Happy to take a look. What's the firmware version of your remote? Also, do you intend to use it via MQTT or direct Zigbee binding to a shutter?

Firmware reported in Zigbee2MQTT as 000161.

I was planning on using the remote as a general purpose one via Zigbee2MQTT > MQTT > Home Assistant. I have my blinds hooked up to HA and am controlling them directly from HA at present.

If I can't get events out of the remote I'd settle for controlling the (single) set of blinds in one room using the controller as long as that didn't lock HA out as I have some automations set up. I do remember trying to bind the 5-way remote I have to the set of three blinds I have in the other room, though, with no success. Of course I have no idea what I am doing here so it might have been user error :-)

@burmistrzak

burmistrzak commented Dec 14, 2025

Copy link
Copy Markdown
Contributor Author

@iay Ok, same version as mine.
However, I'm binding my remotes directly to Zigbee shutters, so Z2M is only used to get them onto the network.
This also seems to be the intended use-case according to Somfy.

Usage with a coordinator/gateway likely requires additional reverse engineering.
A quick network analysis shows some manufacturer-specific clusters are used, so we'll have to find someone with a Somfy TaHoma Switch gateway to provide a full package capture.

See my edit

@iay

iay commented Dec 14, 2025

Copy link
Copy Markdown

@iay Ok, same version as mine. However, I'm binding my remotes directly to Zigbee shutters, so Z2M is only used to get them onto the network. This also seems to be the intended use-case according to Somfy.

I'm aware that Somfy are looking at Zigbee as a replacement for their previous proprietary system (some kind of sub-GHz system, I believe) but I wanted Zigbee so I didn't have to have yet another hub. So, um, I don't have one of their gateways.

Usage with a coordinator/gateway likely requires additional reverse engineering. A quick network analysis shows some manufacturer-specific clusters are used, so we'll have to find someone with a Somfy TaHoma Switch gateway to provide a full package capture.

At present I just set the cover position via HA and voice commands plus some other automations, which is fine. It would have been nice to use the remote the vendor insisted on including for something more than just raising and lowering, but if that's not possible right now that's also fine. Minimal functionality would be better than nothing.

You say you bind your remotes directly to the covers; can you walk me through that? I seem to recall trying to bind an endpoint from the 5-way control I have to one of the covers in the other room, and it didn't seem to work (and in a way which didn't really help me understand what the problem was). Did you do the binding using Z2M or is it some kind of manual process involving getting up on a ladder and pushing the magic button on the cover again?

@burmistrzak

burmistrzak commented Dec 14, 2025

Copy link
Copy Markdown
Contributor Author

I'm aware that Somfy are looking at Zigbee as a replacement for their previous proprietary system (some kind of sub-GHz system, I believe) but I wanted Zigbee so I didn't have to have yet another hub. So, um, I don't have one of their gateways.

@iay Yea, their io-homecontrol protocol sucks... Not a fan.

You say you bind your remotes directly to the covers; can you walk me through that? I seem to recall trying to bind an endpoint from the 5-way control I have to one of the covers in the other room, and it didn't seem to work (and in a way which didn't really help me understand what the problem was). Did you do the binding using Z2M or is it some kind of manual process involving getting up on a ladder and pushing the magic button on the cover again?

Sure thing! Here's what I did (my shutter controller is Bosch):

  1. Pair the remote(s) to Z2M. Ensure battery levels are reported.
  2. In the Z2M frontend, go to [YOUR REMOTE] > Bind
  3. Hit + Add next to Source endpoint 1.
  4. Add a new binding with your Zigbee cover as the destination. Choose the appropriate endpoint (e.g. 1) that hosts the closuresWindowCovering cluster. Check at least the closuresWindowCovering from the provided list.
  5. Do not click Bind yet!
  6. Wake up your remote. (See my edit below!)
  7. Immediately hit the Bind button.
  8. Binding should now be in place.
  9. (Wake your remote once more and) unbind the coordinator from Source endpoint 1 by hitting the Unbind button for that entry.
  10. Your direct binding should be working now.

Edit: Before modifying bindings, you'll have to short press the pairing button on the back of the remote. The LED should blink amber. If you want to use the remote with HA, unbind only the closuresWindowCovering from the coordinator and leave genOnOff in place.

@iay

iay commented Dec 14, 2025

Copy link
Copy Markdown

I tried this just now and it seemed to work. It took a couple of goes before the binding to the coordinator was removed, but I'm now in a state where the buttons on the remote do up/stop/down through a binding from endpoint 1 to the cover using just the closuresWindowCovering cluster.

Endpoint 232 is still bound (genPollCtrl and genPowerCfg) to the coordinator, which I assume will get me the battery report.

I didn't have to press the pairing button on the back of the remote... was that part of your edit?

If I rebind the genOnOff cluster to the coordinator, what would you expect Home Assistant to see when buttons are pressed?

Thanks very much for the help. I don't think I'd have had much chance of getting this to work without assistance. I'm not even clear on what part of the system manages the bindings; is it the source device or is the coordinator relaying things?

@burmistrzak

Copy link
Copy Markdown
Contributor Author

Endpoint 232 is still bound (genPollCtrl and genPowerCfg) to the coordinator, which I assume will get me the battery report.

@iay Correct. 😊

I didn't have to press the pairing button on the back of the remote... was that part of your edit?

Yep. Just easier because that button wakes up the remote for a bit longer.

If I rebind the genOnOff cluster to the coordinator, what would you expect Home Assistant to see when buttons are pressed?

Yes, you'll likely see on and off only. No stop.

Thanks very much for the help. I don't think I'd have had much chance of getting this to work without assistance.

Happy to help!

I'm not even clear on what part of the system manages the bindings; is it the source device or is the coordinator relaying things?

Well, in this case the coordinator simply configures the binding. Everything else is between the two (or more!) devices.
It is possible for devices to bind directly without having a coordinator around, but this often requires both devices to be in very close proximity.

@iay

iay commented Dec 15, 2025

Copy link
Copy Markdown

Endpoint 232 is still bound (genPollCtrl and genPowerCfg) to the coordinator, which I assume will get me the battery report.

@iay Correct. 😊

Confirmed.

If I rebind the genOnOff cluster to the coordinator, what would you expect Home Assistant to see when buttons are pressed?

Yes, you'll likely see on and off only. No stop.

Also confirmed. The UP button sends ON and the DOWN button sends OFF. The MY button doesn't send anything. I guess that makes sense in terms of the genOnOff spec, but it does kind of make these controllers useless for anything other than what they were designed for. Not a complaint, just an observation.

One final comment, relevant to the original commit this discussion is tacked on to.

The thing that seems to have been causing my issues is that the default binding is for endpoint 1's closuresWindowCovering and genOnOff clusters to be bound to the coordinator. That causes nothing to arrive at the coordinator, presumably because it tries something with closuresWindowCovering first and that fails. If you only bind genOnOff to the coordinator, as you suggested that does result in what I suppose is reasonable behaviour and no red flashing.

I'm not sure whether this means that the m.commandsWindowCovering() in the converter should be there after all, if the combination of coordinator (I have a SLZB-06, FWIW) and Zigbee2MQTT don't in fact support the messages it sends to that cluster.

@burmistrzak

Copy link
Copy Markdown
Contributor Author

@iay Yes, the my button is only useful when used with a cover directly. 😊

There's an entire song and dance to set a favorite position, but it works surprisingly well!
Under the hood, the remote is configuring an internal Zigbee scene automatically. Pretty cool.

But you are right, it might be a good idea to just bind the genOnOff cluster by default.

@iay

iay commented Dec 16, 2025

Copy link
Copy Markdown

There's an entire song and dance to set a favorite position, but it works surprisingly well! Under the hood, the remote is configuring an internal Zigbee scene automatically. Pretty cool.

I saw that in the manual but it didn't work for me. I am now thinking that if it's scene-based it might need the scene cluster to be bound as well as the cover controlling cluster. Can I ask: what do you have bound, exactly? OK, that's hilarious, binding the scenes cluster as well does in fact enable this functionality for me. I can even see the added scene in Zigbee2MQTT, which is slightly surreal.

@burmistrzak

Copy link
Copy Markdown
Contributor Author

@iay Yea, forgot to mention that you'll have to bind the scenes cluster for the my button to work. Sorry!

I can even see the added scene in Zigbee2MQTT, which is slightly surreal.

@Nerivec AFAICT, it should be possible to fetch scenes from a device that are not created via Z2M, right?
Would be super neat to see internal scenes (e.g. created by other devices via direct bindings) in the frontend as well. 😊

@Nerivec

Nerivec commented Dec 17, 2025

Copy link
Copy Markdown
Collaborator

Yes, you can fetch any scene from the device with attrs/cmds.
Expanded scene features (like device<>z2m sync) are part of Koenkk/zigbee-herdsman#1570 (still working on it though, probably for some time in January 😁)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants