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

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.

referring to:

  • Venetian Blinds support
  • enabled reports sent to OH2 in case the HW switches are used to change the position/tilt of the venetian blinds

both topics are mentioned in this thread

I do not personally have these devices, so can’t comment too much, but the support for the FGRM222 specific command class is included in the development branch and this is intended to be merged to master in the coming weeks.

I have the current version of those devices

venetian blind support works well with OH2 dev binding

-> HW switches do not trigger reports to the controller in my setup