Z-Wave Binding: Fibaro FGR-222 spontaneous change of BlindsControl state

I am observing multiple state changes from ZWaveNode*FGRM222RollerShutter_BlindsControl from closed (100) to a different value (29,1 or 2).
I am not able to link any of those changes to rules, which are controlling the blinds.

2017-09-01 20:04:41.684 [ItemStateChangedEvent     ] - ZWaveNode11FGRM222RollerShutter_BlindsControl changed from 100 to 29
2017-09-02 09:32:04.299 [ItemStateChangedEvent     ] - ZWaveNode6FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 09:32:27.579 [ItemStateChangedEvent     ] - ZWaveNode13FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 09:32:27.848 [ItemStateChangedEvent     ] - ZWaveNode5FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 09:33:45.221 [ItemStateChangedEvent     ] - ZWaveNode3FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 10:02:04.295 [ItemStateChangedEvent     ] - ZWaveNode6FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 10:02:28.481 [ItemStateChangedEvent     ] - ZWaveNode13FGRM222RollerShutter_BlindsControl changed from 100 to 2
2017-09-02 10:02:28.607 [ItemStateChangedEvent     ] - ZWaveNode5FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 10:02:28.944 [ItemStateChangedEvent     ] - ZWaveNode7FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 10:03:45.215 [ItemStateChangedEvent     ] - ZWaveNode3FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 10:04:11.010 [ItemStateChangedEvent     ] - ZWaveNode10FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 10:04:41.689 [ItemStateChangedEvent     ] - ZWaveNode11FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 11:02:04.295 [ItemStateChangedEvent     ] - ZWaveNode6FGRM222RollerShutter_BlindsControl changed from 100 to 2
2017-09-02 11:02:32.571 [ItemStateChangedEvent     ] - ZWaveNode5FGRM222RollerShutter_BlindsControl changed from 100 to 2
2017-09-02 11:04:11.005 [ItemStateChangedEvent     ] - ZWaveNode10FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 12:02:28.455 [ItemStateChangedEvent     ] - ZWaveNode13FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 12:32:28.455 [ItemStateChangedEvent     ] - ZWaveNode13FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 12:32:28.583 [ItemStateChangedEvent     ] - ZWaveNode5FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 12:32:28.974 [ItemStateChangedEvent     ] - ZWaveNode7FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 12:33:45.217 [ItemStateChangedEvent     ] - ZWaveNode3FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 13:02:04.300 [ItemStateChangedEvent     ] - ZWaveNode6FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 13:02:28.459 [ItemStateChangedEvent     ] - ZWaveNode13FGRM222RollerShutter_BlindsControl changed from 100 to 2
2017-09-02 13:02:28.578 [ItemStateChangedEvent     ] - ZWaveNode5FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 13:02:28.822 [ItemStateChangedEvent     ] - ZWaveNode7FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 13:03:45.226 [ItemStateChangedEvent     ] - ZWaveNode3FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 13:04:41.684 [ItemStateChangedEvent     ] - ZWaveNode11FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 13:32:05.603 [ItemStateChangedEvent     ] - ZWaveNode6FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 14:06:44.287 [ItemStateChangedEvent     ] - ZWaveNode13FGRM222RollerShutter_BlindsControl changed from 100 to 1
2017-09-02 14:08:20.875 [ItemStateChangedEvent     ] - ZWaveNode6FGRM222RollerShutter_BlindsControl changed from 100 to 1

Please advise which log levels to use to figure out from where those state changes originate.

You need to give way more details if you want anybody to help.

What’s your HW. Do you mean the shutters or do you actually have venetian blinds and refer to the lamella tilt angle ?
What OH version and binding do you use ? How are your items defined ?
Did that ever work ? What was your last sw/hw/config change that seems to have broken it?
Do your blinds actually move, or is it just the item to change ?
Did you ever calibrate them ?
In your other posting you picture a device config to be set to venetian-blind-with-positioning mode,
Are all of your shutters configured like this ?
Specifically check parameters #3 and #13.

Enable ZWave and rules log on debug level (log:set debug org.openhab.binding.zwave and for org.openhab.model.script.rules) to see if there’s any command or actuator-triggered report messages to cause this and what rule is eventually triggering it.

Answering your questions one by one:
OH version: openHAB 2.1.0 release build with Z-Wave Dev build 2.1.0.201708201145 for lamella positioning support
items: All Zwave things and items were defined in Paper-UI
Did it ever work: yes,
Changes: no SW upgrades, did initial install after 2.1.0 was released, HW changes added more FGR-222 and refined the rules controlling the blinds.
Blinds type: All blinds are venetian blinds and I am not refering to tilt angle.
Calibration: Yes, via switch connected to S2 and via HABadmin

All blinds are configured identical parameter #3: “Blind Positioning with FIBAR Command” and #13: “default - controller+switchlimit” and all blinds behaving the same.

logs to be posted…

Logs (log:set debug org.openhab.binding.zwave and for org.openhab.model.script.rules) attached
I left the logs running for approx. 25 minutes.
During that time no “odd” BlindsControl state was reported, but all blinds reported BlindsControl = 100, despite the fact that all blinds are fully raised and were not manipulated by any rule or physical switch.

Before the log was started:

openhab> smarthome:items list |grep Node |grep -i control |grep -i Blinds |sort
ZWaveNode10FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=0, Label=Blinds Control, Category=Blinds, Groups=[gAllBlinds, gTerrasseBlinds])
ZWaveNode11FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=0, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gDownStairsBlinds])
ZWaveNode12FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=0, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds])
ZWaveNode13FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=0, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gDownStairsBlinds])
ZWaveNode14FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=0, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gDownStairsBlinds])
ZWaveNode3FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=0, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gUpStairsBlinds])
ZWaveNode5FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=0, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gUpStairsBlinds])
ZWaveNode6FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=0, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gUpStairsBlinds])
ZWaveNode7FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=0, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gUpStairsBlinds])

After some 25 minutes:

openhab> smarthome:items list |grep Node |grep -i control |grep -i Blinds |sort
ZWaveNode10FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=100, Label=Blinds Control, Category=Blinds, Groups=[gAllBlinds, gTerrasseBlinds])
ZWaveNode11FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=100, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gDownStairsBlinds])
ZWaveNode12FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=100, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds])
ZWaveNode13FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=100, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gDownStairsBlinds])
ZWaveNode14FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=100, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gDownStairsBlinds])
ZWaveNode3FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=100, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gUpStairsBlinds])
ZWaveNode5FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=100, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gUpStairsBlinds])
ZWaveNode6FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=100, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gUpStairsBlinds])
ZWaveNode7FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=100, Label=Blinds Control, Category=Blinds, Groups=[gBlinds, gAllBlinds, gUpStairsBlinds])

My assumption was state=0 represents blinds fully up and state=100 fully down.

zwave_debug.xml (705.4 KB)

When using “UP” in PaperUI for any off the blinds (which are fully up anyhow) e.g.:

ZWaveNode10FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=100, Label=Blinds Control, Category=Blinds, Groups=[gAllBlinds, gTerrasseBlinds])

the only obvious change is:

ZWaveNode10FGRM222RollerShutter_BlindsControl (Type=RollershutterItem, State=0, Label=Blinds Control, Category=Blinds, Groups=[gAllBlinds, gTerrasseBlinds])

Logfile:
node10_debug.xml (17.3 KB)

For every UP in PaperUI after the first, which changed BlindsControl_state to 0, there is change in BlindsControl_state:

2017-09-03 13:05:00.358 [ItemCommandEvent          ] - Item 'ZWaveNode10FGRM222RollerShutter_BlindsControl' received command UP
2017-09-03 13:05:00.378 [ItemStateChangedEvent     ] - ZWaveNode10FGRM222RollerShutter_BlindsControl changed from 100 to 0
--
2017-09-03 13:11:47.913 [ItemCommandEvent          ] - Item 'ZWaveNode10FGRM222RollerShutter_BlindsControl' received command UP

I suggest to check invert percentage value setting on each of your blinds items first: drive them up and see which of them is at 100%, then enable invert_percentage on the corresponding channel (via PaperUI - Things)

reverting the percentage value does not help:

The behaviour is unchanged.
When raising the blind with UP command (and the blind is actually going UP, no mix-up in cabling) the BlindsControl changes from 100 to 0 and later-on to 4 (lamella position done automatically).
But later-on the state of BlindsControl is again updated to value close to 100 (96 in the example below).

Regards if the percentage is inverted or not the FGR-222 is reporting a value >90 if the blinds are opened, but only after a “spontaneous” update has been sent to OH.

When lowering the blinds BlindsControl state = 100 is reported when fully closed and later on updated with 0.

2017-09-06 18:49:58.980 [ItemCommandEvent          ] - Item 'ZWaveNode10FGRM222RollerShutter_BlindsControl' received command UP
2017-09-06 18:49:59.000 [ItemStateChangedEvent     ] - ZWaveNode10FGRM222RollerShutter_BlindsControl changed from 100 to 0
2017-09-06 19:19:25.484 [ItemStateChangedEvent     ] - ZWaveNode10FGRM222RollerShutter_BlindsControl changed from 0 to 4
2017-09-06 19:19:25.524 [ItemStateChangedEvent     ] - ZWaveNode10FGRM222RollerShutter_BlindsControl changed from 4 to 96

I was trying to build a rule triggering the blinds based on luminance and decide base on BlindsControl state if the blinds need to altered.
Which is almost impossible to achieve since each of the connected FGR-222 has it´s on reporting cycle.
The code sniplet is considering that all blinds are opened if the value of BlindsControl.state >=90, which eventually will be true for all blinds, but not if a recent DOWN (or UP) command was send, because after both commands the BlindsControl.state =100 for a variable duration.

if (gAllBlinds.members.filter[BlindsControl| BlindsControl.state >=90].size == 9)
    {
     logInfo ("StatusUpdate", "AllBlinds NoAction HighTemp")
    }
    else
    {
     logInfo ("StatusUpdate", "Closing AllBlinds Threshold exceeded In " + Inside.state.toString() + " Out " + Outside_Temp.state.toString())
     gAllBlinds.members.forEach[BlindsControl | BlindsControl.sendCommand(BlindsDown)]
     gAllBlindsLam.members.forEach[LamellaPosition | LamellaPosition.sendCommand(blindLamella0)]
    }

Sounds somewhat strange, to invert percentage should make a difference in any case.
Did you properly configure that? Restart needed ?

No idea where your extra positioning event originates from. Can you correlate that to a zwave message ?

Configured in PaperUI - assuming no OH2 restarted is required.

yes (from old logs) correlation is possible.