268 lines
19 KiB
XML
268 lines
19 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<KNX xmlns="http://knx.org/xml/project/20" CreatedBy="KNX MT" ToolVersion="5.1.255.16695">
|
|
<ManufacturerData>
|
|
<Manufacturer RefId="M-00FA">
|
|
<Catalog>
|
|
<CatalogSection Id="M-00FA_CS-1" Name="Geräte" Number="1" DefaultLanguage="de">
|
|
<CatalogItem Id="%CatalogItemId%" Name="SmartHomeDisplay" Number="1" ProductRefId="%ProductId%" Hardware2ProgramRefId="%Hardware2ProgramId%" DefaultLanguage="de" />
|
|
</CatalogSection>
|
|
</Catalog>
|
|
<ApplicationPrograms>
|
|
<ApplicationProgram Id="%AID%" ApplicationNumber="712" ApplicationVersion="1" ReplacesVersions="0" ProgramType="ApplicationProgram" MaskVersion="MV-07B0" Name="SmartHomeDisplay" LoadProcedureStyle="MergedProcedure" PeiType="0" DefaultLanguage="de" DynamicTableManagement="false" Linkable="true" MinEtsVersion="5.0">
|
|
<Static>
|
|
<Code>
|
|
<RelativeSegment Id="%AID%_RS-04-00000" Name="Parameters" Offset="0" Size="%MemorySize%" LoadStateMachine="4" />
|
|
</Code>
|
|
<ParameterTypes>
|
|
<!-- the following ParameterTypes are from a productive example -->
|
|
<!-- simple integer type -->
|
|
<ParameterType Id="%AID%_PT-DelaySeconds" Name="DelaySeconds">
|
|
<TypeNumber SizeInBit="32" Type="signedInt" minInclusive="0" maxInclusive="86400" />
|
|
</ParameterType>
|
|
<!-- enumeration with 16-bit (word) values -->
|
|
<ParameterType Id="%AID%_PT-DelaySelection" Name="DelaySelection">
|
|
<TypeRestriction Base="Value" SizeInBit="16">
|
|
<Enumeration Text="1 Sekunde" Value="1" Id="%AID%_PT-DelaySelection_EN-0" />
|
|
<Enumeration Text="2 Sekunden" Value="2" Id="%AID%_PT-DelaySelection_EN-1" />
|
|
<Enumeration Text="5 Sekunden" Value="5" Id="%AID%_PT-DelaySelection_EN-2" />
|
|
<Enumeration Text="10 Sekunden" Value="10" Id="%AID%_PT-DelaySelection_EN-3" />
|
|
<Enumeration Text="30 Sekunden" Value="30" Id="%AID%_PT-DelaySelection_EN-4" />
|
|
<Enumeration Text="1 Minute" Value="60" Id="%AID%_PT-DelaySelection_EN-5" />
|
|
<Enumeration Text="2 Minuten" Value="120" Id="%AID%_PT-DelaySelection_EN-6" />
|
|
<Enumeration Text="5 Minuten" Value="300" Id="%AID%_PT-DelaySelection_EN-7" />
|
|
<Enumeration Text="10 Minuten" Value="600" Id="%AID%_PT-DelaySelection_EN-8" />
|
|
<Enumeration Text="30 Minuten" Value="1800" Id="%AID%_PT-DelaySelection_EN-9" />
|
|
<Enumeration Text="manuelle Eingabe (Sekundengenau)" Value="0" Id="%AID%_PT-DelaySelection_EN-10" />
|
|
</TypeRestriction>
|
|
</ParameterType>
|
|
<!-- Demo ParameterTypes to show available possibilities -->
|
|
<!-- Parameter type for text parameter, just for descriptions in ETS, is not transferred to device -->
|
|
<ParameterType Id="%AID%_PT-Text40Byte" Name="Text40Byte">
|
|
<TypeText SizeInBit="320" />
|
|
</ParameterType>
|
|
<!-- Parameter type for 1 bit parameter, presented as checkbox -->
|
|
<ParameterType Id="%AID%_PT-CheckBox" Name="CheckBox">
|
|
<TypeNumber SizeInBit="1" Type="unsignedInt" minInclusive="0" maxInclusive="1" UIHint="CheckBox" />
|
|
</ParameterType>
|
|
<!-- Parameter type for 1 bit parameter, presented as radio button -->
|
|
<ParameterType Id="%AID%_PT-YesNo" Name="YesNo">
|
|
<TypeRestriction Base="Value" SizeInBit="1">
|
|
<Enumeration Text="Nein" Value="0" Id="%AID%_PT-YesNo_EN-0" />
|
|
<Enumeration Text="Ja" Value="1" Id="%AID%_PT-YesNo_EN-1" />
|
|
</TypeRestriction>
|
|
</ParameterType>
|
|
<!-- Parameter type for an 8 bit percent parameter -->
|
|
<ParameterType Id="%AID%_PT-Percentage" Name="Percentage">
|
|
<TypeNumber SizeInBit="8" Type="signedInt" minInclusive="0" maxInclusive="100" />
|
|
</ParameterType>
|
|
<!-- Parameter type for an 16 bit float value like temperature -->
|
|
<ParameterType Id="%AID%_PT-ValueDpt9" Name="ValueDpt9">
|
|
<TypeFloat Encoding="IEEE-754 Single" minInclusive="-671088" maxInclusive="670760" />
|
|
</ParameterType>
|
|
<!-- Parameter type for an 8 bit enumeration -->
|
|
<ParameterType Id="%AID%_PT-DptSelect" Name="DptSelect">
|
|
<TypeRestriction Base="Value" SizeInBit="8">
|
|
<Enumeration Text="DPT 5.001 (1 Byte, Prozentwert)" Value="5" Id="%AID%_PT-DptSelect_EN-0" />
|
|
<Enumeration Text="DPT 9.007 (2 Byte, Fließkommawert)" Value="9" Id="%AID%_PT-DptSelect_EN-1" />
|
|
</TypeRestriction>
|
|
</ParameterType>
|
|
</ParameterTypes>
|
|
<Parameters>
|
|
<!-- the follwoing 3 parameters represent a productive example -->
|
|
<!-- A parameter to enter manually a number of seconds -->
|
|
<Parameter Id="%AID%_P-1" Name="StartupDelay" ParameterType="%AID%_PT-DelaySeconds" Text=" Zeit (Sekundengenau)" SuffixText="Sekunden" Value="10">
|
|
<!-- offset has always to start with 0 -->
|
|
<Memory CodeSegment="%AID%_RS-04-00000" Offset="0" BitOffset="0" />
|
|
</Parameter>
|
|
<!-- A parameter to choose predefined seconds from a dropdown -->
|
|
<Parameter Id="%AID%_P-2" Name="StartupDelaySelection" ParameterType="%AID%_PT-DelaySelection" Text="Zeit bis das Gerät nach einem Neustart aktiv wird" Value="10">
|
|
<!-- you have to calculate the right offset according to size of the used type -->
|
|
<Memory CodeSegment="%AID%_RS-04-00000" Offset="4" BitOffset="0" />
|
|
</Parameter>
|
|
<!-- A parameter to enter manually a number of seconds -->
|
|
<Parameter Id="%AID%_P-3" Name="Heartbeat" ParameterType="%AID%_PT-DelaySeconds" Text="'In Betrieb'-Telegramm senden alle" SuffixText="Sekunden" Value="300">
|
|
<Memory CodeSegment="%AID%_RS-04-00000" Offset="6" BitOffset="0" />
|
|
</Parameter>
|
|
<!-- additional demo parametes to show available possibilities -->
|
|
<!-- 1-Bit parameter usage, to choose, which sensors are attached -->
|
|
<Parameter Id="%AID%_P-4" Name="TemperatureSensor" ParameterType="%AID%_PT-CheckBox" Text="Temperatursensor" Value="0">
|
|
<Memory CodeSegment="%AID%_RS-04-00000" Offset="10" BitOffset="0" />
|
|
</Parameter>
|
|
<!-- Both parameters write into the same parameter byte, but at different BitOffsets!!! -->
|
|
<Parameter Id="%AID%_P-5" Name="HumiditySensor" ParameterType="%AID%_PT-CheckBox" Text="Luftfeuchtesensor" Value="0">
|
|
<Memory CodeSegment="%AID%_RS-04-00000" Offset="10" BitOffset="1" />
|
|
</Parameter>
|
|
<!-- A parameter to enter (informational) text, this parameter is not transferred to the device (no memory block reference) -->
|
|
<Parameter Id="%AID%_P-6" Name="TemperatureText" ParameterType="%AID%_PT-Text40Byte" Text="Bezeichnung des Temperatursensors" Value="Temperatur" />
|
|
<!-- A parameter for a float value -->
|
|
<Parameter Id="%AID%_P-7" Name="TemperatureAlign" ParameterType="%AID%_PT-ValueDpt9" Text="Temperaturwert anpassen" Value="0">
|
|
<Memory CodeSegment="%AID%_RS-04-00000" Offset="11" BitOffset="0" />
|
|
</Parameter>
|
|
<Parameter Id="%AID%_P-8" Name="HumidityText" ParameterType="%AID%_PT-Text40Byte" Text="Bezeichnung des Luftfeuchtesensors" Value="Luftfeuchte" />
|
|
<Parameter Id="%AID%_P-9" Name="HumidityAlign" ParameterType="%AID%_PT-ValueDpt9" Text="Luftfeuchte anpassen" Value="0">
|
|
<Memory CodeSegment="%AID%_RS-04-00000" Offset="13" BitOffset="0" />
|
|
</Parameter>
|
|
<!-- A parameter with a 8 bit dropdown, allows selection of a dpt for output -->
|
|
<Parameter Id="%AID%_P-10" Name="HumiditySend" ParameterType="%AID%_PT-DptSelect" Text="Wert senden als" Value="9">
|
|
<Memory CodeSegment="%AID%_RS-04-00000" Offset="15" BitOffset="0" />
|
|
</Parameter>
|
|
</Parameters>
|
|
<ParameterRefs>
|
|
<!-- ParameterRef have to be defined for each parameter, pay attention, that the ID-part (number) after R- is unique! -->
|
|
<!-- ParameterRef are used in the ETS UI -->
|
|
<ParameterRef Id="%AID%_P-1_R-1" RefId="%AID%_P-1" />
|
|
<ParameterRef Id="%AID%_P-2_R-2" RefId="%AID%_P-2" />
|
|
<ParameterRef Id="%AID%_P-3_R-3" RefId="%AID%_P-3" />
|
|
<ParameterRef Id="%AID%_P-4_R-4" RefId="%AID%_P-4" />
|
|
<ParameterRef Id="%AID%_P-5_R-5" RefId="%AID%_P-5" />
|
|
<ParameterRef Id="%AID%_P-6_R-6" RefId="%AID%_P-6" />
|
|
<ParameterRef Id="%AID%_P-7_R-7" RefId="%AID%_P-7" />
|
|
<ParameterRef Id="%AID%_P-8_R-8" RefId="%AID%_P-8" />
|
|
<ParameterRef Id="%AID%_P-9_R-9" RefId="%AID%_P-9" />
|
|
<ParameterRef Id="%AID%_P-10_R-10" RefId="%AID%_P-10" />
|
|
</ParameterRefs>
|
|
<ComObjectTable>
|
|
<!-- ComObject sending a 'still alive' signal, DPT 1 (1 bit) -->
|
|
<ComObject Id="%AID%_O-1" Name="Heartbeat" Text="In Betieb" Number="1" FunctionText="Ausgang (zyklisch)" ObjectSize="1 Bit" ReadFlag="Enabled" WriteFlag="Disabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" UpdateFlag="Disabled" ReadOnInitFlag="Disabled" DatapointType="DPST-1-2" />
|
|
<!-- ComOject sending a temperature (float) value, DPT 9.001 (2 Bytes) -->
|
|
<ComObject Id="%AID%_O-2" Name="Temperature" Text="Temperaturmesswert" Number="2" FunctionText="Ausgang" ObjectSize="2 Bytes" ReadFlag="Enabled" WriteFlag="Disabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" UpdateFlag="Disabled" ReadOnInitFlag="Disabled" DatapointType="DPST-9-1" />
|
|
<!-- ComObject sending a humidity value, DPT and Size are taken from according ComObjectRef, see comment there -->
|
|
<ComObject Id="%AID%_O-3" Name="Humidity" Text="Luftfeuchtemesswert" Number="3" FunctionText="Ausgang" ReadFlag="Enabled" WriteFlag="Disabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" UpdateFlag="Disabled" ReadOnInitFlag="Disabled" />
|
|
<!-- ComObject as an input example, alows the requert of all measured values at once -->
|
|
<ComObject Id="%AID%_O-4" Name="Request" Text="Alle Messwerte anfordern" Number="4" FunctionText="Eingang" ObjectSize="1 Bit" ReadFlag="Disabled" WriteFlag="Enabled" CommunicationFlag="Enabled" TransmitFlag="Disabled" UpdateFlag="Enabled" ReadOnInitFlag="Disabled" DatapointType="DPST-1-16" />
|
|
</ComObjectTable>
|
|
<ComObjectRefs>
|
|
<!-- A ComObjecdtRef is necessary for each ComObject, ComObjectRef are used in the ETS UI -->
|
|
<ComObjectRef Id="%AID%_O-1_R-1" RefId="%AID%_O-1" />
|
|
<ComObjectRef Id="%AID%_O-2_R-2" RefId="%AID%_O-2" />
|
|
<!-- There mitght be more that one ComObjectRef for a ComObject, like here, the two different ComObjectRef define different Size and DPT for ComObject 3 -->
|
|
<!-- If there is more than one ComObjectRef for a specific ComObject, you have to ensure, that exactly one of them is visible in the UI -->
|
|
<ComObjectRef Id="%AID%_O-3_R-31" RefId="%AID%_O-3" ObjectSize="1 Byte" DatapointType="DPST-5-1" />
|
|
<ComObjectRef Id="%AID%_O-3_R-32" RefId="%AID%_O-3" ObjectSize="2 Bytes" DatapointType="DPST-9-7" />
|
|
<ComObjectRef Id="%AID%_O-4_R-4" RefId="%AID%_O-4" />
|
|
</ComObjectRefs>
|
|
<AddressTable MaxEntries="65535" />
|
|
<AssociationTable MaxEntries="65535" />
|
|
<LoadProcedures>
|
|
<LoadProcedure MergeId="2">
|
|
<LdCtrlRelSegment LsmIdx="4" Size="%MemorySize%" Mode="1" Fill="0" AppliesTo="full" />
|
|
<LdCtrlRelSegment LsmIdx="4" Size="%MemorySize%" Mode="0" Fill="0" AppliesTo="par" />
|
|
</LoadProcedure>
|
|
<LoadProcedure MergeId="4">
|
|
<LdCtrlWriteRelMem ObjIdx="4" Offset="0" Size="%MemorySize%" Verify="true" AppliesTo="full,par" />
|
|
</LoadProcedure>
|
|
<LoadProcedure MergeId="7">
|
|
<LdCtrlLoadImageProp ObjIdx="1" PropId="27" />
|
|
<LdCtrlLoadImageProp ObjIdx="2" PropId="27" />
|
|
<LdCtrlLoadImageProp ObjIdx="3" PropId="27" />
|
|
<LdCtrlLoadImageProp ObjIdx="4" PropId="27" />
|
|
</LoadProcedure>
|
|
</LoadProcedures>
|
|
<Options />
|
|
</Static>
|
|
<!-- Here statrs the UI definition -->
|
|
<Dynamic>
|
|
<!-- The following block is always there -->
|
|
<ChannelIndependentBlock>
|
|
<!-- A parameter block represents a tab on the left side, showing a page full of parameters -->
|
|
<ParameterBlock Id="%AID%_PB-1" Name="Docu" Text="Documentation">
|
|
<!-- In this example the first Tab shows some documentation -->
|
|
<ParameterSeparator Id="%AID%_PS-1" Text="Kurze Einführung:" />
|
|
<!-- A parameter seperator shows just some text -->
|
|
<ParameterSeparator Id="%AID%_PS-2" Text="Das Gerät kann ein 'In Betrieb'-Telegramm in einstellbarer Zeit senden." />
|
|
<ParameterSeparator Id="%AID%_PS-3" Text="Die Zeit, bis das Gerät nach einem Neustart erstmals meldet, ist einstellbar." />
|
|
<ParameterSeparator Id="%AID%_PS-4" Text="Es erlaubt die Auswahl der installierten Sensoren." />
|
|
<ParameterSeparator Id="%AID%_PS-5" Text="Pro Sensor können weitere Einstellugnen auf den dann erscheinenden Tabs gemacht werden." />
|
|
</ParameterBlock>
|
|
<!-- A tab page with general settings -->
|
|
<ParameterBlock Id="%AID%_PB-2" Name="General" Text="Allgemeine Parameter">
|
|
<!-- The first Parameter allows the entry of heartbeat cycle -->
|
|
<ParameterRefRef RefId="%AID%_P-3_R-3" />
|
|
<!-- conditional element referencing the content of above parameter -->
|
|
<choose ParamRefId="%AID%_P-3_R-3">
|
|
<!-- if the content of the parameter is not equal zero, the following block is shown -->
|
|
<when test="!=0">
|
|
<!-- this means: ComObject 'Heartbeat' is just shown, if the user entered a valid cycle time -->
|
|
<ComObjectRefRef RefId="%AID%_O-1_R-1" />
|
|
</when>
|
|
</choose>
|
|
<!-- Parameter to choose startup delay -->
|
|
<ParameterRefRef RefId="%AID%_P-2_R-2" />
|
|
<choose ParamRefId="%AID%_P-2_R-2">
|
|
<when test="0">
|
|
<!-- This means: If the user cooses manual entry in the dropdown, we display the 'manual entry' parameter -->
|
|
<ParameterRefRef RefId="%AID%_P-1_R-1" />
|
|
</when>
|
|
</choose>
|
|
<!-- A ParameterSeparator with an empty text is presented as a line -->
|
|
<ParameterSeparator Id="%AID%_PS-1" Text=" " />
|
|
<ParameterSeparator Id="%AID%_PS-2" Text="Angeschlossene Sensoren:" />
|
|
<!-- Checkboxes for sensor selection -->
|
|
<ParameterRefRef RefId="%AID%_P-4_R-4" />
|
|
<ParameterRefRef RefId="%AID%_P-5_R-5" />
|
|
</ParameterBlock>
|
|
</ChannelIndependentBlock>
|
|
<choose ParamRefId="%AID%_P-4_R-4">
|
|
<when test="1">
|
|
<!-- Channels are used to present group of tabs, here just as an example with one tab -->
|
|
<!-- this channel is within a choose block, it is displayed just in case the temperaturesensor is installed -->
|
|
<Channel Id="%AID%_CH-1" Name="Temperature" Number="1" Text="Temperatursensor">
|
|
<!-- This is a tab within a channel -->
|
|
<ParameterBlock Id="%AID%_PB-3" Name="Temp" Text="Einstellungen">
|
|
<!-- Display temperature settings -->
|
|
<ParameterRefRef RefId="%AID%_P-6_R-6" />
|
|
<ParameterRefRef RefId="%AID%_P-7_R-7" />
|
|
<!-- ...and according ComObjects -->
|
|
<ComObjectRefRef RefId="%AID%_O-2_R-2" />
|
|
<ComObjectRefRef RefId="%AID%_O-4_R-4" />
|
|
</ParameterBlock>
|
|
</Channel>
|
|
</when>
|
|
</choose>
|
|
<!-- same as above for humidity -->
|
|
<choose ParamRefId="%AID%_P-5_R-5">
|
|
<when test="1">
|
|
<Channel Id="%AID%_CH-2" Name="Humidity" Number="2" Text="Luftfeuchtesensor">
|
|
<ParameterBlock Id="%AID%_PB-4" Name="Hum" Text="Einstellungen">
|
|
<!-- display humidity settings -->
|
|
<ParameterRefRef RefId="%AID%_P-8_R-8" />
|
|
<ParameterRefRef RefId="%AID%_P-9_R-9" />
|
|
<ParameterRefRef RefId="%AID%_P-10_R-10" />
|
|
<!-- The output DPT depends on the chosen value in the dropdown -->
|
|
<choose ParamRefId="%AID%_P-10_R-10">
|
|
<when test="5">
|
|
<!-- Use DPT 5 ComOjbect -->
|
|
<ComObjectRefRef RefId="%AID%_O-3_R-31" />
|
|
</when>
|
|
<when test="9">
|
|
<!-- Use DPT 9 ComObject -->
|
|
<ComObjectRefRef RefId="%AID%_O-3_R-32" />
|
|
</when>
|
|
</choose>
|
|
<!-- ComObjects might be enabled more than once, they appear of course just once -->
|
|
<ComObjectRefRef RefId="%AID%_O-4_R-4" />
|
|
</ParameterBlock>
|
|
</Channel>
|
|
</when>
|
|
</choose>
|
|
</Dynamic>
|
|
</ApplicationProgram>
|
|
</ApplicationPrograms>
|
|
<Hardware>
|
|
<Hardware Id="%HardwareId%" Name="SmartHomeDisplay" SerialNumber="712" VersionNumber="1" BusCurrent="10" HasIndividualAddress="true" HasApplicationProgram="true">
|
|
<Products>
|
|
<Product Id="%ProductId%" Text="SmartHomeDisplay" OrderNumber="712" IsRailMounted="false" DefaultLanguage="de">
|
|
<RegistrationInfo RegistrationStatus="Registered" />
|
|
</Product>
|
|
</Products>
|
|
<Hardware2Programs>
|
|
<Hardware2Program Id="%Hardware2ProgramId%" MediumTypes="MT-0">
|
|
<ApplicationProgramRef RefId="%AID%" />
|
|
<RegistrationInfo RegistrationStatus="Registered" RegistrationNumber="0001/%HardwareVersionEncoded%1" />
|
|
</Hardware2Program>
|
|
</Hardware2Programs>
|
|
</Hardware>
|
|
</Hardware>
|
|
</Manufacturer>
|
|
</ManufacturerData>
|
|
</KNX> |