You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2020/11/11 18:04:36 UTC

[plc4x] branch feature/plc4go updated: - Updated the KNX Datapoint spec to skip the first 8 bits, if the datatype didn't start with skipping at least 2 bits (In this case the additional byte is not needed)

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch feature/plc4go
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/feature/plc4go by this push:
     new 18e4108  - Updated the KNX Datapoint spec to skip the first 8 bits, if the datatype didn't start with skipping at least 2 bits (In this case the additional byte is not needed)
18e4108 is described below

commit 18e410890913baf4f9bbac84862e6c518d65c624
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Wed Nov 11 19:04:30 2020 +0100

    - Updated the KNX Datapoint spec to skip the first 8 bits, if the datatype didn't start with skipping at least 2 bits (In this case the additional byte is not needed)
---
 plc4go/cmd/main/main.go                            |   1 -
 .../knxnetip/readwrite/model/KnxDatapoint.go       | 934 ++++++++++++++++++++-
 .../resources/protocols/knxnetip/knxnetip.mspec    | 110 ++-
 3 files changed, 1036 insertions(+), 9 deletions(-)

diff --git a/plc4go/cmd/main/main.go b/plc4go/cmd/main/main.go
index b61336b..ca11c9e 100644
--- a/plc4go/cmd/main/main.go
+++ b/plc4go/cmd/main/main.go
@@ -19,5 +19,4 @@
 package main
 
 func main() {
-    KnxMain()
 }
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapoint.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapoint.go
index 2dfe421..aed5bb2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapoint.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapoint.go
@@ -87,6 +87,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcStruct(_map), nil
         case formatName == "A8_ASCII": // STRING
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadString(8)
             if _valueErr != nil {
@@ -95,6 +100,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcSTRING(value), nil
         case formatName == "A8_8859_1": // STRING
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadString(8)
             if _valueErr != nil {
@@ -103,6 +113,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcSTRING(value), nil
         case formatName == "U8": // USINT
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadUint8(8)
             if _valueErr != nil {
@@ -111,6 +126,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcUSINT(value), nil
         case formatName == "V8": // SINT
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadInt8(8)
             if _valueErr != nil {
@@ -132,6 +152,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcREAL(value), nil
         case formatName == "N3N5r2N6r2N6": // TIME_OF_DAY
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (day)
             _, _dayErr := io.ReadUint8(3)
             if _dayErr != nil {
@@ -205,6 +230,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcDATE(value), nil
         case formatName == "U32": // UDINT
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadUint32(32)
             if _valueErr != nil {
@@ -213,6 +243,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcUDINT(value), nil
         case formatName == "V32": // DINT
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadInt32(32)
             if _valueErr != nil {
@@ -221,6 +256,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcDINT(value), nil
         case formatName == "F32": // REAL
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadFloat32(true, 8, 23)
             if _valueErr != nil {
@@ -230,6 +270,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U4U4U4U4U4U4B4N4": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (d6)
             d6, _d6Err := io.ReadUint8(4)
             if _d6Err != nil {
@@ -309,6 +354,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcStruct(_map), nil
         case formatName == "A112_ASCII": // STRING
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadString(112)
             if _valueErr != nil {
@@ -317,6 +367,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcSTRING(value), nil
         case formatName == "A112_8859_1": // STRING
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadString(112)
             if _valueErr != nil {
@@ -339,6 +394,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "B1r1U6": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (learn)
             learn, _learnErr := io.ReadBit()
             if _learnErr != nil {
@@ -360,6 +420,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcStruct(_map), nil
         case formatName == "U8r4U4r3U5U3U5r2U6r2U6B16": // DATE_AND_TIME
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (year)
             year, _yearErr := io.ReadUint8(8)
             if _yearErr != nil {
@@ -479,6 +544,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcDATE_AND_TIME(value), nil
         case formatName == "N8": // USINT
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadUint8(8)
             if _valueErr != nil {
@@ -487,6 +557,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcUSINT(value), nil
         case formatName == "B8": // BYTE
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadUint8(8)
             if _valueErr != nil {
@@ -495,6 +570,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcBYTE(value), nil
         case formatName == "B16": // WORD
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadUint16(16)
             if _valueErr != nil {
@@ -504,6 +584,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U4U4": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (busy)
             busy, _busyErr := io.ReadUint8(4)
             if _busyErr != nil {
@@ -522,6 +607,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             _map := map[string]interface{}{}
 
             // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
+            // Reserved Field (Just skip the bytes)
             if _, _err := io.ReadUint8(1); _err != nil {
                 return nil, errors.New("Error parsing reserved field " + _err.Error())
             }
@@ -542,6 +632,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcStruct(_map), nil
         case formatName == "B32": // DWORD
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadUint32(32)
             if _valueErr != nil {
@@ -550,6 +645,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcDWORD(value), nil
         case formatName == "V64": // LINT
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             value, _valueErr := io.ReadInt64(64)
             if _valueErr != nil {
@@ -558,6 +658,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
             return values.NewPlcLINT(value), nil
         case formatName == "B24": // List
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Array Field (value)
             var value []api.PlcValue
             for i := 0; i < int((24)); i++ {
@@ -628,6 +733,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "N8Z8HvacOperatingMode": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (hvacOperatingMode)
             hvacOperatingMode, _hvacOperatingModeErr := io.ReadUint8(8)
             if _hvacOperatingModeErr != nil {
@@ -645,6 +755,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "N8Z8DhwMode": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (dhwMode)
             dhwMode, _dhwModeErr := io.ReadUint8(8)
             if _dhwModeErr != nil {
@@ -662,6 +777,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "N8Z8HvacControllingMode": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (hvacControllingMode)
             hvacControllingMode, _hvacControllingModeErr := io.ReadUint8(8)
             if _hvacControllingModeErr != nil {
@@ -679,6 +799,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "N8Z8EnableHeatingOrCoolingStage": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (enableHeatingOrCoolingStage)
             enableHeatingOrCoolingStage, _enableHeatingOrCoolingStageErr := io.ReadUint8(8)
             if _enableHeatingOrCoolingStageErr != nil {
@@ -696,6 +821,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "N8Z8BuildingMode": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (buildingMode)
             buildingMode, _buildingModeErr := io.ReadUint8(8)
             if _buildingModeErr != nil {
@@ -713,6 +843,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "N8Z8OccupancyMode": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (occupancyMode)
             occupancyMode, _occupancyModeErr := io.ReadUint8(8)
             if _occupancyModeErr != nil {
@@ -730,6 +865,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "N8Z8EmergencyMode": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (hvacEmergencyMode)
             hvacEmergencyMode, _hvacEmergencyModeErr := io.ReadUint8(8)
             if _hvacEmergencyModeErr != nil {
@@ -747,6 +887,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8Z8Rel": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (relValue)
             relValue, _relValueErr := io.ReadUint8(8)
             if _relValueErr != nil {
@@ -764,6 +909,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8Z8Counter": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (counterValue)
             counterValue, _counterValueErr := io.ReadUint8(8)
             if _counterValueErr != nil {
@@ -781,6 +931,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16Z8TimePeriod": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (timePeriod)
             timePeriod, _timePeriodErr := io.ReadUint16(16)
             if _timePeriodErr != nil {
@@ -798,6 +953,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16Z8FlowRate": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (flowRate)
             flowRate, _flowRateErr := io.ReadUint16(16)
             if _flowRateErr != nil {
@@ -815,6 +975,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16Z8Counter": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (counterValue)
             counterValue, _counterValueErr := io.ReadUint16(16)
             if _counterValueErr != nil {
@@ -832,6 +997,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16Z8ElectricCurrent": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (electricalCurrent)
             electricalCurrent, _electricalCurrentErr := io.ReadUint16(16)
             if _electricalCurrentErr != nil {
@@ -849,6 +1019,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16Z8Power": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (power)
             power, _powerErr := io.ReadUint16(16)
             if _powerErr != nil {
@@ -866,6 +1041,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16Z8AtmPressure": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (atmPressure)
             atmPressure, _atmPressureErr := io.ReadUint16(16)
             if _atmPressureErr != nil {
@@ -883,6 +1063,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16Z8PercentValue": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (percentValue)
             percentValue, _percentValueErr := io.ReadUint16(16)
             if _percentValueErr != nil {
@@ -900,6 +1085,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16Z8HvacAirQuality": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (ppmResolution)
             ppmResolution, _ppmResolutionErr := io.ReadUint16(16)
             if _ppmResolutionErr != nil {
@@ -917,6 +1107,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16Z8WindSpeed": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (windSpeed)
             windSpeed, _windSpeedErr := io.ReadUint16(16)
             if _windSpeedErr != nil {
@@ -934,6 +1129,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16Z8SunIntensity": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (sunIntensity)
             sunIntensity, _sunIntensityErr := io.ReadUint16(16)
             if _sunIntensityErr != nil {
@@ -951,6 +1151,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16Z8HvacAirFlow": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (airFlow)
             airFlow, _airFlowErr := io.ReadUint16(16)
             if _airFlowErr != nil {
@@ -968,6 +1173,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V8Z8RelSignedValue": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (relSignedValue)
             relSignedValue, _relSignedValueErr := io.ReadInt8(8)
             if _relSignedValueErr != nil {
@@ -985,6 +1195,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16Z8DeltaTime": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (deltaTime)
             deltaTime, _deltaTimeErr := io.ReadInt16(16)
             if _deltaTimeErr != nil {
@@ -1002,6 +1217,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16Z8RelSignedValue": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (relSignedValue)
             relSignedValue, _relSignedValueErr := io.ReadInt16(16)
             if _relSignedValueErr != nil {
@@ -1019,6 +1239,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16N8HvacModeAndTimeDelay": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             delayTime, _delayTimeErr := io.ReadUint16(16)
             if _delayTimeErr != nil {
@@ -1036,6 +1261,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16N8DhwModeAndTimeDelay": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             delayTime, _delayTimeErr := io.ReadUint16(16)
             if _delayTimeErr != nil {
@@ -1053,6 +1283,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16N8OccupancyModeAndTimeDelay": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             delayTime, _delayTimeErr := io.ReadUint16(16)
             if _delayTimeErr != nil {
@@ -1070,6 +1305,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16N8BuildingModeAndTimeDelay": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             delayTime, _delayTimeErr := io.ReadUint16(16)
             if _delayTimeErr != nil {
@@ -1087,6 +1327,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8B8StatusBurnerController": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (actualRelativePower)
             actualRelativePower, _actualRelativePowerErr := io.ReadUint8(8)
             if _actualRelativePowerErr != nil {
@@ -1130,6 +1375,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8B8LockingSignal": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (requestedPowerReduction)
             requestedPowerReduction, _requestedPowerReductionErr := io.ReadUint8(8)
             if _requestedPowerReductionErr != nil {
@@ -1159,6 +1409,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8B8BoilerControllerDemandSignal": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (relativeDemand)
             relativeDemand, _relativeDemandErr := io.ReadUint8(8)
             if _relativeDemandErr != nil {
@@ -1188,7 +1443,12 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8B8ActuatorPositionDemand": // Struct
             _map := map[string]interface{}{}
 
-            // Simple Field (actuatorPositionDemand)
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
+            // Simple Field (actuatorPositionDemand)
             actuatorPositionDemand, _actuatorPositionDemandErr := io.ReadUint8(8)
             if _actuatorPositionDemandErr != nil {
                 return nil, errors.New("Error parsing 'actuatorPositionDemand' field " + _actuatorPositionDemandErr.Error())
@@ -1231,6 +1491,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8B8ActuatorPositionStatus": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (actualActuatorPosition)
             actualActuatorPosition, _actualActuatorPositionErr := io.ReadUint8(8)
             if _actualActuatorPositionErr != nil {
@@ -1281,6 +1546,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8B8StatusLightingActuator": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (lightingLevel)
             lightingLevel, _lightingLevelErr := io.ReadUint8(8)
             if _lightingLevelErr != nil {
@@ -1347,6 +1617,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16B8HeatProducerManagerStatus": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (tempFlowProdSegmH)
             tempFlowProdSegmH, _tempFlowProdSegmHErr := io.ReadFloat32(true, 4, 11)
             if _tempFlowProdSegmHErr != nil {
@@ -1397,6 +1672,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16B8RoomTemperatureDemand": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (roomTemperatureDemand)
             roomTemperatureDemand, _roomTemperatureDemandErr := io.ReadFloat32(true, 4, 11)
             if _roomTemperatureDemandErr != nil {
@@ -1440,6 +1720,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16B8ColdWaterProducerManagerStatus": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (flowTemperatureProdSegmC)
             flowTemperatureProdSegmC, _flowTemperatureProdSegmCErr := io.ReadFloat32(true, 4, 11)
             if _flowTemperatureProdSegmCErr != nil {
@@ -1483,6 +1768,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16B8WaterTemperatureControllerStatus": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (actualTemperature)
             actualTemperature, _actualTemperatureErr := io.ReadFloat32(true, 4, 11)
             if _actualTemperatureErr != nil {
@@ -1519,6 +1809,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16B16": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (flowTemperatureDemand)
             flowTemperatureDemand, _flowTemperatureDemandErr := io.ReadFloat32(true, 4, 11)
             if _flowTemperatureDemandErr != nil {
@@ -1618,6 +1913,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8N8": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (energyDemand)
             energyDemand, _energyDemandErr := io.ReadUint8(8)
             if _energyDemandErr != nil {
@@ -1635,6 +1935,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16V16V16RoomTemperature": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointComfort)
             temperatureSetpointComfort, _temperatureSetpointComfortErr := io.ReadFloat32(true, 4, 11)
             if _temperatureSetpointComfortErr != nil {
@@ -1659,6 +1964,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16V16V16RoomTemperatureShift": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointShiftComfort)
             temperatureSetpointShiftComfort, _temperatureSetpointShiftComfortErr := io.ReadFloat32(true, 4, 11)
             if _temperatureSetpointShiftComfortErr != nil {
@@ -1683,6 +1993,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16V16V16V16RoomTemperature": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointComfort)
             temperatureSetpointComfort, _temperatureSetpointComfortErr := io.ReadFloat32(true, 4, 11)
             if _temperatureSetpointComfortErr != nil {
@@ -1714,6 +2029,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16V16V16V16DhwtTemperature": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointLegioProtect)
             temperatureSetpointLegioProtect, _temperatureSetpointLegioProtectErr := io.ReadFloat32(true, 4, 11)
             if _temperatureSetpointLegioProtectErr != nil {
@@ -1745,6 +2065,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16V16V16V16RoomTemperatureShift": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointShiftComfort)
             temperatureSetpointShiftComfort, _temperatureSetpointShiftComfortErr := io.ReadFloat32(true, 4, 11)
             if _temperatureSetpointShiftComfortErr != nil {
@@ -1776,6 +2101,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16U8B8Heat": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (flowTemperatureDemand)
             flowTemperatureDemand, _flowTemperatureDemandErr := io.ReadInt16(16)
             if _flowTemperatureDemandErr != nil {
@@ -1840,6 +2170,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16U8B8ChilledWater": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (chilledWaterFlowTemperatureDemand)
             chilledWaterFlowTemperatureDemand, _chilledWaterFlowTemperatureDemandErr := io.ReadInt16(16)
             if _chilledWaterFlowTemperatureDemandErr != nil {
@@ -1883,6 +2218,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16U8B16Boiler": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (tempBoiler)
             tempBoiler, _tempBoilerErr := io.ReadInt16(16)
             if _tempBoilerErr != nil {
@@ -1989,6 +2329,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16U8B16Chiller": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (tempChiller)
             tempChiller, _tempChillerErr := io.ReadInt16(16)
             if _tempChillerErr != nil {
@@ -2067,6 +2412,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16U8N8B8": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (nominalPower)
             nominalPower, _nominalPowerErr := io.ReadUint16(16)
             if _nominalPowerErr != nil {
@@ -2117,6 +2467,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U5U5U6": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (magicNumber)
             magicNumber, _magicNumberErr := io.ReadUint8(5)
             if _magicNumberErr != nil {
@@ -2141,6 +2496,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V32Z8VolumeLiter": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (volumeLiter)
             volumeLiter, _volumeLiterErr := io.ReadInt32(32)
             if _volumeLiterErr != nil {
@@ -2158,6 +2518,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V32Z8FlowRate": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (flowRate)
             flowRate, _flowRateErr := io.ReadInt32(32)
             if _flowRateErr != nil {
@@ -2175,6 +2540,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8N8N8N8B8B8": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (logNumber)
             logNumber, _logNumberErr := io.ReadUint8(8)
             if _logNumberErr != nil {
@@ -2265,6 +2635,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16V16": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             delayTime, _delayTimeErr := io.ReadUint16(16)
             if _delayTimeErr != nil {
@@ -2282,6 +2657,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "N16U32": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (manufacturerCode)
             manufacturerCode, _manufacturerCodeErr := io.ReadUint16(16)
             if _manufacturerCodeErr != nil {
@@ -2299,6 +2679,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "F16F16F16": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointComfort)
             temperatureSetpointComfort, _temperatureSetpointComfortErr := io.ReadFloat32(true, 4, 11)
             if _temperatureSetpointComfortErr != nil {
@@ -2323,6 +2708,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V8N8N8": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (energyDemand)
             energyDemand, _energyDemandErr := io.ReadInt8(8)
             if _energyDemandErr != nil {
@@ -2347,6 +2737,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V16V16N8N8": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (tempSetpointCooling)
             tempSetpointCooling, _tempSetpointCoolingErr := io.ReadInt16(16)
             if _tempSetpointCoolingErr != nil {
@@ -2378,6 +2773,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16U8Scaling": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (timePeriod)
             timePeriod, _timePeriodErr := io.ReadUint16(16)
             if _timePeriodErr != nil {
@@ -2395,6 +2795,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16U8TariffNext": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             delayTime, _delayTimeErr := io.ReadUint16(16)
             if _delayTimeErr != nil {
@@ -2412,6 +2817,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V32N8Z8": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (countVal)
             countVal, _countValErr := io.ReadInt32(32)
             if _countValErr != nil {
@@ -2436,6 +2846,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U16U32U8N8": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (manufacturerId)
             manufacturerId, _manufacturerIdErr := io.ReadUint16(16)
             if _manufacturerIdErr != nil {
@@ -2467,6 +2882,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "A8A8A8A8": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (languageCode)
             languageCode, _languageCodeErr := io.ReadString(16)
             if _languageCodeErr != nil {
@@ -2484,6 +2904,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8U8U8": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (red)
             red, _redErr := io.ReadUint8(8)
             if _redErr != nil {
@@ -2508,6 +2933,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "A8A8Language": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (languageCode)
             languageCode, _languageCodeErr := io.ReadString(16)
             if _languageCodeErr != nil {
@@ -2518,6 +2948,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "A8A8Region": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (regionCode)
             regionCode, _regionCodeErr := io.ReadString(16)
             if _regionCodeErr != nil {
@@ -2528,6 +2963,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "V32U8B8": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (activeElectricalEnergy)
             activeElectricalEnergy, _activeElectricalEnergyErr := io.ReadInt32(32)
             if _activeElectricalEnergyErr != nil {
@@ -2564,6 +3004,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "B1N3N4": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (deactivationOfPriority)
             deactivationOfPriority, _deactivationOfPriorityErr := io.ReadBit()
             if _deactivationOfPriorityErr != nil {
@@ -2638,6 +3083,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "B2U6": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (sceneActivationInactive)
             sceneActivationInactive, _sceneActivationInactiveErr := io.ReadBit()
             if _sceneActivationInactiveErr != nil {
@@ -2662,6 +3112,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8r7B1": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (setValue)
             setValue, _setValueErr := io.ReadUint8(8)
             if _setValueErr != nil {
@@ -2684,6 +3139,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8U8B8": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (heightPosition)
             heightPosition, _heightPositionErr := io.ReadUint8(8)
             if _heightPositionErr != nil {
@@ -2720,6 +3180,11 @@ func KnxDatapointParse(io *utils.ReadBuffer, formatName string) (api.PlcValue, e
         case formatName == "U8U8B16": // Struct
             _map := map[string]interface{}{}
 
+            // Reserved Field (Just skip the bytes)
+            if _, _err := io.ReadUint8(8); _err != nil {
+                return nil, errors.New("Error parsing reserved field " + _err.Error())
+            }
+
             // Simple Field (heightPosition)
             heightPosition, _heightPositionErr := io.ReadUint8(8)
             if _heightPositionErr != nil {
@@ -2881,24 +3346,44 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "A8_ASCII": // STRING
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteString(8, "ASCII", value.GetString()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "A8_8859_1": // STRING
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteString(8, "ISO-8859-1", value.GetString()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "U8": // USINT
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "V8": // SINT
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteInt8(8, value.GetInt8()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
@@ -2916,6 +3401,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "N3N5r2N6r2N6": // TIME_OF_DAY
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (day)
             if _err := io.WriteUint8(3, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'day' field " + _err.Error())
@@ -2978,24 +3468,44 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U32": // UDINT
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteUint32(32, value.GetUint32()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "V32": // DINT
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteInt32(32, value.GetInt32()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "F32": // REAL
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteFloat32(32, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "U4U4U4U4U4U4B4N4": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (d6)
             if _err := io.WriteUint8(4, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'd6' field " + _err.Error())
@@ -3052,12 +3562,22 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "A112_ASCII": // STRING
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteString(112, "ASCII", value.GetString()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "A112_8859_1": // STRING
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteString(112, "ISO-8859-1", value.GetString()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
@@ -3075,6 +3595,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "B1r1U6": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (learn)
             if _err := io.WriteBit(value.GetBool()); _err != nil {
                 return errors.New("Error serializing 'learn' field " + _err.Error())
@@ -3091,6 +3616,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8r4U4r3U5U3U5r2U6r2U6B16": // DATE_AND_TIME
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (year)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'year' field " + _err.Error())
@@ -3192,24 +3722,44 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "N8": // USINT
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "B8": // BYTE
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "B16": // WORD
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "U4U4": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (busy)
             if _err := io.WriteUint8(4, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'busy' field " + _err.Error())
@@ -3222,6 +3772,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
         case formatName == "r1b1U6": // Struct
 
             // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
+            // Reserved Field (Just skip the bytes)
             if _err := io.WriteUint8(1, uint8(0x00)); _err != nil {
                 return errors.New("Error serializing reserved field " + _err.Error())
             }
@@ -3237,18 +3792,33 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "B32": // DWORD
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteUint32(32, value.GetUint32()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "V64": // LINT
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (value)
             if _err := io.WriteInt64(64, value.GetInt64()); _err != nil {
                 return errors.New("Error serializing 'value' field " + _err.Error())
             }
         case formatName == "B24": // List
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Array Field (value)
             for i := uint32(0); i < uint32((24)); i++ {
                 _itemErr := io.WriteBit(value.GetIndex(i).GetBool())
@@ -3301,6 +3871,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "N8Z8HvacOperatingMode": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (hvacOperatingMode)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'hvacOperatingMode' field " + _err.Error())
@@ -3312,6 +3887,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "N8Z8DhwMode": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (dhwMode)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'dhwMode' field " + _err.Error())
@@ -3323,6 +3903,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "N8Z8HvacControllingMode": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (hvacControllingMode)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'hvacControllingMode' field " + _err.Error())
@@ -3334,6 +3919,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "N8Z8EnableHeatingOrCoolingStage": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (enableHeatingOrCoolingStage)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'enableHeatingOrCoolingStage' field " + _err.Error())
@@ -3345,6 +3935,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "N8Z8BuildingMode": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (buildingMode)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'buildingMode' field " + _err.Error())
@@ -3356,6 +3951,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "N8Z8OccupancyMode": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (occupancyMode)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'occupancyMode' field " + _err.Error())
@@ -3367,6 +3967,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "N8Z8EmergencyMode": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (hvacEmergencyMode)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'hvacEmergencyMode' field " + _err.Error())
@@ -3378,6 +3983,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8Z8Rel": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (relValue)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'relValue' field " + _err.Error())
@@ -3389,6 +3999,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8Z8Counter": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (counterValue)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'counterValue' field " + _err.Error())
@@ -3400,6 +4015,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16Z8TimePeriod": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (timePeriod)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'timePeriod' field " + _err.Error())
@@ -3411,6 +4031,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16Z8FlowRate": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (flowRate)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'flowRate' field " + _err.Error())
@@ -3422,6 +4047,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16Z8Counter": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (counterValue)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'counterValue' field " + _err.Error())
@@ -3433,6 +4063,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16Z8ElectricCurrent": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (electricalCurrent)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'electricalCurrent' field " + _err.Error())
@@ -3444,6 +4079,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16Z8Power": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (power)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'power' field " + _err.Error())
@@ -3455,6 +4095,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16Z8AtmPressure": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (atmPressure)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'atmPressure' field " + _err.Error())
@@ -3466,6 +4111,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16Z8PercentValue": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (percentValue)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'percentValue' field " + _err.Error())
@@ -3477,6 +4127,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16Z8HvacAirQuality": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (ppmResolution)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'ppmResolution' field " + _err.Error())
@@ -3488,6 +4143,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16Z8WindSpeed": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (windSpeed)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'windSpeed' field " + _err.Error())
@@ -3499,6 +4159,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16Z8SunIntensity": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (sunIntensity)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'sunIntensity' field " + _err.Error())
@@ -3510,6 +4175,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16Z8HvacAirFlow": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (airFlow)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'airFlow' field " + _err.Error())
@@ -3519,7 +4189,12 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'statusCommand' field " + _err.Error())
             }
-        case formatName == "V8Z8RelSignedValue": // Struct
+        case formatName == "V8Z8RelSignedValue": // Struct
+
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
 
             // Simple Field (relSignedValue)
             if _err := io.WriteInt8(8, value.GetInt8()); _err != nil {
@@ -3532,6 +4207,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16Z8DeltaTime": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (deltaTime)
             if _err := io.WriteInt16(16, value.GetInt16()); _err != nil {
                 return errors.New("Error serializing 'deltaTime' field " + _err.Error())
@@ -3543,6 +4223,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16Z8RelSignedValue": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (relSignedValue)
             if _err := io.WriteInt16(16, value.GetInt16()); _err != nil {
                 return errors.New("Error serializing 'relSignedValue' field " + _err.Error())
@@ -3554,6 +4239,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16N8HvacModeAndTimeDelay": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'delayTime' field " + _err.Error())
@@ -3565,6 +4255,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16N8DhwModeAndTimeDelay": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'delayTime' field " + _err.Error())
@@ -3576,6 +4271,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16N8OccupancyModeAndTimeDelay": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'delayTime' field " + _err.Error())
@@ -3587,6 +4287,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16N8BuildingModeAndTimeDelay": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'delayTime' field " + _err.Error())
@@ -3598,6 +4303,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8B8StatusBurnerController": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (actualRelativePower)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'actualRelativePower' field " + _err.Error())
@@ -3629,6 +4339,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8B8LockingSignal": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (requestedPowerReduction)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'requestedPowerReduction' field " + _err.Error())
@@ -3650,6 +4365,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8B8BoilerControllerDemandSignal": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (relativeDemand)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'relativeDemand' field " + _err.Error())
@@ -3671,6 +4391,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8B8ActuatorPositionDemand": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (actuatorPositionDemand)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'actuatorPositionDemand' field " + _err.Error())
@@ -3702,6 +4427,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8B8ActuatorPositionStatus": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (actualActuatorPosition)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'actualActuatorPosition' field " + _err.Error())
@@ -3738,6 +4468,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8B8StatusLightingActuator": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (lightingLevel)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'lightingLevel' field " + _err.Error())
@@ -3784,6 +4519,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16B8HeatProducerManagerStatus": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (tempFlowProdSegmH)
             if _err := io.WriteFloat32(16, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'tempFlowProdSegmH' field " + _err.Error())
@@ -3820,6 +4560,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16B8RoomTemperatureDemand": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (roomTemperatureDemand)
             if _err := io.WriteFloat32(16, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'roomTemperatureDemand' field " + _err.Error())
@@ -3851,6 +4596,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16B8ColdWaterProducerManagerStatus": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (flowTemperatureProdSegmC)
             if _err := io.WriteFloat32(16, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'flowTemperatureProdSegmC' field " + _err.Error())
@@ -3882,6 +4632,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16B8WaterTemperatureControllerStatus": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (actualTemperature)
             if _err := io.WriteFloat32(16, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'actualTemperature' field " + _err.Error())
@@ -3908,6 +4663,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16B16": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (flowTemperatureDemand)
             if _err := io.WriteFloat32(16, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'flowTemperatureDemand' field " + _err.Error())
@@ -3979,6 +4739,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8N8": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (energyDemand)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'energyDemand' field " + _err.Error())
@@ -3990,6 +4755,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16V16V16RoomTemperature": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointComfort)
             if _err := io.WriteFloat32(16, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'temperatureSetpointComfort' field " + _err.Error())
@@ -4006,6 +4776,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16V16V16RoomTemperatureShift": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointShiftComfort)
             if _err := io.WriteFloat32(16, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'temperatureSetpointShiftComfort' field " + _err.Error())
@@ -4022,6 +4797,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16V16V16V16RoomTemperature": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointComfort)
             if _err := io.WriteFloat32(16, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'temperatureSetpointComfort' field " + _err.Error())
@@ -4043,6 +4823,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16V16V16V16DhwtTemperature": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointLegioProtect)
             if _err := io.WriteFloat32(16, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'temperatureSetpointLegioProtect' field " + _err.Error())
@@ -4064,6 +4849,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16V16V16V16RoomTemperatureShift": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointShiftComfort)
             if _err := io.WriteFloat32(16, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'temperatureSetpointShiftComfort' field " + _err.Error())
@@ -4085,6 +4875,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16U8B8Heat": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (flowTemperatureDemand)
             if _err := io.WriteInt16(16, value.GetInt16()); _err != nil {
                 return errors.New("Error serializing 'flowTemperatureDemand' field " + _err.Error())
@@ -4131,6 +4926,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16U8B8ChilledWater": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (chilledWaterFlowTemperatureDemand)
             if _err := io.WriteInt16(16, value.GetInt16()); _err != nil {
                 return errors.New("Error serializing 'chilledWaterFlowTemperatureDemand' field " + _err.Error())
@@ -4162,6 +4962,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16U8B16Boiler": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (tempBoiler)
             if _err := io.WriteInt16(16, value.GetInt16()); _err != nil {
                 return errors.New("Error serializing 'tempBoiler' field " + _err.Error())
@@ -4238,6 +5043,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16U8B16Chiller": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (tempChiller)
             if _err := io.WriteInt16(16, value.GetInt16()); _err != nil {
                 return errors.New("Error serializing 'tempChiller' field " + _err.Error())
@@ -4294,6 +5104,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16U8N8B8": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (nominalPower)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'nominalPower' field " + _err.Error())
@@ -4330,6 +5145,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U5U5U6": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (magicNumber)
             if _err := io.WriteUint8(5, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'magicNumber' field " + _err.Error())
@@ -4346,6 +5166,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V32Z8VolumeLiter": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (volumeLiter)
             if _err := io.WriteInt32(32, value.GetInt32()); _err != nil {
                 return errors.New("Error serializing 'volumeLiter' field " + _err.Error())
@@ -4357,6 +5182,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V32Z8FlowRate": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (flowRate)
             if _err := io.WriteInt32(32, value.GetInt32()); _err != nil {
                 return errors.New("Error serializing 'flowRate' field " + _err.Error())
@@ -4368,6 +5198,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8N8N8N8B8B8": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (logNumber)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'logNumber' field " + _err.Error())
@@ -4434,6 +5269,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16V16": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'delayTime' field " + _err.Error())
@@ -4445,6 +5285,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "N16U32": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (manufacturerCode)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'manufacturerCode' field " + _err.Error())
@@ -4456,6 +5301,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "F16F16F16": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (temperatureSetpointComfort)
             if _err := io.WriteFloat32(16, value.GetFloat32()); _err != nil {
                 return errors.New("Error serializing 'temperatureSetpointComfort' field " + _err.Error())
@@ -4472,6 +5322,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V8N8N8": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (energyDemand)
             if _err := io.WriteInt8(8, value.GetInt8()); _err != nil {
                 return errors.New("Error serializing 'energyDemand' field " + _err.Error())
@@ -4488,6 +5343,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V16V16N8N8": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (tempSetpointCooling)
             if _err := io.WriteInt16(16, value.GetInt16()); _err != nil {
                 return errors.New("Error serializing 'tempSetpointCooling' field " + _err.Error())
@@ -4509,6 +5369,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16U8Scaling": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (timePeriod)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'timePeriod' field " + _err.Error())
@@ -4520,6 +5385,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16U8TariffNext": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (delayTime)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'delayTime' field " + _err.Error())
@@ -4531,6 +5401,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "V32N8Z8": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (countVal)
             if _err := io.WriteInt32(32, value.GetInt32()); _err != nil {
                 return errors.New("Error serializing 'countVal' field " + _err.Error())
@@ -4547,6 +5422,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U16U32U8N8": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (manufacturerId)
             if _err := io.WriteUint16(16, value.GetUint16()); _err != nil {
                 return errors.New("Error serializing 'manufacturerId' field " + _err.Error())
@@ -4568,6 +5448,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "A8A8A8A8": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (languageCode)
             if _err := io.WriteString(16, "ASCII", value.GetString()); _err != nil {
                 return errors.New("Error serializing 'languageCode' field " + _err.Error())
@@ -4579,6 +5464,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8U8U8": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (red)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'red' field " + _err.Error())
@@ -4595,18 +5485,33 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "A8A8Language": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (languageCode)
             if _err := io.WriteString(16, "ASCII", value.GetString()); _err != nil {
                 return errors.New("Error serializing 'languageCode' field " + _err.Error())
             }
         case formatName == "A8A8Region": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (regionCode)
             if _err := io.WriteString(16, "ASCII", value.GetString()); _err != nil {
                 return errors.New("Error serializing 'regionCode' field " + _err.Error())
             }
         case formatName == "V32U8B8": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (activeElectricalEnergy)
             if _err := io.WriteInt32(32, value.GetInt32()); _err != nil {
                 return errors.New("Error serializing 'activeElectricalEnergy' field " + _err.Error())
@@ -4633,6 +5538,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "B1N3N4": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (deactivationOfPriority)
             if _err := io.WriteBit(value.GetBool()); _err != nil {
                 return errors.New("Error serializing 'deactivationOfPriority' field " + _err.Error())
@@ -4685,6 +5595,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "B2U6": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (sceneActivationInactive)
             if _err := io.WriteBit(value.GetBool()); _err != nil {
                 return errors.New("Error serializing 'sceneActivationInactive' field " + _err.Error())
@@ -4701,6 +5616,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8r7B1": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (setValue)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'setValue' field " + _err.Error())
@@ -4717,6 +5637,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8U8B8": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (heightPosition)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'heightPosition' field " + _err.Error())
@@ -4743,6 +5668,11 @@ func KnxDatapointSerialize(io *utils.WriteBuffer, value api.PlcValue, formatName
             }
         case formatName == "U8U8B16": // Struct
 
+            // Reserved Field (Just skip the bytes)
+            if _err := io.WriteUint8(8, uint8(0x0)); _err != nil {
+                return errors.New("Error serializing reserved field " + _err.Error())
+            }
+
             // Simple Field (heightPosition)
             if _err := io.WriteUint8(8, value.GetUint8()); _err != nil {
                 return errors.New("Error serializing 'heightPosition' field " + _err.Error())
diff --git a/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec b/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec
index d332ad7..a4c5ca0 100644
--- a/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec
+++ b/protocols/knxnetip/src/main/resources/protocols/knxnetip/knxnetip.mspec
@@ -411,30 +411,37 @@
             [simple   uint 3 'value']
         ]
         ['A8_ASCII' STRING
+            [reserved uint 8   '0x0']
             [simple   string 8 'ASCII' 'value']
         ]
         ['A8_8859_1' STRING
+            [reserved uint 8   '0x0']
             [simple   string 8 'ISO-8859-1' 'value']
         ]
         ['U8' USINT
+            [reserved uint 8   '0x0']
             [simple   uint 8 'value']
         ]
         ['V8' SINT
+            [reserved uint 8   '0x0']
             [simple   int 8 'value']
         ]
         // TODO value should actually be an enum ...
         ['B5N3' Struct
-            [simple   bit   'a']
-            [simple   bit   'b']
-            [simple   bit   'c']
-            [simple   bit   'd']
-            [simple   bit   'e']
-            [simple   int 8 'value']
+            [reserved uint 3 '0x0']
+            [simple   bit    'a']
+            [simple   bit    'b']
+            [simple   bit    'c']
+            [simple   bit    'd']
+            [simple   bit    'e']
+            [simple   int 8  'value']
         ]
         ['U16' UINT
+            [reserved uint 8  '0x0']
             [simple   uint 16 'value']
         ]
         ['V16' INT]
+            [reserved uint 8  '0x0']
             [simple   int 16 'value']
         ['F16' REAL
             [reserved uint 8     '0x0']
@@ -442,6 +449,7 @@
         ]
         // TODO Not sure how to encode the day in this
         ['N3N5r2N6r2N6' TIME_OF_DAY
+            [reserved uint 8 '0x0']
             [simple   uint 3 'day']
             [simple   uint 5 'hour']
             [reserved uint 2 '0x00']
@@ -458,15 +466,19 @@
             [simple   uint 7 'year']
         ]
         ['U32' UDINT
+            [reserved uint 8  '0x0']
             [simple   uint 32 'value']
         ]
         ['V32' DINT
+            [reserved uint 8  '0x0']
             [simple   int 32 'value']
         ]
         ['F32' REAL
+            [reserved uint 8     '0x0']
             [simple   float 8.23 'value']
         ]
         ['U4U4U4U4U4U4B4N4' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 4 'd6']
             [simple   uint 4 'd5']
             [simple   uint 4 'd4']
@@ -480,9 +492,11 @@
             [simple   uint 4 'index']
         ]
         ['A112_ASCII' STRING
+            [reserved uint 8  '0x0']
             [simple   string 112 'ASCII' 'value']
         ]
         ['A112_8859_1' STRING
+            [reserved uint 8  '0x0']
             [simple   string 112 'ISO-8859-1' 'value']
         ]
         ['r2U6' USINT
@@ -490,11 +504,13 @@
             [simple   uint 6 'value']
         ]
         ['B1r1U6' Struct
+            [reserved uint 8  '0x0']
             [simple   bit    'learn']
             [reserved uint 1 '0x00']
             [simple   uint 6 'sceneNumber']
         ]
         ['U8r4U4r3U5U3U5r2U6r2U6B16' DATE_AND_TIME
+            [reserved uint 8  '0x0']
             [simple   uint 8 'year']
             [reserved uint 4 '0x00']
             [simple   uint 4 'month']
@@ -518,12 +534,15 @@
         ]
         // TODO This should actually be enums depending on their type
         ['N8' USINT
+            [reserved uint 8  '0x0']
             [simple   uint 8 'value']
         ]
         ['B8' BYTE
+            [reserved uint 8  '0x0']
             [simple uint 8 'value']
         ]
         ['B16' WORD
+            [reserved uint 8  '0x0']
             [simple uint 16 'value']
         ]
         // TODO Probably should be a 2-bit unsigned plc-value
@@ -533,28 +552,35 @@
             [simple   uint 2 'value']
         ]
         ['An_8859_1' STRING
+            [reserved uint 8  '0x0']
             [manual string 8 'ISO-8859-1' 'value' '' '' '']
         ]
         ['U4U4' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 4 'busy']
             [simple   uint 4 'nak']
         ]
         ['r1b1U6' Struct
+            [reserved uint 8  '0x0']
             [reserved uint 1 '0x00']
             [simple   bit    'sceneActive']
             [simple   uint 6 'sceneNumber']
         ]
         ['B32' DWORD
+            [reserved uint 8  '0x0']
             [simple uint 32 'value']
         ]
         // TODO UTF-8 chars can be two type values. probably better to do a "manual" element
         ['An_UTF_8' STRING
+            [reserved uint 8  '0x0']
             [manual string 8 'UTF-8' 'value' '' '' '']
         ]
         ['V64' LINT
+            [reserved uint 8  '0x0']
             [simple int 64 'value']
         ]
         ['B24' List
+            [reserved uint 8  '0x0']
             [array bit 'value' count '24']
         ]
         // TODO Probably should be a 3-bit unsigned plc-value
@@ -574,114 +600,142 @@
             [simple   uint 8 'statusCommand']
         ]
         ['N8Z8HvacOperatingMode' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8 'hvacOperatingMode']
             [simple   uint 8 'statusCommand']
         ]
         ['N8Z8DhwMode' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8 'dhwMode']
             [simple   uint 8 'statusCommand']
         ]
         ['N8Z8HvacControllingMode' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8 'hvacControllingMode']
             [simple   uint 8 'statusCommand']
         ]
         ['N8Z8EnableHeatingOrCoolingStage' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8 'enableHeatingOrCoolingStage']
             [simple   uint 8 'statusCommand']
         ]
         ['N8Z8BuildingMode' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8 'buildingMode']
             [simple   uint 8 'statusCommand']
         ]
         ['N8Z8OccupancyMode' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8 'occupancyMode']
             [simple   uint 8 'statusCommand']
         ]
         ['N8Z8EmergencyMode' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8 'hvacEmergencyMode']
             [simple   uint 8 'statusCommand']
         ]
         ['U8Z8Rel' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8 'relValue']
             [simple   uint 8 'statusCommand']
         ]
         ['U8Z8Counter' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8 'counterValue']
             [simple   uint 8 'statusCommand']
         ]
         ['U16Z8TimePeriod' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'timePeriod']
             [simple   uint 8  'statusCommand']
         ]
         ['U16Z8FlowRate' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'flowRate']
             [simple   uint 8  'statusCommand']
         ]
         ['U16Z8Counter' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'counterValue']
             [simple   uint 8  'statusCommand']
         ]
         ['U16Z8ElectricCurrent' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'electricalCurrent']
             [simple   uint 8  'statusCommand']
         ]
         ['U16Z8Power' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'power']
             [simple   uint 8  'statusCommand']
         ]
         ['U16Z8AtmPressure' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'atmPressure']
             [simple   uint 8  'statusCommand']
         ]
         ['U16Z8PercentValue' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'percentValue']
             [simple   uint 8  'statusCommand']
         ]
         ['U16Z8HvacAirQuality' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'ppmResolution']
             [simple   uint 8  'statusCommand']
         ]
         ['U16Z8WindSpeed' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'windSpeed']
             [simple   uint 8  'statusCommand']
         ]
         ['U16Z8SunIntensity' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'sunIntensity']
             [simple   uint 8  'statusCommand']
         ]
         ['U16Z8HvacAirFlow' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'airFlow']
             [simple   uint 8  'statusCommand']
         ]
         ['V8Z8RelSignedValue' Struct
+            [reserved uint 8  '0x0']
             [simple   int 8  'relSignedValue']
             [simple   uint 8 'statusCommand']
         ]
         ['V16Z8DeltaTime' Struct
+            [reserved uint 8  '0x0']
             [simple   int  16 'deltaTime']
             [simple   uint 8  'statusCommand']
         ]
         ['V16Z8RelSignedValue' Struct
+            [reserved uint 8  '0x0']
             [simple   int  16 'relSignedValue']
             [simple   uint 8  'statusCommand']
         ]
         ['U16N8HvacModeAndTimeDelay' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16   'delayTime']
             [simple   uint 8    'hvacMode']
         ]
         ['U16N8DhwModeAndTimeDelay' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16   'delayTime']
             [simple   uint 8    'dhwMode']
         ]
         ['U16N8OccupancyModeAndTimeDelay' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16   'delayTime']
             [simple   uint 8    'occupationMode']
         ]
         ['U16N8BuildingModeAndTimeDelay' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16   'delayTime']
             [simple   uint 8    'buildingMode']
         ]
         ['U8B8StatusBurnerController' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8    'actualRelativePower']
             [reserved uint 4    '0x00']
             [simple   bit       'stage2Active']
@@ -690,18 +744,21 @@
             [simple   bit       'actualRelativePowerValid']
         ]
         ['U8B8LockingSignal' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8    'requestedPowerReduction']
             [reserved uint 6    '0x00']
             [simple   bit       'critical']
             [simple   bit       'requestedPowerReductionValid']
         ]
         ['U8B8BoilerControllerDemandSignal' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8    'relativeDemand']
             [reserved uint 6    '0x00']
             [simple   bit       'controlsOperationStage2']
             [simple   bit       'controlsOperationStage1']
         ]
         ['U8B8ActuatorPositionDemand' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8    'actuatorPositionDemand']
             [reserved uint 4    '0x00']
             [simple   bit       'emergencyDemand']
@@ -710,6 +767,7 @@
             [simple   bit       'actuatorPositionDemandValid']
         ]
         ['U8B8ActuatorPositionStatus' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8    'actualActuatorPosition']
             [reserved uint 3    '0x00']
             [simple   bit       'synchronizationMode']
@@ -719,6 +777,7 @@
             [simple   bit       'failure']
         ]
         ['U8B8StatusLightingActuator' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8    'lightingLevel']
             [simple   bit       'failure']
             [simple   bit       'localOverride']
@@ -730,6 +789,7 @@
             [simple   bit       'lightingLevelValid']
         ]
         ['V16B8HeatProducerManagerStatus' Struct
+            [reserved uint 8  '0x0']
             [simple   float 4.11 'tempFlowProdSegmH']
             [reserved uint 3     '0x00']
             [simple   bit        'temporarilyOff']
@@ -739,6 +799,7 @@
             [simple   bit        'tempFlowProdSegmHValid']
         ]
         ['V16B8RoomTemperatureDemand' Struct
+            [reserved uint 8  '0x0']
             [simple   float 4.11 'roomTemperatureDemand']
             [reserved uint 4     '0x00']
             [simple   bit        'emergencyDemand']
@@ -747,6 +808,7 @@
             [simple   bit        'roomTemperatureDemandValid']
         ]
         ['V16B8ColdWaterProducerManagerStatus' Struct
+            [reserved uint 8  '0x0']
             [simple   float 4.11 'flowTemperatureProdSegmC']
             [reserved uint 4     '0x00']
             [simple   bit        'temporarilyOff']
@@ -755,6 +817,7 @@
             [simple   bit        'flowTemperatureProdSegmCValid']
         ]
         ['V16B8WaterTemperatureControllerStatus' Struct
+            [reserved uint 8  '0x0']
             [simple   float 4.11 'actualTemperature']
             [reserved uint 5     '0x00']
             [simple   bit        'controllerWorking']
@@ -762,6 +825,7 @@
             [simple   bit        'actualTemperatureValid']
         ]
         ['V16B16' Struct
+            [reserved uint 8  '0x0']
             [simple   float 4.11 'flowTemperatureDemand']
             [reserved uint 4     '0x00']
             [simple   bit        'demandFromDhwWhileLegionellaFunctionIsActive']
@@ -778,38 +842,45 @@
             [simple   bit        'flowTemperatureDemandValid']
         ]
         ['U8N8' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8  'energyDemand']
             [simple   uint 8  'actualControllerMode']
         ]
         ['V16V16V16RoomTemperature' Struct
+            [reserved uint 8  '0x0']
             [simple   float 4.11 'temperatureSetpointComfort']
             [simple   float 4.11 'temperatureSetpointStandby']
             [simple   float 4.11 'temperatureSetpointEco']
         ]
         ['V16V16V16RoomTemperatureShift' Struct
+            [reserved uint 8  '0x0']
             [simple   float 4.11 'temperatureSetpointShiftComfort']
             [simple   float 4.11 'temperatureSetpointShiftStandby']
             [simple   float 4.11 'temperatureSetpointShiftEco']
         ]
         ['V16V16V16V16RoomTemperature' Struct
+            [reserved uint 8  '0x0']
             [simple   float 4.11 'temperatureSetpointComfort']
             [simple   float 4.11 'temperatureSetpointStandby']
             [simple   float 4.11 'temperatureSetpointEco']
             [simple   float 4.11 'temperatureSetpointBProt']
         ]
         ['V16V16V16V16DhwtTemperature' Struct
+            [reserved uint 8  '0x0']
             [simple   float 4.11 'temperatureSetpointLegioProtect']
             [simple   float 4.11 'temperatureSetpointNormal']
             [simple   float 4.11 'temperatureSetpointReduced']
             [simple   float 4.11 'temperatureSetpointFrostProtect']
         ]
         ['V16V16V16V16RoomTemperatureShift' Struct
+            [reserved uint 8  '0x0']
             [simple   float 4.11 'temperatureSetpointShiftComfort']
             [simple   float 4.11 'temperatureSetpointShiftStandby']
             [simple   float 4.11 'temperatureSetpointShiftEco']
             [simple   float 4.11 'temperatureSetpointShiftBProt']
         ]
         ['V16U8B8Heat' Struct
+            [reserved uint 8  '0x0']
             [simple   int 16  'flowTemperatureDemand']
             [simple   uint 8  'relativePower']
             [reserved uint 2  '0x00']
@@ -821,6 +892,7 @@
             [simple   bit     'flowTemperatureDemandValid']
         ]
         ['V16U8B8ChilledWater' Struct
+            [reserved uint 8  '0x0']
             [simple   int 16  'chilledWaterFlowTemperatureDemand']
             [simple   uint 8  'relativePower']
             [reserved uint 5  '0x00']
@@ -829,6 +901,7 @@
             [simple   bit     'chilledWaterFlowTemperatureDemandValid']
         ]
         ['V16U8B16Boiler' Struct
+            [reserved uint 8  '0x0']
             [simple   int 16  'tempBoiler']
             [simple   uint 8  'relativePower']
             [reserved uint 4  '0x00']
@@ -846,6 +919,7 @@
             [simple   bit     'tempBoilerValid']
         ]
         ['V16U8B16Chiller' Struct
+            [reserved uint 8  '0x0']
             [simple   int 16  'tempChiller']
             [simple   uint 8  'relativePower']
             [reserved uint 8  '0x00']
@@ -859,6 +933,7 @@
             [simple   bit     'tempChillerValid']
         ]
         ['U16U8N8B8' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'nominalPower']
             [simple   uint 8  'relativePowerLimit']
             [simple   int  8  'burnerType']
@@ -868,19 +943,23 @@
             [simple   bit     'oil']
         ]
         ['U5U5U6' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 5 'magicNumber']
             [simple   uint 5 'versionNumber']
             [simple   uint 6 'revisionNumber']
         ]
         ['V32Z8VolumeLiter' Struct
+            [reserved uint 8  '0x0']
             [simple   int  32 'volumeLiter']
             [simple   uint 8  'statusCommand']
         ]
         ['V32Z8FlowRate' Struct
+            [reserved uint 8  '0x0']
             [simple   int  32 'flowRate']
             [simple   uint 8  'statusCommand']
         ]
         ['U8N8N8N8B8B8' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8 'logNumber']
             [simple   uint 8 'alarmPriority']
             [simple   uint 8 'applicationArea']
@@ -896,43 +975,52 @@
             [simple   bit    'inAlarm']
         ]
         ['U16V16' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'delayTime']
             [simple   int  16 'temperature']
         ]
         ['N16U32' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'manufacturerCode']
             [simple   uint 32 'incrementedNumber']
         ]
         ['F16F16F16' Struct
+            [reserved uint 8  '0x0']
             [simple   float 4.11 'temperatureSetpointComfort']
             [simple   float 4.11 'temperatureSetpointShiftStandby']
             [simple   float 4.11 'temperatureSetpointShiftEco']
         ]
         ['V8N8N8' Struct
+            [reserved uint 8  '0x0']
             [simple   int  8  'energyDemand']
             [simple   uint 8  'hvacControllerMode']
             [simple   uint 8  'hvacEmergencyMode']
         ]
         ['V16V16N8N8' Struct
+            [reserved uint 8  '0x0']
             [simple   int  16 'tempSetpointCooling']
             [simple   int  16 'tempSetpointHeating']
             [simple   uint 8  'hvacControllerMode']
             [simple   uint 8  'hvacEmergencyMode']
         ]
         ['U16U8Scaling' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'timePeriod']
             [simple   uint 8  'percent']
         ]
         ['U16U8TariffNext' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16 'delayTime']
             [simple   uint 8  'tariff']
         ]
         ['V32N8Z8' Struct
+            [reserved uint 8  '0x0']
             [simple   int  32 'countVal']
             [simple   uint 8  'valInfField']
             [simple   uint 8  'statusOrCommand']
         ]
         ['U16U32U8N8' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 16  'manufacturerId']
             [simple   uint 32  'identNumber']
             [simple   uint 8   'version']
@@ -940,21 +1028,26 @@
             [simple   int  8   'medium']
         ]
         ['A8A8A8A8' Struct
+            [reserved uint 8  '0x0']
             [simple   string 16 'ASCII' 'languageCode']
             [simple   string 16 'ASCII' 'regionCode']
         ]
         ['U8U8U8' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8  'red']
             [simple   uint 8  'green']
             [simple   uint 8  'blue']
         ]
         ['A8A8Language' Struct
+            [reserved uint 8  '0x0']
             [simple   string 16 'ASCII' 'languageCode']
         ]
         ['A8A8Region' Struct
+            [reserved uint 8  '0x0']
             [simple   string 16 'ASCII' 'regionCode']
         ]
         ['V32U8B8' Struct
+            [reserved uint 8  '0x0']
             [simple   int  32 'activeElectricalEnergy']
             [simple   uint 8  'tariff']
             [reserved uint 6  '0x00']
@@ -962,6 +1055,7 @@
             [simple   bit     'noActiveElectricalEnergy']
         ]
         ['B1N3N4' Struct
+            [reserved uint 8  '0x0']
             [simple   bit     'deactivationOfPriority']
             [simple   uint 3  'priorityLevel']
             [simple   uint 4  'modeLevel']
@@ -976,16 +1070,19 @@
             [simple   uint 6  'address']
         ]
         ['B2U6' Struct
+            [reserved uint 8  '0x0']
             [simple   bit     'sceneActivationInactive']
             [simple   bit     'storageFunctionDisable']
             [simple   uint 6  'sceneNumber']
         ]
         ['U8r7B1' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8  'setValue']
             [reserved uint 7  '0x00']
             [simple   bit     'channelActivationActive']
         ]
         ['U8U8B8' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8  'heightPosition']
             [simple   uint 8  'slatsPosition']
             [reserved uint 6  '0x00']
@@ -993,6 +1090,7 @@
             [simple   bit     'validHeightPos']
         ]
         ['U8U8B16' Struct
+            [reserved uint 8  '0x0']
             [simple   uint 8  'heightPosition']
             [simple   uint 8  'slatsPosition']
             [simple   bit     'validSlatsPos']