Zigbee binding

You are right, it would be possible to change them, but this would still not do what you want!

If you changed the serialiser while the system was operating, and the system only saves nodes that change, then the new system will still not get all the nodes until the framework closes. Either it uses the saveNode method, or it saves all. The framework doesn’t know when to use one or the other - and if it did, then it could STILL save the whole network using the saveNode method, so there is still no need for both calls - right?

I think that if an implementation wants to change serialiser, then it has the responsibility to ensure continuity of data.

Clearly you are not understanding me. That is what I am proposing! There would be a single method in the interface - saveNode, and this would be called to save each node. If the system wanted to save all nodes, it will save them all by calling this method!

From my post above -:

If we have an interface ZigBeeSerializer.serialiseNode() then we can use this to loop through all nodes to serialise the complete network. We do not need a second interface ZigBeeSerializer.serialiseNetwork() which is simply going to do the same thing.

I see now. Please have a look at my response at the issue you opened (writing it now, to follow-up there). But then probably it makes sense not to provide the interface at all, as the implementation is then managing everything on its own

Have a great vacation, this might actually mean I can get a better understanding of the code.

I just got some Xiaomi Aqara door sensors and tried to integrate them with the zigbee binding. Unfortunately they are only discovered as a new thing but the channels are not detected. I found help for integration of motion and temperature sensors (manually) but no option to integrate the door sensors.
Does anyone have experience with that? or even got them working?
I think it is too early to ask chris (so I did not integrate logs:-)

I have tried many times. I have not been able to add them. I has come as far as you did. They got added, but no channels. Since then I gave up.

Hi Chris,
i bought a paulmann zigbee dimmer and i get it discovered. The binding discovered one level control thing. But when i link this and control it nothing happens and the slider jumps back to 100%. Here is the node from the zigbee network xml

  <ZigBeeNode>
    <ieeeAddress>00158D0002927954</ieeeAddress>
    <networkAddress>18979</networkAddress>
    <nodeDescriptor>
      <apsFlags>0</apsFlags>
      <bufferSize>127</bufferSize>
      <complexDescriptorAvailable>false</complexDescriptorAvailable>
      <manufacturerCode>4509</manufacturerCode>
      <logicalType>ROUTER</logicalType>
      <serverCapabilities/>
      <incomingTransferSize>90</incomingTransferSize>
      <outgoingTransferSize>90</outgoingTransferSize>
      <userDescriptorAvailable>false</userDescriptorAvailable>
      <frequencyBands>
        <FrequencyBandType>FREQ_2400_MHZ</FrequencyBandType>
      </frequencyBands>
      <macCapabilities>
        <MacCapabilitiesType>RECEIVER_ON_WHEN_IDLE</MacCapabilitiesType>
        <MacCapabilitiesType>FULL_FUNCTION_DEVICE</MacCapabilitiesType>
        <MacCapabilitiesType>MAINS_POWER</MacCapabilitiesType>
      </macCapabilities>
      <extendedEndpointListAvailable>false</extendedEndpointListAvailable>
      <extendedSimpleDescriptorListAvailable>false</extendedSimpleDescriptorListAvailable>
      <stackCompliance>21</stackCompliance>
    </nodeDescriptor>
    <powerDescriptor>
      <currentPowerMode>RECEIVER_ON_IDLE</currentPowerMode>
      <availablePowerSources>
        <PowerSourceType>MAINS</PowerSourceType>
      </availablePowerSources>
      <currentPowerSource>MAINS</currentPowerSource>
      <powerLevel>FULL</powerLevel>
    </powerDescriptor>
    <endpoints>
      <ZigBeeEndpoint>
        <profileId>260</profileId>
        <endpointId>1</endpointId>
        <inputClusterIds/>
        <outputClusterIds/>
        <inputClusters>
          <ZclCluster>
            <clusterId>0</clusterId>
            <isClient>false</isClient>
            <attributes>
              <entry>
                <int>0</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>0</id>
                  <name>ZCLVersion</name>
                  <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>16384</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>16384</id>
                  <name>SWBuildID</name>
                  <dataType>CHARACTER_STRING</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>1</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>1</id>
                  <name>ApplicationVersion</name>
                  <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>2</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>2</id>
                  <name>StackVersion</name>
                  <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>3</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>3</id>
                  <name>HWVersion</name>
                  <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>4</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>4</id>
                  <name>ManufacturerName</name>
                  <dataType>CHARACTER_STRING</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>5</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>5</id>
                  <name>ModelIdentifier</name>
                  <dataType>CHARACTER_STRING</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>6</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>6</id>
                  <name>DateCode</name>
                  <dataType>CHARACTER_STRING</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>7</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>7</id>
                  <name>PowerSource</name>
                  <dataType>ENUMERATION_8_BIT</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>16</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>16</id>
                  <name>LocationDescription</name>
                  <dataType>CHARACTER_STRING</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>17</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>17</id>
                  <name>PhysicalEnvironment</name>
                  <dataType>ENUMERATION_8_BIT</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>18</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>18</id>
                  <name>DeviceEnabled</name>
                  <dataType>BOOLEAN</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>19</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>19</id>
                  <name>AlarmMask</name>
                  <dataType>BITMAP_8_BIT</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>20</int>
                <ZclAttribute>
                  <cluster>BASIC</cluster>
                  <id>20</id>
                  <name>DisableLocalConfig</name>
                  <dataType>BITMAP_8_BIT</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
            </attributes>
            <supportedCommandsReceived/>
            <supportedCommandsGenerated/>
            <supportedAttributes class="sorted-set"/>
          </ZclCluster>
          <ZclCluster>
            <clusterId>4096</clusterId>
            <isClient>false</isClient>
            <attributes/>
            <supportedCommandsReceived/>
            <supportedCommandsGenerated/>
            <supportedAttributes class="sorted-set"/>
          </ZclCluster>
          <ZclCluster>
            <clusterId>3</clusterId>
            <isClient>false</isClient>
            <attributes>
              <entry>
                <int>0</int>
                <ZclAttribute>
                  <cluster>IDENTIFY</cluster>
                  <id>0</id>
                  <name>IdentifyTime</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
            </attributes>
            <supportedCommandsReceived/>
            <supportedCommandsGenerated/>
            <supportedAttributes class="sorted-set"/>
          </ZclCluster>
          <ZclCluster>
            <clusterId>4</clusterId>
            <isClient>false</isClient>
            <attributes/>
            <supportedCommandsReceived/>
            <supportedCommandsGenerated/>
            <supportedAttributes class="sorted-set"/>
          </ZclCluster>
          <ZclCluster>
            <clusterId>5</clusterId>
            <isClient>false</isClient>
            <attributes>
              <entry>
                <int>0</int>
                <ZclAttribute>
                  <cluster>SCENES</cluster>
                  <id>0</id>
                  <name>SceneCount</name>
                  <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>1</int>
                <ZclAttribute>
                  <cluster>SCENES</cluster>
                  <id>1</id>
                  <name>CurrentScene</name>
                  <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>2</int>
                <ZclAttribute>
                  <cluster>SCENES</cluster>
                  <id>2</id>
                  <name>CurrentGroup</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>3</int>
                <ZclAttribute>
                  <cluster>SCENES</cluster>
                  <id>3</id>
                  <name>SceneValid</name>
                  <dataType>BOOLEAN</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>4</int>
                <ZclAttribute>
                  <cluster>SCENES</cluster>
                  <id>4</id>
                  <name>NameSupport</name>
                  <dataType>BITMAP_8_BIT</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>5</int>
                <ZclAttribute>
                  <cluster>SCENES</cluster>
                  <id>5</id>
                  <name>LastConfiguredBy</name>
                  <dataType>IEEE_ADDRESS</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
            </attributes>
            <supportedCommandsReceived/>
            <supportedCommandsGenerated/>
            <supportedAttributes class="sorted-set"/>
          </ZclCluster>
          <ZclCluster>
            <clusterId>6</clusterId>
            <isClient>false</isClient>
            <attributes>
              <entry>
                <int>0</int>
                <ZclAttribute>
                  <cluster>ON_OFF</cluster>
                  <id>0</id>
                  <name>OnOff</name>
                  <dataType>BOOLEAN</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>true</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                  <lastReportTime>
                    <time>1548272510969</time>
                    <timezone>Etc/UTC</timezone>
                  </lastReportTime>
                  <lastValue class="boolean">true</lastValue>
                </ZclAttribute>
              </entry>
              <entry>
                <int>16384</int>
                <ZclAttribute>
                  <cluster>ON_OFF</cluster>
                  <id>16384</id>
                  <name>GlobalSceneControl</name>
                  <dataType>BOOLEAN</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>16385</int>
                <ZclAttribute>
                  <cluster>ON_OFF</cluster>
                  <id>16385</id>
                  <name>OffTime</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>16386</int>
                <ZclAttribute>
                  <cluster>ON_OFF</cluster>
                  <id>16386</id>
                  <name>OffWaitTime</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
            </attributes>
            <supportedCommandsReceived/>
            <supportedCommandsGenerated/>
            <supportedAttributes class="sorted-set"/>
          </ZclCluster>
          <ZclCluster>
            <clusterId>8</clusterId>
            <isClient>false</isClient>
            <attributes>
              <entry>
                <int>0</int>
                <ZclAttribute>
                  <cluster>LEVEL_CONTROL</cluster>
                  <id>0</id>
                  <name>CurrentLevel</name>
                  <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>true</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                  <lastReportTime>
                    <time>1548272510952</time>
                    <timezone>Etc/UTC</timezone>
                  </lastReportTime>
                  <lastValue class="int">254</lastValue>
                </ZclAttribute>
              </entry>
              <entry>
                <int>16</int>
                <ZclAttribute>
                  <cluster>LEVEL_CONTROL</cluster>
                  <id>16</id>
                  <name>OnOffTransitionTime</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>1</int>
                <ZclAttribute>
                  <cluster>LEVEL_CONTROL</cluster>
                  <id>1</id>
                  <name>RemainingTime</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>17</int>
                <ZclAttribute>
                  <cluster>LEVEL_CONTROL</cluster>
                  <id>17</id>
                  <name>OnLevel</name>
                  <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>18</int>
                <ZclAttribute>
                  <cluster>LEVEL_CONTROL</cluster>
                  <id>18</id>
                  <name>OnTransitionTime</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>19</int>
                <ZclAttribute>
                  <cluster>LEVEL_CONTROL</cluster>
                  <id>19</id>
                  <name>OffTransitionTime</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>20</int>
                <ZclAttribute>
                  <cluster>LEVEL_CONTROL</cluster>
                  <id>20</id>
                  <name>DefaultMoveRate</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>true</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
            </attributes>
            <supportedCommandsReceived/>
            <supportedCommandsGenerated/>
            <supportedAttributes class="sorted-set"/>
          </ZclCluster>
        </inputClusters>
        <outputClusters>
          <ZclCluster>
            <clusterId>25</clusterId>
            <isClient>true</isClient>
            <attributes>
              <entry>
                <int>0</int>
                <ZclAttribute>
                  <cluster>OTA_UPGRADE</cluster>
                  <id>0</id>
                  <name>UpgradeServerID</name>
                  <dataType>IEEE_ADDRESS</dataType>
                  <mandatory>true</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>1</int>
                <ZclAttribute>
                  <cluster>OTA_UPGRADE</cluster>
                  <id>1</id>
                  <name>FileOffset</name>
                  <dataType>UNSIGNED_32_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>2</int>
                <ZclAttribute>
                  <cluster>OTA_UPGRADE</cluster>
                  <id>2</id>
                  <name>CurrentFileVersion</name>
                  <dataType>UNSIGNED_32_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>3</int>
                <ZclAttribute>
                  <cluster>OTA_UPGRADE</cluster>
                  <id>3</id>
                  <name>CurrentZigBeeStackVersion</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>4</int>
                <ZclAttribute>
                  <cluster>OTA_UPGRADE</cluster>
                  <id>4</id>
                  <name>DownloadedFileVersion</name>
                  <dataType>UNSIGNED_32_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>5</int>
                <ZclAttribute>
                  <cluster>OTA_UPGRADE</cluster>
                  <id>5</id>
                  <name>DownloadedZigBeeStackVersion</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>6</int>
                <ZclAttribute>
                  <cluster>OTA_UPGRADE</cluster>
                  <id>6</id>
                  <name>ImageUpgradeStatus</name>
                  <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>7</int>
                <ZclAttribute>
                  <cluster>OTA_UPGRADE</cluster>
                  <id>7</id>
                  <name>ManufacturerID</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>8</int>
                <ZclAttribute>
                  <cluster>OTA_UPGRADE</cluster>
                  <id>8</id>
                  <name>ImageTypeID</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>9</int>
                <ZclAttribute>
                  <cluster>OTA_UPGRADE</cluster>
                  <id>9</id>
                  <name>MinimumBlockRequestDelay</name>
                  <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>10</int>
                <ZclAttribute>
                  <cluster>OTA_UPGRADE</cluster>
                  <id>10</id>
                  <name>ImageStamp</name>
                  <dataType>UNSIGNED_32_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>false</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
            </attributes>
            <supportedCommandsReceived/>
            <supportedCommandsGenerated/>
            <supportedAttributes class="sorted-set"/>
          </ZclCluster>
        </outputClusters>
      </ZigBeeEndpoint>
    </endpoints>
    <bindingTable>
      <IeeeAddress>
        <srcAddr>00158D0002927954</srcAddr>
        <srcEndpoint>1</srcEndpoint>
        <clusterId>6</clusterId>
        <dstAddrMode>3</dstAddrMode>
        <dstGroupAddr>0</dstGroupAddr>
        <dstAddr>000D6F000AF7C525</dstAddr>
        <dstNodeEndpoint>1</dstNodeEndpoint>
      </IeeeAddress>
      <IeeeAddress>
        <srcAddr>00158D0002927954</srcAddr>
        <srcEndpoint>1</srcEndpoint>
        <clusterId>8</clusterId>
        <dstAddrMode>3</dstAddrMode>
        <dstGroupAddr>0</dstGroupAddr>
        <dstAddr>000D6F000AF7C525</dstAddr>
        <dstNodeEndpoint>1</dstNodeEndpoint>
      </IeeeAddress>
    </bindingTable>
  </ZigBeeNode>

