Fibaro Roller Shutter FGRM-222 with Venetian Blinds - Lamellas Position

Thank for your tipp … but my lamellas doesn’t work anymore. is the item and sitemap setting above ok?

i have test both parameters, but no luck. (venetian blind and roller blind)

Well, that must be a misunderstanding, I can control my blinds perfectly fine via the hardware switches, but the changed positions (percentages) don’t get reflected in OH. I know that is related to the Unsupported Z-Wave command class error.

I thought that is implemented in the current binding, like it has been in the OH 1 Z-Wave binding.

Try to be more precise in stating your problem and environment, please. Your explanation was misleading (reread it).

No it is not. Fibaro proprietary commands are implemented in the development version, but not in the regular OH snapshot version you use.
AFAIK reports in Fibaro format are not even implemented in the dev version I linked, so switching there won’t give you what you apparently want (correct representation of either blind or lamella tilt state, as said already, you didn’t properly state your problem).
And IIRC Fibaro style reports were not implemented in OH1 either (or @chris ? guess you would have forward-ported those if they ever were).

The reports should be implemented. It’s been a while since I looked at this so I just checked the source and there are 2 channels - blinds_lamella and blinds_shutter. These should be updated from the Fibaro class (I’m assuming that the database is configured appropriately of course).

I don’t really remember what was implemented in OH1 - it’s been too long. When this was added to OH2, I think I spent more time on the implementation so it’s possible it was only added for OH2…

great, thanks

At first thanks for you help Chris & Markus! :smiley:

I’m actually using the development version (2.3.0.201804022210) you linked, otherwise I wouldn’t be able to control the lamella tilt at all. :sweat_smile:

Is there a way for me to check if the database is configured appropriately?

Just for you information, my devices are actually FGR222 (device type = 302) with firmware version 25.25.
Is it possible that this implementation is only used for the FGRM222 (device type = 301)?

