
Purpose of this page is to share all findings regarding the WISER Zigbee product familly.
Work in progress, so only validated informations are written
The legacy Wiser devices (models EH-ZB-…) need specific settings and a network with an extended PAN ID ending with 484504015e10; the Wiser Home devices pair as usual. See Schneider Wiser: how to set up.
The device parameters of the Wiser devices (room number, thermostat lock, open-window detection, shutter travel time, override) are listed in Device parameters.
The rest of this page gathers the protocol findings made in 2020-2021, with a ZiGate coordinator, while integrating the legacy Wiser devices.
Read Attribute Cluster 0x0000 Attribute 0xe002
Read Attribute Cluster 0x0702 Attribute 0x0301
Read Attribute Cluster 0x0702 Attribute 0x5001
Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x01 0x00 0x00
Read Attribute Cluster 0x0001 Attribute 0x0020
Write Attribute 0x0000 Attribute 0xe050 ( Data Type: Bool 0x10; Value: True 0x01 )
| 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
Bind Cluster 0x0201
Configure Reporting 0x0702 Attr: 0x0400 Type: 0x2a Min: 30 Max: 600
Read Attribute 0x0201 / 0x0016
Read Attribute 0x0201 / 0xe011 (Manufacturer Specific)
Read Attribute 0x0702 / 0x0302
Read Attribute 0x0702 / 0x5a20
Write Attribute 0x0201 Attribute 0xe011 Type: 0x18 Value: 0x00
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/0x5011 ATTRIBUTE_BASIC_LANGUAGE
0x0201/0xe011 HACT Configuration
Bind 0x0204
Configure Reporting 0x0402 on Attribut 0x0000 / Min: 30 Max: 30 /Measured Value 0.01
Read Attribute Cluster 0x0402 on attribute 0x0000 ( Temperature )
Write Attribute Cluster 0x0000 on attribute 0x5011 DataType: 0x42 Value ‘en’
At a point of time the device is quering the controler
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)
At that stage, someone set a target temperature on the Application managing the HUB
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
ATTRIBUTE_THERMOSTAT_HACT_CONFIG
# 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: