Skip to content

Latest commit

 

History

History
552 lines (443 loc) · 18.3 KB

Corner_Schneider_Wiser.md

File metadata and controls

552 lines (443 loc) · 18.3 KB

Schneider WISER system ( big thanks to @hairv and @badz)

Purpose

Purpose of this page is to share all findings regarding the WISER Zigbee product familly.

Work in progress, so only validated informations are written

Pairing

  • 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

Wiser Smeter

  1. Get Active Endpoint List

    • 6 EndPoints : 0b, 0c, 0d, 0e, 0f, 10
  2. Get Model name via read attribute 0x0000/0x0005

    • EH-ZB-BMS
  3. For each EndPoint

    1. Simple Descriptor Request
      • Cluster In
        • 0x0000
        • 0x0001
        • 0x0003
        • 0x0009
        • 0x0702
        • 0xfe02
      • Cluster Out
        • 0x0019
    2. Bind 0x0019, 0x0000, 0x0001, 0x0000, 0x0003, 0x0702
  4. 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
  5. Read Attribute Cluster 0x0000 Attribute 0x0007

  6. Read Attribute Cluster 0x0000 Attribute 0x0013

  7. Read Attribute Cluster 0x0000 Attribute 0xe000

  8. Read Attribute Cluster 0x0000 Attribute 0xe001

  9. Read Attribute Cluster 0x0000 Attribute 0xe002

  10. For each EndPoint

    1. Read Attribute Cluster 0x0702 Attribute 0x0000

    2. Read Attribute Cluster 0x0702 Attribute 0x0400

    3. Read Attribute Cluster 0x0702 Attribute 0x0002

    4. Read Attribute Cluster 0x0702 Attribute 0x0300

    5. Read Attribute Cluster 0x0702 Attribute 0x0301

    6. Read Attribute Cluster 0x0702 Attribute 0x0302

    7. Read Attribute Cluster 0x0702 Attribute 0x0801

    8. Read Attribute Cluster 0x0702 Attribute 0x5000

    9. Read Attribute Cluster 0x0702 Attribute 0x5001

    10. Read Attribute Cluster 0x0702 Attribute 0xe200

    11. Read Attribute Cluster 0x0702 Attribute 0xe201

    12. Read Attribute Cluster 0x0702 Attribute 0xe202

  11. Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x00 0x00 0x00

  12. Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x01 0x00 0x00

  13. On EndPoint 0x0b

  14. Read Attribute Cluster 0x0001 Attribute 0x0035

  15. Read Attribute Cluster 0x0001 Attribute 0x0036

  16. Read Attribute Cluster 0x0001 Attribute 0x0020

  17. Write Attribute 0x0000 Attribute 0xe050 ( Data Type: Bool 0x10; Value: True 0x01 )

  18. Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x10 0x01 0x00

  19. Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x10 0x02 0x07

  20. Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x11 0x02 0x07

  21. Command Specific: Cluster 0x0009 cmd: 0x50 payload 0x16 0x02 0x07

Wiser Smart Plug

Discovery steps

  1. Get Active Endpoint List
  2. Simple Descriptor Request
  3. Get Model name via read attribute 0x0000/0x0005
  4. Bind 0x0019
  5. Bind 0x0000
  6. Bind 0x0009
  7. Bind 0x0003
  8. Bind 0x0006
  9. Bind 0x0702
  10. Configure Reporting on Cluster 0x0702 Attribute 0x0000 ( Min: 600, Max: 600)
  11. Configure Reporting on Cluster 0x0702 Attribute 0x0400 ( Min: 30, Max: 600)
  12. Configure Reporting on Cluster 0x0006 Attribute 0x0000 ( Min: 0, Max 600)
  13. Read Attribute 0x0000 Attribute 0x0007 (Power Source)
  14. Read Attribute 0x0000 Attribute 0x0013 (Alarm Mask)
  15. Read Attribute 0x0000 Attribute 0xe000 (Version logicielle processeur réseau)
  16. Read Attribute 0x0000 Attribute 0xe001 (Version logicielle application)
  17. Read Attribute 0x0000 Attribute 0xe002 (Version matérielle application)
  18. Read Attribute 0x0702 Attribute 0x0000, 0x0400, 0x0300, 0x0301, 0x0302
  19. Read Attribute 0x0702 Attribute 0x5a20 (Schneider Specific)
  20. Read Attribute 0x0006 Attribute 0x0000 (ON/OFF)
  21. Write Attribute 0x0000 Attribute 0xe050 ( Data Type: Bool 0x10; Value: True 0x01 )
  22. Write Attribute 0x0000 Attribute 0x0010 (Location Description) ( Data Type: String 0x42; Value: string )

Metering Attributes

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

Wiser Actuator

  1. Device Announcement

  2. Active Endpoint Response

  3. Read Attribute 0x0000/0x0005

    • Receive : EH-ZB-HACT
  4. Simple Descriptor Request

    • Profile: 0x0104
    • DeviceID: 0x0301
    • Input Cluster
      • 0x0000
      • 0x0003
      • 0x0009
      • 0x0201
      • 0x0702
      • 0xfe02
    • Output Cluster
      • 0x0019
      • 0x0402
  5. Bind Cluster 0x0019

  6. Bind Cluster 0x0000

  7. Bind Cluster 0x0009

  8. Bind Cluster 0x0003

  9. Bind Cluster 0x0201

  10. Configure Reporting 0x0201 Attr: 0x0012 Type: 0x29 Min: 600 Max: 600

  11. Configure Reporting 0x0702 Attr: 0x0000 Type: 0x25 Min: 600 Max: 600

  12. Configure Reporting 0x0702 Attr: 0x0400 Type: 0x2a Min: 30 Max: 600

  13. Read Attribute 0x0000 / 0x0007

  14. Read Attribute 0x0000 / 0x0013

  15. Read Attribute 0x0000 / 0xe000 (Manufacturer Specific)

  16. Read Attribute 0x0000 / 0xe001 (Manufacturer Specific)

  17. Read Attribute 0x0000 / 0xe002 (Manufacturer Specific)

  18. Read Attribute 0x0201 / 0x0012

  19. Read Attribute 0x0201 / 0x0015

  20. Read Attribute 0x0201 / 0x0016

  21. Read Attribute 0x0201 / 0xe011 (Manufacturer Specific)

  22. Read Attribute 0x0702 / 0x0000

  23. Read Attribute 0x0702 / 0x0400

  24. Read Attribute 0x0702 / 0x0300

  25. Read Attribute 0x0702 / 0x0301

  26. Read Attribute 0x0702 / 0x0302

  27. Read Attribute 0x0702 / 0x5a20

  28. Write Attribute 0x0000 Attribute 0xe050 ( Data Type: Bool 0x10; Value: True 0x01 )

  29. Write Attribute 0x0201 Attribute 0x0010 Type: 0x28 Value: 0

  30. Write Attribute 0x0201 Attribute 0xe010 Type: 0x30 Value: 0x01

  31. Write Attribute 0x0201 Attribute 0xe011 Type: 0x18 Value: 0x00

  32. Write Attribute 0x0000 Attribute 0x5000 (Location Description) ( Data Type: String 0x42; Value: string )

Device Informations

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)

Cluster

  • 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

Wiser Thermostat

Discovery process

  1. Request Active End Point
  2. Simple Descriptor Request
  • Ep: 0b
  • Cluster In:
    • 0x0000
    • 0x0001
    • 0x0003
    • 0x0009
    • 0x0204
    • 0xfe02
  • Cluster Out
    • 0x0019
    • 0x0201
  1. Read Attribute 0x0000 / 0x0005 ( Model Name )
  • EH-ZB-RTS
  1. Read Attribute 0x0000 / 0xe000
  • SNP.R.04.01.14
  1. Bind 0x0019

  2. Bind 0x0201

  3. Bind 0x0402

  4. Bind 0x0000

  5. Bind 0x0001

  6. Bind 0x0009

  7. Bind 0x0003

  8. Bind 0x0204

  9. Configure Reporting 0x0402 on Attribut 0x0000 / Min: 30 Max: 30 /Measured Value 0.01

  10. Read Attribute Cluster 0x0000 on attribute 0x0007 ( Power Source )

  11. Read Attribute Cluster 0x0000 on attribute 0x0013 ( Alarm Mask)

  12. Read Attribute Cluster 0x0000 on attribute 0xe000

  13. Read Attribute Cluster 0x0000 on attribute 0xe001

  14. Read Attribute Cluster 0x0000 on attribute 0xe002

  15. Read Attribute Cluster 0x0001 on attribute 0x0035, 0x0036, 0x0020

  16. Read Attribute Cluster 0x0402 on attribute 0x0000 ( Temperature )

  17. Write attribute Cluster 0x0000 on attribute 0xe050 DataType: 0x10 Value 0x01

  18. Write Attribute Cluster 0x0000 on attribute 0x5011 DataType: 0x42 Value 'en'

  19. Read Attribute Cluster 0x0001 on attribute 0x0020

  20. 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

Device Informations

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)

Decoded scenario ( Schneider HUB, 1 Thermostat, 2 Actuators )

  1. Thermostat sending local Temperature to:

    1. Hub by Report Attribute Cluster 0x0402 Attribute 0x0000
    2. actuators by Report Attribute Cluster 0x0402 Attribute 0x0000
  2. Thermostat requesting Attribute from the Hub

    1. OccupedHeatingSetPoint by Read Attribute Cluster 0x0201 on Attribute 0x0012
    2. 0xe010 by Read Attribute Cluster 0x0201 on Attribute 0xe010 ( Hub returning Getting 8-Bit enum value: 0x01 )
    3. MaxHeatSetpointLimit by Read Attribute Cluster 0x0201 on Attribute 0x0016 ( Hub returning response 3500 )
    4. MinHeatSetpointLimit by Read Attribute Cluster 0x0201 on Attribute 0x0015 ( Hub returning response 50 )
  3. each Actuators sending Instantaneous Demand to:

    1. Hub by Report Attribute Cluster 0x0702 Attribute 0x0400

At that stage, someone set a target temperature on the Application managing the HUB

  1. Thermostat sending SetPoint to:

    1. HUB by using the command 0xe0 on Cluster 0x0201
    2. Actuators by using the command 0xe0 on Cluster 0x0201
  2. HUB sending SetPoint to:

    1. Actuators by using the command 0xe0 on Cluster 0x0201
  3. each Actuators sending Instantaneous Demand to

    1. Hub by Report Attribute Cluster 0x0702 Attribute 0x0400

Binding Thermostat with Actuator

  1. Binding cluster Thermostat of Actuator with Thermostat

    • Source Actuator
    • Target Thermostat
    • Cluster 0x0201
  2. Binding cluster Temperature Measurement of Thermostat with Actuator

    • Source Thermostat
    • Target Actuator
    • Cluster 0x0402

comments

  • 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)

Decoding specifc cluster

Decoding Cluster 0x0201 Command Specific 0xe0

  • 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
    

Decoding Cluster 0x0201 on Attribute 0xe010

  • 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

Decoding Cluster 0x0201 on Attribute 0xe011

ATTRIBUTE_THERMOSTAT_HACT_CONFIG

  • 0x00 - Conventional (ON/OFF)
  • 0x02 - Setpoint (set temperature)
  • 0x03 - FIP - mode fil pilote

Reporting Configuration

# 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

Attribut Thermostat

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

thermostat commands

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: