Purpose of this page is to share all findings regarding the WISER Zigbee product familly.
- Thermostat
- Smart Plug
- Actuator (Heat ACT)
- sMeter (BMS)
Work in progress, so only validated informations are written
- Channel: 15, 11
- Extended PANID:
- 0x6734484504015e10
- 0x7996484504015e10
- 0x6734484504015e10
- 0x1234484504015e10
- 0x5678484504015e10
- 0xFefe484504015e10
In short your extended PANID must looks like : 0x----484504015e10, where the 1st 4 digits can be any hex digit
-
Get Active Endpoint List
- 6 EndPoints : 0b, 0c, 0d, 0e, 0f, 10
-
Get Model name via read attribute 0x0000/0x0005
- EH-ZB-BMS
-
For each EndPoint
- Simple Descriptor Request
- Cluster In
- 0x0000
- 0x0001
- 0x0003
- 0x0009
- 0x0702
- 0xfe02
- Cluster Out
- 0x0019
- Cluster In
- Bind 0x0019, 0x0000, 0x0001, 0x0000, 0x0003, 0x0702
- Simple Descriptor Request
-
For each EndPoint
- Configure Reporting Cluster 0x0702
- Attribute 0x0000 DataType: 0x25 Uint48 0x0000ffffffffffff , Min: 30, Max: 30
- Attribute 0x0400 DataType: 0x2a Int24: 400, Min: 30, Max: 30
- Attribute 0x0002 DataType: 0x25 Uint48 0x0000ffffffffffff, Min: 30, Max: 30
- Configure Reporting Cluster 0x0702
-
Read Attribute Cluster 0x0000 Attribute 0x0007
-
Read Attribute Cluster 0x0000 Attribute 0x0013
-
Read Attribute Cluster 0x0000 Attribute 0xe000
-
Read Attribute Cluster 0x0000 Attribute 0xe001
-
Read Attribute Cluster 0x0000 Attribute 0xe002
-
For each EndPoint
-
Read Attribute Cluster 0x0702 Attribute 0x0000
-
Read Attribute Cluster 0x0702 Attribute 0x0400
-
Read Attribute Cluster 0x0702 Attribute 0x0002
-
Read Attribute Cluster 0x0702 Attribute 0x0300
-
Read Attribute Cluster 0x0702 Attribute 0x0301
-
Read Attribute Cluster 0x0702 Attribute 0x0302
-
Read Attribute Cluster 0x0702 Attribute 0x0801
-
Read Attribute Cluster 0x0702 Attribute 0x5000
-
Read Attribute Cluster 0x0702 Attribute 0x5001
-
Read Attribute Cluster 0x0702 Attribute 0xe200
-
Read Attribute Cluster 0x0702 Attribute 0xe201
-
Read Attribute Cluster 0x0702 Attribute 0xe202
-
-
Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x00 0x00 0x00
-
Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x01 0x00 0x00
-
On EndPoint 0x0b
-
Read Attribute Cluster 0x0001 Attribute 0x0035
-
Read Attribute Cluster 0x0001 Attribute 0x0036
-
Read Attribute Cluster 0x0001 Attribute 0x0020
-
Write Attribute 0x0000 Attribute 0xe050 ( Data Type: Bool 0x10; Value: True 0x01 )
-
Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x10 0x01 0x00
-
Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x10 0x02 0x07
-
Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x11 0x02 0x07
-
Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x16 0x02 0x07
- Get Active Endpoint List
- Simple Descriptor Request
- Get Model name via read attribute 0x0000/0x0005
- Bind 0x0019
- Bind 0x0000
- Bind 0x0009
- Bind 0x0003
- Bind 0x0006
- Bind 0x0702
- Configure Reporting on Cluster 0x0702 Attribute 0x0000 ( Min: 600, Max: 600)
- Configure Reporting on Cluster 0x0702 Attribute 0x0400 ( Min: 30, Max: 600)
- Configure Reporting on Cluster 0x0006 Attribute 0x0000 ( Min: 0, Max 600)
- Read Attribute 0x0000 Attribute 0x0007 (Power Source)
- Read Attribute 0x0000 Attribute 0x0013 (Alarm Mask)
- Read Attribute 0x0000 Attribute 0xe000 (Version logicielle processeur réseau)
- Read Attribute 0x0000 Attribute 0xe001 (Version logicielle application)
- Read Attribute 0x0000 Attribute 0xe002 (Version matérielle application)
- Read Attribute 0x0702 Attribute 0x0000, 0x0400, 0x0300, 0x0301, 0x0302
- Read Attribute 0x0702 Attribute 0x5a20 (Schneider Specific)
- Read Attribute 0x0006 Attribute 0x0000 (ON/OFF)
- Write Attribute 0x0000 Attribute 0xe050 ( Data Type: Bool 0x10; Value: True 0x01 )
- Write Attribute 0x0000 Attribute 0x0010 (Location Description) ( Data Type: String 0x42; Value: string )
DEC | HEX | VALUE |
---|---|---|
0 | 0 | currentSummationDelivered |
256 | 100 | currentTier1SummationDelivered |
258 | 102 | currentTier2SummationDelivered |
260 | 104 | currentTier3SummationDelivered |
262 | 106 | currentTier4SummationDelivered |
264 | 108 | currentTier5SummationDelivered |
266 | 10A | currentTier6SummationDelivered |
2 | 2 | currentMaxDemandDelivered |
6 | 6 | powerFactor |
768 | 300 | unitOfMeasure |
769 | 301 | multiplier |
770 | 302 | divisor |
512 | 200 | meterStatus |
771 | 303 | summationFormatting |
772 | 304 | demandFormatting |
774 | 306 | meterType |
1024 | 400 | instantaneousDemand |
2049 | 801 | Electricity Alarm Mask |
20480 | 5000 | electricCurrentMultiplier |
20481 | 5001 | electricCurrentDivisor |
20737 | 5101 | RMSElectricCurrentPhase1 |
20753 | 5111 | maxElectricCurrentPhase1 |
20769 | 5121 | RMSElectricCurrentPhase1MaxThreshold |
21760 | 5500 | voltageMultiplier |
21761 | 5501 | voltageDivisor |
22017 | 5601 | RMSVoltagePhase1 |
22049 | 5621 | RMSVoltagePhase1MinThreshold |
22050 | 5622 | RMSVoltagePhase1MaxThreshold |
23072 | 5A20 | activePowerAlarmMask |
23073 | 5A21 | activePowerMinThreshold |
23074 | 5A22 | activePowerMaxThreshold |
23296 | 5B00 | apparentPower |
23345 | 5B31 | apparentPowerMultiplier |
23346 | 5B32 | apparentPowerDivisor |
24576 | 6000 | loadConnectedLabel |
28674 | 7002 | numberOfPhases |
28675 | 7003 | supplierContractName |
28688 | 7010 | numberOfTiers |
28690 | 7012 | tiersAlarmMask |
28752 | 7050 | referencePowerFactor |
28753 | 7051 | referenceRMSElectricCurrent |
28758 | 7056 | referenceRMSVoltage |
28766 | 705E | referenceFrequency |
57600 | E100 | MMSSensorType |
57632 | E120 | MMSAlarmsMask |
57856 | E200 | ctStatusRegister This is for BMS (first bit 0 == Not active, first bit 1 == Active |
57857 | E201 | ctPowerConfiguration |
57858 | E202 | ctCalibrationMultiplier |
-
Device Announcement
-
Active Endpoint Response
-
Read Attribute 0x0000/0x0005
- Receive : EH-ZB-HACT
-
Simple Descriptor Request
- Profile: 0x0104
- DeviceID: 0x0301
- Input Cluster
- 0x0000
- 0x0003
- 0x0009
- 0x0201
- 0x0702
- 0xfe02
- Output Cluster
- 0x0019
- 0x0402
-
Bind Cluster 0x0019
-
Bind Cluster 0x0000
-
Bind Cluster 0x0009
-
Bind Cluster 0x0003
-
Bind Cluster 0x0201
-
Configure Reporting 0x0201 Attr: 0x0012 Type: 0x29 Min: 600 Max: 600
-
Configure Reporting 0x0702 Attr: 0x0000 Type: 0x25 Min: 600 Max: 600
-
Configure Reporting 0x0702 Attr: 0x0400 Type: 0x2a Min: 30 Max: 600
-
Read Attribute 0x0000 / 0x0007
-
Read Attribute 0x0000 / 0x0013
-
Read Attribute 0x0000 / 0xe000 (Manufacturer Specific)
-
Read Attribute 0x0000 / 0xe001 (Manufacturer Specific)
-
Read Attribute 0x0000 / 0xe002 (Manufacturer Specific)
-
Read Attribute 0x0201 / 0x0012
-
Read Attribute 0x0201 / 0x0015
-
Read Attribute 0x0201 / 0x0016
-
Read Attribute 0x0201 / 0xe011 (Manufacturer Specific)
-
Read Attribute 0x0702 / 0x0000
-
Read Attribute 0x0702 / 0x0400
-
Read Attribute 0x0702 / 0x0300
-
Read Attribute 0x0702 / 0x0301
-
Read Attribute 0x0702 / 0x0302
-
Read Attribute 0x0702 / 0x5a20
-
Write Attribute 0x0000 Attribute 0xe050 ( Data Type: Bool 0x10; Value: True 0x01 )
-
Write Attribute 0x0201 Attribute 0x0010 Type: 0x28 Value: 0
-
Write Attribute 0x0201 Attribute 0xe010 Type: 0x30 Value: 0x01
-
Write Attribute 0x0201 Attribute 0xe011 Type: 0x18 Value: 0x00
-
Write Attribute 0x0000 Attribute 0x5000 (Location Description) ( Data Type: String 0x42; Value: string )
EP 0b
ProfileID 0104
ZDeviceID 0301
Manufacturer Name : "Schneider Electric"
Model: EH-ZB-HACT
Application Version 0010
Cluster IN Count: 06
Cluster In 1: 0000 (Basic)
Cluster In 2: 0003 (Identify)
Cluster In 3: 0009 (Alarms)
Cluster In 4: 0201 (Thermostat)
Cluster In 5: 0702
Cluster In 6: fe02
Cluster OUT Count: 02
Cluster Out 1: 0019 (Over-the-Air Upgrade)
Cluster Out 2: 0402 (Temperature Measurement)
-
0x0000/0xe011 Device Status
-
0x0000/0xe010 Current Mode
-
0x0000/0xe050 COMMISSIONING
-
0x0000/0x5011 ATTRIBUTE_BASIC_LANGUAGE
-
0x0201/0xe010 ATTRIBUTE_THERMOSTAT_ZONE_MODE
-
0x0201/0xe011 HACT Configuration
-
0x0201/0xe020 Fil Pilot Mode
- Request Active End Point
- Simple Descriptor Request
- Ep: 0b
- Cluster In:
- 0x0000
- 0x0001
- 0x0003
- 0x0009
- 0x0204
- 0xfe02
- Cluster Out
- 0x0019
- 0x0201
- Read Attribute 0x0000 / 0x0005 ( Model Name )
- EH-ZB-RTS
- Read Attribute 0x0000 / 0xe000
- SNP.R.04.01.14
-
Bind 0x0019
-
Bind 0x0201
-
Bind 0x0402
-
Bind 0x0000
-
Bind 0x0001
-
Bind 0x0009
-
Bind 0x0003
-
Bind 0x0204
-
Configure Reporting 0x0402 on Attribut 0x0000 / Min: 30 Max: 30 /Measured Value 0.01
-
Read Attribute Cluster 0x0000 on attribute 0x0007 ( Power Source )
-
Read Attribute Cluster 0x0000 on attribute 0x0013 ( Alarm Mask)
-
Read Attribute Cluster 0x0000 on attribute 0xe000
-
Read Attribute Cluster 0x0000 on attribute 0xe001
-
Read Attribute Cluster 0x0000 on attribute 0xe002
-
Read Attribute Cluster 0x0001 on attribute 0x0035, 0x0036, 0x0020
-
Read Attribute Cluster 0x0402 on attribute 0x0000 ( Temperature )
-
Write attribute Cluster 0x0000 on attribute 0xe050 DataType: 0x10 Value 0x01
-
Write Attribute Cluster 0x0000 on attribute 0x5011 DataType: 0x42 Value 'en'
-
Read Attribute Cluster 0x0001 on attribute 0x0020
-
Write Attribute Cluster 0x0000 on attribute 0x0010 DataType: 0x42 Value is a string which give the name of the Zone
At a point of time the device is quering the controler
- Read Attribute Cluster 0x0201 on attribute 0xe010
- Controler respond: DataType: 0x30 Value: 0x00
ProfileID : "0104"
ZDeviceID : "0302"
Manufacturer : "105e"
MacCapa: 0x80
DeviceType : "RFD"
LogicalType : "End Device"
PowerSource : "Battery"
ReceiveOnIdle : "Off"
Stack Version : "2"
ZCL Version : "1"
Max Buffer Size : "50"
Max Rx : "00a0"
Max Tx : "00a0"
Manufacturer Name : "Schneider Electric"
Model: EH-ZB-RTS
Ep: 0b
Cluster IN Count: 07
Cluster In 1: 0000 (Basic)
Cluster In 2: 0001 (Power Configuration)
Cluster In 3: 0003 (Identify)
Cluster In 4: 0009 (Alarms)
Cluster In 5: 0204 (Thermostat User Interface Configuration)
Cluster In 6: 0402 (Temperature Measurement)
Cluster In 7: fe02
Cluster OUT Count: 02
Cluster Out 1: 0019 (Over-the-Air Upgrade)
Cluster Out 2: 0201 (Thermostat)
-
Thermostat sending local Temperature to:
- Hub by Report Attribute Cluster 0x0402 Attribute 0x0000
- actuators by Report Attribute Cluster 0x0402 Attribute 0x0000
-
Thermostat requesting Attribute from the Hub
- OccupedHeatingSetPoint by Read Attribute Cluster 0x0201 on Attribute 0x0012
- 0xe010 by Read Attribute Cluster 0x0201 on Attribute 0xe010 ( Hub returning Getting 8-Bit enum value: 0x01 )
- MaxHeatSetpointLimit by Read Attribute Cluster 0x0201 on Attribute 0x0016 ( Hub returning response 3500 )
- MinHeatSetpointLimit by Read Attribute Cluster 0x0201 on Attribute 0x0015 ( Hub returning response 50 )
-
each Actuators sending Instantaneous Demand to:
- Hub by Report Attribute Cluster 0x0702 Attribute 0x0400
At that stage, someone set a target temperature on the Application managing the HUB
-
Thermostat sending SetPoint to:
- HUB by using the command 0xe0 on Cluster 0x0201
- Actuators by using the command 0xe0 on Cluster 0x0201
-
HUB sending SetPoint to:
- Actuators by using the command 0xe0 on Cluster 0x0201
-
each Actuators sending Instantaneous Demand to
- Hub by Report Attribute Cluster 0x0702 Attribute 0x0400
-
Binding cluster Thermostat of Actuator with Thermostat
- Source Actuator
- Target Thermostat
- Cluster 0x0201
-
Binding cluster Temperature Measurement of Thermostat with Actuator
- Source Thermostat
- Target Actuator
- Cluster 0x0402
- The HUB is acting as a Zigbee controler but not only as it is responding to cluster 0x0201 (Thermostat)
- Can the Zigate implement Cluster 0x0201 and store Attributes 0x0012, 0x0015, 0x0016 as well as when receiving command 0xe0 store the value into attribute 0x0012
- We should investigate what are the various values of Cluster 0x0201 on Attribute 0xe010 ( 8bit enum)
- This command seems to be used to set Setpoint
ZigBee Cluster Lib Frame: 0x11 Sequence number : 0xc1 Command : 0xe0 : 0x00 Length : 0x01 Value : 0x34 0x08 (Setpoint with LBHB , don't forgett the Endian ;-) : 0xff
- Data Type: 0x30 (8bit enum)
- 0xff - USER_MODE_USER_UNKNOWN
- 0x06 - USER_MODE_USER_MODE_HOLIDAY_FROST_PROTECTION
- 0x05 - USER_MODE_USER_MODE_HOLIDAY_OFF
- 0x04 - USER_MODE_USER_MODE_SCHEDULE_ENERGY_SAVER
- 0x03 - USER_MODE_USER_MODE_MANUAL_ENERGY_SAVER
- 0x02 - USER_MODE_USER_MODE_SCHEDULE
- 0x01 - USER_MODE_USER_MODE_MANUAL
- 0x00 - USER_MODE_USER_MODE_OFF
ATTRIBUTE_THERMOSTAT_HACT_CONFIG
- 0x00 - Conventional (ON/OFF)
- 0x02 - Setpoint (set temperature)
- 0x03 - FIP - mode fil pilote
# Simple Metering, current summation delivered.
# Always report after 30 seconds / 10 minutes whatever the change.
702_0_0_normal_interval_minimum=600
702_0_0_normal_interval_maximum=600
702_0_0_normal_reportable_change=281474976710655
702_0_0_fast_interval_minimum=30
702_0_0_fast_interval_maximum=30
702_0_0_fast_reportable_change=281474976710655
# Simple Metering, current max demand delivered.
# Always report after 30 seconds / 10 minutes whatever the change.
702_2_0_normal_interval_minimum=600
702_2_0_normal_interval_maximum=600
702_2_0_normal_reportable_change=16777215
702_2_0_fast_interval_minimum=30
702_2_0_fast_interval_maximum=30
702_2_0_fast_reportable_change=16777215
# Simple Metering, instantaneous demand.
# Commented out, we want to use values from MeteringFeatureImpl
#702_400_0_normal_interval_minimum=600
#702_400_0_normal_interval_maximum=600
#702_400_0_normal_reportable_change=16777215
#702_400_0_fast_interval_minimum=30
#702_400_0_fast_interval_maximum=30
#702_400_0_fast_reportable_change=16777215
# Temperature Measurement, current measured value, battery device
# Report interval: [1 minute; 10 minutes], change: 1,00 C
402_0_1_normal_interval_minimum=60
402_0_1_normal_interval_maximum=600
402_0_1_normal_reportable_change=100
# On/Off
# Report on-change and always after 10 minutes.
6_0_0_normal_interval_minimum=0
6_0_0_normal_interval_maximum=600
6_0_0_normal_interval_change=1
# Thermostat Set-Point, current measured value, battery device
# Report interval: 10 minutes whatever the change.
201_12_1_normal_interval_minimum=600
201_12_1_normal_interval_maximum=600
201_12_1_normal_reportable_change=32767
# Thermostat Local Temperature, current measured value, battery device
# Report interval: [1 minute; 10 minutes], change: 1,00 C
201_0_1_normal_interval_minimum=60
201_0_1_normal_interval_maximum=600
201_0_1_normal_reportable_change=100
# Thermostat Valve Position, current measured value, battery device
# Report interval: [1 minute; 10 minutes]
201_e030_1_normal_interval_minimum=60
201_e030_1_normal_interval_maximum=600
201_e030_1_normal_reportable_change=10
# Thermostat Open Window Detection Status
# Report on-change or otherwise never
201_e012_0_normal_interval_minimum=10
201_e012_0_normal_interval_maximum=600
201_e012_0_normal_reportable_change=1
# Thermostat Calibration Status, current calibration status, battery device
# Report interval: [0 minute; 10 minutes]
201_e031_1_normal_interval_minimum=10
201_e031_1_normal_interval_maximum=600
201_e031_1_normal_reportable_change=1
cluster | cluster name | Attribut | purpose | value | type | Read / Write |
---|---|---|---|---|---|---|
0x0000 | Basic | 0x0005 | Mode Identifier | EH-ZB-RTS | 0x42 | Read |
0x0000 | Basic | 0x0007 | Power source | 0x03 | 0x30 (8bits enum) | Read |
0x0000 | Basic | 0x0020 | Location Description | Zigate zone | 0x342 | Write |
0x0000 | Basic | 0x0013 | Alarm Mask | 0x00 | 0x18 (8bits bitmap) | Read |
0x0000 | Basic | 0xe000 | brickSWVersion | SNP.R.04.01.14 | 0x42 | Read |
0x0000 | Basic | 0xe001 | applSWVersion | RTS.R.04.01.00 | 0x42 | Read |
0x0000 | Basic | 0xe002 | version | RTS.R.00.00.2 | 0x42 | Read |
0x0000 | Basic | 0xe050 | Commissioned | 0x01 | 0x10 | Write |
0x0000 | Basic | 0x5011 | Language | en,fr,... | 0x42 | Write |
0x0001 | Power Configuration | 0x0035 | Alarm Mask | 0x01 | 0x18 (8bits bitmap) | Read |
0x0001 | Power Configuration | 0x0036 | Battery Voltage Minimum Threshold | voltage | 0x20 | Read |
0x0001 | Power Configuration | 0x0020 | Battery Voltage | voltage | 0x20 | Read |
0x0201 | Thermostat | 0x0012 | Occuppied Heating Setpoint | Temperature | 0x29 | Read to Coordinnator |
0x0201 | Thermostat | 0x0015 | Min Heating Setpoint | Temperature | 0x29 | Read to Coordinnator |
0x0201 | Thermostat | 0x0016 | Max Heating Setpoint | Temperature | 0x29 | Read to Coordinnator |
0x0201 | Thermostat | 0xe010 | Thermostat Mode | 0x01 (Manual) | 0x30 | Read to Coordinnator |
0x0402 | Thermostat Measurement | 0x0000 | Measure Value | Temperature | 0x29 | Read |
cluster | cluster name | command | purpose | payload |
---|---|---|---|---|
0x0201 | Thermostat | 0xe0 | setpoint | zone 0x01 + temperature in centi degree (uint16) + end 0xff |
0x0201 | Thermostat | 0xe1 | set fip mode | zone 0x01 + fip mode (0-confort, 1-confort -1, 2 confort -2, 3-eco, 4-FrostP, 5-off) + prio (0x01) end 0xff |
Sources of information: