Fibaro Wall Plug Switch FGWPx102/101 Power reports not working

Hi!

I’m creating this thread to not interfere with other threads.
From:
https://community.openhab.org/t/fibaro-fgsm-001-endpoint-1-2-not-found/14242/5

@chris

I’ve update to last snapshot tonight, remove cache, tmp files etc. Removed the deviec, and readded it again, I still get errors on power consumption notifications:

2016-09-23 11:23:07.618 [DEBUG] [WaveSerialHandler$ZWaveReceiveThread] - Receive Message = 01 0D 00 04 00 05 07 60 0D 00 00 20 01 FF 47 
2016-09-23 11:23:07.637 [DEBUG] [ve.internal.protocol.ZWaveController] - Receive queue TAKE: Length=0
2016-09-23 11:23:07.638 [DEBUG] [wave.internal.protocol.SerialMessage] - Assembled message buffer = 01 0D 00 04 00 05 07 60 0D 00 00 20 01 FF 47 
2016-09-23 11:23:07.639 [DEBUG] [ve.internal.protocol.ZWaveController] - Process Message = 01 0D 00 04 00 05 07 60 0D 00 00 20 01 FF 47 
2016-09-23 11:23:07.640 [DEBUG] [ve.internal.protocol.ZWaveController] - Message: class=ApplicationCommandHandler[0x04], type=Request[0x00], priority=High, dest=255, callback=0, pay
load=00 05 07 60 0D 00 00 20 01 FF 
2016-09-23 11:23:07.641 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 5: Application Command Request (ALIVE:DONE)
2016-09-23 11:23:07.641 [DEBUG] [alization.ZWaveNodeInitStageAdvancer] - NODE 5: Starting initialisation from DONE
2016-09-23 11:23:07.642 [DEBUG] [ve.internal.protocol.ZWaveController] - Event Listener org.openhab.binding.zwave.internal.protocol.initialization.ZWaveNodeInitStageAdvancer@5e6995 
already registered
2016-09-23 11:23:07.642 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 5: Incoming command class MULTI_INSTANCE
2016-09-23 11:23:07.642 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 5: Command class MULTI_INSTANCE not found, trying to add it.
2016-09-23 11:23:07.643 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Creating new instance of command class MULTI_INSTANCE
2016-09-23 11:23:07.644 [DEBUG] [tocol.commandclass.ZWaveCommandClass] - NODE 5: Command class MULTI_INSTANCE, endpoint null created
2016-09-23 11:23:07.645 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 5: Adding command class MULTI_INSTANCE
2016-09-23 11:23:07.646 [DEBUG] [ng.zwave.internal.protocol.ZWaveNode] - NODE 5: Adding command class MULTI_INSTANCE to the list of supported command classes.
2016-09-23 11:23:07.648 [DEBUG] [class.ZWaveMultiInstanceCommandClass] - NODE 5: Received MULTI_INSTANCE command V0
2016-09-23 11:23:07.651 [DEBUG] [class.ZWaveMultiInstanceCommandClass] - NODE 5: Requested Command Class = BASIC (0x20)
2016-09-23 11:23:07.654 [ERROR] [class.ZWaveMultiInstanceCommandClass] - NODE 5: Endpoint 0 not found. Cannot set command classes.
2016-09-23 11:23:07.656 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 4: Transaction not completed: node address inconsistent.  lastSent=4, incoming=255

The xml for the devie looks like this (Extracting it from the jar-file)

      <channel id="switch_binary" typeId="switch_binary">
        <label>Switch</label>
        <properties>
          <property name="binding:*:OnOffType">SWITCH_BINARY,BASIC</property>
        </properties>
      </channel>
      <channel id="sensor_power" typeId="sensor_power">
        <label>Sensor (power)</label>
        <properties>
          <property name="binding:*:DecimalType">SENSOR_MULTILEVEL;type=POWER</property>
        </properties>
      </channel>
      <channel id="meter_kwh" typeId="meter_kwh">
        <label>Electric meter (kWh)</label>
        <properties>
          <property name="binding:*:DecimalType">METER;type=E_KWh</property>
        </properties>
      </channel>
      <channel id="meter_watts" typeId="meter_watts">
        <label>Electric meter (watts)</label>
        <properties>
          <property name="binding:*:DecimalType">METER;type=E_W</property>
        </properties>
      </channel>
      <channel id="meter_reset" typeId="meter_reset">
        <label>Reset the total power consumption</label>
        <properties>
          <property name="binding:*:OnOffType">METER</property>
        </properties>
      </channel>
    </channels>

    <!-- DEVICE PROPERTY DEFINITIONS -->
    <properties>
      <property name="vendor">Fibaro System</property>
      <property name="modelId">FGWP101</property>
      <property name="manufacturerId">010F</property>
      <property name="manufacturerRef">0600:1000</property>
      <property name="dbReference">130</property>
      <property name="defaultAssociations">3</property>
    </properties>

