Zigbee add Legrand clusters 0xFC01 and 0xFC40

This commit is contained in:
Stephan Hadinger 2021-04-05 10:28:09 +02:00
parent 9dabc9ea69
commit e939db9a30
3 changed files with 240 additions and 220 deletions

View File

@ -278,6 +278,11 @@ const char Z_strings[] PROGMEM =
"LastMessageLQI" "\x00"
"LastMessageRSSI" "\x00"
"LastSetTime" "\x00"
"LegrandHeatingMode" "\x00"
"LegrandMode" "\x00"
"LegrandOpt1" "\x00"
"LegrandOpt2" "\x00"
"LegrandOpt3" "\x00"
"LidlPower" "\x00"
"LocalTemperature" "\x00"
"LocalTemperatureCalibration" "\x00"
@ -702,224 +707,229 @@ enum Z_offsets {
Zo_LastMessageLQI = 3308,
Zo_LastMessageRSSI = 3323,
Zo_LastSetTime = 3339,
Zo_LidlPower = 3351,
Zo_LocalTemperature = 3361,
Zo_LocalTemperatureCalibration = 3378,
Zo_LocalTime = 3406,
Zo_LocationAge = 3416,
Zo_LocationMethod = 3428,
Zo_LocationType = 3443,
Zo_LockState = 3456,
Zo_LockType = 3466,
Zo_LongPollInterval = 3475,
Zo_LongPollIntervalMin = 3492,
Zo_MainsFrequency = 3512,
Zo_MainsVoltage = 3527,
Zo_Manufacturer = 3540,
Zo_MaxTempExperienced = 3553,
Zo_MeterTypeID = 3572,
Zo_MinTempExperienced = 3584,
Zo_Mode = 3603,
Zo_Model = 3608,
Zo_ModelId = 3614,
Zo_MotorStepSize = 3622,
Zo_Movement = 3636,
Zo_MullerLightMode = 3645,
Zo_MultiApplicationType = 3661,
Zo_MultiDescription = 3682,
Zo_MultiInApplicationType = 3699,
Zo_MultiInDescription = 3722,
Zo_MultiInNumberOfStates = 3741,
Zo_MultiInOutOfService = 3763,
Zo_MultiInReliability = 3783,
Zo_MultiInStatusFlags = 3802,
Zo_MultiInValue = 3821,
Zo_MultiNumberOfStates = 3834,
Zo_MultiOutApplicationType = 3854,
Zo_MultiOutDescription = 3878,
Zo_MultiOutNumberOfStates = 3898,
Zo_MultiOutOfService = 3921,
Zo_MultiOutOutOfService = 3939,
Zo_MultiOutReliability = 3960,
Zo_MultiOutRelinquishDefault = 3980,
Zo_MultiOutStatusFlags = 4006,
Zo_MultiOutValue = 4026,
Zo_MultiReliability = 4040,
Zo_MultiRelinquishDefault = 4057,
Zo_MultiStatusFlags = 4080,
Zo_MultiValue = 4097,
Zo_MultipleScheduling = 4108,
Zo_NumberOfDevices = 4127,
Zo_NumberOfPrimaries = 4143,
Zo_NumberOfResets = 4161,
Zo_NumberofActuationsLift = 4176,
Zo_NumberofActuationsTilt = 4199,
Zo_Occupancy = 4222,
Zo_OccupancySensorType = 4232,
Zo_OccupiedCoolingSetpoint = 4252,
Zo_OccupiedHeatingSetpoint = 4276,
Zo_OnOffTransitionTime = 4300,
Zo_OpenPeriod = 4320,
Zo_OppleMode = 4331,
Zo_OutdoorTemperature = 4341,
Zo_OverTempTotalDwell = 4360,
Zo_PICoolingDemand = 4379,
Zo_PIHeatingDemand = 4395,
Zo_POD = 4411,
Zo_Panic = 4415,
Zo_PartNumber = 4421,
Zo_PersistentMemoryWrites = 4432,
Zo_PersonalAlarm = 4455,
Zo_PhysicalClosedLimit = 4469,
Zo_PhysicalClosedLimitLift = 4489,
Zo_PhysicalClosedLimitTilt = 4513,
Zo_Power = 4537,
Zo_Power2 = 4543,
Zo_Power3 = 4550,
Zo_Power4 = 4557,
Zo_PowerOffEffect = 4564,
Zo_PowerOnRecall = 4579,
Zo_PowerOnTimer = 4593,
Zo_PowerSource = 4606,
Zo_PowerThreshold = 4618,
Zo_Pressure = 4633,
Zo_PressureMaxMeasuredValue = 4642,
Zo_PressureMaxScaledValue = 4667,
Zo_PressureMinMeasuredValue = 4690,
Zo_PressureMinScaledValue = 4715,
Zo_PressureScale = 4738,
Zo_PressureScaledTolerance = 4752,
Zo_PressureScaledValue = 4776,
Zo_PressureTolerance = 4796,
Zo_Primary1Intensity = 4814,
Zo_Primary1X = 4832,
Zo_Primary1Y = 4842,
Zo_Primary2Intensity = 4852,
Zo_Primary2X = 4870,
Zo_Primary2Y = 4880,
Zo_Primary3Intensity = 4890,
Zo_Primary3X = 4908,
Zo_Primary3Y = 4918,
Zo_ProductCode = 4928,
Zo_ProductRevision = 4940,
Zo_ProductURL = 4956,
Zo_QualityMeasure = 4967,
Zo_RGB = 4982,
Zo_RMSCurrent = 4986,
Zo_RMSVoltage = 4997,
Zo_ReactivePower = 5008,
Zo_RecallScene = 5022,
Zo_RemainingTime = 5034,
Zo_RemoteSensing = 5048,
Zo_RemoveAllGroups = 5062,
Zo_RemoveAllScenes = 5078,
Zo_RemoveGroup = 5094,
Zo_RemoveScene = 5106,
Zo_ResetAlarm = 5118,
Zo_ResetAllAlarms = 5129,
Zo_SWBuildID = 5144,
Zo_Sat = 5154,
Zo_SatMove = 5158,
Zo_SatStep = 5166,
Zo_SceneCount = 5174,
Zo_SceneValid = 5185,
Zo_ScheduleMode = 5196,
Zo_SeaPressure = 5209,
Zo_ShortPollInterval = 5221,
Zo_Shutter = 5239,
Zo_ShutterClose = 5247,
Zo_ShutterLift = 5260,
Zo_ShutterOpen = 5272,
Zo_ShutterStop = 5284,
Zo_ShutterTilt = 5296,
Zo_SoftwareRevision = 5308,
Zo_StackVersion = 5325,
Zo_StandardTime = 5338,
Zo_StartUpOnOff = 5351,
Zo_Status = 5364,
Zo_StoreScene = 5371,
Zo_SwitchType = 5382,
Zo_SystemMode = 5393,
Zo_TRVBoost = 5404,
Zo_TRVChildProtection = 5413,
Zo_TRVMirrorDisplay = 5432,
Zo_TRVMode = 5449,
Zo_TRVWindowOpen = 5457,
Zo_TempTarget = 5471,
Zo_Temperature = 5482,
Zo_TemperatureMaxMeasuredValue = 5494,
Zo_TemperatureMinMeasuredValue = 5522,
Zo_TemperatureTolerance = 5550,
Zo_TerncyDuration = 5571,
Zo_TerncyRotate = 5586,
Zo_ThSetpoint = 5599,
Zo_Time = 5610,
Zo_TimeEpoch = 5615,
Zo_TimeStatus = 5625,
Zo_TimeZone = 5636,
Zo_TotalProfileNum = 5645,
Zo_TuyaAutoLock = 5661,
Zo_TuyaAwayDays = 5674,
Zo_TuyaAwayTemp = 5687,
Zo_TuyaBattery = 5700,
Zo_TuyaBoostTime = 5712,
Zo_TuyaChildLock = 5726,
Zo_TuyaComfortTemp = 5740,
Zo_TuyaEcoTemp = 5756,
Zo_TuyaFanMode = 5768,
Zo_TuyaForceMode = 5780,
Zo_TuyaMaxTemp = 5794,
Zo_TuyaMinTemp = 5806,
Zo_TuyaPreset = 5818,
Zo_TuyaScheduleHolidays = 5829,
Zo_TuyaScheduleWorkdays = 5850,
Zo_TuyaTempTarget = 5871,
Zo_TuyaValveDetection = 5886,
Zo_TuyaValvePosition = 5905,
Zo_TuyaWeekSelect = 5923,
Zo_TuyaWindowDetection = 5938,
Zo_UnoccupiedCoolingSetpoint = 5958,
Zo_UnoccupiedHeatingSetpoint = 5984,
Zo_UtilityName = 6010,
Zo_ValidUntilTime = 6022,
Zo_ValvePosition = 6037,
Zo_VelocityLift = 6051,
Zo_ViewGroup = 6064,
Zo_ViewScene = 6074,
Zo_Water = 6084,
Zo_WhitePointX = 6090,
Zo_WhitePointY = 6102,
Zo_WindowCoveringType = 6114,
Zo_X = 6133,
Zo_Y = 6135,
Zo_ZCLVersion = 6137,
Zo_ZoneState = 6148,
Zo_ZoneStatus = 6158,
Zo_ZoneStatusChange = 6169,
Zo_ZoneType = 6186,
Zo__ = 6195,
Zo_xx = 6197,
Zo_xx000A00 = 6200,
Zo_xx0A = 6209,
Zo_xx0A00 = 6214,
Zo_xx19 = 6221,
Zo_xx190A = 6226,
Zo_xx190A00 = 6233,
Zo_xxxx = 6242,
Zo_xxxx00 = 6247,
Zo_xxxx0A00 = 6254,
Zo_xxxxyy = 6263,
Zo_xxxxyyyy = 6270,
Zo_xxxxyyyy0A00 = 6279,
Zo_xxxxyyzz = 6292,
Zo_xxyy = 6301,
Zo_xxyy0A00 = 6306,
Zo_xxyyyy = 6315,
Zo_xxyyyy000000000000 = 6322,
Zo_xxyyyy0A0000000000 = 6341,
Zo_xxyyyyzz = 6360,
Zo_xxyyyyzzzz = 6369,
Zo_xxyyzzzz = 6380,
Zo_LegrandHeatingMode = 3351,
Zo_LegrandMode = 3370,
Zo_LegrandOpt1 = 3382,
Zo_LegrandOpt2 = 3394,
Zo_LegrandOpt3 = 3406,
Zo_LidlPower = 3418,
Zo_LocalTemperature = 3428,
Zo_LocalTemperatureCalibration = 3445,
Zo_LocalTime = 3473,
Zo_LocationAge = 3483,
Zo_LocationMethod = 3495,
Zo_LocationType = 3510,
Zo_LockState = 3523,
Zo_LockType = 3533,
Zo_LongPollInterval = 3542,
Zo_LongPollIntervalMin = 3559,
Zo_MainsFrequency = 3579,
Zo_MainsVoltage = 3594,
Zo_Manufacturer = 3607,
Zo_MaxTempExperienced = 3620,
Zo_MeterTypeID = 3639,
Zo_MinTempExperienced = 3651,
Zo_Mode = 3670,
Zo_Model = 3675,
Zo_ModelId = 3681,
Zo_MotorStepSize = 3689,
Zo_Movement = 3703,
Zo_MullerLightMode = 3712,
Zo_MultiApplicationType = 3728,
Zo_MultiDescription = 3749,
Zo_MultiInApplicationType = 3766,
Zo_MultiInDescription = 3789,
Zo_MultiInNumberOfStates = 3808,
Zo_MultiInOutOfService = 3830,
Zo_MultiInReliability = 3850,
Zo_MultiInStatusFlags = 3869,
Zo_MultiInValue = 3888,
Zo_MultiNumberOfStates = 3901,
Zo_MultiOutApplicationType = 3921,
Zo_MultiOutDescription = 3945,
Zo_MultiOutNumberOfStates = 3965,
Zo_MultiOutOfService = 3988,
Zo_MultiOutOutOfService = 4006,
Zo_MultiOutReliability = 4027,
Zo_MultiOutRelinquishDefault = 4047,
Zo_MultiOutStatusFlags = 4073,
Zo_MultiOutValue = 4093,
Zo_MultiReliability = 4107,
Zo_MultiRelinquishDefault = 4124,
Zo_MultiStatusFlags = 4147,
Zo_MultiValue = 4164,
Zo_MultipleScheduling = 4175,
Zo_NumberOfDevices = 4194,
Zo_NumberOfPrimaries = 4210,
Zo_NumberOfResets = 4228,
Zo_NumberofActuationsLift = 4243,
Zo_NumberofActuationsTilt = 4266,
Zo_Occupancy = 4289,
Zo_OccupancySensorType = 4299,
Zo_OccupiedCoolingSetpoint = 4319,
Zo_OccupiedHeatingSetpoint = 4343,
Zo_OnOffTransitionTime = 4367,
Zo_OpenPeriod = 4387,
Zo_OppleMode = 4398,
Zo_OutdoorTemperature = 4408,
Zo_OverTempTotalDwell = 4427,
Zo_PICoolingDemand = 4446,
Zo_PIHeatingDemand = 4462,
Zo_POD = 4478,
Zo_Panic = 4482,
Zo_PartNumber = 4488,
Zo_PersistentMemoryWrites = 4499,
Zo_PersonalAlarm = 4522,
Zo_PhysicalClosedLimit = 4536,
Zo_PhysicalClosedLimitLift = 4556,
Zo_PhysicalClosedLimitTilt = 4580,
Zo_Power = 4604,
Zo_Power2 = 4610,
Zo_Power3 = 4617,
Zo_Power4 = 4624,
Zo_PowerOffEffect = 4631,
Zo_PowerOnRecall = 4646,
Zo_PowerOnTimer = 4660,
Zo_PowerSource = 4673,
Zo_PowerThreshold = 4685,
Zo_Pressure = 4700,
Zo_PressureMaxMeasuredValue = 4709,
Zo_PressureMaxScaledValue = 4734,
Zo_PressureMinMeasuredValue = 4757,
Zo_PressureMinScaledValue = 4782,
Zo_PressureScale = 4805,
Zo_PressureScaledTolerance = 4819,
Zo_PressureScaledValue = 4843,
Zo_PressureTolerance = 4863,
Zo_Primary1Intensity = 4881,
Zo_Primary1X = 4899,
Zo_Primary1Y = 4909,
Zo_Primary2Intensity = 4919,
Zo_Primary2X = 4937,
Zo_Primary2Y = 4947,
Zo_Primary3Intensity = 4957,
Zo_Primary3X = 4975,
Zo_Primary3Y = 4985,
Zo_ProductCode = 4995,
Zo_ProductRevision = 5007,
Zo_ProductURL = 5023,
Zo_QualityMeasure = 5034,
Zo_RGB = 5049,
Zo_RMSCurrent = 5053,
Zo_RMSVoltage = 5064,
Zo_ReactivePower = 5075,
Zo_RecallScene = 5089,
Zo_RemainingTime = 5101,
Zo_RemoteSensing = 5115,
Zo_RemoveAllGroups = 5129,
Zo_RemoveAllScenes = 5145,
Zo_RemoveGroup = 5161,
Zo_RemoveScene = 5173,
Zo_ResetAlarm = 5185,
Zo_ResetAllAlarms = 5196,
Zo_SWBuildID = 5211,
Zo_Sat = 5221,
Zo_SatMove = 5225,
Zo_SatStep = 5233,
Zo_SceneCount = 5241,
Zo_SceneValid = 5252,
Zo_ScheduleMode = 5263,
Zo_SeaPressure = 5276,
Zo_ShortPollInterval = 5288,
Zo_Shutter = 5306,
Zo_ShutterClose = 5314,
Zo_ShutterLift = 5327,
Zo_ShutterOpen = 5339,
Zo_ShutterStop = 5351,
Zo_ShutterTilt = 5363,
Zo_SoftwareRevision = 5375,
Zo_StackVersion = 5392,
Zo_StandardTime = 5405,
Zo_StartUpOnOff = 5418,
Zo_Status = 5431,
Zo_StoreScene = 5438,
Zo_SwitchType = 5449,
Zo_SystemMode = 5460,
Zo_TRVBoost = 5471,
Zo_TRVChildProtection = 5480,
Zo_TRVMirrorDisplay = 5499,
Zo_TRVMode = 5516,
Zo_TRVWindowOpen = 5524,
Zo_TempTarget = 5538,
Zo_Temperature = 5549,
Zo_TemperatureMaxMeasuredValue = 5561,
Zo_TemperatureMinMeasuredValue = 5589,
Zo_TemperatureTolerance = 5617,
Zo_TerncyDuration = 5638,
Zo_TerncyRotate = 5653,
Zo_ThSetpoint = 5666,
Zo_Time = 5677,
Zo_TimeEpoch = 5682,
Zo_TimeStatus = 5692,
Zo_TimeZone = 5703,
Zo_TotalProfileNum = 5712,
Zo_TuyaAutoLock = 5728,
Zo_TuyaAwayDays = 5741,
Zo_TuyaAwayTemp = 5754,
Zo_TuyaBattery = 5767,
Zo_TuyaBoostTime = 5779,
Zo_TuyaChildLock = 5793,
Zo_TuyaComfortTemp = 5807,
Zo_TuyaEcoTemp = 5823,
Zo_TuyaFanMode = 5835,
Zo_TuyaForceMode = 5847,
Zo_TuyaMaxTemp = 5861,
Zo_TuyaMinTemp = 5873,
Zo_TuyaPreset = 5885,
Zo_TuyaScheduleHolidays = 5896,
Zo_TuyaScheduleWorkdays = 5917,
Zo_TuyaTempTarget = 5938,
Zo_TuyaValveDetection = 5953,
Zo_TuyaValvePosition = 5972,
Zo_TuyaWeekSelect = 5990,
Zo_TuyaWindowDetection = 6005,
Zo_UnoccupiedCoolingSetpoint = 6025,
Zo_UnoccupiedHeatingSetpoint = 6051,
Zo_UtilityName = 6077,
Zo_ValidUntilTime = 6089,
Zo_ValvePosition = 6104,
Zo_VelocityLift = 6118,
Zo_ViewGroup = 6131,
Zo_ViewScene = 6141,
Zo_Water = 6151,
Zo_WhitePointX = 6157,
Zo_WhitePointY = 6169,
Zo_WindowCoveringType = 6181,
Zo_X = 6200,
Zo_Y = 6202,
Zo_ZCLVersion = 6204,
Zo_ZoneState = 6215,
Zo_ZoneStatus = 6225,
Zo_ZoneStatusChange = 6236,
Zo_ZoneType = 6253,
Zo__ = 6262,
Zo_xx = 6264,
Zo_xx000A00 = 6267,
Zo_xx0A = 6276,
Zo_xx0A00 = 6281,
Zo_xx19 = 6288,
Zo_xx190A = 6293,
Zo_xx190A00 = 6300,
Zo_xxxx = 6309,
Zo_xxxx00 = 6314,
Zo_xxxx0A00 = 6321,
Zo_xxxxyy = 6330,
Zo_xxxxyyyy = 6337,
Zo_xxxxyyyy0A00 = 6346,
Zo_xxxxyyzz = 6359,
Zo_xxyy = 6368,
Zo_xxyy0A00 = 6373,
Zo_xxyyyy = 6382,
Zo_xxyyyy000000000000 = 6389,
Zo_xxyyyy0A0000000000 = 6408,
Zo_xxyyyyzz = 6427,
Zo_xxyyyyzzzz = 6436,
Zo_xxyyzzzz = 6447,
};

View File

@ -127,7 +127,7 @@ enum Cx_cluster_short {
Cx0010, Cx0011, Cx0012, Cx0013, Cx0014, Cx001A, Cx0020, Cx0100,
Cx0101, Cx0102, Cx0201, Cx0300, Cx0400, Cx0401, Cx0402, Cx0403,
Cx0404, Cx0405, Cx0406, Cx0500, Cx0702, Cx0B01, Cx0B04, Cx0B05,
CxEF00, CxFCC0, CxFCCC,
CxEF00, CxFC01, CxFC40, CxFCC0, CxFCCC,
};
const uint16_t Cx_cluster[] PROGMEM = {
@ -136,7 +136,7 @@ const uint16_t Cx_cluster[] PROGMEM = {
0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x001A, 0x0020, 0x0100,
0x0101, 0x0102, 0x0201, 0x0300, 0x0400, 0x0401, 0x0402, 0x0403,
0x0404, 0x0405, 0x0406, 0x0500, 0x0702, 0x0B01, 0x0B04, 0x0B05,
0xEF00, 0xFCC0, 0xFCCC,
0xEF00, 0xFC01, 0xFC40, 0xFCC0, 0xFCCC,
};
uint16_t CxToCluster(uint8_t cx) {
@ -642,6 +642,14 @@ const Z_AttributeConverter Z_PostProcess[] PROGMEM = {
{ Ztuya4, CxEF00, 0x046A, Z_(TuyaForceMode), Cm1, 0 },
{ Ztuya4, CxEF00, 0x046F, Z_(TuyaWeekSelect), Cm1, 0 },
// Legrand BTicino - Manuf code 0x1021
{ Zdata16, CxFC01, 0x0000, Z_(LegrandOpt1), Cm1, 0 },
{ Zbool, CxFC01, 0x0001, Z_(LegrandOpt2), Cm1, 0 },
{ Zbool, CxFC01, 0x0002, Z_(LegrandOpt3), Cm1, 0 },
// Legrand - Manuf code 0x1021
{ Zenum8, CxFC40, 0x0000, Z_(LegrandHeatingMode), Cm1, 0 },
// Aqara Opple spacific
{ Zuint8, CxFCC0, 0x0009, Z_(OppleMode), Cm1, 0 },

View File

@ -89,6 +89,8 @@ const Z_CommandConverter Z_Commands[] PROGMEM = {
{ Z_(ShutterLift), 0x0102, 0x05, 0x01, Z_(xx) }, // Lift percentage, 0%=open, 100%=closed
{ Z_(ShutterTilt), 0x0102, 0x08, 0x01, Z_(xx) }, // Tilt percentage
{ Z_(Shutter), 0x0102, 0xFF, 0x01, Z_() },
// Legrand - Manuf 1021
{ Z_(LegrandMode), 0xFC40, 0x00, 0x01, Z_(xx) },
// Blitzwolf PIR
{ Z_(Occupancy), 0xEF00, 0x01, 0x82, Z_()}, // Specific decoder for Blitzwolf PIR, empty name means special treatment
// Decoders only - normally not used to send, and names may be masked by previous definitions