From 6bef5b5bf7d8975d3939ee78ef55a4cea862497e Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Tue, 15 Dec 2020 12:53:21 +0100 Subject: [PATCH] Zigbee support for Opple operation mode #9823 --- tasmota/xdrv_23_zigbee_5__constants.ino | 220 ++++++++++++------------ tasmota/xdrv_23_zigbee_5_converters.ino | 7 +- 2 files changed, 116 insertions(+), 111 deletions(-) diff --git a/tasmota/xdrv_23_zigbee_5__constants.ino b/tasmota/xdrv_23_zigbee_5__constants.ino index 09595a93f..5cc62720c 100644 --- a/tasmota/xdrv_23_zigbee_5__constants.ino +++ b/tasmota/xdrv_23_zigbee_5__constants.ino @@ -130,12 +130,13 @@ const char Z_strings[] PROGMEM = "AnalogInMaxValue" "\x00" "AnalogInMinValue" "\x00" "AnalogInOutOfService" "\x00" - "AqaraRotate" "\x00" + "AnalogValue" "\x00" "AnalogInReliability" "\x00" "AnalogInResolution" "\x00" "AnalogInStatusFlags" "\x00" "AnalogInEngineeringUnits" "\x00" "AnalogInApplicationType" "\x00" + "AqaraRotate" "\x00" "Aqara_FF05" "\x00" "AnalogOutDescription" "\x00" "AnalogOutMaxValue" "\x00" @@ -150,7 +151,6 @@ const char Z_strings[] PROGMEM = "AnalogOutApplicationType" "\x00" "AnalogDescription" "\x00" "AnalogOutOfService" "\x00" - "AnalogValue" "\x00" "AnalogPriorityArray" "\x00" "AnalogReliability" "\x00" "AnalogRelinquishDefault" "\x00" @@ -395,6 +395,7 @@ const char Z_strings[] PROGMEM = "TuyaFanMode" "\x00" "TuyaForceMode" "\x00" "TuyaWeekSelect" "\x00" + "OppleMode" "\x00" "TerncyDuration" "\x00" "TerncyRotate" "\x00" "Identify" "\x00" @@ -545,27 +546,27 @@ enum Z_offsets { Zo_AnalogInMaxValue = 676, Zo_AnalogInMinValue = 693, Zo_AnalogInOutOfService = 710, - Zo_AqaraRotate = 731, + Zo_AnalogValue = 731, Zo_AnalogInReliability = 743, Zo_AnalogInResolution = 763, Zo_AnalogInStatusFlags = 782, Zo_AnalogInEngineeringUnits = 802, Zo_AnalogInApplicationType = 827, - Zo_Aqara_FF05 = 851, - Zo_AnalogOutDescription = 862, - Zo_AnalogOutMaxValue = 883, - Zo_AnalogOutMinValue = 901, - Zo_AnalogOutOutOfService = 919, - Zo_AnalogOutValue = 941, - Zo_AnalogOutReliability = 956, - Zo_AnalogOutRelinquishDefault = 977, - Zo_AnalogOutResolution = 1004, - Zo_AnalogOutStatusFlags = 1024, - Zo_AnalogOutEngineeringUnits = 1045, - Zo_AnalogOutApplicationType = 1071, - Zo_AnalogDescription = 1096, - Zo_AnalogOutOfService = 1114, - Zo_AnalogValue = 1133, + Zo_AqaraRotate = 851, + Zo_Aqara_FF05 = 863, + Zo_AnalogOutDescription = 874, + Zo_AnalogOutMaxValue = 895, + Zo_AnalogOutMinValue = 913, + Zo_AnalogOutOutOfService = 931, + Zo_AnalogOutValue = 953, + Zo_AnalogOutReliability = 968, + Zo_AnalogOutRelinquishDefault = 989, + Zo_AnalogOutResolution = 1016, + Zo_AnalogOutStatusFlags = 1036, + Zo_AnalogOutEngineeringUnits = 1057, + Zo_AnalogOutApplicationType = 1083, + Zo_AnalogDescription = 1108, + Zo_AnalogOutOfService = 1126, Zo_AnalogPriorityArray = 1145, Zo_AnalogReliability = 1165, Zo_AnalogRelinquishDefault = 1183, @@ -810,97 +811,98 @@ enum Z_offsets { Zo_TuyaFanMode = 5203, Zo_TuyaForceMode = 5215, Zo_TuyaWeekSelect = 5229, - Zo_TerncyDuration = 5244, - Zo_TerncyRotate = 5259, - Zo_Identify = 5272, - Zo_xxxx = 5281, - Zo_IdentifyQuery = 5286, - Zo_AddGroup = 5300, - Zo_xxxx00 = 5309, - Zo_ViewGroup = 5316, - Zo_GetGroup = 5326, - Zo_01xxxx = 5335, - Zo_GetAllGroups = 5342, - Zo_00 = 5355, - Zo_RemoveGroup = 5358, - Zo_RemoveAllGroups = 5370, - Zo_ViewScene = 5386, - Zo_xxxxyy = 5396, - Zo_RemoveScene = 5403, - Zo_RemoveAllScenes = 5415, - Zo_RecallScene = 5431, - Zo_GetSceneMembership = 5443, - Zo_PowerOffEffect = 5462, - Zo_xxyy = 5477, - Zo_PowerOnRecall = 5482, - Zo_PowerOnTimer = 5496, - Zo_xxyyyyzzzz = 5509, - Zo_xx0A00 = 5520, - Zo_DimmerUp = 5527, - Zo_00190200 = 5536, - Zo_DimmerDown = 5545, - Zo_01190200 = 5556, - Zo_DimmerStop = 5565, - Zo_ResetAlarm = 5576, - Zo_xxyyyy = 5587, - Zo_ResetAllAlarms = 5594, - Zo_xx000A00 = 5609, - Zo_HueSat = 5618, - Zo_xxyy0A00 = 5625, - Zo_Color = 5634, - Zo_xxxxyyyy0A00 = 5640, - Zo_xxxx0A00 = 5653, - Zo_ShutterOpen = 5662, - Zo_ShutterClose = 5674, - Zo_ShutterStop = 5687, - Zo_ShutterLift = 5699, - Zo_xx = 5711, - Zo_ShutterTilt = 5714, - Zo_Shutter = 5726, - Zo_DimmerMove = 5734, - Zo_xx0A = 5745, - Zo_DimmerStepUp = 5750, - Zo_00xx0A00 = 5763, - Zo_DimmerStepDown = 5772, - Zo_01xx0A00 = 5787, - Zo_DimmerStep = 5796, - Zo_xx190A00 = 5807, - Zo_01 = 5816, - Zo_HueMove = 5819, - Zo_xx19 = 5827, - Zo_HueStepUp = 5832, - Zo_HueStepDown = 5842, - Zo_03xx0A00 = 5854, - Zo_HueStep = 5863, - Zo_SatMove = 5871, - Zo_SatStep = 5879, - Zo_xx190A = 5887, - Zo_ColorMove = 5894, - Zo_xxxxyyyy = 5904, - Zo_ColorStep = 5913, - Zo_ColorTempMoveUp = 5923, - Zo_01xxxx000000000000 = 5939, - Zo_ColorTempMoveDown = 5958, - Zo_03xxxx000000000000 = 5976, - Zo_ColorTempMoveStop = 5995, - Zo_00xxxx000000000000 = 6013, - Zo_ColorTempMove = 6032, - Zo_xxyyyy000000000000 = 6046, - Zo_ColorTempStepUp = 6065, - Zo_01xxxx0A0000000000 = 6081, - Zo_ColorTempStepDown = 6100, - Zo_03xxxx0A0000000000 = 6118, - Zo_ColorTempStep = 6137, - Zo_xxyyyy0A0000000000 = 6151, - Zo_ArrowClick = 6170, - Zo_ArrowHold = 6181, - Zo_ArrowRelease = 6191, - Zo_ZoneStatusChange = 6204, - Zo_xxxxyyzz = 6221, - Zo_xxyyzzzz = 6230, - Zo_AddScene = 6239, - Zo_xxyyyyzz = 6248, - Zo_StoreScene = 6257, + Zo_OppleMode = 5244, + Zo_TerncyDuration = 5254, + Zo_TerncyRotate = 5269, + Zo_Identify = 5282, + Zo_xxxx = 5291, + Zo_IdentifyQuery = 5296, + Zo_AddGroup = 5310, + Zo_xxxx00 = 5319, + Zo_ViewGroup = 5326, + Zo_GetGroup = 5336, + Zo_01xxxx = 5345, + Zo_GetAllGroups = 5352, + Zo_00 = 5365, + Zo_RemoveGroup = 5368, + Zo_RemoveAllGroups = 5380, + Zo_ViewScene = 5396, + Zo_xxxxyy = 5406, + Zo_RemoveScene = 5413, + Zo_RemoveAllScenes = 5425, + Zo_RecallScene = 5441, + Zo_GetSceneMembership = 5453, + Zo_PowerOffEffect = 5472, + Zo_xxyy = 5487, + Zo_PowerOnRecall = 5492, + Zo_PowerOnTimer = 5506, + Zo_xxyyyyzzzz = 5519, + Zo_xx0A00 = 5530, + Zo_DimmerUp = 5537, + Zo_00190200 = 5546, + Zo_DimmerDown = 5555, + Zo_01190200 = 5566, + Zo_DimmerStop = 5575, + Zo_ResetAlarm = 5586, + Zo_xxyyyy = 5597, + Zo_ResetAllAlarms = 5604, + Zo_xx000A00 = 5619, + Zo_HueSat = 5628, + Zo_xxyy0A00 = 5635, + Zo_Color = 5644, + Zo_xxxxyyyy0A00 = 5650, + Zo_xxxx0A00 = 5663, + Zo_ShutterOpen = 5672, + Zo_ShutterClose = 5684, + Zo_ShutterStop = 5697, + Zo_ShutterLift = 5709, + Zo_xx = 5721, + Zo_ShutterTilt = 5724, + Zo_Shutter = 5736, + Zo_DimmerMove = 5744, + Zo_xx0A = 5755, + Zo_DimmerStepUp = 5760, + Zo_00xx0A00 = 5773, + Zo_DimmerStepDown = 5782, + Zo_01xx0A00 = 5797, + Zo_DimmerStep = 5806, + Zo_xx190A00 = 5817, + Zo_01 = 5826, + Zo_HueMove = 5829, + Zo_xx19 = 5837, + Zo_HueStepUp = 5842, + Zo_HueStepDown = 5852, + Zo_03xx0A00 = 5864, + Zo_HueStep = 5873, + Zo_SatMove = 5881, + Zo_SatStep = 5889, + Zo_xx190A = 5897, + Zo_ColorMove = 5904, + Zo_xxxxyyyy = 5914, + Zo_ColorStep = 5923, + Zo_ColorTempMoveUp = 5933, + Zo_01xxxx000000000000 = 5949, + Zo_ColorTempMoveDown = 5968, + Zo_03xxxx000000000000 = 5986, + Zo_ColorTempMoveStop = 6005, + Zo_00xxxx000000000000 = 6023, + Zo_ColorTempMove = 6042, + Zo_xxyyyy000000000000 = 6056, + Zo_ColorTempStepUp = 6075, + Zo_01xxxx0A0000000000 = 6091, + Zo_ColorTempStepDown = 6110, + Zo_03xxxx0A0000000000 = 6128, + Zo_ColorTempStep = 6147, + Zo_xxyyyy0A0000000000 = 6161, + Zo_ArrowClick = 6180, + Zo_ArrowHold = 6191, + Zo_ArrowRelease = 6201, + Zo_ZoneStatusChange = 6214, + Zo_xxxxyyzz = 6231, + Zo_xxyyzzzz = 6240, + Zo_AddScene = 6249, + Zo_xxyyyyzz = 6258, + Zo_StoreScene = 6267, }; diff --git a/tasmota/xdrv_23_zigbee_5_converters.ino b/tasmota/xdrv_23_zigbee_5_converters.ino index e8fd142be..d18ff3547 100644 --- a/tasmota/xdrv_23_zigbee_5_converters.ino +++ b/tasmota/xdrv_23_zigbee_5_converters.ino @@ -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, CxFCCC, + CxEF00, 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, 0xFCCC, + 0xEF00, 0xFCC0, 0xFCCC, }; uint16_t CxToCluster(uint8_t cx) { @@ -634,6 +634,9 @@ const Z_AttributeConverter Z_PostProcess[] PROGMEM = { { Ztuya4, CxEF00, 0x046A, Z_(TuyaForceMode), Cm1, 0 }, { Ztuya4, CxEF00, 0x046F, Z_(TuyaWeekSelect), Cm1, 0 }, + // Aqara Opple spacific + { Zbool, CxFCC0, 0x0009, Z_(OppleMode), Cm1, 0 }, + // Terncy specific - 0xFCCC { Zuint16, CxFCCC, 0x001A, Z_(TerncyDuration), Cm1, 0 }, { Zint16, CxFCCC, 0x001B, Z_(TerncyRotate), Cm1, 0 },