First I would like to say that I’m extremely impressed by the z-wave binding and all the effort that is put into it, nothing to take for granted.
A couple of questions:

  1. Is this working for someone else to your knowledge Chris?
  2. What can I do to get this working?

Steps to reproduce:

  1. Install latestest OH2 snapshot
  2. Remove cache/tmp
  3. Remove device in habmin
  4. Readd it
  5. Change parameters in the FGWP do do immediate power report when change by 1% (Im using 15 but just to get the notification, it’s parameter 40. Immediate power report.)
  6. Put some real load on the socket (in my case turning my washingmachine on)

Is the XML correct? Given it states that MULTI_INSTANCE isn’t found I would suspect that there’s a problem and it might be best to initialise the device again.

I think @shorty707 is using these and they are working ok?

yes

here is my xml

<node>
  <deviceClass>
    <basicDeviceClass>ROUTING_SLAVE</basicDeviceClass>
    <genericDeviceClass>BINARY_SWITCH</genericDeviceClass>
    <specificDeviceClass>NOT_USED</specificDeviceClass>
  </deviceClass>
  <homeId>0xf1ae60af</homeId>
  <nodeId>8</nodeId>
  <version>4</version>
  <manufacturer>0x10f</manufacturer>
  <deviceId>0x1000</deviceId>
  <deviceType>0x600</deviceType>
  <listening>true</listening>
  <frequentlyListening>false</frequentlyListening>
  <routing>true</routing>
  <security>false</security>
  <beaming>true</beaming>
  <maxBaudRate>40000</maxBaudRate>
  <nodeInformationFrame>
    <commandClass>MANUFACTURER_SPECIFIC</commandClass>
    <commandClass>VERSION</commandClass>
    <commandClass>CONFIGURATION</commandClass>
    <commandClass>ASSOCIATION</commandClass>
    <commandClass>MULTI_INSTANCE_ASSOCIATION</commandClass>
    <commandClass>SWITCH_BINARY</commandClass>
    <commandClass>POWERLEVEL</commandClass>
    <commandClass>METER</commandClass>
    <commandClass>SENSOR_MULTILEVEL</commandClass>
    <commandClass>FIRMWARE_UPDATE_MD</commandClass>
  </nodeInformationFrame>
  <supportedCommandClasses>
    <entry>
      <commandClass>MULTI_INSTANCE_ASSOCIATION</commandClass>
      <multiAssociationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <maxGroups>2</maxGroups>
      </multiAssociationCommandClass>
    </entry>
    <entry>
      <commandClass>BASIC</commandClass>
      <basicCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </basicCommandClass>
    </entry>
    <entry>
      <commandClass>NO_OPERATION</commandClass>
      <noOperationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </noOperationCommandClass>
    </entry>
    <entry>
      <commandClass>SWITCH_BINARY</commandClass>
      <binarySwitchCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <isGetSupported>true</isGetSupported>
      </binarySwitchCommandClass>
    </entry>
    <entry>
      <commandClass>SENSOR_MULTILEVEL</commandClass>
      <multiLevelSensorCommandClass>
        <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>
      </multiLevelSensorCommandClass>
    </entry>
    <entry>
      <commandClass>MANUFACTURER_SPECIFIC</commandClass>
      <manufacturerSpecificCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <initSerialNumber>false</initSerialNumber>
      </manufacturerSpecificCommandClass>
    </entry>
    <entry>
      <commandClass>CONFIGURATION</commandClass>
      <configurationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <configParameters>
          <entry>
            <int>1</int>
            <configurationParameter>
              <index>1</index>
              <size>1</size>
              <value>1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>34</int>
            <configurationParameter>
              <index>34</index>
              <size>1</size>
              <value>63</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>35</int>
            <configurationParameter>
              <index>35</index>
              <size>1</size>
              <value>0</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>70</int>
            <configurationParameter>
              <index>70</index>
              <size>2</size>
              <value>-1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>39</int>
            <configurationParameter>
              <index>39</index>
              <size>2</size>
              <value>600</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>40</int>
            <configurationParameter>
              <index>40</index>
              <size>1</size>
              <value>80</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>42</int>
            <configurationParameter>
              <index>42</index>
              <size>1</size>
              <value>15</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>43</int>
            <configurationParameter>
              <index>43</index>
              <size>1</size>
              <value>30</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>45</int>
            <configurationParameter>
              <index>45</index>
              <size>1</size>
              <value>10</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>47</int>
            <configurationParameter>
              <index>47</index>
              <size>2</size>
              <value>3600</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>16</int>
            <configurationParameter>
              <index>16</index>
              <size>1</size>
              <value>1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>49</int>
            <configurationParameter>
              <index>49</index>
              <size>1</size>
              <value>0</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>50</int>
            <configurationParameter>
              <index>50</index>
              <size>2</size>
              <value>300</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>51</int>
            <configurationParameter>
              <index>51</index>
              <size>2</size>
              <value>500</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>52</int>
            <configurationParameter>
              <index>52</index>
              <size>1</size>
              <value>6</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>60</int>
            <configurationParameter>
              <index>60</index>
              <size>2</size>
              <value>25000</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>61</int>
            <configurationParameter>
              <index>61</index>
              <size>1</size>
              <value>1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>62</int>
            <configurationParameter>
              <index>62</index>
              <size>1</size>
              <value>8</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
          <entry>
            <int>63</int>
            <configurationParameter>
              <index>63</index>
              <size>1</size>
              <value>1</value>
              <readOnly>false</readOnly>
              <writeOnly>false</writeOnly>
            </configurationParameter>
          </entry>
        </configParameters>
      </configurationCommandClass>
    </entry>
    <entry>
      <commandClass>POWERLEVEL</commandClass>
      <powerLevelCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <powerLevel>0</powerLevel>
        <powerTimeout>0</powerTimeout>
      </powerLevelCommandClass>
    </entry>
    <entry>
      <commandClass>VERSION</commandClass>
      <versionCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
        <libraryType>LIB_SLAVE_ENHANCED</libraryType>
        <protocolVersion>3.52</protocolVersion>
        <applicationVersion>25.25</applicationVersion>
      </versionCommandClass>
    </entry>
    <entry>
      <commandClass>FIRMWARE_UPDATE_MD</commandClass>
      <firmwareUpdateCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>1</versionSupported>
      </firmwareUpdateCommandClass>
    </entry>
    <entry>
      <commandClass>ASSOCIATION</commandClass>
      <associationCommandClass>
        <version>1</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <maxGroups>3</maxGroups>
      </associationCommandClass>
    </entry>
    <entry>
      <commandClass>METER</commandClass>
      <meterCommandClass>
        <version>2</version>
        <instances>1</instances>
        <versionSupported>2</versionSupported>
        <meterType>ELECTRIC</meterType>
        <meterScales>
          <meterScale>E_KWh</meterScale>
          <meterScale>E_W</meterScale>
        </meterScales>
        <canReset>true</canReset>
        <isGetSupported>true</isGetSupported>
        <isSupportRequestSupported>true</isSupportRequestSupported>
      </meterCommandClass>
    </entry>
  </supportedCommandClasses>
  <securedCommandClasses/>
  <associationGroups>
    <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>
  <nodeNeighbors>
    <int>1</int>
    <int>10</int>
  </nodeNeighbors>
  <lastSent>2016-09-23 08:40:04.768 UTC</lastSent>
  <lastReceived>2016-09-23 08:40:04.821 UTC</lastReceived>
