iva-k
(Ivan)
February 7, 2019, 7:33pm
1
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
iva-k
(Ivan)
February 7, 2019, 8:53pm
2
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>
iva-k
(Ivan)
February 7, 2019, 8:55pm
3
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.
chris
(Chris Jackson)
September 21, 2019, 8:45am
5
I don’t think so…
opened 09:51PM - 06 Feb 19 UTC
closed 03:40PM - 21 Dec 22 UTC
device-specific
Hello!
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 attached the xml file generated for the sensor in zigbee folder when it is added as a Thing.
Thanks,
Ivan
[zigbee-water-sensor.txt](https://github.com/openhab/org.openhab.binding.zigbee/files/2838408/zigbee-water-sensor.txt)
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
chris
(Chris Jackson)
September 22, 2019, 9:01am
7
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?
chris
(Chris Jackson)
September 22, 2019, 9:56pm
9
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…
iva-k
(Ivan)
November 28, 2019, 12:18am
10
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.
wwebers
(Wolfram)
November 30, 2019, 9:52am
11
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.
vdbdave
(Dave)
January 16, 2020, 5:51pm
12
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
iva-k
(Ivan)
January 16, 2020, 8:32pm
13
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)