Problem with iCalendar and modules Shelly 2.5 - roller mode

  • Platform information:
    • Hardware: amd64 (VM Proxmox) 3G RAM, 10H HD
    • OS: Linux 5.11.22-5-pve (Debian 11)
    • Java Runtime Environment: javaVersion: 11.0.11 javaVendor: Azul Systems, Inc. javaVendorVersion: Zulu11.48+21-CA
    • openHAB version: openHAB 3.2.0 Build #2529


Sorry for my English, it’s not my language.

I use for my home automation the openHAB 3 software and recently I acquired a Shelly 2.5 module to control the blinds of my veranda.

I manage from the interface “Basic UI” to command the blinds, UP, DOWN and also the position from 0 to 100%. These commands work very well.

I use the “binding : iCalendar” to control the position of the blinds.

From iCalendar the UP/DOWN commands work fine, but it is impossible to transmit a position to the blind from 0 to 100%.

I use the following “item” for position control: store_RollerPosition100open0closed

I put this command in the calendar to try to set the blind position to 50%.


Here is an example of a log where the calendar reads the command but no action is transmitted to the Shelly module

2021-10-17 12:57:00.789 [TRACE] [ar.internal.handler.ICalendarHandler] - updating states of icalendar:calendar:local
2021-10-17 12:57:00.790 [TRACE] [.icalendar.internal.logic.CommandTag] - Command Tag Trace: “BEGIN:store_RollerPosition100open0closed:50” => Fully valid Command Tag!
2021-10-17 12:57:00.792 [TRACE] [.icalendar.internal.logic.CommandTag] - Command Tag Trace: “BEGIN:store_RollerPosition100open0closed:50” => Fully valid Command Tag!
2021-10-17 12:57:00.792 [DEBUG] [ar.internal.handler.ICalendarHandler] - Event: test-store, Command Tag: BEGIN:store_RollerPosition100open0closed:50 => store_RollerPosition100open0closed.postUpdate(DecimalType: 50)
2021-10-17 12:57:00.793 [TRACE] [.icalendar.internal.logic.CommandTag] - Command Tag Trace: “BEGIN:store_RollerPosition100open0closed:50” => Fully valid Command Tag!
2021-10-17 12:57:00.793 [DEBUG] [ar.internal.handler.ICalendarHandler] - Scheduled update in 60 seconds
2021-10-17 12:57:00.796 [INFO ] [openhab.event.ItemCommandEvent ] - Item ‘store_RollerPosition100open0closed’ received command 50
2021-10-17 12:57:00.798 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘Calendar_CurrentEventPresence’ changed from OFF to ON
2021-10-17 12:57:00.798 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘Calendar_CurrentEventTitle’ changed from UNDEF to test-store
2021-10-17 12:57:00.799 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘Calendar_CurrentEventStart’ changed from UNDEF to 2021-10-17T12:57:00.000+0200
2021-10-17 12:57:00.799 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘Calendar_CurrentEventEnd’ changed from UNDEF to 2021-10-17T12:58:00.000+0200
2021-10-17 12:57:00.799 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘Calendar_NextEventTitle’ changed from test-store to UNDEF
2021-10-17 12:57:00.800 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘Calendar_NextEventStart’ changed from 2021-10-17T12:57:00.000+0200 to UNDEF
2021-10-17 12:57:00.800 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item ‘Calendar_NextEventEnd’ changed from 2021-10-17T12:58:00.000+0200 to UNDEF

It’s been several days that I’m looking for if the error comes from my programming or if there is an error in openHAB!

A help from you would be welcome.

Thank you in advance for your answers.

P. Aymon

Check out this topic.

Your item also has to be a rollershutter instead of a dimmer.

@damihe Hello Michael,

Thank you for your answer.

The items were automatically created by openHAB in “Dimmer”!

The Shelly module has two channels, a “Roller Control” which is of “Rollershutter” type and a second “Roller Position” channel of “dimmer” type!

I tried with the “Roller Control” item but it doesn’t work.

If I use the “Roller Position” item with Cron, I can position the store with a value of 0 to 100%, but the same items with iCalendars do not work!

Thanks if you have any other idea

Please provide examples. When does it work (what are the exact inputs) when it does not?

Please try out how to paste code to add it here in a readable way.

Hello Michael, @damihe

Thank you for taking time for my problem

Here is my configuration.

I created a “Things” shelly:shelly25-roller:store


Then I set up 2 channels:

If I edit the 1st channel

The “Rollershutter” Up, Stop and Down control works very well.

The module has another control of type “Dimmer” which allows to control the position of the blind with a value from 0 to 100%. Here too everything works correctly.


I have created a “page” to test both channels:

sitemap Labo label=“Labo” {
Switch item=store_RollerControl0open100closed label="Store Control"
Slider item=store_RollerPosition100open0closed label="Store"

Here too I can have the blinds controlled with both channels and all work correctly.

The goal is to be able to send orders from the calendar, so I have a “Think” iCalendar.


If I send orders from the calendar, the commands:


the blind goes up at the programmed time and one minute later it goes down

Now if I use the channel “store_RollerPosition100open0closed” in the calendar to set for example the position to 50% it does not work



I created a “rules” times, store_RollerPosition100open0closed and the 50% setting works fine

configuration: {}

  • id: “1”
    time: 08:45
    type: timer.TimeOfDayTrigger
    conditions: []
  • inputs: {}
    id: “2”
    itemName: store_RollerPosition100open0closed
    command: “50”
    type: core.ItemCommandAction

I hope you have the necessary information, if not come back to me.
Best regards,
P. Aymon

Add percent symbol to your command. That was the solution in the linked thread i would expect it solves your problem.

@damihe Thanks Michael, I added the % in the iCalendar command and it worked!

One more question about your answer, where do I find the “solution in the linked thread”?

Thanks again for taking the time for my problem.

P. Aymon

@damihe I reread your answers, and indeed there was already the solution if I had followed the “topic”.

Sorry I didn’t understand your answer earlier, English is not my language