</node>

let me add that I have the same problem with “no power reports” with the Philio PAN11 plug.

there I thought it might be related to the “inclusion” in secure mode… not confirmed yet

Thanks @shorty707.
I think I might know what is happening - it’s likely caused by the change in the way associations work so I’ll take a look today/tomorrow.

FTR -:

for me nothing changed with the updated binding :slight_smile:

the fgwp102 still works :wink: … lets see it now works also for @shorty707

the pan11 still shows no meter infos… but it also has no multi instance class … :wink:

Isn’t that you ;).

Nothing will actually change by itself. This PR changes the way the associations are configured - you can try setting them again to see if anything changes, but I have a bad feeling it might not erase the configuration that is already set.

Maybe, maybe not. This is in fact the problem - new devices supporting the multi_instance_association class can send multi_instance messages even if they say they don’t support multi_instance command class. If the association group gets misconfigured, then they start sending multi_instance messages that the binding doesn’t know about and we get these errors reported as above…

:blush: damn … autocomplete :wink: @seaside was meant of course

the plug has only 1 association for reports -> set it again to the controller

no meter data … I only see
15:59:29.564 [DEBUG] [ssage.ApplicationCommandMessageClass] - NODE 3: Transaction not completed: node address inconsistent. lastSent=3, incoming=255

in the log

setting config parameters and “on/off” still works as expected

Awesome! I’ll try and check this out as soon as I can, I’m out of town right now.

Regards S

No hurry ;).

I would suggest to remove the associations when you get the new version, and then add it again, and let’s see what shows up in the logs…

It seems to be working now. The important step was to remove and re-add the controller update association.
Thank you so much for the support @chris & @shorty707.

Regards, S