IHC rollershutter item definition

Hi!

I have the following rollershutter defined in my vis file:
<product_dataline id="_0x36653" product_identifier="_0x2213" name="Shutter / blind" locked="yes" icon="_0x8c" note="Estore janela escritorio" documentation_tag="estore"> <dataline_output id="_0x3675b" name="Up / open" note="Estore janela escritorio subida" backup="yes" address_dataline="_0xd"> <link_to_resource id="_0x18aa2c" name="Follow link" icon="_0x4a" link="_0x18a92d"/> </dataline_output> <dataline_output id="_0x3685b" name="Down / close" note="Estore janela escritorio descida" backup="yes" address_dataline="_0xe"> <link_to_resource id="_0x18ac2c" name="Follow link" icon="_0x4a" link="_0x18ab2d"/> </dataline_output> </product_dataline>

and the input switches are defined as follow:

<product_dataline id="_0x39953" product_identifier="_0x2101" name="Push button 2 keys" locked="yes" enduser_report="yes" icon="_0x85" note="Controlo estore escritorio" documentation_tag="estore"> <dataline_input id="_0x39a5a" name="PB (left)" note="Subida estore escritorio" address_dataline="_0xe"> <link_from_resource id="_0x18ad2d" name="Follow link" icon="_0x47" link="_0x18ae2c"/> </dataline_input> <dataline_input id="_0x39b5a" name="PB (right)" note="Descida estore escritorio" address_dataline="_0xd"> <link_from_resource id="_0x18af2d" name="Follow link" icon="_0x47" link="_0x18b02c"/> </dataline_input> </product_dataline>

To use the function defined in VIS file, I must define the rollershutter using the resource id from the inputs, right?
In that case The items configuration should be:
Rollershutter Shutter_FF_Office “Rollershutter " (FF_Office, Shutters) {ihc=”>[UP:0x39a5a:100],>[DOWN:0x39b5a:100]"}

Hello Jaime

You do not need to define the input buttons in your project file you can go ahead and set the states of the internal variables of the roller shutter function block.

If you already have the physical buttons somewhere in your house you may use those in your item definition. I have never done that so I don’t know how that works, but using the ids from the inputs in the function block that governs the roller shutter would work from my experience.

Out of curiosity what roller shutter are you using and how is that set up?

Joris

Hi Joris,

Do you mean that I can override the value from one input module?
I cannot simply change the variables of the function, because I want to trigger the normal behavior of the function.

In my instalation I have rollershutters with internal motor. The motor has one common neutral, and 2 lines one for each movement(UP/DOWN). check this picture. This 2 lines are connected to one IHC Output module.
I have 2 local pushbuttons one for each movement, connected to one IHC Input module.
When I press the button I trigger the default function from IHC to control the roller shutter.

Do you have IHC in your home?

Regards

I’m facing some problems configuring my rollershutters. I only can make the rollershutters move one step up and other step down. after that openhab thinks the rollershutters make the complete cycle (up or down) and the rollershutter stops.
Can someone post and explain his working configuration.

Other question, someone has one binding to the internal variable that keeps the status of the rollershutters? Example: rollershutter is open/closed/ on way down/up.
Thanks.

Yes I have ihc all over the house and garage as well. You can either override the value directly on the input module, you can set the input directly in the function or you can override the output block value.

If you want to hold the button to achieve a certain position then i think it will be hard to do.
I would suggest that you create a range of functions preferably in ihc that set the output on for a given period of time. Then you can use some logic in openhab to trigger the right function to achieve the wanted position.

Thanks for your reply @joriskofman.
I actually had created a new function in IHC to support openhab. I have one variable that gives me the current position of the rollershutter, based on the time that the rollershuter had raised our lowered. Do you know how can I set the status of the rollershuter on openhab using IHC binding? Every time I press the button on UI the status of the rollershutter simply goes from 0% to 100%. In other words, if I open the rollershuter just a little bit, for openhab the rollershutter was opened complelly.

Regards,

You should be able to set the % state of the shutter directly. I have a
couple of functions where i use numbers (hvac in the kitchen, thermostat
values etc) that I set directly on the variable in the function (the
variable need not be a public variable to the function). Find the hex value
adress of the variable that you want to work with and set it directly.

I would recommend that you use a thermostat type item for your
rollershutter. Set the max and min to 100 and 0 respectively and set the
step size to fx 10% then you can set the open close status to exactly what
you want.

@joriskofman the approach you had explain work to set the rollershuter, but I want to set the RollershutterItem with the PercentType, to Syncronize the icon from the ui.
https://www.eclipse.org/smarthome/documentation/javadoc/org/eclipse/smarthome/core/library/items/RollershutterItem.html#send(org.eclipse.smarthome.core.library.types.PercentType)

I tried something like that:
Rollershutter Estore_CozinhaJanela “Estore Janela” (grupoCozinha, Shutters) {ihc=">[UP:3068177:100],>[DOWN:3068433:100],>[STOP:3068689:100],<[PERCENT:3124236]"}

But it seams that this is not possible:

10:27:57.270 [ERROR] [el.item.internal.GenericItemProvider] - Binding configuration of type ‘ihc’ of item ‘Estore_CozinhaJanela’ could not be parsed correctly.
org.eclipse.smarthome.model.item.BindingConfigParseException: Only a sum of out bindings (+In-Only Binding) or a normal binding is supported.
at org.openhab.core.binding.internal.BindingConfigReaderDelegate.processBindingConfiguration(BindingConfigReaderDelegate.java:50)[189:org.openhab.core.compat1x:2.0.0.201608032032]
at org.eclipse.smarthome.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:378)[116:org.eclipse.smarthome.model.item:0.9.0.201608031951]
at org.eclipse.smarthome.model.item.internal.GenericItemProvider.internalDispatchBindings(GenericItemProvider.java:350)[116:org.eclipse.smarthome.model.item:0.9.0.201608031951]
at org.eclipse.smarthome.model.item.internal.GenericItemProvider.processBindingConfigsFromModel(GenericItemProvider.java:168)[116:org.eclipse.smarthome.model.item:0.9.0.201608031951]
at org.eclipse.smarthome.model.item.internal.GenericItemProvider.modelChanged(GenericItemProvider.java:413)[116:org.eclipse.smarthome.model.item:0.9.0.201608031951]
at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:209)[115:org.eclipse.smarthome.model.core:0.9.0.201608031951]
at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:124)[115:org.eclipse.smarthome.model.core:0.9.0.201608031951]
at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:267)[115:org.eclipse.smarthome.model.core:0.9.0.201608031951]
at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.access$1(FolderObserver.java:261)[115:org.eclipse.smarthome.model.core:0.9.0.201608031951]

then i think you you need to create a variable that runs in percent type
that is syncronized with the openhab through a transform and set the value
directly using a function in a script of some sort.

IHC binding support UP and DOWN commands to Rollershutter items, but it send 0 and 100 values to IHC as binding doesn’t have any clue what is the current value when UP or DOWN command is received. This is the reason why stop command is not support either. But binding support direct percent values, but basic or classic UI’s doesn’t directly support percent values. You can test percent values (0-100) e.g. from openhab console or via rest (wget http://192.168.1.1:8080/CMD?Estore_CozinhaJanela=45)

As @joriskofman said, one possibility is to use proxy item which receive UP, DOWN and STOP commands, and then use rules to control IHC connected item.

I found that the shutter object in IHC has 13 internal vars. The one I can get to work with the OH rollershutterItem is the one for local_up/down, but it just takes the shuuter up or down for a sec. If I use the central up/down trigger, it works just fine, but not with the OH-item.

@pauli_anttila, @joriskofman Can you guys share your rollershutter setup/config? Do you have both logic defined in IHC as in Openhab?

I’m really out of ideas here. Thanks!

@Kerbje: sorry, I don’t have any roller shutters connected to IHC

1 Like

I made one custom function on IHC for use with openhab. I tried to use the original function but i had to much problems making it work properly.

1 Like

Unfortunately I have no roller shutters. But I have been looking for roller
shutters that have a feedback option to tell what position they are in.
I want to be able to set the open/closed percentage, I think that will be
hard to do with out feedback.

1 Like

Did you make it work with the custom function? Do you care to share your function and the OH config you used?

I hope I can leave my current shutters in place :slight_smile:

@Kerbje yes everything is working. Sometimes the percentage needs to be calibrated, but i have one button that does it automatically when needed. Tomorrow I will do some javadoc in the function, and then I post it for you.

1 Like

Super, looking forward to it!

Hmm, I stumbled upon something. It seems that with upgrading the firmware of the controller, there were also introduced new function blocks. So I was still using older versions of the roller shutter function block, I updated it to the new one, which seems to make more sense. Not sense enough, but more :slight_smile:

@Kerbje Sorry for the delay. Here is the function that I made for IHC to use with OpenHab: Roller shutters function to use with OpenHab.ifb.xml (61.6 KB) . You should change the extension to ifb, otherwise the IHC Visual will not accept it.

For item configuration you should use something like this:

//ITEM Definition
Rollershutter Rollershutter_living        "Rollershutter"                         (groupLiving, groupRollershutters) {ihc=">[UP:3902225:100],>[DOWN:3902481:100],>[STOP:3902737:100]"}
Number        Rollershutter_living_status "Rollershutter: [%.0f %%] " (groupRollershuttersStatus) {ihc="<3904012"}
Switch        Rollershutter_living_calibration "Rollershutter Living Calibration" (groupAdmin, groupRollershuttersCalibration) {ihc="3902993"}

You need also to setup the following rule:

// Update rule definition - on received command update!
rule "Update status of Living Rollershutter"
when
	Item Rollershutter_living received command
then
	if (receivedCommand == UP || receivedCommand == DOWN || receivedCommand == STOP){
		var Number state = Rollershutter_living_status.state as DecimalType
		Rollershutter_living.sendCommand(100-state)
	}
end```


In function you need to configure the inputs, outputs, open/close time and the 10% time.
Any doubts just ask!

hope this helps you.

Regards,
Jaime