<node>
  <homeId>0xf23a4ce0</homeId>
  <nodeId>2</nodeId>
  <version>4</version>
  <manufacturer>0x10f</manufacturer>
  <deviceId>0x1000</deviceId>
  <deviceType>0x302</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <sleepDelay>1000</sleepDelay>
  <nodeInformationFrame>
    <commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>COMMAND_CLASS_VERSION</commandClass>
    <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
    <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
    <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
    <commandClass>COMMAND_CLASS_METER</commandClass>
    <commandClass>COMMAND_CLASS_SWITCH_MULTILEVEL</commandClass>
    <commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>
    <commandClass>COMMAND_CLASS_SWITCH_BINARY</commandClass>
    <commandClass>COMMAND_CLASS_MANUFACTURER_PROPRIETARY</commandClass>
    <commandClass>COMMAND_CLASS_PROTECTION</commandClass>
  </nodeInformationFrame>
  <associationGroups class="concurrent-hash-map">
    <entry>
      <int>1</int>
      <associationGroup>
        <index>1</index>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>2</int>
      <associationGroup>
        <index>2</index>
        <associations/>
      </associationGroup>
    </entry>
    <entry>
      <int>3</int>
      <associationGroup>
        <index>3</index>
        <associations/>
      </associationGroup>
    </entry>
  </associationGroups>
  <endpoints class="concurrent-hash-map">
    <entry>
      <int>0</int>
      <endPoint>
        <deviceClass>
          <basicDeviceClass>BASIC_TYPE_ROUTING_SLAVE</basicDeviceClass>
          <genericDeviceClass>GENERIC_TYPE_SWITCH_MULTILEVEL</genericDeviceClass>
          <specificDeviceClass>SPECIFIC_TYPE_CLASS_B_MOTOR_CONTROL</specificDeviceClass>
        </deviceClass>
        <endpointId>0</endpointId>
        <secureCommandClasses/>
        <supportedCommandClasses class="concurrent-hash-map">
          <entry>
            <commandClass>COMMAND_CLASS_PROTECTION</commandClass>
            <COMMAND__CLASS__PROTECTION>
              <version>2</version>
              <instances>1</instances>
              <versionSupported>2</versionSupported>
              <localModes>
                <localProtection>UNPROTECTED</localProtection>
                <localProtection>PROTECTED</localProtection>
              </localModes>
              <rfModes>
                <rfProtection>UNPROTECTED</rfProtection>
                <rfProtection>NORFCONTROL</rfProtection>
              </rfModes>
            </COMMAND__CLASS__PROTECTION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MULTI_CHANNEL_ASSOCIATION</commandClass>
            <COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>
              <version>2</version>
              <instances>1</instances>
              <versionSupported>2</versionSupported>
              <maxGroups>2</maxGroups>
            </COMMAND__CLASS__MULTI__CHANNEL__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SWITCH_MULTILEVEL</commandClass>
            <multiLevelSwitchCommandClass>
              <version>3</version>
              <instances>1</instances>
              <versionSupported>3</versionSupported>
              <switchTypePrimary>CLOSE_OPEN</switchTypePrimary>
              <switchTypeSecondary>DOWN_UP</switchTypeSecondary>
              <isGetSupported>true</isGetSupported>
            </multiLevelSwitchCommandClass>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_MANUFACTURER_SPECIFIC</commandClass>
            <COMMAND__CLASS__MANUFACTURER__SPECIFIC>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <initSerialNumber>false</initSerialNumber>
              <deviceManufacturer>271</deviceManufacturer>
              <deviceType>770</deviceType>
              <deviceId>4096</deviceId>
            </COMMAND__CLASS__MANUFACTURER__SPECIFIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SWITCH_BINARY</commandClass>
            <COMMAND__CLASS__SWITCH__BINARY>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__SWITCH__BINARY>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_CONFIGURATION</commandClass>
            <COMMAND__CLASS__CONFIGURATION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <configParameters>
                <entry>
                  <int>32</int>
                  <configurationParameter>
                    <index>32</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>33</int>
                  <configurationParameter>
                    <index>33</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>3</int>
                  <configurationParameter>
                    <index>3</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>35</int>
                  <configurationParameter>
                    <index>35</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>40</int>
                  <configurationParameter>
                    <index>40</index>
                    <size>1</size>
                    <value>10</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>10</int>
                  <configurationParameter>
                    <index>10</index>
                    <size>1</size>
                    <value>2</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>42</int>
                  <configurationParameter>
                    <index>42</index>
                    <size>2</size>
                    <value>3600</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>43</int>
                  <configurationParameter>
                    <index>43</index>
                    <size>1</size>
                    <value>10</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>12</int>
                  <configurationParameter>
                    <index>12</index>
                    <size>2</size>
                    <value>210</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>44</int>
                  <configurationParameter>
                    <index>44</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>13</int>
                  <configurationParameter>
                    <index>13</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>14</int>
                  <configurationParameter>
                    <index>14</index>
                    <size>1</size>
                    <value>1</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>17</int>
                  <configurationParameter>
                    <index>17</index>
                    <size>1</size>
                    <value>10</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>18</int>
                  <configurationParameter>
                    <index>18</index>
                    <size>1</size>
                    <value>10</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>50</int>
                  <configurationParameter>
                    <index>50</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>22</int>
                  <configurationParameter>
                    <index>22</index>
                    <size>2</size>
                    <value>240</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>29</int>
                  <configurationParameter>
                    <index>29</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>30</int>
                  <configurationParameter>
                    <index>30</index>
                    <size>1</size>
                    <value>2</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
                <entry>
                  <int>31</int>
                  <configurationParameter>
                    <index>31</index>
                    <size>1</size>
                    <value>0</value>
                    <readOnly>false</readOnly>
                    <writeOnly>false</writeOnly>
                  </configurationParameter>
                </entry>
              </configParameters>
            </COMMAND__CLASS__CONFIGURATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_BASIC</commandClass>
            <COMMAND__CLASS__BASIC>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__BASIC>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_SENSOR_MULTILEVEL</commandClass>
            <COMMAND__CLASS__SENSOR__MULTILEVEL>
              <version>2</version>
              <instances>1</instances>
              <versionSupported>2</versionSupported>
              <sensors>
                <entry>
                  <multilevelSensorType>POWER</multilevelSensorType>
                  <multilevelSensor>
                    <sensorType>POWER</sensorType>
                    <initialised>true</initialised>
                  </multilevelSensor>
                </entry>
              </sensors>
              <isGetSupported>true</isGetSupported>
            </COMMAND__CLASS__SENSOR__MULTILEVEL>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_ASSOCIATION</commandClass>
            <COMMAND__CLASS__ASSOCIATION>
              <version>2</version>
              <instances>1</instances>
              <versionSupported>2</versionSupported>
              <maxGroups>3</maxGroups>
            </COMMAND__CLASS__ASSOCIATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_METER</commandClass>
            <COMMAND__CLASS__METER>
              <version>2</version>
              <instances>1</instances>
              <versionSupported>2</versionSupported>
              <meterType>ELECTRIC</meterType>
              <meterScales>
                <meterScale>E_W</meterScale>
                <meterScale>E_KWh</meterScale>
              </meterScales>
              <canReset>true</canReset>
              <isGetSupported>true</isGetSupported>
              <isSupportRequestSupported>true</isSupportRequestSupported>
            </COMMAND__CLASS__METER>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_POWERLEVEL</commandClass>
            <COMMAND__CLASS__POWERLEVEL>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <powerLevel>0</powerLevel>
              <powerTimeout>0</powerTimeout>
            </COMMAND__CLASS__POWERLEVEL>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_NO_OPERATION</commandClass>
            <COMMAND__CLASS__NO__OPERATION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
            </COMMAND__CLASS__NO__OPERATION>
          </entry>
          <entry>
            <commandClass>COMMAND_CLASS_VERSION</commandClass>
            <COMMAND__CLASS__VERSION>
              <version>1</version>
              <instances>1</instances>
              <versionSupported>1</versionSupported>
              <libraryType>LIB_SLAVE_ENHANCED</libraryType>
              <protocolVersion>3.52</protocolVersion>
              <applicationVersion>25.25</applicationVersion>
            </COMMAND__CLASS__VERSION>
          </entry>
        </supportedCommandClasses>
      </endPoint>
    </entry>
  </endpoints>
  <nodeNeighbors>
    <int>1</int>
    <int>3</int>
  </nodeNeighbors>
  <lastReceived>2018-04-03 16:49:12.281 UTC</lastReceived>
