Non-integer value on rollershutter group aggregated value causing problem with Homekit

I have just gotten all of my blinds working in OpenHAB and also have them working in the Homekit binding.

In my study, I have two sets of double roller blinds. I have called them Study Left Blockout Blind, Study Left Privacy Blind, Study Right Blockout Blind, and Study Right Privacy Blind. I have enabled them in the Homekit binding and this works well. I am able to control them with Siri from a Homepod mini which is all I really want out of Homekit.

I have then created groups to control them in pairs. There are times I will want to control both blockout blinds together, and there are times when I will want to control both of the blinds on either window together. To this end, I have created the groups Study Blockout Blinds, Study Privacy Blinds, Study Left Blinds, Study Right Blinds, and added the relevant RollerShutter items to each of these groups. I have defined them as RollerShutter groups and used the AVG aggregation function (I’ve also tried MAX and have the same problem).

These groups all work perfectly in OpenHAB and if I activate them in the Homekit binding they show up in the iOS Home app. But, they don’t quite work properly. They typically report as being 99% open, or if I am able to get them to close they get stuck in ‘closing’ mode with the spinning icon going around in perpetuity. I suspect this is something to do with the aggregation function not producing an integer value like the base RollerShutter icons have (i.e. if both the left blinds are closed, they each report a state of 100, but the left blind group reports a state of 100.00000000).

Is there a workaround for this? The grouping function in Homekit itself is too simple to achieve what I want so the groups need to be done in OpenHAB as far as I can tell. My gut suspicion is that this is an issue that needs to be resolved within the HomeKit binding itself and that there won’t be a working solution at this time. I’m hoping someone can prove me wrong.

interesting.

i checked the homekit binding source code and it coverts all values to “integer” before sending them to home app. 100.00000000 must be actually converted to 100

  • what do you see in the openhab event log?
  • can you show how the group is defined?