#pragma once


#define paramDelay(time) (uint32_t)( \
            (time & 0xC000) == 0xC000 ? (time & 0x3FFF) * 100 : \
            (time & 0xC000) == 0x0000 ? (time & 0x3FFF) * 1000 : \
            (time & 0xC000) == 0x4000 ? (time & 0x3FFF) * 60000 : \
            (time & 0xC000) == 0x8000 ? ((time & 0x3FFF) > 1000 ? 3600000 : \
                                         (time & 0x3FFF) * 3600000 ) : 0 )
                                             
#define MAIN_FirmwareName "SmartHomeDisplay"
#define MAIN_OpenKnxId 0xAB
#define MAIN_ApplicationNumber 206
#define MAIN_ApplicationVersion 4
#define MAIN_ApplicationEncoding iso-8859-15
#define MAIN_ParameterSize 2188
#define MAIN_MaxKoNumber 9069
#define MAIN_OrderNumber "IA4313"
// Parameter with single occurrence


#define SC_Section_Count                        0      // uint8_t

// Anzahl Bereiche
#define ParamSC_Section_Count                       (knx.paramByte(SC_Section_Count))

#define SC_ChannelCount 9

// Parameter per channel
#define SC_ParamBlockOffset 1
#define SC_ParamBlockSize 243
#define SC_ParamCalcIndex(index) (index + SC_ParamBlockOffset + _channelIndex * SC_ParamBlockSize)

#define SC_pChkTemperatur                      59      // 1 Bit, Bit 7
#define     SC_pChkTemperaturMask 0x80
#define     SC_pChkTemperaturShift 7
#define SC_pChkLuftfeuchtigkeit                59      // 1 Bit, Bit 6
#define     SC_pChkLuftfeuchtigkeitMask 0x40
#define     SC_pChkLuftfeuchtigkeitShift 6
#define SC_pChkPraesenz                        59      // 1 Bit, Bit 5
#define     SC_pChkPraesenzMask 0x20
#define     SC_pChkPraesenzShift 5
#define SC_pChkFensterkontakt                  59      // 1 Bit, Bit 4
#define     SC_pChkFensterkontaktMask 0x10
#define     SC_pChkFensterkontaktShift 4
#define SC_pChkSolltemperatur                  59      // 1 Bit, Bit 3
#define     SC_pChkSolltemperaturMask 0x08
#define     SC_pChkSolltemperaturShift 3
#define SC_pChkHeizungsventil                  59      // 1 Bit, Bit 2
#define     SC_pChkHeizungsventilMask 0x04
#define     SC_pChkHeizungsventilShift 2
#define SC_pChkSteckdose1                      59      // 1 Bit, Bit 1
#define     SC_pChkSteckdose1Mask 0x02
#define     SC_pChkSteckdose1Shift 1
#define SC_pChkSteckdose2                      59      // 1 Bit, Bit 0
#define     SC_pChkSteckdose2Mask 0x01
#define     SC_pChkSteckdose2Shift 0
#define SC_pChkLicht1                          60      // 1 Bit, Bit 7
#define     SC_pChkLicht1Mask 0x80
#define     SC_pChkLicht1Shift 7
#define SC_pChkLicht2                          60      // 1 Bit, Bit 6
#define     SC_pChkLicht2Mask 0x40
#define     SC_pChkLicht2Shift 6
#define SC_pChkDimmen1                         60      // 1 Bit, Bit 5
#define     SC_pChkDimmen1Mask 0x20
#define     SC_pChkDimmen1Shift 5
#define SC_pChkDimmen2                         60      // 1 Bit, Bit 4
#define     SC_pChkDimmen2Mask 0x10
#define     SC_pChkDimmen2Shift 4
#define SC_pChkJalousie1                       60      // 1 Bit, Bit 3
#define     SC_pChkJalousie1Mask 0x08
#define     SC_pChkJalousie1Shift 3
#define SC_pChkJalousie2                       60      // 1 Bit, Bit 2
#define     SC_pChkJalousie2Mask 0x04
#define     SC_pChkJalousie2Shift 2
#define SC_pChkCO2                             60      // 1 Bit, Bit 1
#define     SC_pChkCO2Mask 0x02
#define     SC_pChkCO2Shift 1
#define SC_pChkHelligkeit                      60      // 1 Bit, Bit 0
#define     SC_pChkHelligkeitMask 0x01
#define     SC_pChkHelligkeitShift 0
#define SC_pChkSzene                           61      // 1 Bit, Bit 7
#define     SC_pChkSzeneMask 0x80
#define     SC_pChkSzeneShift 7
#define SC_fAFunctionType                      62      // 1 Bit, Bit 7
#define     SC_fAFunctionTypeMask 0x80
#define     SC_fAFunctionTypeShift 7
#define SC_fAOOnKODpt                          63      // 8 Bits, Bit 7-0
#define SC_fBFunctionType                      82      // 1 Bit, Bit 7
#define     SC_fBFunctionTypeMask 0x80
#define     SC_fBFunctionTypeShift 7
#define SC_fBOOnKODpt                          83      // 8 Bits, Bit 7-0
#define SC_fCFunctionType                      102      // 1 Bit, Bit 7
#define     SC_fCFunctionTypeMask 0x80
#define     SC_fCFunctionTypeShift 7
#define SC_fCOOnKODpt                          103      // 8 Bits, Bit 7-0
#define SC_fDFunctionType                      122      // 1 Bit, Bit 7
#define     SC_fDFunctionTypeMask 0x80
#define     SC_fDFunctionTypeShift 7
#define SC_fDOOnKODpt                          123      // 8 Bits, Bit 7-0
#define SC_fEFunctionType                      142      // 1 Bit, Bit 7
#define     SC_fEFunctionTypeMask 0x80
#define     SC_fEFunctionTypeShift 7
#define SC_fEOOnKODpt                          143      // 8 Bits, Bit 7-0
#define SC_fFFunctionType                      162      // 1 Bit, Bit 7
#define     SC_fFFunctionTypeMask 0x80
#define     SC_fFFunctionTypeShift 7
#define SC_fFOOnKODpt                          163      // 8 Bits, Bit 7-0
#define SC_fGFunctionType                      182      // 1 Bit, Bit 7
#define     SC_fGFunctionTypeMask 0x80
#define     SC_fGFunctionTypeShift 7
#define SC_fGOOnKODpt                          183      // 8 Bits, Bit 7-0
#define SC_fHFunctionType                      202      // 1 Bit, Bit 7
#define     SC_fHFunctionTypeMask 0x80
#define     SC_fHFunctionTypeShift 7
#define SC_fHOOnKODpt                          203      // 8 Bits, Bit 7-0
#define SC_fIFunctionType                      222      // 1 Bit, Bit 7
#define     SC_fIFunctionTypeMask 0x80
#define     SC_fIFunctionTypeShift 7
#define SC_fIOOnKODpt                          223      // 8 Bits, Bit 7-0
#define SC_fJFunctionType                      242      // 1 Bit, Bit 7
#define     SC_fJFunctionTypeMask 0x80
#define     SC_fJFunctionTypeShift 7
#define SC_fJOOnKODpt                          243      // 8 Bits, Bit 7-0

// Temperatur
#define ParamSC_pChkTemperatur                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkTemperatur)) & SC_pChkTemperaturMask))
// Luftfeuchtigkeit
#define ParamSC_pChkLuftfeuchtigkeit                ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkLuftfeuchtigkeit)) & SC_pChkLuftfeuchtigkeitMask))
// Präsenz
#define ParamSC_pChkPraesenz                        ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkPraesenz)) & SC_pChkPraesenzMask))
// Fensterkontakt
#define ParamSC_pChkFensterkontakt                  ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkFensterkontakt)) & SC_pChkFensterkontaktMask))
// Solltemperatur
#define ParamSC_pChkSolltemperatur                  ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkSolltemperatur)) & SC_pChkSolltemperaturMask))
// Heizungsventil
#define ParamSC_pChkHeizungsventil                  ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkHeizungsventil)) & SC_pChkHeizungsventilMask))
// Steckdose 1
#define ParamSC_pChkSteckdose1                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkSteckdose1)) & SC_pChkSteckdose1Mask))
// Steckdose 2
#define ParamSC_pChkSteckdose2                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkSteckdose2)) & SC_pChkSteckdose2Mask))
// Licht 1
#define ParamSC_pChkLicht1                          ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkLicht1)) & SC_pChkLicht1Mask))
// Licht 2
#define ParamSC_pChkLicht2                          ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkLicht2)) & SC_pChkLicht2Mask))
// Dimmen 1
#define ParamSC_pChkDimmen1                         ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkDimmen1)) & SC_pChkDimmen1Mask))
// Dimmen 2
#define ParamSC_pChkDimmen2                         ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkDimmen2)) & SC_pChkDimmen2Mask))
// Jalousie 1
#define ParamSC_pChkJalousie1                       ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkJalousie1)) & SC_pChkJalousie1Mask))
// Jalousie 2
#define ParamSC_pChkJalousie2                       ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkJalousie2)) & SC_pChkJalousie2Mask))
// CO2
#define ParamSC_pChkCO2                             ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkCO2)) & SC_pChkCO2Mask))
// Helligkeit
#define ParamSC_pChkHelligkeit                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkHelligkeit)) & SC_pChkHelligkeitMask))
// Szene
#define ParamSC_pChkSzene                           ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_pChkSzene)) & SC_pChkSzeneMask))
// Funktionstyp
#define ParamSC_fAFunctionType                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_fAFunctionType)) & SC_fAFunctionTypeMask))
//     DPT des Kommunikationsobjekts
#define ParamSC_fAOOnKODpt                          (knx.paramByte(SC_ParamCalcIndex(SC_fAOOnKODpt)))
// Funktionstyp
#define ParamSC_fBFunctionType                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_fBFunctionType)) & SC_fBFunctionTypeMask))
//     DPT des Kommunikationsobjekts
#define ParamSC_fBOOnKODpt                          (knx.paramByte(SC_ParamCalcIndex(SC_fBOOnKODpt)))
// Funktionstyp
#define ParamSC_fCFunctionType                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_fCFunctionType)) & SC_fCFunctionTypeMask))
//     DPT des Kommunikationsobjekts
#define ParamSC_fCOOnKODpt                          (knx.paramByte(SC_ParamCalcIndex(SC_fCOOnKODpt)))
// Funktionstyp
#define ParamSC_fDFunctionType                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_fDFunctionType)) & SC_fDFunctionTypeMask))
//     DPT des Kommunikationsobjekts
#define ParamSC_fDOOnKODpt                          (knx.paramByte(SC_ParamCalcIndex(SC_fDOOnKODpt)))
// Funktionstyp
#define ParamSC_fEFunctionType                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_fEFunctionType)) & SC_fEFunctionTypeMask))
//     DPT des Kommunikationsobjekts
#define ParamSC_fEOOnKODpt                          (knx.paramByte(SC_ParamCalcIndex(SC_fEOOnKODpt)))
// Funktionstyp
#define ParamSC_fFFunctionType                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_fFFunctionType)) & SC_fFFunctionTypeMask))
//     DPT des Kommunikationsobjekts
#define ParamSC_fFOOnKODpt                          (knx.paramByte(SC_ParamCalcIndex(SC_fFOOnKODpt)))
// Funktionstyp
#define ParamSC_fGFunctionType                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_fGFunctionType)) & SC_fGFunctionTypeMask))
//     DPT des Kommunikationsobjekts
#define ParamSC_fGOOnKODpt                          (knx.paramByte(SC_ParamCalcIndex(SC_fGOOnKODpt)))
// Funktionstyp
#define ParamSC_fHFunctionType                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_fHFunctionType)) & SC_fHFunctionTypeMask))
//     DPT des Kommunikationsobjekts
#define ParamSC_fHOOnKODpt                          (knx.paramByte(SC_ParamCalcIndex(SC_fHOOnKODpt)))
// Funktionstyp
#define ParamSC_fIFunctionType                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_fIFunctionType)) & SC_fIFunctionTypeMask))
//     DPT des Kommunikationsobjekts
#define ParamSC_fIOOnKODpt                          (knx.paramByte(SC_ParamCalcIndex(SC_fIOOnKODpt)))
// Funktionstyp
#define ParamSC_fJFunctionType                      ((bool)(knx.paramByte(SC_ParamCalcIndex(SC_fJFunctionType)) & SC_fJFunctionTypeMask))
//     DPT des Kommunikationsobjekts
#define ParamSC_fJOOnKODpt                          (knx.paramByte(SC_ParamCalcIndex(SC_fJOOnKODpt)))

// deprecated
#define SC_KoOffset 10

// Communication objects per channel (multiple occurrence)
#define SC_KoBlockOffset 10
#define SC_KoBlockSize 59

#define SC_KoCalcNumber(index) (index + SC_KoBlockOffset + _channelIndex * SC_KoBlockSize)
#define SC_KoCalcIndex(number) ((number >= SC_KoCalcNumber(0) && number < SC_KoCalcNumber(SC_KoBlockSize)) ? (number - SC_KoBlockOffset) % SC_KoBlockSize : -1)
#define SC_KoCalcChannel(number) ((number >= SC_KoBlockOffset && number < SC_KoBlockOffset + SC_ChannelCount * SC_KoBlockSize) ? (number - SC_KoBlockOffset) / SC_KoBlockSize : -1)

#define SC_KoKoS%CC%000 %CCC%0
#define SC_KoKoS%CC%001 %CCC%1
#define SC_KoKoS%CC%002 %CCC%2
#define SC_KoKoS%CC%003 %CCC%3
#define SC_KoKoS%CC%004 %CCC%4
#define SC_KoKoS%CC%005 %CCC%5
#define SC_KoKoS%CC%006 %CCC%6
#define SC_KoKoS%CC%007 %CCC%7
#define SC_KoKoS%CC%008 %CCC%8
#define SC_KoKoS%CC%009 %CCC%9
#define SC_KoKoS%CC%010 %CCC%10
#define SC_KoKoS%CC%011 %CCC%11
#define SC_KoKoS%CC%012 %CCC%12
#define SC_KoKoS%CC%013 %CCC%13
#define SC_KoKoS%CC%014 %CCC%14
#define SC_KoKoS%CC%015 %CCC%15
#define SC_KoKoS%CC%016 %CCC%16
#define SC_KoKoS%CC%017 %CCC%17
#define SC_KoKoS%CC%018 %CCC%18
#define SC_KoKoS%CC%019 %CCC%19
#define SC_KoKoS%CC%020 %CCC%20
#define SC_KoKoS%CC%021 %CCC%21
#define SC_KoKoS%CC%022 %CCC%22
#define SC_KoKoS%CC%023 %CCC%23
#define SC_KoKoS%CC%024 %CCC%24
#define SC_KoKoS%CC%025 %CCC%25
#define SC_KoKoS%CC%026 %CCC%26
#define SC_KoKoS%CC%027 %CCC%27
#define SC_KoKoS%CC%028 %CCC%28
#define SC_KoKoS%CC%029 %CCC%29
#define SC_KoKoS%CC%030 %CCC%30
#define SC_KoKoS%CC%031 %CCC%31
#define SC_KoKoS%CC%032 %CCC%32
#define SC_KoKoS%CC%033 %CCC%33
#define SC_KoKoS%CC%034 %CCC%34
#define SC_KoKoS%CC%035 %CCC%35
#define SC_KoKoS%CC%036 %CCC%36
#define SC_KoKoS%CC%037 %CCC%37
#define SC_KoKoS%CC%038 %CCC%38
#define SC_KoKOf-%TT%%CC%100__ %C%050
#define SC_KoKOf-%TT%%CC%101__ %C%051
#define SC_KoKOf-%TT%%CC%200__ %C%052
#define SC_KoKOf-%TT%%CC%201__ %C%053
#define SC_KoKOf-%TT%%CC%300__ %C%054
#define SC_KoKOf-%TT%%CC%301__ %C%055
#define SC_KoKOf-%TT%%CC%400__ %C%056
#define SC_KoKOf-%TT%%CC%401__ %C%057
#define SC_KoKOf-%TT%%CC%500__ %C%058
#define SC_KoKOf-%TT%%CC%501__ %C%059
#define SC_KoKOf-%TT%%CC%600__ %C%060
#define SC_KoKOf-%TT%%CC%601__ %C%061
#define SC_KoKOf-%TT%%CC%700__ %C%062
#define SC_KoKOf-%TT%%CC%701__ %C%063
#define SC_KoKOf-%TT%%CC%800__ %C%064
#define SC_KoKOf-%TT%%CC%801__ %C%065
#define SC_KoKOf-%TT%%CC%900__ %C%066
#define SC_KoKOf-%TT%%CC%901__ %C%067
#define SC_KoKOf-%TT%%CC%1000__ %C%068
#define SC_KoKOf-%TT%%CC%1001__ %C%069

// Temperatur
#define KoSC_KoS%CC%000                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%000)))
// Luftfeuchtigkeit
#define KoSC_KoS%CC%001                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%001)))
// Präsenz
#define KoSC_KoS%CC%002                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%002)))
// Fensterkontakt
#define KoSC_KoS%CC%003                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%003)))
// Solltemperatur
#define KoSC_KoS%CC%004                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%004)))
// Heizungsventil
#define KoSC_KoS%CC%005                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%005)))
// Steckdose 1 Schalten
#define KoSC_KoS%CC%006                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%006)))
// Steckdose 1 Status
#define KoSC_KoS%CC%007                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%007)))
// Steckdose 2 Schalten
#define KoSC_KoS%CC%008                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%008)))
// Steckdose 2 Status
#define KoSC_KoS%CC%009                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%009)))
// Licht 1 Schalten
#define KoSC_KoS%CC%010                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%010)))
// Licht 1 Status
#define KoSC_KoS%CC%011                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%011)))
// Licht 2 Schalten
#define KoSC_KoS%CC%012                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%012)))
// Licht 2 Status
#define KoSC_KoS%CC%013                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%013)))
// Dimmen 1 Schalten
#define KoSC_KoS%CC%014                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%014)))
// Dimmen 1 Wert
#define KoSC_KoS%CC%015                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%015)))
// Dimmen 1 Status
#define KoSC_KoS%CC%016                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%016)))
// Dimmen 2 Schalten
#define KoSC_KoS%CC%017                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%017)))
// Dimmen 2 Wert
#define KoSC_KoS%CC%018                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%018)))
// Dimmen 2 Status
#define KoSC_KoS%CC%019                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%019)))
// Jalousie 1 Auf/Ab
#define KoSC_KoS%CC%020                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%020)))
// Jalousie 1 Position
#define KoSC_KoS%CC%021                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%021)))
// Jalousie 1 Pos. Status
#define KoSC_KoS%CC%022                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%022)))
// Jalousie 2 Auf/Ab
#define KoSC_KoS%CC%023                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%023)))
// Jalousie 2 Position
#define KoSC_KoS%CC%024                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%024)))
// Jalousie 2 Pos. Status
#define KoSC_KoS%CC%025                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%025)))
// CO2
#define KoSC_KoS%CC%026                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%026)))
// Helligkeit
#define KoSC_KoS%CC%027                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%027)))
// Szene
#define KoSC_KoS%CC%028                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%028)))
// Temperatur Ausgang
#define KoSC_KoS%CC%029                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%029)))
// Luftfeuchtigkeit Ausgang
#define KoSC_KoS%CC%030                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%030)))
// Heizungsventil Ausgang
#define KoSC_KoS%CC%031                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%031)))
// CO2 Ausgang
#define KoSC_KoS%CC%032                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%032)))
// Helligkeit Ausgang
#define KoSC_KoS%CC%033                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%033)))
// Solltemperatur Ausgang
#define KoSC_KoS%CC%034                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%034)))
// Dimmen 1 Ausgang
#define KoSC_KoS%CC%035                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%035)))
// Dimmen 2 Ausgang
#define KoSC_KoS%CC%036                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%036)))
// Jalousie 1 Ausgang
#define KoSC_KoS%CC%037                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%037)))
// Jalousie 2 Ausgang
#define KoSC_KoS%CC%038                          (knx.getGroupObject(SC_KoCalcNumber(SC_KoKoS%CC%038)))
// Eingang %CC%050
#define KoSC_KOf-%TT%%CC%100__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%100__)))
// Ausgang %CC%051
#define KoSC_KOf-%TT%%CC%101__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%101__)))
// Eingang %CC%052
#define KoSC_KOf-%TT%%CC%200__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%200__)))
// Ausgang %CC%053
#define KoSC_KOf-%TT%%CC%201__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%201__)))
// Eingang %CC%054
#define KoSC_KOf-%TT%%CC%300__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%300__)))
// Ausgang %CC%055
#define KoSC_KOf-%TT%%CC%301__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%301__)))
// Eingang %CC%056
#define KoSC_KOf-%TT%%CC%400__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%400__)))
// Ausgang %CC%057
#define KoSC_KOf-%TT%%CC%401__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%401__)))
// Eingang %CC%058
#define KoSC_KOf-%TT%%CC%500__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%500__)))
// Ausgang %CC%059
#define KoSC_KOf-%TT%%CC%501__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%501__)))
// Eingang %CC%060
#define KoSC_KOf-%TT%%CC%600__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%600__)))
// Ausgang %CC%061
#define KoSC_KOf-%TT%%CC%601__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%601__)))
// Eingang %CC%062
#define KoSC_KOf-%TT%%CC%700__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%700__)))
// Ausgang %CC%063
#define KoSC_KOf-%TT%%CC%701__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%701__)))
// Eingang %CC%064
#define KoSC_KOf-%TT%%CC%800__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%800__)))
// Ausgang %CC%065
#define KoSC_KOf-%TT%%CC%801__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%801__)))
// Eingang %CC%066
#define KoSC_KOf-%TT%%CC%900__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%900__)))
// Ausgang %CC%067
#define KoSC_KOf-%TT%%CC%901__                   (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%901__)))
// Eingang %CC%068
#define KoSC_KOf-%TT%%CC%1000__                  (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%1000__)))
// Ausgang %CC%069
#define KoSC_KOf-%TT%%CC%1001__                  (knx.getGroupObject(SC_KoCalcNumber(SC_KoKOf-%TT%%CC%1001__)))



#define BASE_KoTime 1
#define BASE_KoDate 2
#define BASE_KoDateTime 3
#define BASE_KoNight/Day 4

// Uhrzeit
#define KoBASE_Time                                (knx.getGroupObject(BASE_KoTime))
// Datum
#define KoBASE_Date                                (knx.getGroupObject(BASE_KoDate))
// Uhrzeit/Datum
#define KoBASE_DateTime                            (knx.getGroupObject(BASE_KoDateTime))
// Nacht/Tag
#define KoBASE_Night/Day                           (knx.getGroupObject(BASE_KoNight/Day))

#ifdef MAIN_FirmwareRevision
#ifndef FIRMWARE_REVISION
#define FIRMWARE_REVISION MAIN_FirmwareRevision
#endif
#endif
#ifdef MAIN_FirmwareName
#ifndef FIRMWARE_NAME
#define FIRMWARE_NAME MAIN_FirmwareName
#endif
#endif