if you need a sniffer log i can also support you with that.

THX for this great Binding
Frank

so this might be another topic for chris…
what do you need?

  • should I send you a pair of sensors to test
  • or some normal logs?
  • or if you should need a sniffer log I would kindly rely on your offer made some weeks ago to prepare a stick with suitable firmware and to send it to me (after you got the money from me:-)

thanks in advance

I believe @chris already know about the difficulties with the xiaomi devices. There are a few topics about them. Problem is, they´re not plain zigbee. And I doubt Chris can do anything about it.

I read that - that’s why I was so surprised that the binding explicitely offers that adding of xiaomi devices:

Perhaps other devices are also usable…

Could somebody support me, how to set up aqara wireless wall switch? It is discovered as a thing, but it is not working.

Screenshot_2019-01-24%20Xiaomi%20WXKG02LM%20Aqara%20Smart%20Light%20Switch%20Wireless%20Version%20-%20%2420%2050%20Free%20Shipping%20GearBest%20com(1)

Some may work fine, others dont. The window/door sensor is one I havn´t been able to get to work.

Hey Chris - whenever you get back from your vacation - I just wanted to say thank you - the active power polling has been working in the newest library release. I did want to check with you on the polling interval though. Currently its only updating about once per minute. Is there somewhere I can set that to be more frequent as it was when it was working a few months back? Thanks again for all of your efforts!

1 Like

This PR should make it work: https://github.com/openhab/org.openhab.binding.zigbee/pull/346
(It does for me)

Do yours have the modelId lumi.sensor_magnet.aq2 and hardwareVersion 2?
This one worked out of the box for me.

I have 9 of these sensors, and have not been able to add it to a zigbee network:
xiaomidoor

Which one did you manage to add?

These:

Ahh okay, thanks for the information.

Has anyone else noticed their color bulbs going to an “UNDEF” state in the most recent version of the code? I’ll work on getting some debug code but I’m hoping this maybe obvious enough as I have never seen an UNDEF state before - only null. Items do this constantly and seem to go to and from the state without any interaction - I’m dead asleep at the time block I pulled this log from.

Edit: logs uploaded. You can see the channel converter setting it to UNDEF.

2019-01-31 17:13:26.011 [DEBUG] [converter.ZigBeeBaseChannelConverter] - 8418260000092447: Channel zigbee:device:86496f67:8418260000092447:8418260000092447_3_color updated to UNDEF

https://the-hive.dynu.net/nextcloud/index.php/s/f4RTs75aipJLmaH

thanks!

2019-01-31 03:39:15.227 [vent.ItemStateChangedEvent] - raw_TV_CC changed from 0,0,0 to UNDEF
2019-01-31 03:39:17.306 [vent.ItemStateChangedEvent] - raw_TV_CC changed from UNDEF to 0,0,0
2019-01-31 03:40:58.228 [vent.ItemStateChangedEvent] - raw_Dine1_CC changed from 0,0,0 to UNDEF
2019-01-31 03:41:01.185 [vent.ItemStateChangedEvent] - raw_Dine1_CC changed from UNDEF to 0,0,0
2019-01-31 03:41:57.221 [vent.ItemStateChangedEvent] - raw_Dine3_CC changed from 0,0,0 to UNDEF
2019-01-31 03:42:38.743 [vent.ItemStateChangedEvent] - raw_Dine3_CC changed from UNDEF to 0,0,0
2019-01-31 03:43:00.454 [vent.ItemStateChangedEvent] - raw_Desk2_CC changed from 0,0,0 to UNDEF
2019-01-31 03:43:20.079 [vent.ItemStateChangedEvent] - raw_Entry_CC changed from 0,0,0 to UNDEF
2019-01-31 03:43:52.149 [vent.ItemStateChangedEvent] - raw_Desk2_CC changed from UNDEF to 0,0,0
2019-01-31 03:44:08.144 [vent.ItemStateChangedEvent] - raw_Entry_CC changed from UNDEF to 0,0,0
2019-01-31 03:44:09.205 [vent.ItemStateChangedEvent] - raw_Dine2_CC changed from 0,0,0 to UNDEF
2019-01-31 03:44:39.002 [vent.ItemStateChangedEvent] - raw_Dine2_CC changed from UNDEF to 0,0,0
2019-01-31 03:44:42.069 [vent.ItemStateChangedEvent] - raw_Desk1_CC changed from 0,0,0 to UNDEF
2019-01-31 03:45:32.841 [vent.ItemStateChangedEvent] - raw_Desk1_CC changed from UNDEF to 0,0,0

Hi Thomas,
I have the same version as yours.
I got them only with a chinese manual. So I tried pressing the button quite unregularly and after some time for one out of three devices a switch channel was discovered but it does not show any reaction dependent on the magnet.
Could you provide a short “manual” how you got them working:-)

I did nothing special.
Press the reset button, pair it via the UI.
Then wait for some time until discovery is complete. (May be up to 10 minutes)