Fibaro Roller Shutter 3 (FGR-223) - cannot get it to work properly

Before I send you elsewhere, are you using zwavejs2mqtt or the HA official addon?

@freshcoast, hi, Iā€™m using the official HA zwavejs addon. I however have installed and used a zwavejs2mqtt instance. I use it mainly to replace/rejoin dead nodes, check the network topology and the things HA cannot currently do.
The system is a Rpi3 running from SSD. The zwavejs addon is managed by the supervisor. HA core is updated to 2021.8.3 and Iā€™m not using any other addons (except influxdb, official).

PS: I used zwave2mqtt in the past but not any more since the advent of the zwavejs addon.

I would submit a bug report with the node-zwave-js project. With release v8, the behavior of multi-channel devices has changed. There are several Fibaro devices with similar problems, that either require an update to the device config file, or new associations. If you provide the logs and dumps there, they should be able to solve it.

Thank you, Iā€™ll do that.
For a better bug report, I need to know what HA expects to see from the fibaro devices.
Does it expect the level update to come from endpoint 1 instead of coming from Endpoint 0 ?
What else can I add there?
Thank you.

Basically, node-zwave-js knows about endpoints 1 and 2, and it expects messages from those endpoints. When it gets messages from endpoint 0 (root), it doesnā€™t handle them. There are different ways of addressing the problem.

For a good bug report you donā€™t need to diagnose the problem. Just describe your problem (HA entities are not updating) and provide the requested information in the bug report template. To accelerate the process, provide debug logs of a) the device re-interview, b) the device operating, showing when the updates are occurring, and c) a network dump from HA. If more information is needed, it will be requested.

To get debug logs, you can go to Configuration ā†’ Integrations ā†’ Z-Wave JS ā†’ Configure ā†’ Logs. Set log level to ā€œSillyā€. You can download the log file from there as well.

Just a quick update.
The issue with FGR223 has been fixed with driver version 8.0.8. A re-interview of all nodes in necessary, but now updates from into HA.
Thanks @freshcoast for helping out.

Just FYI: The slat position is a separate entity which only works if the FGR is set to Venetian Blind mode and then calibrated (again).

I am quite new to HA and am currently looking into automating our venetian blinds in our flat. I have been looking at a couple of solutions starting w/ Shelly 2.5, Sunricher and Fibaro Roller Shutter 3. All of them seem(ed) to have their flaws, however the Fibaro seems to be the best bet. However I am still not sure if all hickups have been resolved and the FGR-223 can be used with itā€™s entire capabilities.

So I would highly appreciate to get some feedback on the following questions:

  1. Can you trigger up/down movement from within the UI?
  2. Can you pause movement from within the UI?
  3. Once calibrated: is the position within the UI always correctly reported?
  4. Referring to 3.: also when the movement was not triggert from 0 or 100%, e.g. from 50%?
  5. Does tilting the slats work?
  6. Does movement + tilt work, e.g. go to 50% and tilt to 30%?
  7. Does all of this work with the hardware buttons as well, i.e. updating position and tilt?
  8. Which Z-Wave integration are you using with the Fibaros, i.e. which works the best and most reliable?
  9. Can automatic shading including blind position and tilt be used and can you maybe guide me into the right direction on how to set this up?

@NamCisum any chance you could share your experience?

Thank you so much for your reply already in advance!

Best wishes,
Markus

  1. Sure - but be advised, that depending on the load of the Z-Wave network the delay ranges from instant reaction up to 30 seconds. Fine adjustments are usually not possible using the UI.
  2. Sure - see 1.
  3. Yes. If the shutter runs into a problem and stops, it will be reported as fully down. In that case you might need to re-calibrate. I have been using roughly 30 shutters over 18 months, so far 3-5 recalibrations necessary (one being a motor defect).
  4. Yes.
  5. I can confirm it works using ZWaveJStoMQTT connected via Websocket to the ā€œnewā€ ZWave JS integration (there is a separate entity for the tilt position). It should also work with the official ZWave JS Server add-on is it wraps the same software, but I havenā€™t tested it. It does not work with the deprecated ZWave 1.4 native integration.
  6. Yes. I would suggest to 1st move the blind into position, then give it an adequate amount of time (because the controller itself will then reset the tilt position to the previous tilt position), then set the tilt position you want. In any case it will be two commands, so I would use a script that you can call with two arguments (blind position, tilt position).
  7. Yes.
  8. See above - ZWaveJStoMQTT and ZWave JS integration - no MQTT (itā€™s disabled).
  9. Depending on the cloud coverage and expected max temperature for the day I activate some automations in the morning setting the blinds and tilt positions of the house following the sun. You can do this depending on the position of the Sun, certain time of the day (but this will change during the year) or by measuring luminance inside/outside the house. The technical part is really simple: You call the service to set the cover position and thatā€™s it. The rest really depends on your daily life: for example I close the blinds in the kids rooms at a certain time of day before they go to bed. Then I open them at a certain point of time in the morning, but only if the automations for closing them are not activated (e.g. because itā€™s too cold or not sunny).

Let me know if you have any questions, good luck on this journey, it will take some time, but itā€™s very educative and worth it in the end! After some reservation my wife now loves the fact that if she comes home the house is always cool on a hot day and she didnā€™t have to do anything while she was gone. :slight_smile:

1 Like

Thanks a lot @NamCisum for the rapid and detailed answers to my questions! This sounds like the FGR-223 finally fits the bill and is fully operational from within HA!

