HomeKit AddOn and Rollershutters

Hey together,

need help to figure out how to get my digitalStrom Rollershutters working with Siri, or the apple home app.
I configured the Items as roller shutter items and used the WindowCovering Metatag on them. They are also visible in the home app and also can be used via Siri. The Problem is, only in the home app, by pressing twice the rollershuter, it opens or closes.

I tried the inverted=false and inverted=true value, but that does not bring the solution. And by the way, the status of the roller shutter is working. So I tried to see what is happening in the log files:

Rollershutter is open (Item State is 0), klick in the home app to close it:

2020-12-15 15:20:45.626 [ome.event.ItemCommandEvent] - Item 'RolladenBadDG_PositionControl' received command 100
2020-12-15 15:20:45.627 [nt.ItemStatePredictedEvent] - RolladenBadDG_PositionControl predicted to become 100
2020-12-15 15:20:45.652 [GroupItemStateChangedEvent] - Rolladen_ALL changed from 8.75000000 to 21.25000000 through RolladenBadDG_PositionControl
2020-12-15 15:20:45.657 [GroupItemStateChangedEvent] - Rolladen_Sonnenschutz changed from 10.00000000 to 24.28571400 through RolladenBadDG_PositionControl
2020-12-15 15:20:45.660 [vent.ItemStateChangedEvent] - RolladenBadDG_PositionControl changed from 0 to 100

nothing happened, but the app shows it as closed. then the second click:

2020-12-15 15:21:27.570 [ome.event.ItemCommandEvent] - Item 'RolladenBadDG_PositionControl' received command 0
2020-12-15 15:21:27.573 [nt.ItemStatePredictedEvent] - RolladenBadDG_PositionControl predicted to become 0
2020-12-15 15:21:27.610 [GroupItemStateChangedEvent] - Rolladen_ALL changed from 21.25000000 to 8.75000000 through RolladenBadDG_PositionControl
2020-12-15 15:21:27.612 [vent.ItemStateChangedEvent] - RolladenBadDG_PositionControl changed from 100 to 0
2020-12-15 15:21:27.620 [GroupItemStateChangedEvent] - Rolladen_Sonnenschutz changed from 24.28571400 to 10.00000000 through RolladenBadDG_PositionControl
2020-12-15 15:21:29.358 [GroupItemStateChangedEvent] - Rolladen_ALL changed from 8.75000000 to 21.25000000 through RolladenBadDG_PositionControl
2020-12-15 15:21:29.364 [GroupItemStateChangedEvent] - Rolladen_Sonnenschutz changed from 10.00000000 to 24.28571400 through RolladenBadDG_PositionControl
2020-12-15 15:21:29.365 [vent.ItemStateChangedEvent] - RolladenBadDG_PositionControl changed from 0 to 100

now the roller shutter is closing.

So I tried a bit via the RestAPI and the item state. I figured out, that if the rollers shutter is in state 0 (open) it needs a state change to 0 as well. If I send a 100, as HomeKit tries to do, nothing happens.

So my Question is, is there anything like action mapping for HomeKit Add-on, too? With the Alexa integration it works with this mappings:

category="INTERIOR_BLIND", friendlyNames="@Setting.Opening", supportedRange="0:100:10", unitOfMeasure="Percent", actionMappings="Close=0,Open=100,Lower=(-10),Raise=(+10)", stateMappings="Closed=0,Open=1:100"

So I hope someone has an idea, how I could bring Siri to open and close my roller shutters

Thanks!
cheers
Andreas

this is the case we have introduced inverted=false for.
do you see any changes in the log if you have inverted=false?
how your item definition looks like?

I tried the inverted=false, the only thing what changed is, that on state 0 it is shown as closed, and on 100 it is shown as opened. with inverted=true it is the other way round, so 0 is open and 100 is closed. Then it will send a 0 if it is closed.

If the state is 0 (open) and I send via rest API a 0, the roller shutter closes and at the end it is schon up as a 100… if it is at 100 and I send 100, it will go up… It is fucking weird. And I think the Problem must be within the digitalStrom Binding. That’s why, when I use it with Alexa, I have to set the action mapping. So is there a way to do so in HomeKit Bindung as well?

the only configuration we have at HomeKit binding is that inverted flag, which should actually do the mapping as you did it for Alexa.

but maybe it is not working correctly.
can you try following:

  • set inverted=false
  • make sure state 100 (i…e open)
  • send 0 via REST API
  • and then, send 100 if the state 0

OK, I did:

this is the Item start point:

{
  "link": "http://laub-raspi4.laub.loc:8080/rest/items/RolladenBadDG_PositionControl",
  "state": "100",
  "metadata": {
    "homekit": {
      "value": "WindowCovering",
      "config": {
        "inverted": false
      }
    }
  },
  "editable": true,
  "type": "Rollershutter",
  "name": "RolladenBadDG_PositionControl",
  "label": "Bad Dachgeschoss Rollladen",
  "category": "Rollershutter",
  "tags": [],
  "groupNames": [
    "Rolladen_ALL",
    "Rolladen_Sonnenschutz",
    "AT_Bathroom",
    "Rollladen_Sued"
  ]
}

I am using PaperUI for Item Configuration :wink:

  • bundle HomeKit restart via cli
  • inverted=false
  • state=100
  • in HomeKit App it is shown as closed (but physically it is opened)
    pressing the button in home app:
  • the rollershutter is closing
  • state is now 0
  • Home App shows that the roller shutter is open (physically it is closed)
  • log
2020-12-15 17:06:53.472 [ome.event.ItemCommandEvent] - Item 'RolladenBadDG_PositionControl' received command 0
2020-12-15 17:06:53.475 [nt.ItemStatePredictedEvent] - RolladenBadDG_PositionControl predicted to become 0
2020-12-15 17:06:53.507 [GroupItemStateChangedEvent] - Rolladen_ALL changed from 21.25000000 to 8.75000000 through RolladenBadDG_PositionControl
2020-12-15 17:06:53.512 [GroupItemStateChangedEvent] - Rolladen_Sonnenschutz changed from 24.28571400 to 10.00000000 through RolladenBadDG_PositionControl
2020-12-15 17:06:53.519 [vent.ItemStateChangedEvent] - RolladenBadDG_PositionControl changed from 100 to 0

Pressing it again to reopen it:

  • it opens
  • state is now 100
  • shown as closed
  • logs
2020-12-15 17:08:55.849 [ome.event.ItemCommandEvent] - Item 'RolladenBadDG_PositionControl' received command 100
2020-12-15 17:08:55.851 [nt.ItemStatePredictedEvent] - RolladenBadDG_PositionControl predicted to become 100
2020-12-15 17:08:55.876 [GroupItemStateChangedEvent] - Rolladen_ALL changed from 8.75000000 to 21.25000000 through RolladenBadDG_PositionControl
2020-12-15 17:08:55.892 [GroupItemStateChangedEvent] - Rolladen_Sonnenschutz changed from 10.00000000 to 24.28571400 through RolladenBadDG_PositionControl
2020-12-15 17:08:55.900 [vent.ItemStateChangedEvent] - RolladenBadDG_PositionControl changed from 0 to 100

Another Thing I can see now, even in HABPanel and in my sitemap the status of the item changed, so it is inverted, too. So the state is switched. And so for all my Rollershutter items. Even there were it is not inverted.

But, now it works with just one button press :slight_smile:

So is it the right way, it should work?
I am using openHAB 2.5.11

btw. I have to tell Siri now, to open if I want it to close and the other way round

now I couldn’t reproduce it… Home App didn’t work again. Tried a second Rollershutter, but it also do not work. Have to press the button twice to open or to close it.

Will try again tomorrow, perhaps there is some kind of cache or another weird thing…

Now I have to rollershuters at inverted=false. But I think it did not work, because they have the same state in HomeKit as the others, without that flag… I do not have any ideas how I could get this running. That is the only thing why I still have to use Alexa :frowning:

Anyone else has an idea?

i have the impression that config via REST and paperUI not always work. just to double-check can you try to add one rollershutter using .items text-based configuration?

I tested it by adding two roller shutters into an item file:

Rollershutter test_schlafzimmer "Test Schlafzimmer Rollershutter" {homekit = "WindowCovering"  [inverted="false"]}
Rollershutter test_esszimmer "Test Esszimmer Rollershutter" {homekit = "WindowCovering"  [inverted="true"]}

and linked them via Paper UI to the right channels and restarted the HomeKit Bundle via cli. Same issue still there.

  • clicking twice on the Rollershutter icons in home app, then they are going up / down
  • with inverted=false, the state of the roller shutters is not correct, so open = close and close = open

I think the main problem is still, that my roller shutters wanted to get the same state sent, in which they are… Sounds stupid, and it is :slight_smile: Because, then they changing their state to the right one:
so open means 0, then I have to send a 0 and they become a 100 what means close.
It is reproducible via REST API, if I post the state 100 to an open (0) Rollershutter, nothing happens. If I post another 0, it is going to close. If I send an UP / DOWN everything is fine. So perhaps it would be nice if there will be a possibility to map UP / DOWN to 0 / 100 in the future, like it is in the Alexa Binding.

It is so weird! Perhaps some other ideas around?

thank you for checking.
we dont have further settings in homekit binding.
probably the only solution would to create virtual item, not linked to the thing, for homekit and then create a rule which gets triggered by virtual item and update the actually item.

yes, that’s a good idea, will try that later. I just testet the stuff with Alexa and get this in the logs:

2020-12-20 11:01:04.961 [ome.event.ItemCommandEvent] - Item 'RolladenEsszimmer_PositionControl' received command 0
2020-12-20 11:01:07.059 [GroupItemStateChangedEvent] - Rolladen_Sonnenschutz changed from 9.85714300 to 24.14285700 through RolladenEsszimmer_PositionControl
2020-12-20 11:01:07.063 [vent.ItemStateChangedEvent] - RolladenEsszimmer_PositionControl changed from 0 to 100
2020-12-20 11:01:07.067 [GroupItemStateChangedEvent] - Rolladen_ALL changed from 8.62500000 to 21.12500000 through RolladenEsszimmer_PositionControl
2020-12-20 11:01:07.069 [GroupItemStateChangedEvent] - Rolladen_EG changed from 0.00000000 to 33.33333300 through RolladenEsszimmer_PositionControl
2020-12-20 11:01:14.899 [ome.event.ItemCommandEvent] - Item 'RolladenEsszimmer_PositionControl' received command 100
2020-12-20 11:01:16.712 [vent.ItemStateChangedEvent] - RolladenEsszimmer_PositionControl changed from 100 to 0
2020-12-20 11:01:16.714 [GroupItemStateChangedEvent] - Rolladen_ALL changed from 21.12500000 to 8.62500000 through RolladenEsszimmer_PositionControl
2020-12-20 11:01:16.716 [GroupItemStateChangedEvent] - Rolladen_EG changed from 33.33333300 to 0.00000000 through RolladenEsszimmer_PositionControl
2020-12-20 11:01:16.718 [GroupItemStateChangedEvent] - Rolladen_Sonnenschutz changed from 24.14285700 to 9.85714300 through RolladenEsszimmer_PositionControl

So the Rule in the metadata:

actionMappings="Close=0,Open=100"

did the trick for Alexa binding.
Perhaps sometime this will also be available through the HomeKit Binding.

So I will try with the virtual Items and some rules
Thanks for your help @yfre

Just to let everyone who is reading that thread know… Now I have every Rollershutter configured via the REST API and the option inverted=false. When I talk to Siri, she could open and close the roller shutters, but in Home App, the state of each Rollershutter is inverted and the app is not really usable. You have to klick twice the button, then it works. Perhaps sometime there will be a fix for that.

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.