Adding a Xiaomi Water Leak sensor ZigBee Thing definition

Hello!

Hope im posting this in the right place, I’ve posted the same question on ZigBee binding github page but i feel this might be a better place for this type of question.

I’ve been trying to add support for Xiaomi Water Leak Sensor SJCGQ11LM after finding that it didn’t have any Items added when I pair it with the CC2531 and add the generic Thing under ZigBee binding like other items I’ve paired before so it was pretty useless like that.
I managed to get it working after spending some time scouring the github by adding the ias_water channel under cluster 1280, so that bit is working fine it seems!
However i see that the sensor should be providing some battery alarm and voltage. I tried adding the battery_alarm and battery_voltage channels but they never recieve any data from the sensor. I’ve tried setting the cluster to 0 (this seems to be the correct one), 1, 3. The most i have gotten out of it is that sometimes voltage changes from null to 0.0V

Any idea what i might be doing wrong? I have the xml file generated for the sensor in zigbee folder when it is added as a Thing, but it seems i cannot attach it as a new user, so i will post them as formatted code.

Thanks,
Ivan

Thing definition for Xiaomi Water Sensor:

<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="zigbee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:thing="http://eclipse.org/smarthome/schemas/thing-description/v1.0.0"
	xsi:schemaLocation="http://eclipse.org/smarthome/schemas/thing-description/v1.0.0 http://eclipse.org/smarthome/schemas/thing-description-1.0.0.xsd">

	<thing-type id="xiaomi_lumisensorwaterleak">
		<label>Xiaomi Water Leak Sensor</label>
		<description>Xiaomi Water Leak Sensor</description>

		<channels>
			<channel id="alarm_water" typeId="ias_water">
				<properties>
					<property name="zigbee_endpoint">1</property>
					<property name="zigbee_inputclusters">1280</property>
				</properties>
			</channel>
			<channel id="alarm_battery" typeId="battery_alarm">
				<properties>
					<property name="zigbee_endpoint">1</property>
					<property name="zigbee_inputclusters">1</property>
				</properties>
			</channel>
			<channel id="battery_voltage" typeId="battery_voltage">
				<properties>
					<property name="zigbee_endpoint">1</property>
					<property name="zigbee_inputclusters">1</property>
				</properties>
			</channel>

		</channels>

		<properties>
			<property name="vendor">Xiaomi</property>
			<property name="modelId">lumi.sensor_wleak.aq1</property>
			<property name="zigbee_logicaltype">END_DEVICE</property>
		</properties>

		<representation-property>zigbee_macaddress</representation-property>

		<config-description>
			<parameter name="zigbee_macaddress" type="text" readOnly="true" required="true">
				<label>MAC Address</label>
			</parameter>
		</config-description>
	</thing-type>
</thing:thing-descriptions>

XML generated in the ZigBee folder when device is paired:

<list>
  <ZigBeeNode>
    <ieeeAddress>00158D000233866E</ieeeAddress>
    <networkAddress>63577</networkAddress>
    <nodeDescriptor>
      <apsFlags>0</apsFlags>
      <bufferSize>127</bufferSize>
      <complexDescriptorAvailable>false</complexDescriptorAvailable>
      <manufacturerCode>4151</manufacturerCode>
      <logicalType>END_DEVICE</logicalType>
      <serverCapabilities/>
      <incomingTransferSize>100</incomingTransferSize>
      <outgoingTransferSize>100</outgoingTransferSize>
      <userDescriptorAvailable>false</userDescriptorAvailable>
      <frequencyBands>
        <FrequencyBandType>FREQ_2400_MHZ</FrequencyBandType>
      </frequencyBands>
      <macCapabilities>
        <MacCapabilitiesType>REDUCED_FUNCTION_DEVICE</MacCapabilitiesType>
      </macCapabilities>
      <extendedEndpointListAvailable>false</extendedEndpointListAvailable>
      <extendedSimpleDescriptorListAvailable>false</extendedSimpleDescriptorListAvailable>
      <stackCompliance>0</stackCompliance>
    </nodeDescriptor>
    <powerDescriptor>
      <currentPowerMode>RECEIVER_ON_IDLE</currentPowerMode>
      <availablePowerSources>
        <PowerSourceType>DISPOSABLE_BATTERY</PowerSourceType>
      </availablePowerSources>
      <currentPowerSource>DISPOSABLE_BATTERY</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>1</clusterId>
            <isClient>false</isClient>
            <attributes>
              <entry>
                <int>0</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>0</id>
                  <name>MainsVoltage</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>32</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>32</id>
                  <name>BatteryVoltage</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>1</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>1</id>
                  <name>MainsFrequency</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>33</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>33</id>
                  <name>BatteryPercentageRemaining</name>
                  <dataType>UNSIGNED_8_BIT_INTEGER</dataType>
                  <mandatory>false</mandatory>
                  <implemented>false</implemented>
                  <readable>true</readable>
                  <writeable>false</writeable>
                  <reportable>true</reportable>
                  <minimumReportingPeriod>0</minimumReportingPeriod>
                  <maximumReportingPeriod>0</maximumReportingPeriod>
                  <reportingTimeout>0</reportingTimeout>
                </ZclAttribute>
              </entry>
              <entry>
                <int>16</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>16</id>
                  <name>MainsAlarmMask</name>
                  <dataType>BITMAP_8_BIT</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>48</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>48</id>
                  <name>BatteryManufacturer</name>
                  <dataType>CHARACTER_STRING</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>17</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>17</id>
                  <name>MainsVoltageMinThreshold</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>49</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>49</id>
                  <name>BatterySize</name>
                  <dataType>ENUMERATION_8_BIT</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>POWER_CONFIGURATION</cluster>
                  <id>18</id>
                  <name>MainsVoltageMaxThreshold</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>50</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>50</id>
                  <name>BatteryAHrRating</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>POWER_CONFIGURATION</cluster>
                  <id>19</id>
                  <name>MainsVoltageDwellTripPoint</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>51</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>51</id>
                  <name>BatteryQuantity</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>52</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>52</id>
                  <name>BatteryRatedVoltage</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>53</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>53</id>
                  <name>BatteryAlarmMask</name>
                  <dataType>BITMAP_8_BIT</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>54</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>54</id>
                  <name>BatteryVoltageMinThreshold</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>55</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>55</id>
                  <name>BatteryVoltageThreshold1</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>56</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>56</id>
                  <name>BatteryVoltageThreshold2</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>57</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>57</id>
                  <name>BatteryVoltageThreshold3</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>58</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>58</id>
                  <name>BatteryPercentageMinThreshold</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>59</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>59</id>
                  <name>BatteryPercentageThreshold1</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>60</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>60</id>
                  <name>BatteryPercentageThreshold2</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>61</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>61</id>
                  <name>BatteryPercentageThreshold3</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>62</int>
                <ZclAttribute>
                  <cluster>POWER_CONFIGURATION</cluster>
                  <id>62</id>
                  <name>BatteryAlarmState</name>
                  <dataType>BITMAP_32_BIT</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>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>
        </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/>
  </ZigBeeNode>
</list>

@chris is there any progress on integration of this XIAOMI water leak sensor? just bought it and in M3 does not show anything than an unknown device.

I don’t think so…

What have you provided the properties list for? Is that related in some way or just an error (it’s not the Xiaomi device is it?).

yes its the properties list, to show you what my XIAOMI water sensor is listing. Its definitely the XIAOMI sensor via ebay: https://www.ebay.de/itm/Original-Xiaomi-Aqara-Smart-Water-Sensor-Detector-APP-Control-Remote-Alarm/123563274664?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2649

Is there anything i can help with to make it maybe working? Kind Regards Norbert

Are you really sure - it looks like a Hue remote control to me.

oh no. big SORRY. i did copy paste the Hue Remote listing. Here is the one from the Aqua Sensor.
Again my question, is there anything that could help from my side to make it work?

image

I will add the above definition and we can see what happens. I’m unable to test this, and I’ve spent an hour or so looking around the web to try and find more information without much success so there’s not a lot I can do other than to buy one for testing…

I’ve actually given up on this and went down the zigbee2mqtt route which seems to work great so far. I’ve managed to get it paired and working with xiaomi water leak sensors, door sensors, temp & humidity sensors, smoke alarm and heiman movement sensor. :slight_smile:

Me too, adding those nice Aqara gadget via MQTT with the little help of zigbee2mqtt works really great. I even am able to use the Aqara cube. However, defining rules for it is another topic.

Hi Ivan,
I have the temp, humidity and motion sensor working.
Can you help me with the config of the waterleak sensor. I’m using zigbee2mqtt for this.
Can you provide me the JSON translation and type of the item in the sitemap. Looks like I only made a small mistake somewhere

Hi Dave, sure. Here it is!

Items:

    Thing topic water-sensor-kitchen "Water Detector Kitchen" {
    Channels:
	Type number : water_leak "Water detected" [ stateTopic="zigbee2mqtt/water-sensor-kitchen", transformationPattern="JS:waterleak.js"]
	Type number : battery "Battery" [ stateTopic="zigbee2mqtt/water-sensor-kitchen", transformationPattern="JSONPATH:$.battery"]
	Type number : linkquality "Link quality" [ stateTopic="zigbee2mqtt/water-sensor-kitchen", transformationPattern="JSONPATH:$.linkquality"]
    }

Transform: waterleak.js

(function(dataString) {
var data = JSON.parse(dataString);
var reply = 0;
if (data.water_leak) reply = 1;
return reply;
})(input)