1 Like

Just for reference, I wrote a small script that does exactly what I wrote 6. above:

UPDATE (2/1/22): I was underestimating the FGR223 - you actually donā€™t have to wait for the blind to reach the desired position and then set slats, it does work if both positions are being set at the same time. The controller appears to adhere to the desired slat position and does not revert to the previous position before setting the new one.

zw_setcover:
  alias: Z-Wave Set Cover
  icon: mdi:window-shutter
  description: 'Z-Wave Set Cover with Slats'
  mode: parallel
  sequence:
    # - conditions: "{{ is_state_attr(zw_setcover_coverent, 'current_position', zw_setcover_coverpos) }}" Muss noch auf NOT umgebaut werden
    - service: cover.set_cover_position
      data:
        entity_id: "{{ zw_setcover_coverent }}"
        position: "{{ zw_setcover_coverpos }}"
    - service: cover.set_cover_position
      data:
        entity_id: "{{ zw_setcover_coverent }}_2"
        position: "{{ zw_setcover_slatpos }}"

OLD VERSION (waiting for run to complete):

zw_setcover:
  alias: Z-Wave Set Cover
  icon: mdi:window-shutter
  description: 'Z-Wave Set Cover with Slats'
  mode: parallel
  sequence:
    - service: cover.set_cover_position
      data:
        entity_id: "{{ zw_setcover_coverent }}"
        position: "{{ zw_setcover_coverpos }}"
    - wait_template: "{{ is_state_attr(zw_setcover_coverent, 'current_position', zw_setcover_coverpos) }}"
      timeout: "00:01:30"
    - service: cover.set_cover_position
      data:
        entity_id: "{{ zw_setcover_slatent }}"
        position: "{{ zw_setcover_slatpos }}"

This waits for the controller to update the position and then sets the slats. If that doesnā€™t work because iE the position slightly differs after the move it runs into the time-out (set for longest possible run-time of blinds) and sets the slats anyway.

You can call it like this:

service: script.zw_setcover
data:
  zw_setcover_coverent: cover.name
  zw_setcover_coverpos: 50
  zw_setcover_slatent: cover.name_2
  zw_setcover_slatpos: 50

This sets the cover to 50% and turns the slats into middle position.

1 Like

I am using Fibaro Roller Shutter 2 and I do not see additional entity after setting switch to Venetian Blind mode and calibrating it.
I am able to control position using cover services (open, close, set position), but nothing with tilt.

I am using official HA ZwaveJS addon and separate ZwaveJS2MQTT server. Within the ZwajveJS, I am able to see both position and slat, and if I set slat position in the ZwaveJS2MQTT gui, and execute it, slats will position accordingly. But the only way how how can I call that from the HA is to call service: Z-Wave JS: Set a value on a Z-Wave device (Advanced)

Therefore I have only made few predefined values and execute it as a script, after selecting value from dropdown in the lovelace UI.

Anyone found better method?

For me, HA simply shows two Multilevel Switches as Entities for the device.

Can you post a screenshot of the entities from Integrations - Z Wave JS - Device FGRā€¦ ?

Here is example:

Either the entities werenā€™t correctly created when the integration read the Z Wave JS devices or it is not supported for the FGR-222 (I have the FGR-223 actually). Sorry, canā€™t test thatā€¦

Well I am desperate ā€¦ I am trying to change to home assistant from domoticz but in ha it is impossible for my fibaro fgr223 to work well. At domoticz, both scenes and level bars were working to perfection. After all the work of integrating all my blinds (9) I will have to go back to domoticz since everything worked great there. My problem here is that the devices do not update their status and I have tried some of the automations that are in the forum but they do not work in some nodes ā€¦ I have the latest version of ha, zwave js and a razberry2 card as a driver. There is still no solution, right?

Not sure what you mean - I have the FGR223 (Roller Shutter 3) with Z-Wave JS and it works just fine, including correct info on current position of blinds and slats.

I was underestimating the FGR223 - you actually donā€™t have to wait for the blind to reach the desired position and then set slats, it does work if both positions are being set at the same time. The controller appears to adhere to the desired slat position and does not revert to the previous position before setting the new one.

zw_setcover:
  alias: Z-Wave Set Cover
  icon: mdi:window-shutter
  description: 'Z-Wave Set Cover with Slats'
  mode: parallel
  sequence:
    - service: cover.set_cover_position
      data:
        entity_id: "{{ zw_setcover_coverent }}"
        position: "{{ zw_setcover_coverpos }}"
    - service: cover.set_cover_position
      data:
        entity_id: "{{ zw_setcover_coverent }}_2"
        position: "{{ zw_setcover_slatpos }}"

This only works when the entity name for the Slot is the same as the primary shutter with a trailing _2.

I have written a script that is valid for me because where I use the FGR 223 I only act through scenes and we rarely act on the switch. The first day I despaired because I thought it would be easier after a week with HA I am loving it. Everything works fine now.

Hey Daniel,
Iā€˜m currently setting up the FGR223 and are really happy with your suggestions here in the forum.
So far, everything works fine except the tilting of the slates.
I configured it as you stated - chose Operation modeā€žVenetian blindā€œ, then did a calibration.
However, I donā€˜t see a new entity for the slates.
When I save your script, I get the error ā€žMessage malformed: extra keys not allowed @ data[zw_setcover].

Any hint would be greatly appreciated :pray: