#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 4861 #define MAIN_MaxKoNumber 20069 #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 20 // 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 49 #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_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))) // 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