From 24f8e1eee65a3191a7ac4906a1111737c1ac37d0 Mon Sep 17 00:00:00 2001 From: VietDzung Date: Mon, 28 Oct 2024 10:55:11 +0700 Subject: [PATCH] Support HVAC control datapoint --- src/knx/dptconvert.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/knx/dptconvert.cpp b/src/knx/dptconvert.cpp index a73a036..6fb6720 100644 --- a/src/knx/dptconvert.cpp +++ b/src/knx/dptconvert.cpp @@ -107,6 +107,10 @@ int KNX_Decode_Value(uint8_t* payload, size_t payload_length, const Dpt& datatyp if (datatype.mainGroup == 19 && datatype.subGroup == 1 && (datatype.index <= 3 || datatype.index == 9 || datatype.index == 10)) return busValueToDateTime(payload, payload_length, datatype, value); + // DPT 20.* - HVAC Control mode Unsigned 8 Bit Integer + if (datatype.mainGroup == 20 && !datatype.index) + return busValueToUnsigned8(payload, payload_length, datatype, value); + // DPT 26.* - Scene Info if (datatype.mainGroup == 26 && datatype.subGroup == 1 && datatype.index <= 1) return busValueToSceneInfo(payload, payload_length, datatype, value); @@ -268,6 +272,10 @@ int KNX_Encode_Value(const KNXValue& value, uint8_t* payload, size_t payload_len if (datatype.mainGroup == 19 && datatype.subGroup == 1 && (datatype.index <= 3 || datatype.index == 9 || datatype.index == 10)) return valueToBusValueDateTime(value, payload, payload_length, datatype); + // DPT 20.* - HVAC Control mode Unsigned 8 Bit Integer + if (datatype.mainGroup == 20 && !datatype.index) + return valueToBusValueUnsigned8(value, payload, payload_length, datatype); + // DPT 26.* - Scene Info if (datatype.mainGroup == 26 && datatype.subGroup == 1 && datatype.index <= 1) return valueToBusValueSceneInfo(value, payload, payload_length, datatype);