FIBARO FGR223 (Roller Shutter 3) Open level value incorrect

For Z-Wave related questions in Domoticz

Moderator: leecollings

Post Reply
Michalux
Posts: 27
Joined: Sunday 22 March 2020 17:46
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

FIBARO FGR223 (Roller Shutter 3) Open level value incorrect

Post by Michalux »

Hi,

I have a few FGR223 modules running in my house. I'm aware about the correct level reporting problem, but I think I've managed to sort it out using dedicated shell script, that parses domoticz log file and sets the correct level after the initiation of shutter position change.
The problem is, everything seems to work just fine, except when I use the 'Open' button on the switch device.
What happens is domoticz sends to blind level=255 position:

Code: Select all

2020-03-22 17:05:20.025  Status: User: Admin initiated a switch command (39/BLIND5/On)
2020-03-22 17:05:20.026  OpenZWave: Domoticz has send a Switch command!, Level: 255, NodeID: 6 (0x06)
This results in errors and the shutter doesn't move at all:

Code: Select all

2020-03-22 17:05:23.311 Error, Node006, ERROR: Dropping command, expected response not received after 1 attempt(s). Command: "SwitchMultilevelCmd_Get (Node=6): 0x01, 0x09, 0x00, 0x13, 0x06, 0x02, 0x26, 0x02, 0x25, 0xfa, 0x1a"
2020-03-22 17:05:23.314 Always,
2020-03-22 17:05:23.315 Always, Dumping queued log messages
2020-03-22 17:05:23.315 Always,
2020-03-22 17:05:23.316 Always,
2020-03-22 17:05:23.317 Always, End of queued log message dump
2020-03-22 17:05:23.318 Always,
Apparently FGR223 only accepts levels from 0 to 99 (level 255 actually means the last position level, so I guess generates no reaction/response from the blind).
When I send to the blind explicitly level=99, it opens without any problem.
So, is there a way to change the default 'Open' level value to 99 ?

Additional thing is, that for 'Close' action, domoticz sends 'Off' (level 0) and for 'Open' action it sends 'On' (level 255).
For a Blind Percentage Inverted (that I use) shouldn't it be Close/Open instead of Off/On ?
Michalux
Posts: 27
Joined: Sunday 22 March 2020 17:46
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: FIBARO FGR223 (Roller Shutter 3) Open level value incorrect

Post by Michalux »

I've investigated the issue a little bit further.
According do Z-Wave specification, switch_multilevel command accepts following values:
- 0, that means Off
- 1-99, that means On (and sets the required level)
- 255, that means On, but indicates the previous level to be set
So, according to Z-Wave specification, current Domoticz behavior is not correct. Switches currently send 0 for Off and 255 for On.
The result of current Domoticz behavior is, when I set my shutter level from 0 to i.e 50 and than press an open button, the shutter goes back to 0 position.
Could anybody from developers take a closer look to it ?

And one more thing: for the shutters/binds (especially FIBARO FGR-223), current Domoticz switch behavior is also erratic.
Setting the required level from the switch, Domoticz sends to a shutter controller two consecutive commands: Set (with required level) and immediately after this, Get command (to get the final shutter position probably). Since, after the Set command, a shutter is in a move, it responds with current position, not the final one. So Domoticz sets a wrong level position on the switch device. So either Domoticz should send Get command after a period of time. This period should either be manually set or calculated from time of a shutter transition from Closed to Open (or Open to Closed).
Michalux
Posts: 27
Joined: Sunday 22 March 2020 17:46
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: FIBARO FGR223 (Roller Shutter 3) Open level value incorrect

Post by Michalux »

Since nobody seemed to help ... I've decided to dig into this problem myself.
I've managed to alter a little bit the code in OpenZWave.cpp to send value 99 instead of 255 just for the FGR-223 :)
Additionally to fix the status (Open/Closed/Leveled) in the GUI, I've wrote a shell script, that parses Domoticz log file, and on blind change sets accordingly nValue and sValue for the blind by running in the background another shell script, that waits some seconds (for the blind to settle its final position) and after that it runs dzVents script to set correct n+sValue.
Now all my FGR-223 finally work like a charm. Open as expected, close as expected and set the required level also as expected, showing in the same time the correct status/level in the GUI.
civi
Posts: 3
Joined: Friday 21 October 2016 12:14
Target OS: Raspberry Pi / ODroid
Domoticz version: 2022.2
Location: Madrid, Spain
Contact:

Re: FIBARO FGR223 (Roller Shutter 3) Open level value incorrect

Post by civi »

Hi. Same problem here detected some days ago after mounting a new FGR223.
I have implemented a simple solution to solve the non operating 'On' command.
Some lua lines in a 'script_device_xxxx.lua' are working for me:

Code: Select all

if devicechanged['YourBlind'] == 'Open' then
    local position = tonumber(otherdevices_svalues['YourBlind'])
    if position < 99 then
        commandArray['YourBlind']='Set Level 99'
    end
end
Michalux
Posts: 27
Joined: Sunday 22 March 2020 17:46
Target OS: Raspberry Pi / ODroid
Domoticz version:
Contact:

Re: FIBARO FGR223 (Roller Shutter 3) Open level value incorrect

Post by Michalux »

This probably should also work, but I guess it can produce an odd behavior in some circumstances - the shutter can first move to the last position, than fully open, so it will move twice to reach the desired position. Haven't tested it, so I also could be wrong ;)
Code change works before any command is send to the shutter, so value 255 never shows up :)
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests