openhab/org.openhab.binding.zigbee

Add support for SAGE Doorbell Sensor 206612

allanstevens opened this issue · 4 comments

I hope this is the right place to raise this? Would it be possible to add support for the SAGE Doorbell Sensor 206612?

It pairs fine in OH3 as an Echostar Bell. The channels batterylevel, level control, battery alarm and battery voltage are added. There is no action channel as shown over at mqtt (https://www.zigbee2mqtt.io/devices/SAGE206612.html) It does not report anything back and the battery shows as 0% 0v. Ringing the doorbell also returns nothing.

I hope someone would be able to get this added, if you need anymore information from me then please get in touch.

Many thanks for looking at this,

Please provide logs, or some information that shows what this device supports. The XML file that OH produces would possibly also be of use. Alternatively if you are able to add the support yourself this would be appreciated as it may be difficult to do this without a device,

Many thanks for getting back to me. I'm very new to all this, I have certainly learned a bit so far!

When I ring the bell I get this in the logs once debug is switched on.

2021-02-05 12:35:07.396 [DEBUG] [converter.ZigBeeConverterSwitchLevel] - 0008890001D9F36D: ZigBee command received OnCommand [On/Off: E828/18 -> 0000/1, cluster=0006, TID=00]

2021-02-05 12:35:07.397 [DEBUG] [converter.ZigBeeBaseChannelConverter] - 0008890001D9F36D: Channel zigbee:device:stick1:0008890001d9f36d:0008890001D9F36D_18_dimmer updated to 100

2021-02-05 12:35:07.398 [DEBUG] [ng.zigbee.handler.ZigBeeThingHandler] - 0008890001D9F36D: Updating ZigBee channel state zigbee:device:stick1:0008890001d9f36d:0008890001D9F36D_18_dimmer to 100

I also list the XML below. Would you be able to offer some advice on how to add support myself ?

Thanks again!

0008890001D9F36D.XML

<ZigBeeNode>
  <ieeeAddress>0008890001D9F36D</ieeeAddress>
  <networkAddress>59432</networkAddress>
  <nodeDescriptor>
    <apsFlags>0</apsFlags>
    <bufferSize>89</bufferSize>
    <complexDescriptorAvailable>false</complexDescriptorAvailable>
    <manufacturerCode>4116</manufacturerCode>
    <logicalType>END_DEVICE</logicalType>
    <serverCapabilities class="sorted-set"/>
    <incomingTransferSize>61</incomingTransferSize>
    <outgoingTransferSize>61</outgoingTransferSize>
    <userDescriptorAvailable>true</userDescriptorAvailable>
    <frequencyBands>
      <FrequencyBandType>FREQ_2400_MHZ</FrequencyBandType>
    </frequencyBands>
    <macCapabilities class="sorted-set">
      <MacCapabilitiesType>REDUCED_FUNCTION_DEVICE</MacCapabilitiesType>
    </macCapabilities>
    <extendedEndpointListAvailable>false</extendedEndpointListAvailable>
    <extendedSimpleDescriptorListAvailable>false</extendedSimpleDescriptorListAvailable>
    <stackCompliance>0</stackCompliance>
  </nodeDescriptor>
  <powerDescriptor>
    <currentPowerMode>RECEIVER_ON_PERIODICALLY</currentPowerMode>
    <availablePowerSources>
      <PowerSourceType>MAINS</PowerSourceType>
      <PowerSourceType>RECHARGABLE_BATTERY</PowerSourceType>
      <PowerSourceType>DISPOSABLE_BATTERY</PowerSourceType>
    </availablePowerSources>
    <currentPowerSource>DISPOSABLE_BATTERY</currentPowerSource>
    <powerLevel>FULL</powerLevel>
  </powerDescriptor>
  <endpoints>
    <ZigBeeEndpoint>
      <endpointId>18</endpointId>
      <profileId>260</profileId>
      <deviceId>260</deviceId>
      <deviceVersion>0</deviceVersion>
      <inputClusterIds/>
      <outputClusterIds/>
      <inputClusters>
        <ZclCluster>
          <clusterId>0</clusterId>
          <isClient>false</isClient>
          <attributes>
            <entry>
              <int>0</int>
              <ZclAttribute>
                <id>0</id>
                <name>ZCL Version</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
                <lastReportTime>
                  <time>1612465647875</time>
                  <timezone>Europe/London</timezone>
                </lastReportTime>
                <lastValue class="int">1</lastValue>
              </ZclAttribute>
            </entry>
            <entry>
              <int>16384</int>
              <ZclAttribute>
                <id>16384</id>
                <name>SW Build ID</name>
                <dataType>CHARACTER_STRING</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>1</int>
              <ZclAttribute>
                <id>1</id>
                <name>Application Version</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
                <lastReportTime>
                  <time>1612465647875</time>
                  <timezone>Europe/London</timezone>
                </lastReportTime>
                <lastValue class="int">2</lastValue>
              </ZclAttribute>
            </entry>
            <entry>
              <int>2</int>
              <ZclAttribute>
                <id>2</id>
                <name>Stack Version</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
                <lastReportTime>
                  <time>1612465647875</time>
                  <timezone>Europe/London</timezone>
                </lastReportTime>
                <lastValue class="int">3</lastValue>
              </ZclAttribute>
            </entry>
            <entry>
              <int>3</int>
              <ZclAttribute>
                <id>3</id>
                <name>HW Version</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
                <lastReportTime>
                  <time>1612465647875</time>
                  <timezone>Europe/London</timezone>
                </lastReportTime>
                <lastValue class="int">4</lastValue>
              </ZclAttribute>
            </entry>
            <entry>
              <int>4</int>
              <ZclAttribute>
                <id>4</id>
                <name>Manufacturer Name</name>
                <dataType>CHARACTER_STRING</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
                <lastReportTime>
                  <time>1612465648889</time>
                  <timezone>Europe/London</timezone>
                </lastReportTime>
                <lastValue class="string"> Echostar</lastValue>
              </ZclAttribute>
            </entry>
            <entry>
              <int>5</int>
              <ZclAttribute>
                <id>5</id>
                <name>Model Identifier</name>
                <dataType>CHARACTER_STRING</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
                <lastReportTime>
                  <time>1612465647875</time>
                  <timezone>Europe/London</timezone>
                </lastReportTime>
                <lastValue class="string">   Bell</lastValue>
              </ZclAttribute>
            </entry>
            <entry>
              <int>6</int>
              <ZclAttribute>
                <id>6</id>
                <name>Date Code</name>
                <dataType>CHARACTER_STRING</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
                <lastReportTime>
                  <time>1612465647875</time>
                  <timezone>Europe/London</timezone>
                </lastReportTime>
                <lastValue class="string"> 05/21/15</lastValue>
              </ZclAttribute>
            </entry>
            <entry>
              <int>7</int>
              <ZclAttribute>
                <id>7</id>
                <name>Power Source</name>
                <dataType>ENUMERATION_8_BIT</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>8</int>
              <ZclAttribute>
                <id>8</id>
                <name>Generic Device Class</name>
                <dataType>ENUMERATION_8_BIT</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>9</int>
              <ZclAttribute>
                <id>9</id>
                <name>Generic Device Type</name>
                <dataType>ENUMERATION_8_BIT</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>10</int>
              <ZclAttribute>
                <id>10</id>
                <name>Product Code</name>
                <dataType>CHARACTER_STRING</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>11</int>
              <ZclAttribute>
                <id>11</id>
                <name>Product URL</name>
                <dataType>CHARACTER_STRING</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>16</int>
              <ZclAttribute>
                <id>16</id>
                <name>Location Description</name>
                <dataType>CHARACTER_STRING</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>17</int>
              <ZclAttribute>
                <id>17</id>
                <name>Physical Environment</name>
                <dataType>ENUMERATION_8_BIT</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>18</int>
              <ZclAttribute>
                <id>18</id>
                <name>Device Enabled</name>
                <dataType>BOOLEAN</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>19</int>
              <ZclAttribute>
                <id>19</id>
                <name>Alarm Mask</name>
                <dataType>BITMAP_8_BIT</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>20</int>
              <ZclAttribute>
                <id>20</id>
                <name>Disable Local Config</name>
                <dataType>BITMAP_8_BIT</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
          </attributes>
          <supportedCommandsReceived class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsReceived>
          <supportedCommandsGenerated class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsGenerated>
        </ZclCluster>
        <ZclCluster>
          <clusterId>1</clusterId>
          <isClient>false</isClient>
          <attributes>
            <entry>
              <int>0</int>
              <ZclAttribute>
                <id>0</id>
                <name>Mains Voltage</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>true</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>32</int>
              <ZclAttribute>
                <id>32</id>
                <name>Battery Voltage</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>true</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
                <lastReportTime>
                  <time>1612466939365</time>
                  <timezone>Europe/London</timezone>
                </lastReportTime>
                <lastValue class="int">0</lastValue>
              </ZclAttribute>
            </entry>
            <entry>
              <int>1</int>
              <ZclAttribute>
                <id>1</id>
                <name>Mains Frequency</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>true</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>33</int>
              <ZclAttribute>
                <id>33</id>
                <name>Battery Percentage Remaining</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>true</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
                <lastReportTime>
                  <time>1612466935331</time>
                  <timezone>Europe/London</timezone>
                </lastReportTime>
                <lastValue class="int">0</lastValue>
              </ZclAttribute>
            </entry>
            <entry>
              <int>16</int>
              <ZclAttribute>
                <id>16</id>
                <name>Mains Alarm Mask</name>
                <dataType>BITMAP_8_BIT</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>48</int>
              <ZclAttribute>
                <id>48</id>
                <name>Battery Manufacturer</name>
                <dataType>CHARACTER_STRING</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>17</int>
              <ZclAttribute>
                <id>17</id>
                <name>Mains Voltage Min Threshold</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>49</int>
              <ZclAttribute>
                <id>49</id>
                <name>Battery Size</name>
                <dataType>ENUMERATION_8_BIT</dataType>
                <mandatory>false</mandatory>
                <implemented>true</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>18</int>
              <ZclAttribute>
                <id>18</id>
                <name>Mains Voltage Max Threshold</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>50</int>
              <ZclAttribute>
                <id>50</id>
                <name>Battery A Hr Rating</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>19</int>
              <ZclAttribute>
                <id>19</id>
                <name>Mains Voltage Dwell Trip Point</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>51</int>
              <ZclAttribute>
                <id>51</id>
                <name>Battery Quantity</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>true</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>52</int>
              <ZclAttribute>
                <id>52</id>
                <name>Battery Rated Voltage</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>53</int>
              <ZclAttribute>
                <id>53</id>
                <name>Battery Alarm Mask</name>
                <dataType>BITMAP_8_BIT</dataType>
                <mandatory>false</mandatory>
                <implemented>true</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>54</int>
              <ZclAttribute>
                <id>54</id>
                <name>Battery Voltage Min Threshold</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>true</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>55</int>
              <ZclAttribute>
                <id>55</id>
                <name>Battery Voltage Threshold 1</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>true</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>56</int>
              <ZclAttribute>
                <id>56</id>
                <name>Battery Voltage Threshold 2</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>true</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>57</int>
              <ZclAttribute>
                <id>57</id>
                <name>Battery Voltage Threshold 3</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>58</int>
              <ZclAttribute>
                <id>58</id>
                <name>Battery Percentage Min Threshold</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>59</int>
              <ZclAttribute>
                <id>59</id>
                <name>Battery Percentage Threshold 1</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>60</int>
              <ZclAttribute>
                <id>60</id>
                <name>Battery Percentage Threshold 2</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>61</int>
              <ZclAttribute>
                <id>61</id>
                <name>Battery Percentage Threshold 3</name>
                <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>62</int>
              <ZclAttribute>
                <id>62</id>
                <name>Battery Alarm State</name>
                <dataType>BITMAP_32_BIT</dataType>
                <mandatory>false</mandatory>
                <implemented>true</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
                <lastReportTime>
                  <time>1612466936363</time>
                  <timezone>Europe/London</timezone>
                </lastReportTime>
                <lastValue class="int">0</lastValue>
              </ZclAttribute>
            </entry>
          </attributes>
          <supportedCommandsReceived class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsReceived>
          <supportedCommandsGenerated class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsGenerated>
          <supportedAttributes class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set">
              <int>0</int>
              <int>1</int>
              <int>32</int>
              <int>49</int>
              <int>51</int>
              <int>53</int>
              <int>54</int>
              <int>55</int>
              <int>56</int>
              <int>62</int>
            </c>
          </supportedAttributes>
        </ZclCluster>
        <ZclCluster>
          <clusterId>3</clusterId>
          <isClient>false</isClient>
          <attributes>
            <entry>
              <int>0</int>
              <ZclAttribute>
                <id>0</id>
                <name>Identify Time</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>true</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
          </attributes>
          <supportedCommandsReceived class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsReceived>
          <supportedCommandsGenerated class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsGenerated>
        </ZclCluster>
        <ZclCluster>
          <clusterId>9</clusterId>
          <isClient>false</isClient>
          <attributes>
            <entry>
              <int>0</int>
              <ZclAttribute>
                <id>0</id>
                <name>Alarm Count</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>false</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
          </attributes>
          <supportedCommandsReceived class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsReceived>
          <supportedCommandsGenerated class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsGenerated>
        </ZclCluster>
      </inputClusters>
      <outputClusters>
        <ZclCluster>
          <clusterId>3</clusterId>
          <isClient>true</isClient>
          <attributes/>
          <supportedCommandsReceived class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsReceived>
          <supportedCommandsGenerated class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsGenerated>
        </ZclCluster>
        <ZclCluster>
          <clusterId>6</clusterId>
          <isClient>true</isClient>
          <attributes/>
          <supportedCommandsReceived class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsReceived>
          <supportedCommandsGenerated class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsGenerated>
        </ZclCluster>
        <ZclCluster>
          <clusterId>8</clusterId>
          <isClient>true</isClient>
          <attributes/>
          <supportedCommandsReceived class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsReceived>
          <supportedCommandsGenerated class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsGenerated>
        </ZclCluster>
        <ZclCluster>
          <clusterId>25</clusterId>
          <isClient>true</isClient>
          <attributes>
            <entry>
              <int>0</int>
              <ZclAttribute>
                <id>0</id>
                <name>Upgrade Server ID</name>
                <dataType>IEEE_ADDRESS</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>1</int>
              <ZclAttribute>
                <id>1</id>
                <name>File Offset</name>
                <dataType>UNSIGNED_32_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>2</int>
              <ZclAttribute>
                <id>2</id>
                <name>Current File Version</name>
                <dataType>UNSIGNED_32_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>3</int>
              <ZclAttribute>
                <id>3</id>
                <name>Current ZigBee Stack Version</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>4</int>
              <ZclAttribute>
                <id>4</id>
                <name>Downloaded File Version</name>
                <dataType>UNSIGNED_32_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>5</int>
              <ZclAttribute>
                <id>5</id>
                <name>Downloaded ZigBee Stack Version</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>6</int>
              <ZclAttribute>
                <id>6</id>
                <name>Image Upgrade Status</name>
                <dataType>ENUMERATION_8_BIT</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>7</int>
              <ZclAttribute>
                <id>7</id>
                <name>Manufacturer ID</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>8</int>
              <ZclAttribute>
                <id>8</id>
                <name>Image Type ID</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>9</int>
              <ZclAttribute>
                <id>9</id>
                <name>Minimum Block Request Period</name>
                <dataType>UNSIGNED_16_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
            <entry>
              <int>10</int>
              <ZclAttribute>
                <id>10</id>
                <name>Image Stamp</name>
                <dataType>UNSIGNED_32_BIT_INTEGER</dataType>
                <mandatory>true</mandatory>
                <implemented>false</implemented>
                <readable>true</readable>
                <writable>false</writable>
                <reportable>false</reportable>
                <minimumReportingPeriod>0</minimumReportingPeriod>
                <maximumReportingPeriod>0</maximumReportingPeriod>
                <reportingTimeout>0</reportingTimeout>
              </ZclAttribute>
            </entry>
          </attributes>
          <supportedCommandsReceived class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsReceived>
          <supportedCommandsGenerated class="java.util.Collections$UnmodifiableSet">
            <c class="sorted-set"/>
          </supportedCommandsGenerated>
        </ZclCluster>
      </outputClusters>
    </ZigBeeEndpoint>
  </endpoints>
  <bindingTable/>
</ZigBeeNode>

On further investigation, it's working 🤦‍♂️

When doorbell is rung it sets the dimmer control to 100. But it was already at 100 when first set up, so I had not realised it changed. I have now set item to reset state 0 after 5 seconds as shown below.

zigbee.items
Dimmer DoorbellControl "Doorbell Control" {channel="zigbee:device:stick1:0008890001d9f36d:0008890001D9F36D_18_dimmer", expire="5s,state=0"}

zigbee.rules

rule Doorbell
when 
	Item DoorbellControl changed to 100
then
	//Ding dong
end 

The other channels are a bit odd, as the battery is set to 0% and the voltage is 0v, but it's working. Thanks for your help.

This issue has been mentioned on openHAB Community. There might be relevant details there:

https://community.openhab.org/t/anyone-managed-to-get-a-zigbee-sage-doorbell-sensor-206612-working/116345/2