</node>

I was using the OH 1 Z-Wave binding with the Fibaro proprietary reports (shutter position & lamella tilt values) since 2016.

Sure - check here (http://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-database-guide).

Hi,

I’m planning to switch from ioBroker to openHab, made myself familiar with the concepts and am now checking if all my requirements can be served via openHab.

There are three Fibaro Roller Shuters 2 in my setup, getting them to work is a must to switch to openHab.

I read this thread, updated to the latest 2.3 version (1251) and can see my devices being recognized.
I cannot see any channel related to the lamellas in Paper UI, I can see a “manufacturer_specific” entry in the node XML file.

Can anyone help me how I can set the lamella positions?

I’m happy to start a new thread, if preferred or handle it via direct messages, to not spam this thread.

Any help is highly appreciated.

Best
Daniel

You need to install the zwave development binding, that would give you a blinds_lamella channel in PaperUI.

Thanks a lot. I thought by upgrading openahb to 2.3.0-Snapshot, I would have this one already.
I can see the lamella now and will take it from there.

Appreciate the fast help :slight_smile:

Thanks for the information about development version … now it works fine.

My idea now is the use of rollershutter item (up/stop/down) AND the two sliders shutter and lamella.
It is possible to automatic refresh the position of the dimmers, if i move with up/stop/down?

Is there an update available, which enables the reports sent to OH in case the HW switches are used to change the position/tilt of the venetian blinds?
I am on OH2.3 release build with zwave dev build 2.3.0.201806262322 and I am not receiving any updates on OH

1 Like

is it possible to use “blinds control” and “shutter position” in the same system?
since I do this, the blinds are partially opened when i send a closing command.

or what could that be, if the shutter is opened with a closing command?

z-wave binding: development binding 2.3.0 (date end of june 2018)
openhab version: 2.3.0

what is the best way to set shutter to 70% and open lamella to 50% at the same time? can i do this with one movement, or is it required to program two movements?

my actually solution is not so beautiful:
sendCommand(Lamella_xy, 50)
sendCommand(Shutter_xy,70)

is there a better way to program this function?

Any chance to put this feature into snapshot? I’ve upgraded now to ON 2.3 and surprised, that it’s still in development.

Once the current issue with the development version is resolved, this will be merged, but it won’t (cant) be added into the current master.

@chris

When to expect the next master, which does support both Venetian Blinds as well as enables the reports sent to OH2 in case the HW switches are used to change the position/tilt of the venetian blinds?

I am on development version to enable venetian blinds ever since the binding was released and would like to see both features merged to main branch.

As I said a week ago - as soon as the current issue is resolved, I will look to merge this into master.

without being too pushy - both will be merged to master, right?

What do you mean by “both”? There’s only one development branch, and this will be merged to master.