diff --git a/HMserver/etc/config_templates/log4j.xml b/HMserver/etc/config_templates/log4j.xml index df776ffe..4cb59917 100644 --- a/HMserver/etc/config_templates/log4j.xml +++ b/HMserver/etc/config_templates/log4j.xml @@ -1,38 +1,38 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HMserver/etc/init.d b/HMserver/etc/init.d index f6c93315..39ec1388 100644 --- a/HMserver/etc/init.d +++ b/HMserver/etc/init.d @@ -5,6 +5,8 @@ LOGLEVEL_HMServer=5 CFG_TEMPLATE_DIR=/etc/config_templates +PIDFILE=/var/run/HMIPServer.pid +STARTWAITFILE=/var/status/HMServerStarted init() { export TZ=`cat /etc/config/TZ | cut -d'-' -f1 | cut -d'+' -f1` @@ -18,13 +20,16 @@ init() { start() { echo -n "Starting HMServer: " init - start-stop-daemon -S -q -p /var/run/HMServer.pid --exec java -- -Xmx32m -Dlog4j.configuration=file:///etc/config/log4j.xml -Dfile.encoding=ISO-8859-1 -jar /opt/HMServer/HMServer.jar & - sleep 135 + start-stop-daemon -S -q -m -p $PIDFILE --exec java -- -Xmx64m -Dlog4j.configuration=file:///etc/config/log4j.xml -Dfile.encoding=ISO-8859-1 -jar /opt/HMServer/HMIPServer.jar /etc/crRFD.conf & + echo "Waiting for HMServer to get ready" + eq3configcmd wait-for-file -f $STARTWAITFILE -p 5 -t 135 echo "OK" } stop() { echo -n "Stopping HMServer: " - start-stop-daemon -K -q -p /var/run/HMServer.pid + rm -f $STARTWAITFILE + start-stop-daemon -K -q -p $PIDFILE + rm -f $PIDFILE echo "OK" } restart() { diff --git a/HMserver/opt/HMServer/HMIPServer.jar b/HMserver/opt/HMServer/HMIPServer.jar new file mode 100644 index 00000000..205b8c40 Binary files /dev/null and b/HMserver/opt/HMServer/HMIPServer.jar differ diff --git a/HMserver/opt/HMServer/HMServer.jar b/HMserver/opt/HMServer/HMServer.jar index 6759de5f..8145527d 100644 Binary files a/HMserver/opt/HMServer/HMServer.jar and b/HMserver/opt/HMServer/HMServer.jar differ diff --git a/HMserver/opt/HMServer/groups/groupdefinitions.xml b/HMserver/opt/HMServer/groups/groupdefinitions.xml index fa29eedd..65f8d663 100644 --- a/HMserver/opt/HMServer/groups/groupdefinitions.xml +++ b/HMserver/opt/HMServer/groups/groupdefinitions.xml @@ -36,6 +36,9 @@ + + + HomeMatic.heating diff --git a/HMserver/opt/HMServer/measurement/templates.dit b/HMserver/opt/HMServer/measurement/templates.dit index 72ac5457..96f7a8fb 100644 --- a/HMserver/opt/HMServer/measurement/templates.dit +++ b/HMserver/opt/HMServer/measurement/templates.dit @@ -1,566 +1,566 @@ -[ - { - "id" : "1", - "name" : "${diagramTemplate1}", - "description" : "${diagramTemplateDescription1}", - "seriesTemplate" : - { - grid: { - drawGridlines: true, - gridLineColor: "#cccccc", - gridLineWidth: 1, - backgroundColor: "#e6edff", - borderColor: "#999999", - borderWidth: 2, - shadow: true - }, - animate : false, - animateReplot: false, - axes : - { - xaxis : - { - tickOptions : - { - formatString : '%d.%m.%y %H:%M', - angle : 37 - } - } - }, - cursor: - { - show: true, - zoom: true, - showTooltip: true - }, - legend: - { - show: true, - location: 'ne', - placement: 'insideGrid', - xoffset: 12, - yoffset: 12, - rendererOptions: - { - seriesToggle: 'normal', - seriesToggleReplot: - { - resetAxes: false - } - } - }, - seriesDefaults : - { - markerOptions : - { - style: 'filledCircle' - } - }, - series : - [ - { - lineWidth: 1, - showMarker: false, - rendererOptions: - { - smooth: true - } - } - ] - } - }, - { - "id" : "2", - "name" : "${diagramTemplate2}", - "description" : "${diagramTemplateDescription2}", - "seriesTemplate" : - { - grid: { - drawGridlines: true, - gridLineColor: "#cccccc", - gridLineWidth: 1, - backgroundColor: "#fff6ed", - borderColor: "#999999", - borderWidth: 2, - shadow: true - }, - animate : false, - animateReplot: false, - axes : - { - xaxis : - { - tickOptions : - { - formatString : '%d.%m.%y %H:%M', - angle : 37 - } - } - }, - cursor: - { - show: true, - zoom: true, - showTooltip: true - }, - legend: - { - show: true, - location: 'ne', - placement: 'insideGrid', - xoffset: 12, - yoffset: 12, - rendererOptions: - { - seriesToggle: 'normal', - seriesToggleReplot: - { - resetAxes: false - } - } - }, - seriesDefaults : - { - markerOptions : - { - style: 'filledCircle' - } - }, - series : - [ - { - lineWidth: 1, - showMarker: false, - rendererOptions: - { - smooth: true - } - } - ] - } - }, - { - "id" : "3", - "name" : "${diagramTemplate3}", - "description" : "${diagramTemplateDescription3}", - "seriesTemplate" : - { - grid: { - drawGridlines: true, - gridLineColor: "#cccccc", - gridLineWidth: 1, - backgroundColor: "#e6edff", - borderColor: "#999999", - borderWidth: 2, - shadow: true - }, - animate : false, - animateReplot: false, - axes : - { - xaxis : - { - tickOptions : - { - formatString : '%d.%m.%y %H:%M', - angle : 37 - } - } - }, - cursor: - { - show: true, - zoom: true, - showTooltip: true - }, - legend: - { - show: true, - location: 'ne', - placement: 'insideGrid', - xoffset: 12, - yoffset: 12, - rendererOptions: - { - seriesToggle: 'normal', - seriesToggleReplot: - { - resetAxes: false - } - } - }, - seriesDefaults : - { - markerOptions : - { - style: 'filledCircle' - } - }, - series : - [ - { - lineWidth: 2, - showMarker: false, - rendererOptions: - { - smooth: true - } - } - ] - } - }, - { - "id" : "4", - "name" : "${diagramTemplate4}", - "description" : "${diagramTemplateDescription4}", - "seriesTemplate" : - { - grid: { - drawGridlines: true, - gridLineColor: "#cccccc", - gridLineWidth: 1, - backgroundColor: "#fff6ed", - borderColor: "#999999", - borderWidth: 2, - shadow: true - }, - animate : false, - animateReplot: false, - axes : - { - xaxis : - { - tickOptions : - { - formatString : '%d.%m.%y %H:%M', - angle : 37 - } - } - }, - cursor: - { - show: true, - zoom: true, - showTooltip: true - }, - legend: - { - show: true, - location: 'ne', - placement: 'insideGrid', - xoffset: 12, - yoffset: 12, - rendererOptions: - { - seriesToggle: 'normal', - seriesToggleReplot: - { - resetAxes: false - } - } - }, - seriesDefaults : - { - markerOptions : - { - style: 'filledCircle' - } - }, - series : - [ - { - lineWidth: 2, - showMarker: false, - rendererOptions: - { - smooth: true - } - } - ] - } - }, - { - "id" : "5", - "name" : "${diagramTemplate5}", - "description" : "${diagramTemplateDescription5}", - "seriesTemplate" : - { - grid: { - drawGridlines: true, - gridLineColor: "#cccccc", - gridLineWidth: 1, - backgroundColor: "#e6edff", - borderColor: "#999999", - borderWidth: 2, - shadow: true - }, - animate : false, - animateReplot: false, - axes : - { - xaxis : - { - tickOptions : - { - formatString : '%d.%m.%y %H:%M', - angle : 37 - } - } - }, - cursor: - { - show: true, - zoom: true, - showTooltip: true - }, - legend: - { - show: true, - location: 's', - placement: 'outside', - xoffset: 12, - yoffset: 85, - rendererOptions: - { - seriesToggle: 'normal', - numberColumns: 4, - seriesToggleReplot: - { - resetAxes: false - } - } - }, - seriesDefaults : - { - markerOptions : - { - style: 'filledCircle' - } - }, - series : - [ - { - lineWidth: 1, - showMarker: false, - rendererOptions: - { - smooth: true - } - } - ] - } - }, - { - "id" : "6", - "name" : "${diagramTemplate6}", - "description" : "${diagramTemplateDescription6}", - "seriesTemplate" : - { - grid: { - drawGridlines: true, - gridLineColor: "#cccccc", - gridLineWidth: 1, - backgroundColor: "#fff6ed", - borderColor: "#999999", - borderWidth: 2, - shadow: true - }, - animate : false, - animateReplot: false, - axes : - { - xaxis : - { - tickOptions : - { - formatString : '%d.%m.%y %H:%M', - angle : 37 - } - } - }, - cursor: - { - show: true, - zoom: true, - showTooltip: true - }, - legend: - { - show: true, - location: 's', - placement: 'outside', - xoffset: 12, - yoffset: 85, - rendererOptions: - { - seriesToggle: 'normal', - numberColumns: 4, - seriesToggleReplot: - { - resetAxes: false - } - } - }, - seriesDefaults : - { - markerOptions : - { - style: 'filledCircle' - } - }, - series : - [ - { - lineWidth: 1, - showMarker: false, - rendererOptions: - { - smooth: true - } - } - ] - } - }, - { - "id" : "7", - "name" : "${diagramTemplate7}", - "description" : "${diagramTemplateDescription7}", - "seriesTemplate" : - { - grid: { - drawGridlines: true, - gridLineColor: "#cccccc", - gridLineWidth: 1, - backgroundColor: "#e6edff", - borderColor: "#999999", - borderWidth: 2, - shadow: true - }, - animate : false, - animateReplot: false, - axes : - { - xaxis : - { - tickOptions : - { - formatString : '%d.%m.%y %H:%M', - angle : 37 - } - } - }, - cursor: - { - show: true, - zoom: true, - showTooltip: true - }, - legend: - { - show: true, - location: 's', - placement: 'outside', - xoffset: 12, - yoffset: 85, - rendererOptions: - { - seriesToggle: 'normal', - numberColumns: 4, - seriesToggleReplot: - { - resetAxes: false - } - } - }, - seriesDefaults : - { - markerOptions : - { - style: 'filledCircle' - } - }, - series : - [ - { - lineWidth: 2, - showMarker: false, - rendererOptions: - { - smooth: true - } - } - ] - } - }, - { - "id" : "8", - "name" : "${diagramTemplate8}", - "description" : "${diagramTemplateDescription8}", - "seriesTemplate" : - { - grid: { - drawGridlines: true, - gridLineColor: "#cccccc", - gridLineWidth: 1, - backgroundColor: "#fff6ed", - borderColor: "#999999", - borderWidth: 2, - shadow: true - }, - animate : false, - animateReplot: false, - axes : - { - xaxis : - { - tickOptions : - { - formatString : '%d.%m.%y %H:%M', - angle : 37 - } - } - }, - cursor: - { - show: true, - zoom: true, - showTooltip: true - }, - legend: - { - show: true, - location: 's', - placement: 'outside', - xoffset: 12, - yoffset: 85, - rendererOptions: - { - seriesToggle: 'normal', - numberColumns: 4, - seriesToggleReplot: - { - resetAxes: false - } - } - }, - seriesDefaults : - { - markerOptions : - { - style: 'filledCircle' - } - }, - series : - [ - { - lineWidth: 2, - showMarker: false, - rendererOptions: - { - smooth: true - } - } - ] - } - } +[ + { + "id" : "1", + "name" : "${diagramTemplate1}", + "description" : "${diagramTemplateDescription1}", + "seriesTemplate" : + { + grid: { + drawGridlines: true, + gridLineColor: "#cccccc", + gridLineWidth: 1, + backgroundColor: "#e6edff", + borderColor: "#999999", + borderWidth: 2, + shadow: true + }, + animate : false, + animateReplot: false, + axes : + { + xaxis : + { + tickOptions : + { + formatString : '%d.%m.%y %H:%M', + angle : 37 + } + } + }, + cursor: + { + show: true, + zoom: true, + showTooltip: true + }, + legend: + { + show: true, + location: 'ne', + placement: 'insideGrid', + xoffset: 12, + yoffset: 12, + rendererOptions: + { + seriesToggle: 'normal', + seriesToggleReplot: + { + resetAxes: false + } + } + }, + seriesDefaults : + { + markerOptions : + { + style: 'filledCircle' + } + }, + series : + [ + { + lineWidth: 1, + showMarker: false, + rendererOptions: + { + smooth: true + } + } + ] + } + }, + { + "id" : "2", + "name" : "${diagramTemplate2}", + "description" : "${diagramTemplateDescription2}", + "seriesTemplate" : + { + grid: { + drawGridlines: true, + gridLineColor: "#cccccc", + gridLineWidth: 1, + backgroundColor: "#fff6ed", + borderColor: "#999999", + borderWidth: 2, + shadow: true + }, + animate : false, + animateReplot: false, + axes : + { + xaxis : + { + tickOptions : + { + formatString : '%d.%m.%y %H:%M', + angle : 37 + } + } + }, + cursor: + { + show: true, + zoom: true, + showTooltip: true + }, + legend: + { + show: true, + location: 'ne', + placement: 'insideGrid', + xoffset: 12, + yoffset: 12, + rendererOptions: + { + seriesToggle: 'normal', + seriesToggleReplot: + { + resetAxes: false + } + } + }, + seriesDefaults : + { + markerOptions : + { + style: 'filledCircle' + } + }, + series : + [ + { + lineWidth: 1, + showMarker: false, + rendererOptions: + { + smooth: true + } + } + ] + } + }, + { + "id" : "3", + "name" : "${diagramTemplate3}", + "description" : "${diagramTemplateDescription3}", + "seriesTemplate" : + { + grid: { + drawGridlines: true, + gridLineColor: "#cccccc", + gridLineWidth: 1, + backgroundColor: "#e6edff", + borderColor: "#999999", + borderWidth: 2, + shadow: true + }, + animate : false, + animateReplot: false, + axes : + { + xaxis : + { + tickOptions : + { + formatString : '%d.%m.%y %H:%M', + angle : 37 + } + } + }, + cursor: + { + show: true, + zoom: true, + showTooltip: true + }, + legend: + { + show: true, + location: 'ne', + placement: 'insideGrid', + xoffset: 12, + yoffset: 12, + rendererOptions: + { + seriesToggle: 'normal', + seriesToggleReplot: + { + resetAxes: false + } + } + }, + seriesDefaults : + { + markerOptions : + { + style: 'filledCircle' + } + }, + series : + [ + { + lineWidth: 2, + showMarker: false, + rendererOptions: + { + smooth: true + } + } + ] + } + }, + { + "id" : "4", + "name" : "${diagramTemplate4}", + "description" : "${diagramTemplateDescription4}", + "seriesTemplate" : + { + grid: { + drawGridlines: true, + gridLineColor: "#cccccc", + gridLineWidth: 1, + backgroundColor: "#fff6ed", + borderColor: "#999999", + borderWidth: 2, + shadow: true + }, + animate : false, + animateReplot: false, + axes : + { + xaxis : + { + tickOptions : + { + formatString : '%d.%m.%y %H:%M', + angle : 37 + } + } + }, + cursor: + { + show: true, + zoom: true, + showTooltip: true + }, + legend: + { + show: true, + location: 'ne', + placement: 'insideGrid', + xoffset: 12, + yoffset: 12, + rendererOptions: + { + seriesToggle: 'normal', + seriesToggleReplot: + { + resetAxes: false + } + } + }, + seriesDefaults : + { + markerOptions : + { + style: 'filledCircle' + } + }, + series : + [ + { + lineWidth: 2, + showMarker: false, + rendererOptions: + { + smooth: true + } + } + ] + } + }, + { + "id" : "5", + "name" : "${diagramTemplate5}", + "description" : "${diagramTemplateDescription5}", + "seriesTemplate" : + { + grid: { + drawGridlines: true, + gridLineColor: "#cccccc", + gridLineWidth: 1, + backgroundColor: "#e6edff", + borderColor: "#999999", + borderWidth: 2, + shadow: true + }, + animate : false, + animateReplot: false, + axes : + { + xaxis : + { + tickOptions : + { + formatString : '%d.%m.%y %H:%M', + angle : 37 + } + } + }, + cursor: + { + show: true, + zoom: true, + showTooltip: true + }, + legend: + { + show: true, + location: 's', + placement: 'outside', + xoffset: 12, + yoffset: 85, + rendererOptions: + { + seriesToggle: 'normal', + numberColumns: 4, + seriesToggleReplot: + { + resetAxes: false + } + } + }, + seriesDefaults : + { + markerOptions : + { + style: 'filledCircle' + } + }, + series : + [ + { + lineWidth: 1, + showMarker: false, + rendererOptions: + { + smooth: true + } + } + ] + } + }, + { + "id" : "6", + "name" : "${diagramTemplate6}", + "description" : "${diagramTemplateDescription6}", + "seriesTemplate" : + { + grid: { + drawGridlines: true, + gridLineColor: "#cccccc", + gridLineWidth: 1, + backgroundColor: "#fff6ed", + borderColor: "#999999", + borderWidth: 2, + shadow: true + }, + animate : false, + animateReplot: false, + axes : + { + xaxis : + { + tickOptions : + { + formatString : '%d.%m.%y %H:%M', + angle : 37 + } + } + }, + cursor: + { + show: true, + zoom: true, + showTooltip: true + }, + legend: + { + show: true, + location: 's', + placement: 'outside', + xoffset: 12, + yoffset: 85, + rendererOptions: + { + seriesToggle: 'normal', + numberColumns: 4, + seriesToggleReplot: + { + resetAxes: false + } + } + }, + seriesDefaults : + { + markerOptions : + { + style: 'filledCircle' + } + }, + series : + [ + { + lineWidth: 1, + showMarker: false, + rendererOptions: + { + smooth: true + } + } + ] + } + }, + { + "id" : "7", + "name" : "${diagramTemplate7}", + "description" : "${diagramTemplateDescription7}", + "seriesTemplate" : + { + grid: { + drawGridlines: true, + gridLineColor: "#cccccc", + gridLineWidth: 1, + backgroundColor: "#e6edff", + borderColor: "#999999", + borderWidth: 2, + shadow: true + }, + animate : false, + animateReplot: false, + axes : + { + xaxis : + { + tickOptions : + { + formatString : '%d.%m.%y %H:%M', + angle : 37 + } + } + }, + cursor: + { + show: true, + zoom: true, + showTooltip: true + }, + legend: + { + show: true, + location: 's', + placement: 'outside', + xoffset: 12, + yoffset: 85, + rendererOptions: + { + seriesToggle: 'normal', + numberColumns: 4, + seriesToggleReplot: + { + resetAxes: false + } + } + }, + seriesDefaults : + { + markerOptions : + { + style: 'filledCircle' + } + }, + series : + [ + { + lineWidth: 2, + showMarker: false, + rendererOptions: + { + smooth: true + } + } + ] + } + }, + { + "id" : "8", + "name" : "${diagramTemplate8}", + "description" : "${diagramTemplateDescription8}", + "seriesTemplate" : + { + grid: { + drawGridlines: true, + gridLineColor: "#cccccc", + gridLineWidth: 1, + backgroundColor: "#fff6ed", + borderColor: "#999999", + borderWidth: 2, + shadow: true + }, + animate : false, + animateReplot: false, + axes : + { + xaxis : + { + tickOptions : + { + formatString : '%d.%m.%y %H:%M', + angle : 37 + } + } + }, + cursor: + { + show: true, + zoom: true, + showTooltip: true + }, + legend: + { + show: true, + location: 's', + placement: 'outside', + xoffset: 12, + yoffset: 85, + rendererOptions: + { + seriesToggle: 'normal', + numberColumns: 4, + seriesToggleReplot: + { + resetAxes: false + } + } + }, + seriesDefaults : + { + markerOptions : + { + style: 'filledCircle' + } + }, + series : + [ + { + lineWidth: 2, + showMarker: false, + rendererOptions: + { + smooth: true + } + } + ] + } + } ] \ No newline at end of file diff --git a/HMserver/opt/HMServer/pages/AvailableFirmware.ftl b/HMserver/opt/HMServer/pages/AvailableFirmware.ftl index 89151e36..6fb0dd6a 100644 --- a/HMserver/opt/HMServer/pages/AvailableFirmware.ftl +++ b/HMserver/opt/HMServer/pages/AvailableFirmware.ftl @@ -1,198 +1,201 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - ${deviceRow} - - -
${"$"}{thPicture}${"$"}{thName}${"$"}{thVersion}${"$"}{thMinCCU}${"$"}{thAction}
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + ${deviceRow} + + +
${"$"}{thPicture}${"$"}{thName}${"$"}{thVersion}${"$"}{thMinCCU}${"$"}{thAction}
+ + + + diff --git a/HMserver/opt/HMServer/pages/DiagramControlListPage.ftl b/HMserver/opt/HMServer/pages/DiagramControlListPage.ftl index 0880f8c9..9be391fb 100644 --- a/HMserver/opt/HMServer/pages/DiagramControlListPage.ftl +++ b/HMserver/opt/HMServer/pages/DiagramControlListPage.ftl @@ -1,1406 +1,1427 @@ - - - - - - - - - - - - -
-
- - <#list objectList as diagram> - - - - -
- - - - - - - -
${diagram.name}
${diagram.description}
-
-
-
-
- - - - - - - - -
- - - - - - - -
- - - - - - - - - - -
${"$"}{diagramPeriodCustomStart}${"$"}{diagramPeriodCustomEnd}
- - - - - - - - - - - - - - -
${"$"}{thDiagramSelectTempConsolidationFunction} - - - - - - -
-
- - - - - -
- - - -
- -
- -
${"$"}{diagramLegendExplanationTooltip}
-
${"$"}{diagramLegendExplanationTeaser}
-
${"$"}{diagramPleaseWaitForLoadingNextDiagram}
- -
- + + + + + + + + + + + + +
+
+ + <#list objectList as diagram> + + + + +
+ + + + + + + +
${diagram.name}
${diagram.description}
+
+
+
+
+ + + + + + + + +
+ + + + + + + +
+ + + + + + + + + + +
${"$"}{diagramPeriodCustomStart}${"$"}{diagramPeriodCustomEnd}
+ + + + + + + + + + + + + + + +
${"$"}{thDiagramSelectTempConsolidationFunction} + + + + +
+
+ + + + + + +
+ + + + + +
+ +
+ +
${"$"}{diagramLegendExplanationTooltip}
+
${"$"}{diagramLegendExplanationTeaser}
+
${"$"}{diagramPleaseWaitForLoadingNextDiagram}
+ +
+ \ No newline at end of file diff --git a/HMserver/opt/HMServer/pages/DiagramSettingsDetailPage.ftl b/HMserver/opt/HMServer/pages/DiagramSettingsDetailPage.ftl index ff815251..ddfcd859 100644 --- a/HMserver/opt/HMServer/pages/DiagramSettingsDetailPage.ftl +++ b/HMserver/opt/HMServer/pages/DiagramSettingsDetailPage.ftl @@ -1,576 +1,576 @@ - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
${"$"}{thParameter}${"$"}{thValues}
${"$"}{thDiagramName} - -
${"$"}{thDiagramDescription} - -
${"$"}{thDiagramTemplate} - -
${"$"}{thDiagramDefaultPeriod} - -
${"$"}{thDiagramDefaultConsolidationFunction} - -
${"$"}{thDiagramDisplayedUnit} - -
${"$"}{thDiagramYAxisScalingModeMin} - - - - - - - -
${"$"}{diagramScalingModeAutomatic}
${"$"}{diagramScalingModeCustom} -
-
${"$"}{thDiagramYAxisScalingModeMax} - - - - - - - -
${"$"}{diagramScalingModeAutomatic}
${"$"}{diagramScalingModeCustom} -
-
- - - - - - - - - - - - - - - - <#assign i = 0> - <#list object.dataSources as dataSource> - - - - - - - - - - - <#assign i = i + 1> - - - - - - - - - - <#if object.dataSources?size > 14> - - - - - - - - - - - - - - - <#assign i = 0> - <#list notAssignedDataSources as dataSource> - - - - - - - - - - - <#assign i = i + 1> - - -
- ${"$"}{thDiagramAssignedDataSourceGroups} -
${"$"}{thDiagramDataSourceGroupName}${"$"}{thDiagramDataSourceGroup}${"$"}{thDiagramDataSource}${"$"}{thDiagramDataSourceType}${"$"}{thDiagramDataSourceColor}${"$"}{thAction}
${dataSource.getGroupId()}${"$"}{diagramValueType${dataSource.getKey()}} - - -
-
- ${ - - ${"$"}{thDiagramAllDataSourceGroups} -
- ${"$"}{diagramTooManyDataSources} -
- - -
- + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
${"$"}{thParameter}${"$"}{thValues}
${"$"}{thDiagramName} + +
${"$"}{thDiagramDescription} + +
${"$"}{thDiagramTemplate} + +
${"$"}{thDiagramDefaultPeriod} + +
${"$"}{thDiagramDefaultConsolidationFunction} + +
${"$"}{thDiagramDisplayedUnit} + +
${"$"}{thDiagramYAxisScalingModeMin} + + + + + + + +
${"$"}{diagramScalingModeAutomatic}
${"$"}{diagramScalingModeCustom} +
+
${"$"}{thDiagramYAxisScalingModeMax} + + + + + + + +
${"$"}{diagramScalingModeAutomatic}
${"$"}{diagramScalingModeCustom} +
+
+ + + + + + + + + + + + + + + + <#assign i = 0> + <#list object.dataSources as dataSource> + + + + + + + + + + + <#assign i = i + 1> + + + + + + + + + + <#if object.dataSources?size > 14> + + + + + + + + + + + + + + + <#assign i = 0> + <#list notAssignedDataSources as dataSource> + + + + + + + + + + + <#assign i = i + 1> + + +
+ ${"$"}{thDiagramAssignedDataSourceGroups} +
${"$"}{thDiagramDataSourceGroupName}${"$"}{thDiagramDataSourceGroup}${"$"}{thDiagramDataSource}${"$"}{thDiagramDataSourceType}${"$"}{thDiagramDataSourceColor}${"$"}{thAction}
${dataSource.getGroupId()}${"$"}{diagramValueType${dataSource.getKey()}} + + +
+
+ ${ + + ${"$"}{thDiagramAllDataSourceGroups} +
+ ${"$"}{diagramTooManyDataSources} +
+ + +
+ \ No newline at end of file diff --git a/HMserver/opt/HMServer/pages/DiagramSettingsListPage.ftl b/HMserver/opt/HMServer/pages/DiagramSettingsListPage.ftl index 77a7e0bf..98f05cd8 100644 --- a/HMserver/opt/HMServer/pages/DiagramSettingsListPage.ftl +++ b/HMserver/opt/HMServer/pages/DiagramSettingsListPage.ftl @@ -1,294 +1,294 @@ - - - - - - - - - - - - -
- ${"$"}{diagramDataloggingNotInitialised} -
- - - - -
- ${"$"}{diagramTooManyDiagrams} -
- - - - - - - - - - - - - - <#list objectList as diagram> - - - - - - - - - - - - - - - -
${"$"}{thDiagramName}${"$"}{thDiagramDescription}${"$"}{thDiagramTemplate}${"$"}{thDiagramDefaultPeriod}${"$"}{thAction}
${diagram.name}${diagram.description} - <#list templates as template> - <#if diagram.templateId = template.id>${template.getName()} - - - <#if diagram.defaultPeriod = 1>${"$"}{diagramPeriodLastDay} - <#if diagram.defaultPeriod = 2>${"$"}{diagramPeriodLastWeek} - <#if diagram.defaultPeriod = 3>${"$"}{diagramPeriodLastMonth} - <#if diagram.defaultPeriod = 4>${"$"}{diagramPeriodLastYear} - - - - - - -
- - - - - - - - - - -
- -
-
- -
-
- - - - - - - - - - -
- -
- -
- -
-
-
- - - + + + + + + + + + + + + +
+ ${"$"}{diagramDataloggingNotInitialised} +
+ + + + +
+ ${"$"}{diagramTooManyDiagrams} +
+ + + + + + + + + + + + + + <#list objectList as diagram> + + + + + + + + + + + + + + + +
${"$"}{thDiagramName}${"$"}{thDiagramDescription}${"$"}{thDiagramTemplate}${"$"}{thDiagramDefaultPeriod}${"$"}{thAction}
${diagram.name}${diagram.description} + <#list templates as template> + <#if diagram.templateId = template.id>${template.getName()} + + + <#if diagram.defaultPeriod = 1>${"$"}{diagramPeriodLastDay} + <#if diagram.defaultPeriod = 2>${"$"}{diagramPeriodLastWeek} + <#if diagram.defaultPeriod = 3>${"$"}{diagramPeriodLastMonth} + <#if diagram.defaultPeriod = 4>${"$"}{diagramPeriodLastYear} + + + + + + +
+ + + + + + + + + + +
+ +
+
+ +
+
+ + + + + + + + + + +
+ +
+ +
+ +
+
+
+ + + \ No newline at end of file diff --git a/HMserver/opt/HMServer/pages/GroupChooseDialog.ftl b/HMserver/opt/HMServer/pages/GroupChooseDialog.ftl index 7d8dd014..1671e106 100644 --- a/HMserver/opt/HMServer/pages/GroupChooseDialog.ftl +++ b/HMserver/opt/HMServer/pages/GroupChooseDialog.ftl @@ -1,114 +1,114 @@ - -
${"$"}{groupChooserDialogTitle}
- -
- - - - - - -
${"$"}{groupChooserDialogGroups} - - - - - - - - - - - - - - -
- -
-
-

${"$"}{groupChooserDialogGroupChooseHint}

-
-
- -
- - - - - - -
-
${"$"}{btnCancel}
-
-
${"$"}{btnOk}
-
-
+ +
${"$"}{groupChooserDialogTitle}
+ +
+ + + + + + +
${"$"}{groupChooserDialogGroups} + + + + + + + + + + + + + + +
+ +
+
+

${"$"}{groupChooserDialogGroupChooseHint}

+
+
+ +
+ + + + + + +
+
${"$"}{btnCancel}
+
+
${"$"}{btnOk}
+
+
\ No newline at end of file diff --git a/HMserver/opt/HMServer/pages/GroupConfigureDialog.ftl b/HMserver/opt/HMServer/pages/GroupConfigureDialog.ftl index 8c98ac73..16321221 100644 --- a/HMserver/opt/HMServer/pages/GroupConfigureDialog.ftl +++ b/HMserver/opt/HMServer/pages/GroupConfigureDialog.ftl @@ -1,100 +1,100 @@ - -
-
- - - - response of request with command: removeLink -
-
${"$"}{dialogCreateLinkTitle}
-
-
- - - - - - - - - - - - - - - - - -
${"$"}{thName}${"$"}{thTypeDescriptorWOLineBreak}${"$"}{thPicture}${"$"}{thHint}
-
- -
-
- ${"$"}{dialogCreateLinkErrorContent1} -
    -
  • - ${"$"}{dialogCreateLinkErrorContent2} -
      -
    • ${"$"}{dialogCreateLinkErrorContent3}
    • -
    • ${"$"}{dialogCreateLinkErrorContent4}
    • -
    -
  • -
  • ${"$"}{dialogCreateLinkErrorContent5}
  • -
-
-
-
- ${"$"}{btnDirectDeviceLinkCheckAgain} - ${"$"}{btnDirectDeviceLinkIgnore} -
-
-
-
+ +
+
+ + + + response of request with command: removeLink +
+
${"$"}{dialogCreateLinkTitle}
+
+
+ + + + + + + + + + + + + + + + + +
${"$"}{thName}${"$"}{thTypeDescriptorWOLineBreak}${"$"}{thPicture}${"$"}{thHint}
+
+ +
+
+ ${"$"}{dialogCreateLinkErrorContent1} +
    +
  • + ${"$"}{dialogCreateLinkErrorContent2} +
      +
    • ${"$"}{dialogCreateLinkErrorContent3}
    • +
    • ${"$"}{dialogCreateLinkErrorContent4}
    • +
    +
  • +
  • ${"$"}{dialogCreateLinkErrorContent5}
  • +
+
+
+
+ ${"$"}{btnDirectDeviceLinkCheckAgain} + ${"$"}{btnDirectDeviceLinkIgnore} +
+
+
+
\ No newline at end of file diff --git a/HMserver/opt/HMServer/pages/GroupEditPage.ftl b/HMserver/opt/HMServer/pages/GroupEditPage.ftl index 93ca337e..c9e683ec 100644 --- a/HMserver/opt/HMServer/pages/GroupEditPage.ftl +++ b/HMserver/opt/HMServer/pages/GroupEditPage.ftl @@ -1,533 +1,625 @@ - - - - - - - - - - + + + + + + + + + \ No newline at end of file diff --git a/HMserver/opt/HMServer/pages/GroupListPage.ftl b/HMserver/opt/HMServer/pages/GroupListPage.ftl index a4b98446..35fd21f6 100644 --- a/HMserver/opt/HMServer/pages/GroupListPage.ftl +++ b/HMserver/opt/HMServer/pages/GroupListPage.ftl @@ -1,346 +1,346 @@ - - - - - - - - + + + + + + + \ No newline at end of file diff --git a/HMserver/opt/HMServer/pages/NewDiagramDialog.ftl b/HMserver/opt/HMServer/pages/NewDiagramDialog.ftl index 2bf23d71..bcda65e7 100644 --- a/HMserver/opt/HMServer/pages/NewDiagramDialog.ftl +++ b/HMserver/opt/HMServer/pages/NewDiagramDialog.ftl @@ -1,69 +1,69 @@ - -
${"$"}{dialogNewDiagramTitle}
-
- - - - - -
${"$"}{dialogNewDiagramSettings} - - - - -
- -
-
-
- -
- - - - - -
-
${"$"}{footerBtnPageBack}
-
-
${"$"}{footerBtnOk}
-
-
+ +
${"$"}{dialogNewDiagramTitle}
+
+ + + + + +
${"$"}{dialogNewDiagramSettings} + + + + +
+ +
+
+
+ +
+ + + + + +
+
${"$"}{footerBtnPageBack}
+
+
${"$"}{footerBtnOk}
+
+
diff --git a/HMserver/opt/HMServer/pages/StorageSettingsDialog.ftl b/HMserver/opt/HMServer/pages/StorageSettingsDialog.ftl index f4907c4b..b85c2b20 100644 --- a/HMserver/opt/HMServer/pages/StorageSettingsDialog.ftl +++ b/HMserver/opt/HMServer/pages/StorageSettingsDialog.ftl @@ -1,266 +1,266 @@ - -
${"$"}{dialogSettingsGeneralSettingsTitle}
-
- - - - - - - - - - - - -
${"$"}{dialogSettingsSDCardSettings} - - - - - - - - -
${"$"}{dialogSettingsSDCardStatus}:${SDCardStatus}
-
- - - - - -
-
${"$"}{dialogSettingsStorageSettingsBtnInitaliseSDCard}
-
-
${"$"}{dialogSettingsStorageSettingsBtnBackup}
-
-
- -
-
-

${"$"}{dialogSettingsStorageHintSDCardP1}

-

${"$"}{dialogSettingsStorageHintSDCardP2}

-
- ${"$"}{tdPowerCost} - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- ${"$"}{lblCurrency} - -

${"$"}{lblGeneralSettingsCurrent}
- ${"$"}{lblPowerCost} - - -

${"$"}{lblGeneralSettingsGas}
- ${"$"}{lblPowerCost} - - -
- ${"$"}{lblGeneralSettingsHeatingValue} - - -
- ${"$"}{lblGeneralSettingsConditionNumber} - - -
-

-
${"$"}{btnSavePowerCost}
-
- -
- ${"$"}{helpPowerCost} -
-
- -
- - - - -
-
${"$"}{footerBtnPageBack}
-
-
+ +
${"$"}{dialogSettingsGeneralSettingsTitle}
+
+ + + + + + + + + + + + +
${"$"}{dialogSettingsSDCardSettings} + + + + + + + + +
${"$"}{dialogSettingsSDCardStatus}:${SDCardStatus}
+
+ + + + + +
+
${"$"}{dialogSettingsStorageSettingsBtnInitaliseSDCard}
+
+
${"$"}{dialogSettingsStorageSettingsBtnBackup}
+
+
+ +
+
+

${"$"}{dialogSettingsStorageHintSDCardP1}

+

${"$"}{dialogSettingsStorageHintSDCardP2}

+
+ ${"$"}{tdPowerCost} + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ ${"$"}{lblCurrency} + +

${"$"}{lblGeneralSettingsCurrent}
+ ${"$"}{lblPowerCost} + + +

${"$"}{lblGeneralSettingsGas}
+ ${"$"}{lblPowerCost} + + +
+ ${"$"}{lblGeneralSettingsHeatingValue} + + +
+ ${"$"}{lblGeneralSettingsConditionNumber} + + +
+

+
${"$"}{btnSavePowerCost}
+
+ +
+ ${"$"}{helpPowerCost} +
+
+ +
+ + + + +
+
${"$"}{footerBtnPageBack}
+
+
diff --git a/WebUI/www/api/methods/bidcosrf/setconfiguration-rf.tcl b/WebUI/www/api/methods/bidcosrf/setconfiguration-rf.tcl index 28c26103..70208405 100755 --- a/WebUI/www/api/methods/bidcosrf/setconfiguration-rf.tcl +++ b/WebUI/www/api/methods/bidcosrf/setconfiguration-rf.tcl @@ -1,69 +1,69 @@ -## -# BidCoS_RF.setConfigurationCCU2 -# Setzt die Konfiguration des BidCoS Services. Die Konfiguration wird es -# nach erneutem Starten der HomeMatic Zentrale übernommen. -# -# Parameter: -# interfaces : [array] Jedes Element enthält die Konfiguration eines -# HM-CFG-LAN: -# type : [string] Typ des Interfaces (Lan Interface) -# serialNumber : [string] Seriennummer -# encryptionKey: [string] Zugangsschlüssel -# ipAddress : [string] IP Adresse (Optional) -## - -set result true - -# Read header of current rfd.conf until [Interface 1] (exclusive) -set fd [open /etc/config/rfd.conf r] -while { [gets $fd line] >= 0 } { - if { ![regexp {.*\[Interface [1-9]*\].*} $line ] } then { - append header $line "\n" - } else { - break - } -} -close $fd - - -# Write new file -set fd [open /etc/config/rfd.conf w] - -# Write back header and [Interface 0] section -puts $fd $header - -#Write Lan Interface sections (if any) -set i 1 - -if { [catch { - foreach _interface_ $args(interfaces) { - array set interface $_interface_ - - set type [array_getValue interface type] - set userName [array_getValue interface userName] - set serialNumber [array_getValue interface serialNumber] - set encryptionKey [array_getValue interface encryptionKey] - set ipAddress [array_getValue interface ipAddress] - - puts $fd "\[Interface $i\]" - puts $fd "Type = $type" - puts $fd "Name = $userName" - puts $fd "Serial Number = $serialNumber" - puts $fd "Encryption Key = $encryptionKey" - if { {} != $ipAddress } then { - puts $fd "IP Address = $ipAddress" - } - puts $fd "" - - array_clear interface - incr i - } -} ]} then { - set result false -} - - - -close $fd - -jsonrpc_response $result +## +# BidCoS_RF.setConfigurationCCU2 +# Setzt die Konfiguration des BidCoS Services. Die Konfiguration wird es +# nach erneutem Starten der HomeMatic Zentrale übernommen. +# +# Parameter: +# interfaces : [array] Jedes Element enthält die Konfiguration eines +# HM-CFG-LAN: +# type : [string] Typ des Interfaces (Lan Interface) +# serialNumber : [string] Seriennummer +# encryptionKey: [string] Zugangsschlüssel +# ipAddress : [string] IP Adresse (Optional) +## + +set result true + +# Read header of current rfd.conf until [Interface 1] (exclusive) +set fd [open /etc/config/rfd.conf r] +while { [gets $fd line] >= 0 } { + if { ![regexp {.*\[Interface [1-9]*\].*} $line ] } then { + append header $line "\n" + } else { + break + } +} +close $fd + + +# Write new file +set fd [open /etc/config/rfd.conf w] + +# Write back header and [Interface 0] section +puts $fd $header + +#Write Lan Interface sections (if any) +set i 1 + +if { [catch { + foreach _interface_ $args(interfaces) { + array set interface $_interface_ + + set type [array_getValue interface type] + set userName [array_getValue interface userName] + set serialNumber [array_getValue interface serialNumber] + set encryptionKey [array_getValue interface encryptionKey] + set ipAddress [array_getValue interface ipAddress] + + puts $fd "\[Interface $i\]" + puts $fd "Type = $type" + puts $fd "Name = $userName" + puts $fd "Serial Number = $serialNumber" + puts $fd "Encryption Key = $encryptionKey" + if { {} != $ipAddress } then { + puts $fd "IP Address = $ipAddress" + } + puts $fd "" + + array_clear interface + incr i + } +} ]} then { + set result false +} + + + +close $fd + +jsonrpc_response $result diff --git a/WebUI/www/api/methods/firewall/getconfiguration.tcl b/WebUI/www/api/methods/firewall/getconfiguration.tcl index 0e90ef01..7b204f89 100755 --- a/WebUI/www/api/methods/firewall/getconfiguration.tcl +++ b/WebUI/www/api/methods/firewall/getconfiguration.tcl @@ -29,25 +29,25 @@ set result "\{" set first 1 append result "\"services\": \[" foreach id [array names Firewall_SERVICES] { - array set service $Firewall_SERVICES($id) - - if { 0 == $first } then { append result "," } else { set first 0 } - - append result "\{" - append result "\"id\": [json_toString $id]," - append result "\"access\": [json_toString $service(ACCESS)]," - - set _first 1 - append result "\"ports\": \[" - foreach port $service(PORTS) { - if { 0 == $_first } then { append result "," } else { set _first 0 } - append result $port - } - append result "\]" - - append result "\}" - - array_clear service + array set service $Firewall_SERVICES($id) + + if { 0 == $first } then { append result "," } else { set first 0 } + + append result "\{" + append result "\"id\": [json_toString $id]," + append result "\"access\": [json_toString $service(ACCESS)]," + + set _first 1 + append result "\"ports\": \[" + foreach port $service(PORTS) { + if { 0 == $_first } then { append result "," } else { set _first 0 } + append result $port + } + append result "\]" + + append result "\}" + + array_clear service } append result "\]," @@ -56,8 +56,8 @@ append result "\]," set first 1 append result "\"ips\": \[" foreach ip $Firewall_IPS { - if { 0 == $first } then { append result "," } else { set first 0 } - append result [json_toString $ip] + if { 0 == $first } then { append result "," } else { set first 0 } + append result [json_toString $ip] } append result "\]" diff --git a/WebUI/www/api/methods/firewall/setconfiguration.tcl b/WebUI/www/api/methods/firewall/setconfiguration.tcl index 135dc039..d0882fdf 100755 --- a/WebUI/www/api/methods/firewall/setconfiguration.tcl +++ b/WebUI/www/api/methods/firewall/setconfiguration.tcl @@ -25,19 +25,19 @@ Firewall_loadConfiguration set Firewall_IPS $ips foreach _service $services { - array set service $_service - - set name $service(name) - set access $service(access) - - if { [info exists Firewall_SERVICES($name)] } then { - array set knownService $Firewall_SERVICES($name) - set knownService(ACCESS) $access - set Firewall_SERVICES($name) [array get knownService] - array_clear knownService - } - - array_clear service + array set service $_service + + set name $service(name) + set access $service(access) + + if { [info exists Firewall_SERVICES($name)] } then { + array set knownService $Firewall_SERVICES($name) + set knownService(ACCESS) $access + set Firewall_SERVICES($name) [array get knownService] + array_clear knownService + } + + array_clear service } Firewall_saveConfiguration diff --git a/WebUI/www/config/devdescr/DEVDB.tcl b/WebUI/www/config/devdescr/DEVDB.tcl index 0f78d7ba..7e36aed5 100755 --- a/WebUI/www/config/devdescr/DEVDB.tcl +++ b/WebUI/www/config/devdescr/DEVDB.tcl @@ -1,8 +1,8 @@ #!/bin/tclsh -set DEV_LIST {HM-LC-Sw1-Pl-DN-R3 HM-LC-Sw2-DR {263 146} HM-LC-Sw1-Ba-PCB HM-WS550STH-O HM-RC-2-PBU-FM HM-LC-Sw1-SM-ATmega168 HM-Sen-MDIR-O-2 HM-Sec-Key-S HM-Sec-SD-2-Team HM-PB-4-WM HM-LC-Sw1-Pl-OM54 HM-ES-PMSw1-Pl-DN-R5 HMW-LC-Bl1-DR-2 OLIGO.smart.iq.HM HM-Sec-SD-Team HM-CC-RT-DN HM-LC-Sw1-Pl-CT-R1 HMW-IO-4-FM HM-LC-Dim1L-Pl-2 WS550 HM-LC-Sw1-Pl {ZEL STG RM FSS UP3} HM-LC-Sw1-DR HM-WS550-US HM-LC-Sw4-PCB HM-ES-PMSw1-DR 263_149_/_263_150 HM-ES-PMSw1-Pl-DN-R1 HM-LC-Sw1-SM HmIP-SWDO HM-Dis-TD-T HMW-LC-Sw2-DR HM-RC-4-B HM-LC-Sw4-SM-2 HM-EM-CMM HM-Sec-SC-2 HM-LC-Dim1T-FM HM-PB-6-WM55 {ZEL STG RM FFK} HM-RC-4-2 HM-LC-Dim1L-Pl-644 HM-MOD-EM-8 HM-PB-4Dis-WM HM-CC-VD HM-WDS100-C6-O-2 {263 145} HM-RC-19-SW {263 144} HM-WDS10-TH-O HM-LC-Dim2L-SM-644 HmIP-PS HMW-RCV-50 {263 132} HM-CC-TC HM-WS550ST-IO HM-RC-4-3 HM-WS550STH-I HM-LC-Dim1TPBU-FM-2 HMW-Sen-SC-12-FM HM-LC-Sw4-SM-ATmega168 HM-LC-Dim1L-CV-2 {263 131} HM-Sen-DB-PCB HM-LC-Bl1-SM HM-LC-Dim1T-Pl-3 HmIP-WRC2 HM-Dis-WM55 HM-LC-Dim1T-Pl-2 {263 130} {263 158} HM-LC-Sw1-Pl-DN-R2 HM-LC-Dim1T-CV-644 HMIP-WRC2 {263 157} HM-TC-IT-WM-W-EU HM-PBI-4-FM HM-RC-Sec4-2 HM-RC-Sec3 HM-LC-Sw1-FM {ZEL STG RM WT 2} HM-Sec-SFA-SM HM-WDS30-OT2-SM HMW-LC-Dim1L-DR {ZEL STG RM HS 4} HM-LC-Sw1-PB-FM HMW-Sec-TR-FM HM-LC-DDC1-PCB HM-EM-CCM HM-LC-Sw4-Ba-PCB HM-WDS30-T-O HM-Sen-MDIR-WM55 HM-Sec-MDIR {ZEL STG RM FSA} HM-LC-Sw1-SM-2 HM-CC-VG-1 {263 135} HM-LC-Dim1T-FM-644 {263 167} HM-LC-Bl1-FM HM-ES-PMSw1-Pl-DN-R3 HM-LC-Sw4-PCB-2 HM-LC-Dim1PWM-CV WS888 HM-PB-2-FM HM-Sec-SCo HM-Sec-Key HMW-IO-12-Sw7-DR {ZEL STG RM FWT} HM-Sen-EP HM-LC-Dim1L-Pl-3 HM-Sys-sRP-Pl HM-WDC7000 HM-LC-Dim1T-FM-2 HM-LC-Sw2-FM-2 HM-LC-Sw2-FM {ZEL STG RM FST UP4} HM-RC-Dis-H-x-EU HM-LC-Bl1-SM-2 HM-RC-Key3 HM-PB-2-WM55-2 HM-ES-PMSw1-Pl HM-LC-Sw2-PB-FM HM-Sec-SD-2 HMW-Sen-SC-12-DR HmIP-eTRV HMIP-SWDO HmIP-WTH HM-Sen-Wa-Od HM-Sen-RD-O HM-LC-Sw1PBU-FM HM-MOD-Re-8 HM-LC-Sw1-Pl-DN-R4 HM-Sec-RHS HM-WDS40-TH-I HM-LC-Dim2L-SM HM-LC-Dim2T-SM-2 HM-LC-Dim1T-Pl HM-LC-Dim2T-SM HM-PB-2-WM {ZEL STG RM FZS-2} HM-LC-Sw1-Pl-DN-R1 HM-LC-Dim1TPBU-FM HM-LC-Dim2L-SM-2 HM-RC-Sec3-B HM-RC-8 HM-LC-Sw4-DR-2 HM-LC-Sw4-WM {263 155} HM-Sec-WDS-2 KS550 HM-RC-P1 HMW-LC-Bl1-DR HM-RC-12 HMW-IO-12-FM HM-RC-12-B HM-RC-4-3-D HM-RC-Key4-3 {ZEL STG RM FEP 230V} HM-Sec-TiS HMIP-eTRV {263 162} HM-LC-Sw1-FM-2 HM-Sen-MDIR-O HM-LC-Bl1-FM-2 HM-Sec-WDS HM-ES-TX-WM HMW-IO-12-Sw14-DR HM-LC-Dim1L-CV-644 {ZEL STG RM DWT 10} HMIP-PS HM-PB-2-WM55 HM-LC-Dim1L-CV HM-WDS100-C6-O {ZEL STG RM FZS} HM-OU-LED16 HM-RCV-50 HM-Sec-SD BRC-H HM-Sec-Key-O HM-Sec-MDIR-3 HM-LC-Sw4-WM-2 HM-Sec-Win HM-LC-Dim2T-SM-644 HMIP-PSM HM-RC-Sec4-3 HM-WDS40-TH-I-2 HM-RC-19-B HM-OU-CM-PCB HM-RC-Key3-B HMIP-WTH HM-SCI-3-FM HM-RC-19 HM-RC-4 HM-LC-Sw4-SM HM-LC-Dim1T-Pl-644 HM-LC-RGBW-WM HM-LC-Sw2-DR-2 HM-Sec-SC HMW-WSTH-SM HM-LC-Sw4-DR HmIP-PSM HM-LC-Dim1L-Pl {263 147} HM-RC-Key4-2 HM-LC-Dim1T-CV HMW-WSE-SM HM-SwI-3-FM HmIP-eTRV-2 HM-CCU-1 {ZEL STG RM FDK} HM-LC-Dim1T-CV-2 HM-CC-SCD HM-LC-Sw1-Pl-3 HM-ES-PMSw1-SM {263 133} HmIP-KRC4 HM-LC-Bl1PBU-FM {263 167 Gruppe} HMW-Sys-PS7-DR HM-LC-Bl1-PB-FM HM-ES-PMSw1-Pl-DN-R4 atent {263 134} HM-LC-Sw1-Pl-DN-R5 HM-LC-Dim1PWM-CV-2 DEVICE HM-ES-PMSw1-Pl-DN-R2 HM-LC-Sw1-Pl-2 HM-OU-CFM-Pl HM-OU-CF-Pl HM-OU-CFM-TW HM-LC-Dim1T-FM-LF {263 160} HM-Sec-MDIR-2 HM-PB-4Dis-WM-2 HM-Sen-MDIR-SM} -array set DEV_DESCRIPTION {HM-Dis-TD-T HM-Dis-TD-T {ZEL STG RM FWT} ZEL_STG_RM_FWT HM-EM-CCM HM-EM-CCM HMW-RCV-50 HMW-RCV-50 HM-LC-Sw4-Ba-PCB HM-LC-Sw4-Ba-PCB {ZEL STG RM FST UP4} ZEL_STG_RM_FST_UP4 HM-LC-Sw1-PB-FM HM-LC-Sw1-PB-FM HmIP-eTRV TRV HmIP-WTH WTH HM-RC-Key3 HM-RC-Key3 HM-OU-CFM-Pl HM-OU-CFM-Pl HM-RC-Sec3 HM-RC-Sec3 HM-LC-Dim1T-CV HM-LC-Dim1T-CV BRC-H BRC-H HM-PB-4Dis-WM HM-PB-4Dis-WM HM-CC-VG-1 HM-CC-VG-1 HMIP-SWDO SWD HM-WDS40-TH-I-2 HM-WDS40-TH-I {ZEL STG RM FZS} ZEL_STG_RM_FZS HMW-WSTH-SM HMW-WSTH-SM HM-LC-Sw2-DR-2 HM-LC-Sw2-DR HM-LC-Sw4-WM HM-LC-Sw4-WM HM-ES-PMSw1-Pl-DN-R1 HM-ES-PMSw1-Pl-DN-R1 HM-ES-PMSw1-Pl-DN-R2 HM-ES-PMSw1-Pl-DN-R2 HM-OU-CFM-TW HM-OU-CFM-TW HM-Sec-SFA-SM HM-Sec-SFA-SM HM-ES-PMSw1-Pl-DN-R3 HM-ES-PMSw1-Pl-DN-R3 HM-ES-PMSw1-Pl-DN-R4 HM-ES-PMSw1-Pl-DN-R4 HM-ES-PMSw1-Pl-DN-R5 HM-ES-PMSw1-Pl-DN-R5 HM-SwI-3-FM HM-SwI-3-FM HMW-WSE-SM HMW-WSE-SM HM-LC-Dim1T-FM HM-LC-Dim1T-FM HM-Sec-SD-Team HM-Sec-SD-Team HM-RC-Dis-H-x-EU HM-RC-Dis-H-x-EU HM-Sec-Key-O HM-Sec-Key-O HM-RC-Key4-2 HM-RC-Key4-2 HM-LC-RGBW-WM HM-LC-RGBW-WM HM-RC-Key4-3 HM-RC-4 HM-WDS100-C6-O-2 HM-WDS100-C6-O HM-LC-Dim2L-SM-2 HM-LC-Dim2L-SM HM-Sec-TiS HM-Sec-TiS HM-Sec-Key-S HM-Sec-Key-S HM-Sys-sRP-Pl HM-Sys-sRP-Pl HM-LC-Bl1-FM-2 HM-LC-Bl1-FM HM-OU-CF-Pl HM-OU-CF-Pl HMW-LC-Bl1-DR-2 HMW-LC-Bl1-DR HM-LC-Bl1-SM-2 HM-LC-Bl1-SM HM-SCI-3-FM HM-SCI-3-FM HM-LC-Dim1PWM-CV-2 HM-LC-Dim1PWM-CV HM-ES-PMSw1-DR HM-ES-PMSw1-DR HMW-LC-Sw2-DR HMW-LC-Sw2-DR HM-PB-4-WM HM-PB-4-WM HM-LC-Dim1T-CV-644 HM-LC-Dim1T-CV HMW-LC-Bl1-DR HMW-LC-Bl1-DR HmIP-SWDO SWD HM-Sec-Win HM-Sec-Win HM-LC-Sw2-FM-2 HM-LC-Sw2-FM HM-LC-Sw1-Pl-DN-R1 HM-LC-Sw1-Pl-DN-R1 HM-LC-Sw1-Pl-DN-R2 HM-LC-Sw1-Pl-DN-R2 HM-LC-Sw1-Pl-DN-R3 HM-LC-Sw1-Pl-DN-R3 HM-LC-Dim2T-SM HM-LC-Dim2T-SM HM-LC-Sw1-Pl-DN-R4 HM-LC-Sw1-Pl-DN-R4 HM-LC-Sw1-Pl-DN-R5 HM-LC-Sw1-Pl-DN-R5 HM-LC-Sw1-SM-ATmega168 HM-LC-Sw1-SM-ATmega168 HM-LC-Dim1TPBU-FM-2 HM-LC-Dim1TPBU-FM-2 HM-Sen-MDIR-O HM-Sen-MDIR-O HM-RC-12-B HM-RC-12-B HM-LC-Bl1-SM HM-LC-Bl1-SM HM-LC-Dim1L-CV HM-LC-Dim1L-CV {ZEL STG RM FDK} ZEL_STG_RM_FDK HM-Sen-RD-O HM-Sen-RD-O HM-WDS30-T-O HM-WDS30-T-O HM-CC-RT-DN HM-CC-RT-DN HM-WS550ST-IO HM-WS550ST-IO {ZEL STG RM FZS-2} ZEL_STG_RM_FZS-2 HM-Sec-Key HM-Sec-Key HM-Sec-SD-2-Team HM-Sec-SD-Team HM-RC-19-SW HM-RC-19-SW KS550 KS550 HMW-IO-4-FM HMW-IO-4-FM HM-LC-Sw4-PCB-2 HM-LC-Sw4-PCB HM-EM-CMM HM-EM-CMM HM-LC-Dim2T-SM-644 HM-LC-Dim2T-SM {ZEL STG RM FFK} ZEL_STG_RM_FFK HM-Sec-RHS HM-Sec-RHS HMW-IO-12-Sw14-DR HMW-IO-12-Sw14-DR HM-MOD-Re-8 HM-MOD-Re-8 HM-WDS40-TH-I HM-WDS40-TH-I {263 167 Gruppe} 263_167_Gruppe {ZEL STG RM FSS UP3} ZEL_STG_RM_FSS_UP3 {263 130} 263_130 HM-RC-4 HM-RC-4 {263 131} 263_131 {263 132} 263_132 {263 133} 263_133 {263 134} 263_134 {263 135} 263_135 HM-RC-8 HM-RC-8 HM-Sen-DB-PCB HM-Sen-DB-PCB HM-LC-Sw1-SM HM-LC-Sw1-SM HM-LC-Sw4-DR-2 HM-LC-Sw4-DR HM-LC-Dim1L-CV-644 HM-LC-Dim1L-CV HM-CC-SCD HM-CC-SCD HMW-LC-Dim1L-DR HMW-LC-Dim1L-DR HM-LC-Sw1PBU-FM HM-LC-Sw1PBU-FM HM-LC-Sw1-Pl HM-LC-Sw1-Pl HM-LC-Dim2T-SM-2 HM-LC-Dim2T-SM HM-LC-Dim2L-SM HM-LC-Dim2L-SM HM-WDS100-C6-O HM-WDS100-C6-O {263 144} 263_144 HM-LC-DDC1-PCB HM-LC-DDC1-PCB {263 145} 263_145 {263 146} 263_146 {263 147} 263_147 HM-LC-Sw4-DR HM-LC-Sw4-DR HM-Sec-SC-2 HM-Sec-SC-2 HM-PB-6-WM55 HM-PB-6-WM55 HM-LC-Dim1T-FM-2 HM-LC-Dim1T-FM HM-LC-Dim1L-Pl-2 HM-LC-Dim1L-Pl-2 HM-PB-2-WM55-2 HM-PB-2-WM55 HM-RC-19-B HM-RC-19-B HM-LC-Dim1L-Pl-3 HM-LC-Dim1L-Pl-3 {263 155} 263_155 HM-RCV-50 HM-RCV-50 {263 157} 263_157 {263 158} 263_158 {263 160} 263_160 HM-LC-Dim1L-CV-2 HM-LC-Dim1L-CV HM-LC-Bl1-PB-FM HM-LC-Bl1-PB-FM HM-PB-2-WM HM-PB-2-WM {263 162} 263_162 HM-LC-Dim1T-FM-644 HM-LC-Dim1T-FM {263 167} 263_167 HM-RC-Sec3-B HM-RC-Sec3-B HM-RC-4-3-D HM-RC-4 HM-LC-Dim1T-FM-LF HM-LC-Dim1T-FM HM-Dis-WM55 HM-Dis-WM55 HM-LC-Sw4-SM-2 HM-LC-Sw4-SM HM-LC-Sw1-FM-2 HM-LC-Sw1-FM {ZEL STG RM DWT 10} ZEL_STG_RM_DWT_10 HM-Sen-EP HM-Sen-EP HmIP-eTRV-2 TRV HM-LC-Sw1-SM-2 HM-LC-Sw1-SM HM-WDS10-TH-O HM-WDS10-TH-O HM-LC-Dim2L-SM-644 HM-LC-Dim2L-SM HM-Sec-WDS-2 HM-Sec-WDS-2 HM-LC-Sw1-Ba-PCB HM-LC-Sw1-Ba-PCB atent atent HM-Sen-MDIR-O-2 HM-Sen-MDIR-O HM-CC-TC HM-CC-TC HM-LC-Dim1T-Pl HM-LC-Dim1T-Pl HM-Sec-SCo HM-Sec-SCo HM-LC-Dim1T-Pl-644 HM-LC-Dim1T-Pl HM-ES-TX-WM HM-ES-TX-WM HMW-IO-12-FM HMW-IO-12-FM 263_149_/_263_150 263_149_/_263_150 HM-LC-Sw1-Pl-CT-R1 HM-LC-Sw1-Pl-CT-R1 HM-PBI-4-FM HM-PBI-4-FM HM-CC-VD HM-CC-VD HM-RC-4-2 HM-RC-4-2 HM-Sec-SC HM-Sec-SC HM-RC-4-3 HM-RC-4 HM-Sec-SD HM-Sec-SD HMIP-PSM PSM HM-ES-PMSw1-SM HM-ES-PMSw1-SM HM-Sen-MDIR-WM55 HM-Sen-MDIR-WM55 HM-LC-Sw4-PCB HM-LC-Sw4-PCB HMIP-PS PS HmIP-KRC4 KRC4 HM-ES-PMSw1-Pl HM-ES-PMSw1-Pl HM-LC-Dim1TPBU-FM HM-LC-Dim1TPBU-FM HM-PB-4Dis-WM-2 HM-PB-4Dis-WM-2 {ZEL STG RM FEP 230V} ZEL_STG_RM_FEP_230V HM-RC-4-B HM-RC-4-B HM-RC-12 HM-RC-12 HMIP-WRC2 WRC2 OLIGO.smart.iq.HM OLIGO.smart.iq.HM HM-LC-Sw2-DR HM-LC-Sw2-DR HM-LC-Dim1T-Pl-2 HM-LC-Dim1T-Pl-2 HMW-Sen-SC-12-DR HMW-Sen-SC-12-DR HM-RC-19 HM-RC-19 HM-MOD-EM-8 HM-MOD-EM-8 HM-LC-Dim1T-Pl-3 HM-LC-Dim1T-Pl-3 HM-TC-IT-WM-W-EU HM-TC-IT-WM-W-EU HM-Sec-SD-2 HM-Sec-SD HM-LC-Dim1T-CV-2 HM-LC-Dim1T-CV HM-RC-Sec4-2 HM-RC-Sec4-2 {ZEL STG RM FSA} ZEL_STG_RM_FSA HM-RC-Sec4-3 HM-RC-4 HM-OU-CM-PCB HM-OU-CM-PCB HM-Sec-MDIR HM-Sec-MDIR HM-Sec-WDS HM-Sec-WDS HMW-Sen-SC-12-FM HMW-Sen-SC-12-FM HM-LC-Sw2-FM HM-LC-Sw2-FM HM-CCU-1 HM-CCU-1 HmIP-PSM PSM HM-LC-Bl1-FM HM-LC-Bl1-FM HM-RC-P1 HM-RC-P1 HM-LC-Dim1L-Pl HM-LC-Dim1L-Pl HmIP-PS PS HM-PB-2-WM55 HM-PB-2-WM55 {ZEL STG RM HS 4} ZEL_STG_RM_HS_4 HM-LC-Sw1-Pl-2 HM-LC-Sw1-Pl HM-LC-Dim1L-Pl-644 HM-LC-Dim1L-Pl HM-LC-Sw1-Pl-3 HM-LC-Sw1-Pl HMW-IO-12-Sw7-DR HMW-IO-12-Sw7-DR HM-WS550STH-I HM-WS550STH-I {ZEL STG RM WT 2} ZEL_STG_RM_WT_2 HM-Sen-MDIR-SM HM-Sen-MDIR-SM HM-WS550STH-O HM-WS550STH-O HmIP-WRC2 WRC2 HMW-Sys-PS7-DR HMW-Sys-PS7-DR WS550 {Funk- Wetterstation} HM-Sen-Wa-Od HM-Sen-Wa-Od HM-RC-Key3-B HM-RC-Key3-B DEVICE DEVICE HM-WDS30-OT2-SM HM-WDS30-OT2-SM HM-PB-2-FM HM-PB-2-FM HM-LC-Bl1PBU-FM HM-LC-Bl1PBU-FM HM-LC-Sw1-DR HM-LC-Sw1-DR HMIP-eTRV TRV HMIP-WTH WTH HM-RC-2-PBU-FM HM-RC-2-PBU-FM HM-LC-Sw1-Pl-OM54 HM-LC-Sw1-Pl-OM54 HM-LC-Sw4-WM-2 HM-LC-Sw4-WM HM-Sec-MDIR-2 HM-Sec-MDIR HM-Sec-MDIR-3 HM-Sec-MDIR HMW-Sec-TR-FM HMW-Sec-TR-FM HM-WDC7000 HM-WDC7000 HM-OU-LED16 HM-OU-LED16 HM-LC-Sw4-SM HM-LC-Sw4-SM HM-LC-Sw1-FM HM-LC-Sw1-FM HM-LC-Sw2-PB-FM HM-LC-Sw2-PB-FM WS888 WS888 HM-WS550-US HM-WS550-US HM-LC-Dim1PWM-CV HM-LC-Dim1PWM-CV HM-LC-Sw4-SM-ATmega168 HM-LC-Sw4-SM-ATmega168} -array set DEV_PATHS {HM-Dis-TD-T {{50 /config/img/devices/50/81_hm-dis-td-t_thumb.png} {250 /config/img/devices/250/81_hm-dis-td-t.png}} {ZEL STG RM FWT} {{50 /config/img/devices/50/42_hm-cc-tc_thumb.png} {250 /config/img/devices/250/42_hm-cc-tc.png}} HM-EM-CCM {{50 /config/img/devices/50/44_hm-em-ccm_thumb.png} {250 /config/img/devices/250/44_hm-em-ccm.png}} HMW-RCV-50 {{50 /config/img/devices/50/CCU2_thumb.png} {250 /config/img/devices/250/CCU2.png}} HM-LC-Sw4-Ba-PCB {{50 /config/img/devices/50/88_hm-lc-sw4-ba-pcb_thumb.png} {250 /config/img/devices/250/88_hm-lc-sw4-ba-pcb.png}} {ZEL STG RM FST UP4} {{50 /config/img/devices/50/38_hm-pbi-4-fm_thumb.png} {250 /config/img/devices/250/38_hm-pbi-4-fm.png}} HM-LC-Sw1-PB-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HmIP-eTRV {{50 /config/img/devices/50/120_hmip-etrv_thumb.png} {250 /config/img/devices/250/120_hmip-etrv.png}} HmIP-WTH {{50 /config/img/devices/50/121_hmip-wth_thumb.png} {250 /config/img/devices/250/121_hmip-wth.png}} HM-RC-Key3 {{50 /config/img/devices/50/23_hm-rc-key3-b_thumb.png} {250 /config/img/devices/250/23_hm-rc-key3-b.png}} HM-OU-CFM-Pl {{50 /config/img/devices/50/60_hm-ou-cf-pl_thumb.png} {250 /config/img/devices/250/60_hm-ou-cf-pl.png}} HM-RC-Sec3 {{50 /config/img/devices/50/22_hm-rc-sec3-b_thumb.png} {250 /config/img/devices/250/22_hm-rc-sec3-b.png}} HM-LC-Dim1T-CV {{50 /config/img/devices/50/66_hm-lc-dim1t-cv_thumb.png} {250 /config/img/devices/250/66_hm-lc-dim1t-cv.png}} BRC-H {{50 /config/img/devices/50/72_hm-rc-brc-h_thumb.png} {250 /config/img/devices/250/72_hm-rc-brc-h.png}} HM-PB-4Dis-WM {{50 /config/img/devices/50/70_hm-pb-4dis-wm_thumb.png} {250 /config/img/devices/250/70_hm-pb-4dis-wm.png}} HM-CC-VG-1 {{50 /config/img/devices/50/95_group_hm-cc-vg-1_thumb.png} {250 /config/img/devices/250/95_group_hm-cc-vg-1.png}} HMIP-SWDO {{50 /config/img/devices/50/118_hmip-swdo_thumb.png} {250 /config/img/devices/250/118_hmip-swdo.png}} HM-WDS40-TH-I-2 {{50 /config/img/devices/50/13_hm-ws550sth-i_thumb.png} {250 /config/img/devices/250/13_hm-ws550sth-i.png}} {ZEL STG RM FZS} {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HMW-WSTH-SM {{50 /config/img/devices/50/32_hmw-wsth-sm_thumb.png} {250 /config/img/devices/250/32_hmw-wsth-sm.png}} HM-LC-Sw2-DR-2 {{50 /config/img/devices/50/69_hm-lc-sw2-dr_thumb.png} {250 /config/img/devices/250/69_hm-lc-sw2-dr.png}} HM-LC-Sw4-WM {{50 /config/img/devices/50/76_hm-lc-sw4-wm_thumb.png} {250 /config/img/devices/250/76_hm-lc-sw4-wm.png}} HM-ES-PMSw1-Pl-DN-R1 {{50 /config/img/devices/50/93_hm-es-pmsw1-pl_thumb.png} {250 /config/img/devices/250/93_hm-es-pmsw1-pl.png}} HM-ES-PMSw1-Pl-DN-R2 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R2_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R2.png}} HM-OU-CFM-TW {{50 /config/img/devices/50/117_hm-ou-cfm-tw_thumb.png} {250 /config/img/devices/250/117_hm-ou-cfm-tw.png}} HM-Sec-SFA-SM {{50 /config/img/devices/50/55_hm-sec-sfa-sm_thumb.png} {250 /config/img/devices/250/55_hm-sec-sfa-sm.png}} HM-ES-PMSw1-Pl-DN-R3 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R3_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R3.png}} HM-ES-PMSw1-Pl-DN-R4 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R4_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R4.png}} HM-ES-PMSw1-Pl-DN-R5 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R5_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R5.png}} HM-SwI-3-FM {{50 /config/img/devices/50/39_hm-swi-3-fm_thumb.png} {250 /config/img/devices/250/39_hm-swi-3-fm.png}} HMW-WSE-SM {{50 /config/img/devices/50/31_hmw-wse-sm_thumb.png} {250 /config/img/devices/250/31_hmw-wse-sm.png}} HM-LC-Dim1T-FM {{50 /config/img/devices/50/65_hm-lc-dim1t-fm_thumb.png} {250 /config/img/devices/250/65_hm-lc-dim1t-fm.png}} HM-Sec-SD-Team {{50 /config/img/devices/50/52_hm-sec-sd-team_thumb.png} {250 /config/img/devices/250/52_hm-sec-sd-team.png}} HM-RC-Dis-H-x-EU {{50 /config/img/devices/50/108_hm-rc-dis-h-x-eu_thump.png} {250 /config/img/devices/250/108_hm-rc-dis-h-x-eu.png}} HM-Sec-Key-O {{50 /config/img/devices/50/14_hm-sec-key_thumb.png} {250 /config/img/devices/250/14_hm-sec-key.png}} HM-RC-Key4-2 {{50 /config/img/devices/50/85_hm-rc-key4-2_thumb.png} {250 /config/img/devices/250/85_hm-rc-key4-2.png}} HM-LC-RGBW-WM {{50 /config/img/devices/50/111_hm-lc-rgbw-wm_thumb.png} {250 /config/img/devices/250/111_hm-lc-rgbw-wm.png}} HM-RC-Key4-3 {{50 /config/img/devices/50/84_hm-rc-4-x_thumb.png} {250 /config/img/devices/250/86_hm-rc-key4-3.png}} HM-WDS100-C6-O-2 {{50 /config/img/devices/50/WeatherCombiSensor_thumb.png} {250 /config/img/devices/250/WeatherCombiSensor.png}} HM-LC-Dim2L-SM-2 {{50 /config/img/devices/50/45_hm-lc-dim2l-sm_thumb.png} {250 /config/img/devices/250/45_hm-lc-dim2l-sm.png}} HM-Sec-TiS {{50 /config/img/devices/50/47_hm-sec-tis_thumb.png} {250 /config/img/devices/250/47_hm-sec-tis.png}} HM-Sec-Key-S {{50 /config/img/devices/50/14_hm-sec-key_thumb.png} {250 /config/img/devices/250/14_hm-sec-key.png}} HM-Sys-sRP-Pl {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-LC-Bl1-FM-2 {{50 /config/img/devices/50/7_hm-lc-bl1-fm_thumb.png} {250 /config/img/devices/250/7_hm-lc-bl1-fm.png}} HM-OU-CF-Pl {{50 /config/img/devices/50/60_hm-ou-cf-pl_thumb.png} {250 /config/img/devices/250/60_hm-ou-cf-pl.png}} HMW-LC-Bl1-DR-2 {{50 /config/img/devices/50/27_hmw-lc-bl1-dr_thumb.png} {250 /config/img/devices/250/27_hmw-lc-bl1-dr.png}} HM-LC-Bl1-SM-2 {{50 /config/img/devices/50/6_hm-lc-bl1-sm_thumb.png} {250 /config/img/devices/250/6_hm-lc-bl1-sm.png}} HM-SCI-3-FM {{50 /config/img/devices/50/67_hm-sci-3-fm_thumb.png} {250 /config/img/devices/250/67_hm-sci-3-fm.png}} HM-LC-Dim1PWM-CV-2 {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/79_hm-lc-dim1pwm-cv.png}} HM-ES-PMSw1-DR {{50 /config/img/devices/50/110_hm-es-pmsw1-dr_thump.png} {250 /config/img/devices/250/110_hm-es-pmsw1-dr.png}} HMW-LC-Sw2-DR {{50 /config/img/devices/50/26_hmw-lc-sw2-dr_thumb.png} {250 /config/img/devices/250/26_hmw-lc-sw2-dr.png}} HM-PB-4-WM {{50 /config/img/devices/50/PushButton-4ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-4ch-wm.png}} HM-LC-Dim1T-CV-644 {{50 /config/img/devices/50/66_hm-lc-dim1t-cv_thumb.png} {250 /config/img/devices/250/66_hm-lc-dim1t-cv.png}} HMW-LC-Bl1-DR {{50 /config/img/devices/50/27_hmw-lc-bl1-dr_thumb.png} {250 /config/img/devices/250/27_hmw-lc-bl1-dr.png}} HmIP-SWDO {{50 /config/img/devices/50/118_hmip-swdo_thumb.png} {250 /config/img/devices/250/118_hmip-swdo.png}} HM-Sec-Win {{50 /config/img/devices/50/15_hm-sec-win_thumb.png} {250 /config/img/devices/250/15_hm-sec-win.png}} HM-LC-Sw2-FM-2 {{50 /config/img/devices/50/5_hm-lc-sw2-fm_thumb.png} {250 /config/img/devices/250/5_hm-lc-sw2-fm.png}} HM-LC-Sw1-Pl-DN-R1 {{50 /config/img/devices/50/93_hm-es-pmsw1-pl_thumb.png} {250 /config/img/devices/250/93_hm-es-pmsw1-pl.png}} HM-LC-Sw1-Pl-DN-R2 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R2_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R2.png}} HM-LC-Sw1-Pl-DN-R3 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R3_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R3.png}} HM-LC-Dim2T-SM {{50 /config/img/devices/50/64_hm-lc-dim2T-sm_thumb.png} {250 /config/img/devices/250/64_hm-lc-dim2T-sm.png}} HM-LC-Sw1-Pl-DN-R4 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R4_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R4.png}} HM-LC-Sw1-Pl-DN-R5 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R5_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R5.png}} HM-LC-Sw1-SM-ATmega168 {{50 /config/img/devices/50/8_hm-lc-sw1-sm_thumb.png} {250 /config/img/devices/250/8_hm-lc-sw1-sm.png}} HM-LC-Dim1TPBU-FM-2 {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-Sen-MDIR-O {{50 /config/img/devices/50/80_hm-sen-mdir-o_thumb.png} {250 /config/img/devices/250/80_hm-sen-mdir-o.png}} HM-RC-12-B {{50 /config/img/devices/50/19_hm-rc-12_thumb.png} {250 /config/img/devices/250/19_hm-rc-12.png}} HM-LC-Bl1-SM {{50 /config/img/devices/50/6_hm-lc-bl1-sm_thumb.png} {250 /config/img/devices/250/6_hm-lc-bl1-sm.png}} HM-LC-Dim1L-CV {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/2_hm-lc-dim1l-cv.png}} {ZEL STG RM FDK} {{50 /config/img/devices/50/17_hm-sec-rhs_thumb.png} {250 /config/img/devices/250/17_hm-sec-rhs.png}} HM-Sen-RD-O {{50 /config/img/devices/50/87_hm-sen-rd-o_thumb.png} {250 /config/img/devices/250/87_hm-sen-rd-o.png}} HM-WDS30-T-O {{50 /config/img/devices/50/IP65_G201_thumb.png} {250 /config/img/devices/250/IP65_G201.png}} HM-CC-RT-DN {{50 /config/img/devices/50/83_hm-cc-rt-dn_thumb.png} {250 /config/img/devices/250/83_hm-cc-rt-dn.png}} HM-WS550ST-IO {{50 /config/img/devices/50/IP65_G201_thumb.png} {250 /config/img/devices/250/IP65_G201.png}} {ZEL STG RM FZS-2} {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-Sec-Key {{50 /config/img/devices/50/14_hm-sec-key_thumb.png} {250 /config/img/devices/250/14_hm-sec-key.png}} HM-Sec-SD-2-Team {{50 /config/img/devices/50/105_hm-sec-sd-2-team_thumb.png} {250 /config/img/devices/250/105_hm-sec-sd-2-team.png}} HM-RC-19-SW {{50 /config/img/devices/50/20_hm-rc-19_thumb.png} {250 /config/img/devices/250/20_hm-rc-19.png}} KS550 {{50 /config/img/devices/50/WeatherCombiSensor_thumb.png} {250 /config/img/devices/250/WeatherCombiSensor.png}} HMW-IO-4-FM {{50 /config/img/devices/50/29_hmw-io-4-fm_thumb.png} {250 /config/img/devices/250/29_hmw-io-4-fm.png}} HM-LC-Sw4-PCB-2 {{50 /config/img/devices/50/46_hm-lc-sw4-pcb_thumb.png} {250 /config/img/devices/250/46_hm-lc-sw4-pcb.png}} HM-EM-CMM {{50 /config/img/devices/50/25_hm-em-cmm_thumb.png} {250 /config/img/devices/250/25_hm-em-cmm.png}} HM-LC-Dim2T-SM-644 {{50 /config/img/devices/50/64_hm-lc-dim2T-sm_thumb.png} {250 /config/img/devices/250/64_hm-lc-dim2T-sm.png}} {ZEL STG RM FFK} {{50 /config/img/devices/50/16_hm-sec-sc_thumb.png} {250 /config/img/devices/250/16_hm-sec-sc.png}} HM-Sec-RHS {{50 /config/img/devices/50/17_hm-sec-rhs_thumb.png} {250 /config/img/devices/250/17_hm-sec-rhs.png}} HMW-IO-12-Sw14-DR {{50 /config/img/devices/50/71_hmw-io-12-sw14-dr_thumb.png} {250 /config/img/devices/250/71_hmw-io-12-sw14-dr.png}} HM-MOD-Re-8 {{50 /config/img/devices/50/94_hm-mod-re-8_thumb.png} {250 /config/img/devices/250/94_hm-mod-re-8.png}} HM-WDS40-TH-I {{50 /config/img/devices/50/13_hm-ws550sth-i_thumb.png} {250 /config/img/devices/250/13_hm-ws550sth-i.png}} {263 167 Gruppe} {{50 /config/img/devices/50/52_hm-sec-sd-team_thumb.png} {250 /config/img/devices/250/52_hm-sec-sd-team.png}} {ZEL STG RM FSS UP3} {{50 /config/img/devices/50/39_hm-swi-3-fm_thumb.png} {250 /config/img/devices/250/39_hm-swi-3-fm.png}} {263 130} {{50 /config/img/devices/50/4_hm-lc-sw1-fm_thumb.png} {250 /config/img/devices/250/4_hm-lc-sw1-fm.png}} HM-RC-4 {{50 /config/img/devices/50/18_hm-rc-4_thumb.png} {250 /config/img/devices/250/18_hm-rc-4.png}} {263 131} {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} {263 132} {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/2_hm-lc-dim1l-cv.png}} {263 133} {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} {263 134} {{50 /config/img/devices/50/66_hm-lc-dim1t-cv_thumb.png} {250 /config/img/devices/250/66_hm-lc-dim1t-cv.png}} {263 135} {{50 /config/img/devices/50/75_hm-pb-2-wm55_thumb.png} {250 /config/img/devices/250/75_hm-pb-2-wm55.png}} HM-RC-8 {{50 /config/img/devices/50/100_hm-rc-8_thumb.png} {250 /config/img/devices/250/100_hm-rc-8.png}} HM-Sen-DB-PCB {{50 /config/img/devices/50/101_hm-sen-db-pcb_thumb.png} {250 /config/img/devices/250/101_hm-sen-db-pcb.png}} HM-LC-Sw1-SM {{50 /config/img/devices/50/8_hm-lc-sw1-sm_thumb.png} {250 /config/img/devices/250/8_hm-lc-sw1-sm.png}} HM-LC-Sw4-DR-2 {{50 /config/img/devices/50/68_hm-lc-sw4-dr_thumb.png} {250 /config/img/devices/250/68_hm-lc-sw4-dr.png}} HM-LC-Dim1L-CV-644 {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/2_hm-lc-dim1l-cv.png}} HM-CC-SCD {{50 /config/img/devices/50/57_hm-cc-scd_thumb.png} {250 /config/img/devices/250/57_hm-cc-scd.png}} HMW-LC-Dim1L-DR {{50 /config/img/devices/50/28_hmw-lc-dim1l-dr_thumb.png} {250 /config/img/devices/250/28_hmw-lc-dim1l-dr.png}} HM-LC-Sw1PBU-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-LC-Sw1-Pl {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-LC-Dim2T-SM-2 {{50 /config/img/devices/50/64_hm-lc-dim2T-sm_thumb.png} {250 /config/img/devices/250/64_hm-lc-dim2T-sm.png}} HM-LC-Dim2L-SM {{50 /config/img/devices/50/45_hm-lc-dim2l-sm_thumb.png} {250 /config/img/devices/250/45_hm-lc-dim2l-sm.png}} HM-WDS100-C6-O {{50 /config/img/devices/50/WeatherCombiSensor_thumb.png} {250 /config/img/devices/250/WeatherCombiSensor.png}} {263 144} {{50 /config/img/devices/50/39_hm-swi-3-fm_thumb.png} {250 /config/img/devices/250/39_hm-swi-3-fm.png}} HM-LC-DDC1-PCB {{50 /config/img/devices/50/54a_lc-ddc1_thumb.png} {250 /config/img/devices/250/54a_lc-ddc1-pcb.png}} {263 145} {{50 /config/img/devices/50/38_hm-pbi-4-fm_thumb.png} {250 /config/img/devices/250/38_hm-pbi-4-fm.png}} {263 146} {{50 /config/img/devices/50/7_hm-lc-bl1-fm_thumb.png} {250 /config/img/devices/250/7_hm-lc-bl1-fm.png}} {263 147} {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-LC-Sw4-DR {{50 /config/img/devices/50/68_hm-lc-sw4-dr_thumb.png} {250 /config/img/devices/250/68_hm-lc-sw4-dr.png}} HM-Sec-SC-2 {{50 /config/img/devices/50/16_hm-sec-sc_thumb.png} {250 /config/img/devices/250/16_hm-sec-sc.png}} HM-PB-6-WM55 {{50 /config/img/devices/50/86_hm-pb-6-wm55_thumb.png} {250 /config/img/devices/250/86_hm-pb-6-wm55.png}} HM-LC-Dim1T-FM-2 {{50 /config/img/devices/50/65_hm-lc-dim1t-fm_thumb.png} {250 /config/img/devices/250/65_hm-lc-dim1t-fm.png}} HM-LC-Dim1L-Pl-2 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-PB-2-WM55-2 {{50 /config/img/devices/50/75_hm-pb-2-wm55_thumb.png} {250 /config/img/devices/250/75_hm-pb-2-wm55.png}} HM-RC-19-B {{50 /config/img/devices/50/20_hm-rc-19_thumb.png} {250 /config/img/devices/250/20_hm-rc-19.png}} HM-LC-Dim1L-Pl-3 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} {263 155} {{50 /config/img/devices/50/70_hm-pb-4dis-wm_thumb.png} {250 /config/img/devices/250/70_hm-pb-4dis-wm.png}} HM-RCV-50 {{50 /config/img/devices/50/CCU2_thumb.png} {250 /config/img/devices/250/CCU2.png}} {263 157} {{50 /config/img/devices/50/13_hm-ws550sth-i_thumb.png} {250 /config/img/devices/250/13_hm-ws550sth-i.png}} {263 158} {{50 /config/img/devices/50/TH_CS_thumb.png} {250 /config/img/devices/250/TH_CS.png}} {263 160} {{50 /config/img/devices/50/57_hm-cc-scd_thumb.png} {250 /config/img/devices/250/57_hm-cc-scd.png}} HM-LC-Dim1L-CV-2 {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/2_hm-lc-dim1l-cv.png}} HM-LC-Bl1-PB-FM {{50 /config/img/devices/50/61_hm-lc-bl1-pb-fm_thumb.png} {250 /config/img/devices/250/61_hm-lc-bl1-pb-fm.png}} HM-PB-2-WM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} {263 162} {{50 /config/img/devices/50/124_hm-sec-mdir_thumb.png} {250 /config/img/devices/250/124_hm-sec-mdir.png}} HM-LC-Dim1T-FM-644 {{50 /config/img/devices/50/65_hm-lc-dim1t-fm_thumb.png} {250 /config/img/devices/250/65_hm-lc-dim1t-fm.png}} {263 167} {{50 /config/img/devices/50/51_hm-sec-sd_thumb.png} {250 /config/img/devices/250/51_hm-sec-sd.png}} HM-RC-Sec3-B {{50 /config/img/devices/50/22_hm-rc-sec3-b_thumb.png} {250 /config/img/devices/250/22_hm-rc-sec3-b.png}} HM-RC-4-3-D {{50 /config/img/devices/50/84_hm-rc-4-x_thumb.png} {250 /config/img/devices/250/116_hm-rc-4-3_brc-h3.png}} HM-LC-Dim1T-FM-LF {{50 /config/img/devices/50/114_hm-lc-dim1t-fm-lf_thumb_3.png} {250 /config/img/devices/250/114_hm-lc-dim1t-fm-lf_3.png}} HM-Dis-WM55 {{50 /config/img/devices/50/97_hm-dis-wm55_thumb.png} {250 /config/img/devices/250/97_hm-dis-wm55.png}} HM-LC-Sw4-SM-2 {{50 /config/img/devices/50/3_hm-lc-sw4-sm_thumb.png} {250 /config/img/devices/250/3_hm-lc-sw4-sm.png}} HM-LC-Sw1-FM-2 {{50 /config/img/devices/50/4_hm-lc-sw1-fm_thumb.png} {250 /config/img/devices/250/4_hm-lc-sw1-fm.png}} {ZEL STG RM DWT 10} {{50 /config/img/devices/50/70_hm-pb-4dis-wm_thumb.png} {250 /config/img/devices/250/70_hm-pb-4dis-wm.png}} HM-Sen-EP {{50 /config/img/devices/50/48_hm-sen-ep_thumb.png} {250 /config/img/devices/250/48_hm-sen-ep.png}} HmIP-eTRV-2 {{50 /config/img/devices/50/120_hmip-etrv_thumb.png} {250 /config/img/devices/250/120_hmip-etrv.png}} HM-LC-Sw1-SM-2 {{50 /config/img/devices/50/8_hm-lc-sw1-sm_thumb.png} {250 /config/img/devices/250/8_hm-lc-sw1-sm.png}} HM-WDS10-TH-O {{50 /config/img/devices/50/TH_CS_thumb.png} {250 /config/img/devices/250/TH_CS.png}} HM-LC-Dim2L-SM-644 {{50 /config/img/devices/50/45_hm-lc-dim2l-sm_thumb.png} {250 /config/img/devices/250/45_hm-lc-dim2l-sm.png}} HM-Sec-WDS-2 {{50 /config/img/devices/50/49_hm-sec-wds_thumb.png} {250 /config/img/devices/250/49_hm-sec-wds.png}} HM-LC-Sw1-Ba-PCB {{50 /config/img/devices/50/77_hm-lc-sw1-ba-pcb_thumb.png} {250 /config/img/devices/250/77_hm-lc-sw1-ba-pcb.png}} atent {{50 /config/img/devices/50/73_hm-atent_thumb.png} {250 /config/img/devices/250/73_hm-atent.png}} HM-Sen-MDIR-O-2 {{50 /config/img/devices/50/80_hm-sen-mdir-o_thumb.png} {250 /config/img/devices/250/80_hm-sen-mdir-o.png}} HM-CC-TC {{50 /config/img/devices/50/42_hm-cc-tc_thumb.png} {250 /config/img/devices/250/42_hm-cc-tc.png}} HM-LC-Dim1T-Pl {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-Sec-SCo {{50 /config/img/devices/50/98_hm-sec-sco_thumb.png} {250 /config/img/devices/250/98_hm-sec-sco.png}} HM-LC-Dim1T-Pl-644 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-ES-TX-WM {{50 /config/img/devices/50/102_hm-es-tx-wm_thumb.png} {250 /config/img/devices/250/102_hm-es-tx-wm.png}} HMW-IO-12-FM {{50 /config/img/devices/50/59_hmw-io-12-fm_thumb.png} {250 /config/img/devices/250/59_hmw-io-12-fm.png}} 263_149_/_263_150 {{50 /config/img/devices/50/hm_resc-win-pcb-sc_thumb.png} {250 /config/img/devices/250/hm_resc-win-pcb-sc.png}} HM-LC-Sw1-Pl-CT-R1 {{50 /config/img/devices/50/109_hm-lc-sw1-pl-ct_thump.png} {250 /config/img/devices/250/109_hm-lc-sw1-pl-ct.png}} HM-PBI-4-FM {{50 /config/img/devices/50/38_hm-pbi-4-fm_thumb.png} {250 /config/img/devices/250/38_hm-pbi-4-fm.png}} HM-CC-VD {{50 /config/img/devices/50/43_hm-cc-vd_thumb.png} {250 /config/img/devices/250/43_hm-cc-vd.png}} HM-RC-4-2 {{50 /config/img/devices/50/84_hm-rc-4-2_thumb.png} {250 /config/img/devices/250/84_hm-rc-4-2.png}} HM-Sec-SC {{50 /config/img/devices/50/16_hm-sec-sc_thumb.png} {250 /config/img/devices/250/16_hm-sec-sc.png}} HM-RC-4-3 {{50 /config/img/devices/50/84_hm-rc-4-x_thumb.png} {250 /config/img/devices/250/84_hm-rc-4-3.png}} HM-Sec-SD {{50 /config/img/devices/50/51_hm-sec-sd_thumb.png} {250 /config/img/devices/250/51_hm-sec-sd.png}} HMIP-PSM {{50 /config/img/devices/50/113_hmip-psm_thumb.png} {250 /config/img/devices/250/113_hmip-psm.png}} HM-ES-PMSw1-SM {{50 /config/img/devices/50/115_hm-es-pmsw1-sm_thumb.png} {250 /config/img/devices/250/115_hm-es-pmsw1-sm.png}} HM-Sen-MDIR-WM55 {{50 /config/img/devices/50/103_hm-sen-mdir-wm55_thumb.png} {250 /config/img/devices/250/103_hm-sen-mdir-wm55.png}} HM-LC-Sw4-PCB {{50 /config/img/devices/50/46_hm-lc-sw4-pcb_thumb.png} {250 /config/img/devices/250/46_hm-lc-sw4-pcb.png}} HMIP-PS {{50 /config/img/devices/50/113_hmip-psm_thumb.png} {250 /config/img/devices/250/113_hmip-psm.png}} HmIP-KRC4 {{50 /config/img/devices/50/84_hm-rc-4-x_thumb.png} {250 /config/img/devices/250/84_hm-rc-4-3.png}} HM-ES-PMSw1-Pl {{50 /config/img/devices/50/93_hm-es-pmsw1-pl_thumb.png} {250 /config/img/devices/250/93_hm-es-pmsw1-pl.png}} HM-LC-Dim1TPBU-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-PB-4Dis-WM-2 {{50 /config/img/devices/50/70_hm-pb-4dis-wm_thumb.png} {250 /config/img/devices/250/70_hm-pb-4dis-wm.png}} {ZEL STG RM FEP 230V} {{50 /config/img/devices/50/7_hm-lc-bl1-fm_thumb.png} {250 /config/img/devices/250/7_hm-lc-bl1-fm.png}} HM-RC-4-B {{50 /config/img/devices/50/18_hm-rc-4_thumb.png} {250 /config/img/devices/250/18_hm-rc-4.png}} HM-RC-12 {{50 /config/img/devices/50/19_hm-rc-12_thumb.png} {250 /config/img/devices/250/19_hm-rc-12.png}} HMIP-WRC2 {{50 /config/img/devices/50/112_hmip-wrc2_thumb.png} {250 /config/img/devices/250/112_hmip-wrc2.png}} OLIGO.smart.iq.HM {{50 /config/img/devices/50/123_oligo.smart.ip.hm_thumb.png} {250 /config/img/devices/250/123_oligo.smart.ip.hm.png}} HM-LC-Sw2-DR {{50 /config/img/devices/50/69_hm-lc-sw2-dr_thumb.png} {250 /config/img/devices/250/69_hm-lc-sw2-dr.png}} HM-LC-Dim1T-Pl-2 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HMW-Sen-SC-12-DR {{50 /config/img/devices/50/56_hmw-sen-sc-12-dr_thumb.png} {250 /config/img/devices/250/56_hmw-sen-sc-12-dr.png}} HM-RC-19 {{50 /config/img/devices/50/20_hm-rc-19_thumb.png} {250 /config/img/devices/250/20_hm-rc-19.png}} HM-MOD-EM-8 {{50 /config/img/devices/50/99_hm-mod-em-8_thumb.png} {250 /config/img/devices/250/99_hm-mod-em-8.png}} HM-LC-Dim1T-Pl-3 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-TC-IT-WM-W-EU {{50 /config/img/devices/50/96_hm-tc-it-wm-w-eu_thumb.png} {250 /config/img/devices/250/96_hm-tc-it-wm-w-eu.png}} HM-Sec-SD-2 {{50 /config/img/devices/50/104_hm-sec-sd-2_thumb.png} {250 /config/img/devices/250/104_hm-sec-sd-2.png}} HM-LC-Dim1T-CV-2 {{50 /config/img/devices/50/66_hm-lc-dim1t-cv_thumb.png} {250 /config/img/devices/250/66_hm-lc-dim1t-cv.png}} HM-RC-Sec4-2 {{50 /config/img/devices/50/86_hm-rc-sec4-2_thumb.png} {250 /config/img/devices/250/86_hm-rc-sec4-2.png}} {ZEL STG RM FSA} {{50 /config/img/devices/50/43_hm-cc-vd_thumb.png} {250 /config/img/devices/250/43_hm-cc-vd.png}} HM-RC-Sec4-3 {{50 /config/img/devices/50/84_hm-rc-4-x_thumb.png} {250 /config/img/devices/250/85_hm-rc-sec4-3.png}} HM-OU-CM-PCB {{50 /config/img/devices/50/92_hm-ou-cm-pcb_thumb.png} {250 /config/img/devices/250/92_hm-ou-cm-pcb.png}} HM-Sec-MDIR {{50 /config/img/devices/50/124_hm-sec-mdir_thumb.png} {250 /config/img/devices/250/124_hm-sec-mdir.png}} HM-Sec-WDS {{50 /config/img/devices/50/49_hm-sec-wds_thumb.png} {250 /config/img/devices/250/49_hm-sec-wds.png}} HMW-Sen-SC-12-FM {{50 /config/img/devices/50/58_hmw-sen-sc-12-fm_thumb.png} {250 /config/img/devices/250/58_hmw-sen-sc-12-fm.png}} HM-LC-Sw2-FM {{50 /config/img/devices/50/5_hm-lc-sw2-fm_thumb.png} {250 /config/img/devices/250/5_hm-lc-sw2-fm.png}} HM-CCU-1 {{50 /config/img/devices/50/24_hm-cen-3-1_thumb.png} {250 /config/img/devices/250/24_hm-cen-3-1.png}} HmIP-PSM {{50 /config/img/devices/50/113_hmip-psm_thumb.png} {250 /config/img/devices/250/113_hmip-psm.png}} HM-LC-Bl1-FM {{50 /config/img/devices/50/7_hm-lc-bl1-fm_thumb.png} {250 /config/img/devices/250/7_hm-lc-bl1-fm.png}} HM-RC-P1 {{50 /config/img/devices/50/21_hm-rc-p1_thumb.png} {250 /config/img/devices/250/21_hm-rc-p1.png}} HM-LC-Dim1L-Pl {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HmIP-PS {{50 /config/img/devices/50/113_hmip-psm_thumb.png} {250 /config/img/devices/250/113_hmip-psm.png}} HM-PB-2-WM55 {{50 /config/img/devices/50/75_hm-pb-2-wm55_thumb.png} {250 /config/img/devices/250/75_hm-pb-2-wm55.png}} {ZEL STG RM HS 4} {{50 /config/img/devices/50/18_hm-rc-4_thumb.png} {250 /config/img/devices/250/18_hm-rc-4.png}} HM-LC-Sw1-Pl-2 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-LC-Dim1L-Pl-644 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-LC-Sw1-Pl-3 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HMW-IO-12-Sw7-DR {{50 /config/img/devices/50/30_hmw-io-12-sw7-dr_thumb.png} {250 /config/img/devices/250/30_hmw-io-12-sw7-dr.png}} HM-WS550STH-I {{50 /config/img/devices/50/13_hm-ws550sth-i_thumb.png} {250 /config/img/devices/250/13_hm-ws550sth-i.png}} {ZEL STG RM WT 2} {{50 /config/img/devices/50/75_hm-pb-2-wm55_thumb.png} {250 /config/img/devices/250/75_hm-pb-2-wm55.png}} HM-Sen-MDIR-SM {{50 /config/img/devices/50/53_hm-sen-mdir-sm_thumb.png} {250 /config/img/devices/250/53_hm-sen-mdir-sm.png}} HM-WS550STH-O {{50 /config/img/devices/50/TH_CS_thumb.png} {250 /config/img/devices/250/TH_CS.png}} HmIP-WRC2 {{50 /config/img/devices/50/112_hmip-wrc2_thumb.png} {250 /config/img/devices/250/112_hmip-wrc2.png}} HMW-Sys-PS7-DR {{50 /config/img/devices/50/36_hmw-sys-ps7-dr_thumb.png} {250 /config/img/devices/250/36_hmw-sys-ps7-dr.png}} WS550 {{50 /config/img/devices/50/9_hm-ws550-us_thumb.png} {250 /config/img/devices/250/9_hm-ws550-us.png}} HM-Sen-Wa-Od {{50 /config/img/devices/50/82_hm-sen-wa-od_thumb.png} {250 /config/img/devices/250/82_hm-sen-wa-od.png}} HM-RC-Key3-B {{50 /config/img/devices/50/23_hm-rc-key3-b_thumb.png} {250 /config/img/devices/250/23_hm-rc-key3-b.png}} DEVICE {{50 /config/img/devices/50/unknown_device_thumb.png} {250 /config/img/devices/250/unknown_device.png}} HM-WDS30-OT2-SM {{50 /config/img/devices/50/IP65_G201_thumb.png} {250 /config/img/devices/250/IP65_G201.png}} HM-PB-2-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-LC-Bl1PBU-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-LC-Sw1-DR {{50 /config/img/devices/50/35_hmw-sys-tm-dr_thumb.png} {250 /config/img/devices/250/106_hm-lc-sw1-dr.png}} HMIP-eTRV {{50 /config/img/devices/50/120_hmip-etrv_thumb.png} {250 /config/img/devices/250/120_hmip-etrv.png}} HMIP-WTH {{50 /config/img/devices/50/121_hmip-wth_thumb.png} {250 /config/img/devices/250/121_hmip-wth.png}} HM-RC-2-PBU-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-LC-Sw1-Pl-OM54 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-LC-Sw4-WM-2 {{50 /config/img/devices/50/76_hm-lc-sw4-wm_thumb.png} {250 /config/img/devices/250/76_hm-lc-sw4-wm.png}} HM-Sec-MDIR-2 {{50 /config/img/devices/50/124_hm-sec-mdir_thumb.png} {250 /config/img/devices/250/124_hm-sec-mdir.png}} HM-Sec-MDIR-3 {{50 /config/img/devices/50/124_hm-sec-mdir_thumb.png} {250 /config/img/devices/250/124_hm-sec-mdir.png}} HMW-Sec-TR-FM {{50 /config/img/devices/50/33_hmw-sec-tr-fm_thumb.png} {250 /config/img/devices/250/33_hmw-sec-tr-fm.png}} HM-WDC7000 {{50 /config/img/devices/50/9_hm-ws550-us_thumb.png} {250 /config/img/devices/250/9_hm-ws550-us.png}} HM-OU-LED16 {{50 /config/img/devices/50/78_hm-ou-led16_thumb.png} {250 /config/img/devices/250/78_hm-ou-led16.png}} HM-LC-Sw4-SM {{50 /config/img/devices/50/3_hm-lc-sw4-sm_thumb.png} {250 /config/img/devices/250/3_hm-lc-sw4-sm.png}} HM-LC-Sw1-FM {{50 /config/img/devices/50/4_hm-lc-sw1-fm_thumb.png} {250 /config/img/devices/250/4_hm-lc-sw1-fm.png}} HM-LC-Sw2-PB-FM {{50 /config/img/devices/50/PushButton-4ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-4ch-wm.png}} WS888 {{50 /config/img/devices/50/9_hm-ws550-us_thumb.png} {250 /config/img/devices/250/9_hm-ws550-us.png}} HM-WS550-US {{50 /config/img/devices/50/9_hm-ws550-us_thumb.png} {250 /config/img/devices/250/9_hm-ws550-us.png}} HM-LC-Dim1PWM-CV {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/79_hm-lc-dim1pwm-cv.png}} HM-LC-Sw4-SM-ATmega168 {{50 /config/img/devices/50/3_hm-lc-sw4-sm_thumb.png} {250 /config/img/devices/250/3_hm-lc-sw4-sm.png}}} -array set DEV_HIGHLIGHT {HM-Dis-TD-T {} {ZEL STG RM FWT} {} HM-EM-CCM {} HMW-RCV-50 {{"RF_1" 4 0.364 0.048 0.028 0.028} {"RF_2" 6 0.4 0.052 0.544 0.004 0.016} {"RF_3" 6 0.4 0.052 0.6 0.052 0.016} {"RF_4" 6 0.4 0.052 0.544 0.104 0.016} {"RF_5" 6 0.168 0.052 0.344 0.052 0.016} {"RF_6" 6 0.168 0 0.344 0.052 0.016} {"RF_7" 6 0.168 0.104 0.344 0.052 0.016} {"RF" 5 'RF_1' 'RF_2' 'RF_3' 'RF_4' 'RF_5' 'RF_6' 'RF_7' } { "S1" 3 0.25 0.15 '1' 0.3 'verdana' Font.BOLD} { "S2" 3 0.25 0.15 '2' 0.3 'verdana' Font.BOLD} { "S3" 3 0.25 0.15 '3' 0.3 'verdana' Font.BOLD} { "S4" 3 0.25 0.15 '4' 0.3 'verdana' Font.BOLD} { "S5" 3 0.25 0.15 '5' 0.3 'verdana' Font.BOLD} { "S6" 3 0.25 0.15 '6' 0.3 'verdana' Font.BOLD} { "S7" 3 0.25 0.15 '7' 0.3 'verdana' Font.BOLD} { "S8" 3 0.25 0.15 '8' 0.3 'verdana' Font.BOLD} { "S9" 3 0.25 0.15 '9' 0.3 'verdana' Font.BOLD} {"S10" 3 0.175 0.15 '10' 0.3 'verdana' Font.BOLD} {"S11" 3 0.175 0.15 '11' 0.3 'verdana' Font.BOLD} {"S12" 3 0.175 0.15 '12' 0.3 'verdana' Font.BOLD} {"S13" 3 0.175 0.15 '13' 0.3 'verdana' Font.BOLD} {"S14" 3 0.175 0.15 '14' 0.3 'verdana' Font.BOLD} {"S15" 3 0.175 0.15 '15' 0.3 'verdana' Font.BOLD} {"S16" 3 0.175 0.15 '16' 0.3 'verdana' Font.BOLD} {"S17" 3 0.175 0.15 '17' 0.3 'verdana' Font.BOLD} {"S18" 3 0.175 0.15 '18' 0.3 'verdana' Font.BOLD} {"S19" 3 0.175 0.15 '19' 0.3 'verdana' Font.BOLD} {"S20" 3 0.175 0.15 '20' 0.3 'verdana' Font.BOLD} {"S21" 3 0.175 0.15 '21' 0.3 'verdana' Font.BOLD} {"S22" 3 0.175 0.15 '22' 0.3 'verdana' Font.BOLD} {"S23" 3 0.175 0.15 '23' 0.3 'verdana' Font.BOLD} {"S24" 3 0.175 0.15 '24' 0.3 'verdana' Font.BOLD} {"S25" 3 0.175 0.15 '25' 0.3 'verdana' Font.BOLD} {"S26" 3 0.175 0.15 '26' 0.3 'verdana' Font.BOLD} {"S27" 3 0.175 0.15 '27' 0.3 'verdana' Font.BOLD} {"S28" 3 0.175 0.15 '28' 0.3 'verdana' Font.BOLD} {"S29" 3 0.175 0.15 '29' 0.3 'verdana' Font.BOLD} {"S30" 3 0.175 0.15 '30' 0.3 'verdana' Font.BOLD} {"S31" 3 0.175 0.15 '31' 0.3 'verdana' Font.BOLD} {"S32" 3 0.175 0.15 '32' 0.3 'verdana' Font.BOLD} {"S33" 3 0.175 0.15 '33' 0.3 'verdana' Font.BOLD} {"S34" 3 0.175 0.15 '34' 0.3 'verdana' Font.BOLD} {"S35" 3 0.175 0.15 '35' 0.3 'verdana' Font.BOLD} {"S36" 3 0.175 0.15 '36' 0.3 'verdana' Font.BOLD} {"S37" 3 0.175 0.15 '37' 0.3 'verdana' Font.BOLD} {"S38" 3 0.175 0.15 '38' 0.3 'verdana' Font.BOLD} {"S39" 3 0.175 0.15 '39' 0.3 'verdana' Font.BOLD} {"S40" 3 0.175 0.15 '40' 0.3 'verdana' Font.BOLD} {"S41" 3 0.175 0.15 '41' 0.3 'verdana' Font.BOLD} {"S42" 3 0.175 0.15 '42' 0.3 'verdana' Font.BOLD} {"S43" 3 0.175 0.15 '43' 0.3 'verdana' Font.BOLD} {"S44" 3 0.175 0.15 '44' 0.3 'verdana' Font.BOLD} {"S45" 3 0.175 0.15 '45' 0.3 'verdana' Font.BOLD} {"S46" 3 0.175 0.15 '46' 0.3 'verdana' Font.BOLD} {"S47" 3 0.175 0.15 '47' 0.3 'verdana' Font.BOLD} {"S48" 3 0.175 0.15 '48' 0.3 'verdana' Font.BOLD} {"S49" 3 0.175 0.15 '49' 0.3 'verdana' Font.BOLD} {"S50" 3 0.175 0.15 '50' 0.3 'verdana' Font.BOLD} {"1" 5 'S1' } {"2" 5 'S2' } {"3" 5 'S3' } {"4" 5 'S4' } {"5" 5 'S5' } {"6" 5 'S6' } {"7" 5 'S7' } {"8" 5 'S8' } {"9" 5 'S9' } {"10" 5 'S10' } {"11" 5 'S11' } {"12" 5 'S12' } {"13" 5 'S13' } {"14" 5 'S14' } {"15" 5 'S15' } {"16" 5 'S16' } {"17" 5 'S17' } {"18" 5 'S18' } {"19" 5 'S19' } {"20" 5 'S20' } {"21" 5 'S21' } {"22" 5 'S22' } {"23" 5 'S23' } {"24" 5 'S24' } {"25" 5 'S25' } {"26" 5 'S26' } {"27" 5 'S27' } {"28" 5 'S28' } {"29" 5 'S29' } {"30" 5 'S30' } {"31" 5 'S31' } {"32" 5 'S32' } {"33" 5 'S33' } {"34" 5 'S34' } {"35" 5 'S35' } {"36" 5 'S36' } {"37" 5 'S37' } {"38" 5 'S38' } {"39" 5 'S39' } {"40" 5 'S40' } {"41" 5 'S41' } {"42" 5 'S42' } {"43" 5 'S43' } {"44" 5 'S44' } {"45" 5 'S45' } {"46" 5 'S46' } {"47" 5 'S47' } {"48" 5 'S48' } {"49" 5 'S49' } {"50" 5 'S50' }} HM-LC-Sw4-Ba-PCB {{"1" 2 0.140 0.704 0.092 0.052} {"2" 2 0.328 0.704 0.092 0.052} {"3" 2 0.512 0.704 0.092 0.052} {"4" 2 0.688 0.704 0.092 0.052}} {ZEL STG RM FST UP4} {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.265 0.500 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.287 0.465 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.309 0.430 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' } {"4_Key" 3 0.18 0.216 '4' 0.14 'verdana' Font.BOLD} {"4_Kreis" 4 0.331 0.395 0.028 0.028} {"4" 5 '4_Key' '4_Kreis' }} HM-LC-Sw1-PB-FM {} HmIP-eTRV {} HmIP-WTH {} HM-RC-Key3 {{"1" 4 0.252 0.2 0.16 0.18} {"2" 4 0.492 0.2 0.16 0.18} {"3" 4 0.34 0.484 0.228 0.252} {"1+2" 5 '1' '2' }} HM-OU-CFM-Pl {{"Light_circle" 4 0.688 0.224 0.118 0.112} {"Light_beam_1" 6 0.628 0.28 0.656 0.28 0.016} {"Light_beam_2" 6 0.656 0.2 0.68 0.22 0.016} {"Light_beam_3" 6 0.74 0.168 0.74 0.196 0.016} {"Light_beam_4" 6 0.82 0.196 0.8 0.216 0.016} {"Light_beam_5" 6 0.824 0.28 0.856 0.28 0.016} {"Light_beam_6" 6 0.68 0.34 0.664 0.36 0.016} {"Light_beam_7" 6 0.74 0.364 0.74 0.392 0.016} {"Light_beam_8" 6 0.8 0.34 0.82 0.36 0.016} {"1" 5 'Light_circle' 'Light_beam_1' 'Light_beam_2' 'Light_beam_3' 'Light_beam_4' 'Light_beam_5' 'Light_beam_6' 'Light_beam_7' 'Light_beam_8' } {"SP_1" 6 0.644 0.676 0.672 0.676 0.016} {"SP_2" 6 0.672 0.676 0.672 0.816 0.016} {"SP_3" 6 0.644 0.816 0.672 0.816 0.016} {"SP_4" 6 0.644 0.676 0.644 0.816 0.016} {"SP_5" 6 0.672 0.676 0.716 0.632 0.016} {"SP_6" 6 0.716 0.632 0.716 0.86 0.016} {"SP_7" 6 0.672 0.816 0.716 0.86 0.016} {"SP_beam_1" 6 0.75 0.7 0.832 0.632 0.016} {"SP_beam_2" 6 0.75 0.748 0.832 0.748 0.016} {"SP_beam_3" 6 0.75 0.796 0.832 0.86 0.016} {"2" 5 'SP_1' 'SP_2' 'SP_3' 'SP_4' 'SP_5' 'SP_6' 'SP_7' 'SP_beam_1' 'SP_beam_2' 'SP_beam_3' }} HM-RC-Sec3 {{"1" 4 0.252 0.2 0.16 0.176} {"2" 4 0.492 0.2 0.16 0.176} {"3" 4 0.34 0.48 0.224 0.248} {"1+2" 5 '1' '2' }} HM-LC-Dim1T-CV {} BRC-H {{"1" 4 0.196 0.222 0.162 0.164} {"2" 4 0.417 0.222 0.162 0.164} {"3" 4 0.196 0.482 0.162 0.164} {"4" 4 0.417 0.482 0.162 0.164}} HM-PB-4Dis-WM {{"2" 2 0.204 0.244 0.556 0.12} {"1" 2 0.204 0.68 0.556 0.12} {"4" 2 0.204 0.244 0.556 0.12} {"3" 2 0.204 0.68 0.556 0.12} {"6" 2 0.204 0.244 0.556 0.12} {"5" 2 0.204 0.68 0.556 0.12} {"8" 2 0.204 0.244 0.556 0.12} {"7" 2 0.204 0.68 0.556 0.12} {"10" 2 0.204 0.244 0.556 0.12} {"9" 2 0.204 0.68 0.556 0.12} {"12" 2 0.204 0.244 0.556 0.12} {"11" 2 0.204 0.68 0.556 0.12} {"14" 2 0.204 0.244 0.556 0.12} {"13" 2 0.204 0.68 0.556 0.12} {"16" 2 0.204 0.244 0.556 0.12} {"15" 2 0.204 0.68 0.556 0.12} {"18" 2 0.204 0.244 0.556 0.12} {"17" 2 0.204 0.68 0.556 0.12} {"20" 2 0.204 0.244 0.556 0.12} {"19" 2 0.204 0.68 0.556 0.12}} HM-CC-VG-1 {} HMIP-SWDO {} HM-WDS40-TH-I-2 {} {ZEL STG RM FZS} {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HMW-WSTH-SM {} HM-LC-Sw2-DR-2 {{"1" 4 0.095 0.556 0.045 0.04} {"2" 4 0.285 0.556 0.045 0.04}} HM-LC-Sw4-WM {{"Channel1" 2 0.208 0.766 0.065 0.060} {"Channel2" 2 0.276 0.766 0.065 0.060} {"Channel3" 2 0.344 0.766 0.065 0.060} {"Channel4" 2 0.412 0.766 0.065 0.060} {"1_val" 3 0.372 0.288 '1' 0.14 'verdana' Font.BOLD} {"2_val" 3 0.372 0.288 '2' 0.14 'verdana' Font.BOLD} {"3_val" 3 0.372 0.288 '3' 0.14 'verdana' Font.BOLD} {"4_val" 3 0.372 0.288 '4' 0.14 'verdana' Font.BOLD} {"Circle1" 4 0.534 0.762 0.044 0.044} {"Circle2" 4 0.583 0.762 0.044 0.044} {"Circle3" 4 0.637 0.762 0.044 0.044} {"Circle4" 4 0.693 0.762 0.044 0.044} {"1" 5 'Channel1' '1_val' 'Circle1'} {"2" 5 'Channel2' '2_val' 'Circle2'} {"3" 5 'Channel3' '3_val' 'Circle3'} {"4" 5 'Channel4' '4_val' 'Circle4'}} HM-ES-PMSw1-Pl-DN-R1 {} HM-ES-PMSw1-Pl-DN-R2 {} HM-OU-CFM-TW {{Light_circle 4 0.8079999999999999 0.656 0.118 0.112} {Light_beam_1 6 0.748 0.712 0.776 0.712 0.016} {Light_beam_2 6 0.776 0.632 0.8 0.652 0.016} {Light_beam_3 6 0.86 0.6 0.86 0.628 0.016} {Light_beam_4 6 0.94 0.628 0.92 0.648 0.016} {Light_beam_5 6 0.944 0.712 0.976 0.712 0.016} {Light_beam_6 6 0.8 0.772 0.784 0.792 0.016} {Light_beam_7 6 0.86 0.796 0.86 0.8240000000000001 0.016} {Light_beam_8 6 0.92 0.772 0.94 0.792 0.016} {"1" 5 'Light_circle' 'Light_beam_1' 'Light_beam_2' 'Light_beam_3' 'Light_beam_4' 'Light_beam_5' 'Light_beam_6' 'Light_beam_7' 'Light_beam_8' } {SP_1 6 0.764 0.12 0.792 0.12 0.016} {SP_2 6 0.792 0.12 0.792 0.2599999999999999 0.016} {SP_3 6 0.764 0.2599999999999999 0.792 0.2599999999999999 0.016} {SP_4 6 0.764 0.12 0.764 0.2599999999999999 0.016} {SP_5 6 0.792 0.12 0.836 0.07599999999999996 0.016} {SP_6 6 0.836 0.07599999999999996 0.836 0.30399999999999994 0.016} {SP_7 6 0.792 0.2599999999999999 0.836 0.30399999999999994 0.016} {SP_beam_1 6 0.87 0.1439999999999999 0.952 0.07599999999999996 0.016} {SP_beam_2 6 0.87 0.19199999999999995 0.952 0.19199999999999995 0.016} {SP_beam_3 6 0.87 0.24 0.952 0.30399999999999994 0.016} {"2" 5 'SP_1' 'SP_2' 'SP_3' 'SP_4' 'SP_5' 'SP_6' 'SP_7' 'SP_beam_1' 'SP_beam_2' 'SP_beam_3' }} HM-Sec-SFA-SM {{"1_Taster" 4 0.348 0.388 0.08 0.08} {"1_Led" 4 0.372 0.304 0.036 0.036} {"1" 5 '1_Taster' '1_Led'} {"2_Taster" 4 0.552 0.388 0.08 0.08} {"2_Led" 4 0.576 0.304 0.036 0.036} {"2" 5 '2_Taster' '2_Led'}} HM-ES-PMSw1-Pl-DN-R3 {} HM-ES-PMSw1-Pl-DN-R4 {} HM-ES-PMSw1-Pl-DN-R5 {} HM-SwI-3-FM {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.220 0.480 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.265 0.405 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.310 0.33 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' }} HMW-WSE-SM {} HM-LC-Dim1T-FM {} HM-Sec-SD-Team {} HM-RC-Dis-H-x-EU {} HM-Sec-Key-O {} HM-RC-Key4-2 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"1_Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"2_Arrow" 7 '1_Arrow' 0.028 0.156} {"3_Arrow" 7 '1_Arrow' 0.028 0.312} {"4_Arrow" 7 '1_Arrow' 0.012 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-LC-RGBW-WM {{"1" 1 0.280 0.569 0.014} {"2" 1 0.280 0.645 0.014} {"3" 1 0.280 0.721 0.014}} HM-RC-Key4-3 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"1_Arrow" 7 'Arrow' 0.25 0.0} {"2_Arrow" 7 'Arrow' 0.238 0.156} {"3_Arrow" 7 'Arrow' 0.228 0.312} {"4_Arrow" 7 'Arrow' 0.212 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-WDS100-C6-O-2 {} HM-LC-Dim2L-SM-2 {{"1_Part1" 6 0.530 0.896 0.530 0.98 0.012} {"1_Part2" 6 0.530 0.98 0.49 0.916 0.012} {"1_Part3" 6 0.530 0.98 0.574 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.168 0} {"1_Key" 4 0.25 0.33 0.04 0.044} {"2_Key" 4 0.328 0.33 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} HM-Sec-TiS {} HM-Sec-Key-S {} HM-Sys-sRP-Pl {} HM-LC-Bl1-FM-2 {} HM-OU-CF-Pl {{"Light_circle" 4 0.688 0.224 0.118 0.112} {"Light_beam_1" 6 0.628 0.28 0.656 0.28 0.016} {"Light_beam_2" 6 0.656 0.2 0.68 0.22 0.016} {"Light_beam_3" 6 0.74 0.168 0.74 0.196 0.016} {"Light_beam_4" 6 0.82 0.196 0.8 0.216 0.016} {"Light_beam_5" 6 0.824 0.28 0.856 0.28 0.016} {"Light_beam_6" 6 0.68 0.34 0.664 0.36 0.016} {"Light_beam_7" 6 0.74 0.364 0.74 0.392 0.016} {"Light_beam_8" 6 0.8 0.34 0.82 0.36 0.016} {"1" 5 'Light_circle' 'Light_beam_1' 'Light_beam_2' 'Light_beam_3' 'Light_beam_4' 'Light_beam_5' 'Light_beam_6' 'Light_beam_7' 'Light_beam_8' } {"SP_1" 6 0.644 0.676 0.672 0.676 0.016} {"SP_2" 6 0.672 0.676 0.672 0.816 0.016} {"SP_3" 6 0.644 0.816 0.672 0.816 0.016} {"SP_4" 6 0.644 0.676 0.644 0.816 0.016} {"SP_5" 6 0.672 0.676 0.716 0.632 0.016} {"SP_6" 6 0.716 0.632 0.716 0.86 0.016} {"SP_7" 6 0.672 0.816 0.716 0.86 0.016} {"SP_beam_1" 6 0.75 0.7 0.832 0.632 0.016} {"SP_beam_2" 6 0.75 0.748 0.832 0.748 0.016} {"SP_beam_3" 6 0.75 0.796 0.832 0.86 0.016} {"2" 5 'SP_1' 'SP_2' 'SP_3' 'SP_4' 'SP_5' 'SP_6' 'SP_7' 'SP_beam_1' 'SP_beam_2' 'SP_beam_3' }} HMW-LC-Bl1-DR-2 {{"1" 2 0.452 0.772 0.044 0.06} {"2" 2 0.5 0.772 0.048 0.06} {"3" 2 0.452 0.388 0.096 0.06}} HM-LC-Bl1-SM-2 {} HM-SCI-3-FM {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.220 0.480 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.265 0.405 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.310 0.33 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' }} HM-LC-Dim1PWM-CV-2 {} HM-ES-PMSw1-DR {} HMW-LC-Sw2-DR {{"1" 2 0.448 0.764 0.048 0.064} {"2" 2 0.496 0.764 0.052 0.068} {"3" 2 0.232 0.384 0.104 0.068} {"4" 2 0.448 0.384 0.104 0.068}} HM-PB-4-WM {{"2" 2 0.24 0.312 0.204 0.168} {"1" 2 0.24 0.556 0.204 0.168} {"3" 2 0.46 0.556 0.204 0.168} {"4" 2 0.46 0.312 0.204 0.168} {"1+2" 2 0.24 0.312 0.204 0.412} {"3+4" 2 0.46 0.312 0.204 0.412}} HM-LC-Dim1T-CV-644 {} HMW-LC-Bl1-DR {{"1" 2 0.452 0.772 0.044 0.06} {"2" 2 0.5 0.772 0.048 0.06} {"3" 2 0.452 0.388 0.096 0.06}} HmIP-SWDO {} HM-Sec-Win {} HM-LC-Sw2-FM-2 {{"1_AUS" 2 0.34 0.66 0.068 0.148} {"1_EIN" 2 0.6 0.66 0.068 0.148} {"2_AUS" 2 0.256 0.66 0.068 0.148} {"2_EIN" 2 0.508 0.66 0.068 0.148} {"1" 5 '1_AUS' '1_EIN' } {"2" 5 '2_AUS' '2_EIN' }} HM-LC-Sw1-Pl-DN-R1 {} HM-LC-Sw1-Pl-DN-R2 {} HM-LC-Sw1-Pl-DN-R3 {} HM-LC-Dim2T-SM {{"1_Part1" 6 0.539 0.864 0.539 0.948 0.012} {"1_Part2" 6 0.539 0.948 0.49 0.884 0.012} {"1_Part3" 6 0.539 0.948 0.588 0.884 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.179 0} {"1_Key" 4 0.25 0.26 0.04 0.044} {"2_Key" 4 0.328 0.26 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} HM-LC-Sw1-Pl-DN-R4 {} HM-LC-Sw1-Pl-DN-R5 {} HM-LC-Sw1-SM-ATmega168 {} HM-LC-Dim1TPBU-FM-2 {} HM-Sen-MDIR-O {} HM-RC-12-B {{"1" 2 0.252 0.412 0.044 0.072} {"3" 2 0.252 0.508 0.044 0.072} {"5" 2 0.252 0.604 0.044 0.072} {"7" 2 0.252 0.7 0.044 0.072} {"9" 2 0.252 0.8 0.044 0.072} {"10" 2 0.476 0.8 0.044 0.072} {"8" 2 0.476 0.7 0.044 0.072} {"6" 2 0.476 0.604 0.044 0.072} {"4" 2 0.476 0.508 0.044 0.072} {"2" 2 0.476 0.412 0.044 0.072} {"11" 2 0.62 0.8 0.068 0.064} {"12" 2 0.62 0.704 0.068 0.064} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' } {"7+8" 5 '7' '8' } {"9+10" 5 '9' '10' } {"11+12" 5 '11' '12' }} HM-LC-Bl1-SM {} HM-LC-Dim1L-CV {} {ZEL STG RM FDK} {} HM-Sen-RD-O {} HM-WDS30-T-O {} HM-CC-RT-DN {} HM-WS550ST-IO {} {ZEL STG RM FZS-2} {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-Sec-Key {} HM-Sec-SD-2-Team {} HM-RC-19-SW {{"1" 2 0.296 0.344 0.036 0.052} {"3" 2 0.296 0.416 0.036 0.052} {"5" 2 0.296 0.488 0.036 0.052} {"7" 2 0.296 0.56 0.036 0.052} {"9" 2 0.296 0.628 0.036 0.052} {"11" 2 0.296 0.704 0.036 0.048} {"13" 2 0.296 0.772 0.036 0.052} {"15" 2 0.296 0.844 0.036 0.052} {"2" 2 0.468 0.344 0.036 0.052} {"4" 2 0.468 0.416 0.036 0.052} {"6" 2 0.468 0.488 0.036 0.052} {"8" 2 0.468 0.56 0.036 0.052} {"10" 2 0.468 0.628 0.036 0.052} {"12" 2 0.468 0.704 0.036 0.048} {"14" 2 0.468 0.772 0.036 0.052} {"16" 2 0.468 0.844 0.036 0.052} {"17" 2 0.58 0.84 0.044 0.056} {"18" 2 0.312 0.188 0.168 0.088} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' } {"7+8" 5 '7' '8' } {"9+10" 5 '9' '10' } {"11+12" 5 '11' '12' } {"13+14" 5 '13' '14' } {"15+16" 5 '15' '16' }} KS550 {} HMW-IO-4-FM {{"1" 6 0.616 0.736 0.612 0.836 0.02} {"2" 6 0.672 0.736 0.668 0.836 0.02} {"3" 6 0.724 0.736 0.724 0.836 0.02} {"4" 6 0.78 0.736 0.78 0.836 0.02}} HM-LC-Sw4-PCB-2 {{"Channel1" 2 0.176 0.78 0.068 0.064} {"Channel2" 2 0.244 0.78 0.068 0.064} {"Channel3" 2 0.312 0.78 0.068 0.064} {"Channel4" 2 0.38 0.78 0.068 0.064} {"1_val" 3 0.372 0.288 '1' 0.14 'verdana' Font.BOLD} {"2_val" 3 0.372 0.288 '2' 0.14 'verdana' Font.BOLD} {"3_val" 3 0.372 0.288 '3' 0.14 'verdana' Font.BOLD} {"4_val" 3 0.372 0.288 '4' 0.14 'verdana' Font.BOLD} {"Circle1" 4 0.512 0.784 0.044 0.044} {"Circle2" 4 0.570 0.784 0.044 0.044} {"Circle3" 4 0.628 0.784 0.044 0.044} {"Circle4" 4 0.686 0.784 0.044 0.044} {"1" 5 'Channel1' '1_val' 'Circle1'} {"2" 5 'Channel2' '2_val' 'Circle2'} {"3" 5 'Channel3' '3_val' 'Circle3'} {"4" 5 'Channel4' '4_val' 'Circle4'}} HM-EM-CMM {} HM-LC-Dim2T-SM-644 {{"1_Part1" 6 0.539 0.864 0.539 0.948 0.012} {"1_Part2" 6 0.539 0.948 0.49 0.884 0.012} {"1_Part3" 6 0.539 0.948 0.588 0.884 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.179 0} {"1_Key" 4 0.25 0.26 0.04 0.044} {"2_Key" 4 0.328 0.26 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} {ZEL STG RM FFK} {} HM-Sec-RHS {} HMW-IO-12-Sw14-DR {{"1" 2 0.106 0.398 0.06 0.06} {"2" 2 0.230 0.398 0.06 0.06} {"3" 2 0.294 0.398 0.06 0.06} {"4" 2 0.422 0.398 0.06 0.06} {"5" 2 0.482 0.398 0.06 0.06} {"6" 2 0.602 0.398 0.06 0.06} {"7" 2 0.046 0.458 0.06 0.06} {"8" 2 0.106 0.458 0.06 0.06} {"9" 2 0.230 0.458 0.06 0.06} {"10" 2 0.294 0.458 0.06 0.06} {"11" 2 0.422 0.458 0.06 0.06} {"12" 2 0.482 0.458 0.06 0.06} {"13" 2 0.602 0.458 0.06 0.06} {"14" 2 0.666 0.458 0.06 0.06} {"15" 2 0.230 0.69 0.06 0.06} {"16" 2 0.294 0.69 0.06 0.06} {"17" 2 0.422 0.69 0.06 0.06} {"18" 2 0.482 0.69 0.06 0.06} {"19" 2 0.602 0.69 0.06 0.06} {"20" 2 0.666 0.69 0.06 0.06} {"21" 2 0.230 0.755 0.06 0.06} {"22" 2 0.294 0.755 0.06 0.06} {"23" 2 0.422 0.755 0.06 0.06} {"24" 2 0.482 0.755 0.06 0.06} {"25" 2 0.602 0.755 0.06 0.06} {"26" 2 0.666 0.755 0.06 0.06}} HM-MOD-Re-8 {} HM-WDS40-TH-I {} {263 167 Gruppe} {} {ZEL STG RM FSS UP3} {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.220 0.480 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.265 0.405 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.310 0.33 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' }} {263 130} {{"1_AUS" 2 0.288 0.66 0.068 0.152} {"1_EIN" 2 0.548 0.66 0.068 0.152} {"1" 5 '1_AUS' '1_EIN' }} HM-RC-4 {{"1" 4 0.268 0.236 0.16 0.164} {"2" 4 0.476 0.236 0.16 0.164} {"3" 4 0.268 0.48 0.16 0.164} {"4" 4 0.476 0.48 0.16 0.164} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' }} {263 131} {{"1a" 2 0.244 0.312 0.428 0.168} {"1b" 2 0.244 0.56 0.428 0.168} {"1" 5 '1a' '1b'}} {263 132} {} {263 133} {} {263 134} {} {263 135} {{"2" 2 0.204 0.23 0.546 0.128} {"1" 2 0.204 0.65 0.546 0.128}} HM-RC-8 {{"1" 1 0.374 0.192 0.02} {"2" 1 0.537 0.248 0.02} {"3" 1 0.374 0.284 0.02} {"4" 1 0.537 0.340 0.02} {"5" 1 0.374 0.378 0.02} {"6" 1 0.537 0.434 0.02} {"7" 1 0.374 0.470 0.02} {"8" 1 0.537 0.526 0.02} {"1+2" 5 '1' '2'} {"3+4" 5 '3' '4'} {"5+6" 5 '5' '6'} {"7+8" 5 '7' '8'}} HM-Sen-DB-PCB {} HM-LC-Sw1-SM {} HM-LC-Sw4-DR-2 {{"1" 4 0.088 0.556 0.048 0.04} {"2" 4 0.280 0.556 0.048 0.04} {"3" 4 0.472 0.556 0.048 0.04} {"4" 4 0.656 0.556 0.048 0.04}} HM-LC-Dim1L-CV-644 {} HM-CC-SCD {} HMW-LC-Dim1L-DR {{"1" 2 0.312 0.756 0.056 0.06} {"2" 2 0.368 0.752 0.048 0.068} {"3" 2 0.368 0.388 0.048 0.064}} HM-LC-Sw1PBU-FM {{"1a" 2 0.244 0.312 0.428 0.168} {"1b" 2 0.244 0.56 0.428 0.168} {"1" 5 '1a' '1b'}} HM-LC-Sw1-Pl {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-LC-Dim2T-SM-2 {{"1_Part1" 6 0.539 0.864 0.539 0.948 0.012} {"1_Part2" 6 0.539 0.948 0.49 0.884 0.012} {"1_Part3" 6 0.539 0.948 0.588 0.884 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.179 0} {"1_Key" 4 0.25 0.26 0.04 0.044} {"2_Key" 4 0.328 0.26 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} HM-LC-Dim2L-SM {{"1_Part1" 6 0.530 0.896 0.530 0.98 0.012} {"1_Part2" 6 0.530 0.98 0.49 0.916 0.012} {"1_Part3" 6 0.530 0.98 0.574 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.168 0} {"1_Key" 4 0.25 0.33 0.04 0.044} {"2_Key" 4 0.328 0.33 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} HM-WDS100-C6-O {} {263 144} {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.220 0.480 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.265 0.405 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.310 0.33 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' }} HM-LC-DDC1-PCB {} {263 145} {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.265 0.500 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.287 0.465 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.309 0.430 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' } {"4_Key" 3 0.18 0.216 '4' 0.14 'verdana' Font.BOLD} {"4_Kreis" 4 0.331 0.395 0.028 0.028} {"4" 5 '4_Key' '4_Kreis' }} {263 146} {} {263 147} {{"1a" 2 0.244 0.312 0.428 0.168} {"1b" 2 0.244 0.56 0.428 0.168} {"1" 5 '1a' '1b'}} HM-LC-Sw4-DR {{"1" 4 0.088 0.556 0.048 0.04} {"2" 4 0.280 0.556 0.048 0.04} {"3" 4 0.472 0.556 0.048 0.04} {"4" 4 0.656 0.556 0.048 0.04}} HM-Sec-SC-2 {} HM-PB-6-WM55 {{"1" 2 0.164 0.232 0.112 0.156} {"2" 2 0.588 0.232 0.112 0.156} {"3" 2 0.164 0.428 0.112 0.156} {"4" 2 0.588 0.428 0.112 0.156} {"5" 2 0.164 0.616 0.112 0.156} {"6" 2 0.588 0.616 0.112 0.156} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' }} HM-LC-Dim1T-FM-2 {} HM-LC-Dim1L-Pl-2 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-PB-2-WM55-2 {{"2" 2 0.204 0.23 0.546 0.128} {"1" 2 0.204 0.65 0.546 0.128}} HM-RC-19-B {{"1" 2 0.296 0.344 0.036 0.052} {"3" 2 0.296 0.416 0.036 0.052} {"5" 2 0.296 0.488 0.036 0.052} {"7" 2 0.296 0.56 0.036 0.052} {"9" 2 0.296 0.628 0.036 0.052} {"11" 2 0.296 0.704 0.036 0.048} {"13" 2 0.296 0.772 0.036 0.052} {"15" 2 0.296 0.844 0.036 0.052} {"2" 2 0.468 0.344 0.036 0.052} {"4" 2 0.468 0.416 0.036 0.052} {"6" 2 0.468 0.488 0.036 0.052} {"8" 2 0.468 0.56 0.036 0.052} {"10" 2 0.468 0.628 0.036 0.052} {"12" 2 0.468 0.704 0.036 0.048} {"14" 2 0.468 0.772 0.036 0.052} {"16" 2 0.468 0.844 0.036 0.052} {"17" 2 0.58 0.84 0.044 0.056} {"18" 2 0.312 0.188 0.168 0.088} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' } {"7+8" 5 '7' '8' } {"9+10" 5 '9' '10' } {"11+12" 5 '11' '12' } {"13+14" 5 '13' '14' } {"15+16" 5 '15' '16' }} HM-LC-Dim1L-Pl-3 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} {263 155} {{"2" 2 0.204 0.244 0.556 0.12} {"1" 2 0.204 0.68 0.556 0.12} {"4" 2 0.204 0.244 0.556 0.12} {"3" 2 0.204 0.68 0.556 0.12} {"6" 2 0.204 0.244 0.556 0.12} {"5" 2 0.204 0.68 0.556 0.12} {"8" 2 0.204 0.244 0.556 0.12} {"7" 2 0.204 0.68 0.556 0.12} {"10" 2 0.204 0.244 0.556 0.12} {"9" 2 0.204 0.68 0.556 0.12} {"12" 2 0.204 0.244 0.556 0.12} {"11" 2 0.204 0.68 0.556 0.12} {"14" 2 0.204 0.244 0.556 0.12} {"13" 2 0.204 0.68 0.556 0.12} {"16" 2 0.204 0.244 0.556 0.12} {"15" 2 0.204 0.68 0.556 0.12} {"18" 2 0.204 0.244 0.556 0.12} {"17" 2 0.204 0.68 0.556 0.12} {"20" 2 0.204 0.244 0.556 0.12} {"19" 2 0.204 0.68 0.556 0.12}} HM-RCV-50 {{"RF_1" 4 0.364 0.048 0.028 0.028} {"RF_2" 6 0.4 0.052 0.544 0.004 0.016} {"RF_3" 6 0.4 0.052 0.6 0.052 0.016} {"RF_4" 6 0.4 0.052 0.544 0.104 0.016} {"RF_5" 6 0.168 0.052 0.344 0.052 0.016} {"RF_6" 6 0.168 0 0.344 0.052 0.016} {"RF_7" 6 0.168 0.104 0.344 0.052 0.016} {"RF" 5 'RF_1' 'RF_2' 'RF_3' 'RF_4' 'RF_5' 'RF_6' 'RF_7' } { "S1" 3 0.25 0.15 '1' 0.3 'verdana' Font.BOLD} { "S2" 3 0.25 0.15 '2' 0.3 'verdana' Font.BOLD} { "S3" 3 0.25 0.15 '3' 0.3 'verdana' Font.BOLD} { "S4" 3 0.25 0.15 '4' 0.3 'verdana' Font.BOLD} { "S5" 3 0.25 0.15 '5' 0.3 'verdana' Font.BOLD} { "S6" 3 0.25 0.15 '6' 0.3 'verdana' Font.BOLD} { "S7" 3 0.25 0.15 '7' 0.3 'verdana' Font.BOLD} { "S8" 3 0.25 0.15 '8' 0.3 'verdana' Font.BOLD} { "S9" 3 0.25 0.15 '9' 0.3 'verdana' Font.BOLD} {"S10" 3 0.175 0.15 '10' 0.3 'verdana' Font.BOLD} {"S11" 3 0.175 0.15 '11' 0.3 'verdana' Font.BOLD} {"S12" 3 0.175 0.15 '12' 0.3 'verdana' Font.BOLD} {"S13" 3 0.175 0.15 '13' 0.3 'verdana' Font.BOLD} {"S14" 3 0.175 0.15 '14' 0.3 'verdana' Font.BOLD} {"S15" 3 0.175 0.15 '15' 0.3 'verdana' Font.BOLD} {"S16" 3 0.175 0.15 '16' 0.3 'verdana' Font.BOLD} {"S17" 3 0.175 0.15 '17' 0.3 'verdana' Font.BOLD} {"S18" 3 0.175 0.15 '18' 0.3 'verdana' Font.BOLD} {"S19" 3 0.175 0.15 '19' 0.3 'verdana' Font.BOLD} {"S20" 3 0.175 0.15 '20' 0.3 'verdana' Font.BOLD} {"S21" 3 0.175 0.15 '21' 0.3 'verdana' Font.BOLD} {"S22" 3 0.175 0.15 '22' 0.3 'verdana' Font.BOLD} {"S23" 3 0.175 0.15 '23' 0.3 'verdana' Font.BOLD} {"S24" 3 0.175 0.15 '24' 0.3 'verdana' Font.BOLD} {"S25" 3 0.175 0.15 '25' 0.3 'verdana' Font.BOLD} {"S26" 3 0.175 0.15 '26' 0.3 'verdana' Font.BOLD} {"S27" 3 0.175 0.15 '27' 0.3 'verdana' Font.BOLD} {"S28" 3 0.175 0.15 '28' 0.3 'verdana' Font.BOLD} {"S29" 3 0.175 0.15 '29' 0.3 'verdana' Font.BOLD} {"S30" 3 0.175 0.15 '30' 0.3 'verdana' Font.BOLD} {"S31" 3 0.175 0.15 '31' 0.3 'verdana' Font.BOLD} {"S32" 3 0.175 0.15 '32' 0.3 'verdana' Font.BOLD} {"S33" 3 0.175 0.15 '33' 0.3 'verdana' Font.BOLD} {"S34" 3 0.175 0.15 '34' 0.3 'verdana' Font.BOLD} {"S35" 3 0.175 0.15 '35' 0.3 'verdana' Font.BOLD} {"S36" 3 0.175 0.15 '36' 0.3 'verdana' Font.BOLD} {"S37" 3 0.175 0.15 '37' 0.3 'verdana' Font.BOLD} {"S38" 3 0.175 0.15 '38' 0.3 'verdana' Font.BOLD} {"S39" 3 0.175 0.15 '39' 0.3 'verdana' Font.BOLD} {"S40" 3 0.175 0.15 '40' 0.3 'verdana' Font.BOLD} {"S41" 3 0.175 0.15 '41' 0.3 'verdana' Font.BOLD} {"S42" 3 0.175 0.15 '42' 0.3 'verdana' Font.BOLD} {"S43" 3 0.175 0.15 '43' 0.3 'verdana' Font.BOLD} {"S44" 3 0.175 0.15 '44' 0.3 'verdana' Font.BOLD} {"S45" 3 0.175 0.15 '45' 0.3 'verdana' Font.BOLD} {"S46" 3 0.175 0.15 '46' 0.3 'verdana' Font.BOLD} {"S47" 3 0.175 0.15 '47' 0.3 'verdana' Font.BOLD} {"S48" 3 0.175 0.15 '48' 0.3 'verdana' Font.BOLD} {"S49" 3 0.175 0.15 '49' 0.3 'verdana' Font.BOLD} {"S50" 3 0.175 0.15 '50' 0.3 'verdana' Font.BOLD} {"1" 5 'S1' } {"2" 5 'S2' } {"3" 5 'S3' } {"4" 5 'S4' } {"5" 5 'S5' } {"6" 5 'S6' } {"7" 5 'S7' } {"8" 5 'S8' } {"9" 5 'S9' } {"10" 5 'S10' } {"11" 5 'S11' } {"12" 5 'S12' } {"13" 5 'S13' } {"14" 5 'S14' } {"15" 5 'S15' } {"16" 5 'S16' } {"17" 5 'S17' } {"18" 5 'S18' } {"19" 5 'S19' } {"20" 5 'S20' } {"21" 5 'S21' } {"22" 5 'S22' } {"23" 5 'S23' } {"24" 5 'S24' } {"25" 5 'S25' } {"26" 5 'S26' } {"27" 5 'S27' } {"28" 5 'S28' } {"29" 5 'S29' } {"30" 5 'S30' } {"31" 5 'S31' } {"32" 5 'S32' } {"33" 5 'S33' } {"34" 5 'S34' } {"35" 5 'S35' } {"36" 5 'S36' } {"37" 5 'S37' } {"38" 5 'S38' } {"39" 5 'S39' } {"40" 5 'S40' } {"41" 5 'S41' } {"42" 5 'S42' } {"43" 5 'S43' } {"44" 5 'S44' } {"45" 5 'S45' } {"46" 5 'S46' } {"47" 5 'S47' } {"48" 5 'S48' } {"49" 5 'S49' } {"50" 5 'S50' }} {263 157} {} {263 158} {} {263 160} {} HM-LC-Dim1L-CV-2 {} HM-LC-Bl1-PB-FM {} HM-PB-2-WM {{"2" 2 0.244 0.312 0.428 0.168} {"1" 2 0.244 0.56 0.428 0.168} {"1+2" 2 0.244 0.308 0.428 0.416}} {263 162} {} HM-LC-Dim1T-FM-644 {} {263 167} {} HM-RC-Sec3-B {{"1" 4 0.252 0.2 0.16 0.176} {"2" 4 0.492 0.2 0.16 0.176} {"3" 4 0.34 0.48 0.224 0.248} {"1+2" 5 '1' '2' }} HM-RC-4-3-D {} HM-LC-Dim1T-FM-LF {} HM-Dis-WM55 {} HM-LC-Sw4-SM-2 {{"1_Part1" 6 0.136 0.896 0.136 0.98 0.012} {"1_Part2" 6 0.136 0.98 0.096 0.916 0.012} {"1_Part3" 6 0.136 0.98 0.176 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.164 0} {"3_Arrow" 7 '1_Arrow' 0.328 0} {"4_Arrow" 7 '1_Arrow' 0.492 0} {"1_Key" 4 0.244 0.372 0.04 0.044} {"2_Key" 4 0.328 0.372 0.04 0.044} {"3_Key" 4 0.404 0.372 0.04 0.044} {"4_Key" 4 0.484 0.372 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' } {"3" 5 '3_Arrow' '3_Key' } {"4" 5 '4_Arrow' '4_Key' }} HM-LC-Sw1-FM-2 {{"1_AUS" 2 0.288 0.66 0.068 0.152} {"1_EIN" 2 0.548 0.66 0.068 0.152} {"1" 5 '1_AUS' '1_EIN' }} {ZEL STG RM DWT 10} {{"2" 2 0.204 0.244 0.556 0.12} {"1" 2 0.204 0.68 0.556 0.12} {"4" 2 0.204 0.244 0.556 0.12} {"3" 2 0.204 0.68 0.556 0.12} {"6" 2 0.204 0.244 0.556 0.12} {"5" 2 0.204 0.68 0.556 0.12} {"8" 2 0.204 0.244 0.556 0.12} {"7" 2 0.204 0.68 0.556 0.12} {"10" 2 0.204 0.244 0.556 0.12} {"9" 2 0.204 0.68 0.556 0.12} {"12" 2 0.204 0.244 0.556 0.12} {"11" 2 0.204 0.68 0.556 0.12} {"14" 2 0.204 0.244 0.556 0.12} {"13" 2 0.204 0.68 0.556 0.12} {"16" 2 0.204 0.244 0.556 0.12} {"15" 2 0.204 0.68 0.556 0.12} {"18" 2 0.204 0.244 0.556 0.12} {"17" 2 0.204 0.68 0.556 0.12} {"20" 2 0.204 0.244 0.556 0.12} {"19" 2 0.204 0.68 0.556 0.12}} HM-Sen-EP {{"1_rect" 2 0.14 0.612 0.086 0.05} {"2_rect" 2 0.14 0.740 0.086 0.05} {"1_channel" 3 0.44 0.232 '1' 0.18 'verdana' Font.BOLD} {"1" 5 '1_channel' '1_rect'} {"2_channel" 3 0.44 0.232 '2' 0.18 'verdana' Font.BOLD} {"2" 5 '2_channel' '2_rect'}} HmIP-eTRV-2 {} HM-LC-Sw1-SM-2 {} HM-WDS10-TH-O {} HM-LC-Dim2L-SM-644 {{"1_Part1" 6 0.530 0.896 0.530 0.98 0.012} {"1_Part2" 6 0.530 0.98 0.49 0.916 0.012} {"1_Part3" 6 0.530 0.98 0.574 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.168 0} {"1_Key" 4 0.25 0.33 0.04 0.044} {"2_Key" 4 0.328 0.33 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} HM-Sec-WDS-2 {} HM-LC-Sw1-Ba-PCB {} atent {{"1" 4 0.177 0.216 0.166 0.166} {"2" 4 0.438 0.216 0.166 0.166} {"3" 4 0.273 0.49 0.24 0.235} {"1+2" 5 '1' '2' }} HM-Sen-MDIR-O-2 {} HM-CC-TC {} HM-LC-Dim1T-Pl {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-Sec-SCo {} HM-LC-Dim1T-Pl-644 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-ES-TX-WM {} HMW-IO-12-FM {{"1_num" 3 0.744 0.636 '1' 0.164 'verdana' Font.BOLD} {"1_line" 6 0.77 0.08 0.860 0.08 0.016} {"1" 5 '1_num' '1_line'} {"2_num" 3 0.744 0.636 '2' 0.164 'verdana' Font.BOLD} {"2_line" 6 0.77 0.136 0.86 0.136 0.016} {"2" 5 '2_num' '2_line'} {"3_num" 3 0.744 0.636 '3' 0.164 'verdana' Font.BOLD} {"3_line" 6 0.77 0.194 0.86 0.194 0.016} {"3" 5 '3_num' '3_line'} {"4_num" 3 0.744 0.636 '4' 0.164 'verdana' Font.BOLD} {"4_line" 6 0.77 0.25 0.86 0.25 0.016} {"4" 5 '4_num' '4_line'} {"5_num" 3 0.744 0.636 '5' 0.164 'verdana' Font.BOLD} {"5_line" 6 0.77 0.308 0.86 0.308 0.016} {"5" 5 '5_num' '5_line'} {"6_num" 3 0.744 0.636 '6' 0.164 'verdana' Font.BOLD} {"6_line" 6 0.77 0.366 0.86 0.366 0.016} {"6" 5 '6_num' '6_line'} {"7_num" 3 0.744 0.636 '7' 0.164 'verdana' Font.BOLD} {"7_line" 6 0.77 0.424 0.86 0.424 0.016} {"7" 5 '7_num' '7_line'} {"8_num" 3 0.744 0.636 '8' 0.164 'verdana' Font.BOLD} {"8_arc" 4 0.370 0.748 0.036 0.036 0.036} {"8" 5 '8_num' '8_arc'} {"9_num" 3 0.744 0.636 '9' 0.164 'verdana' Font.BOLD} {"9_arc" 4 0.3895 0.704 0.036 0.036 0.036} {"9" 5 '9_num' '9_arc'} {"10_num" 3 0.744 0.636 '10' 0.164 'verdana' Font.BOLD} {"10_arc" 4 0.41 0.65 0.035 0.036 0.036} {"10" 5 '10_num' '10_arc'} {"11_num" 3 0.744 0.636 '11' 0.164 'verdana' Font.BOLD} {"11_arc" 4 0.4293 0.612 0.036 0.036 0.036} {"11" 5 '11_num' '11_arc'} {"12_num" 3 0.744 0.636 '12' 0.164 'verdana' Font.BOLD} {"12_arc" 4 0.448 0.564 0.036 0.036 0.036} {"12" 5 '12_num' '12_arc'}} 263_149_/_263_150 {} HM-LC-Sw1-Pl-CT-R1 {} HM-PBI-4-FM {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.265 0.500 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.287 0.465 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.309 0.430 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' } {"4_Key" 3 0.18 0.216 '4' 0.14 'verdana' Font.BOLD} {"4_Kreis" 4 0.331 0.395 0.028 0.028} {"4" 5 '4_Key' '4_Kreis' }} HM-CC-VD {} HM-RC-4-2 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"1_Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"2_Arrow" 7 '1_Arrow' 0.028 0.156} {"3_Arrow" 7 '1_Arrow' 0.028 0.312} {"4_Arrow" 7 '1_Arrow' 0.012 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-Sec-SC {} HM-RC-4-3 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"1_Arrow" 7 'Arrow' 0.25 0.0} {"2_Arrow" 7 'Arrow' 0.238 0.156} {"3_Arrow" 7 'Arrow' 0.228 0.312} {"4_Arrow" 7 'Arrow' 0.212 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-Sec-SD {} HMIP-PSM {} HM-ES-PMSw1-SM {} HM-Sen-MDIR-WM55 {{"1" 2 0.192 0.660 0.524 0.12} {"2" 2 0.192 0.252 0.524 0.12} {"1+2" 5 '1' '2' }} HM-LC-Sw4-PCB {{"Channel1" 2 0.176 0.78 0.068 0.064} {"Channel2" 2 0.244 0.78 0.068 0.064} {"Channel3" 2 0.312 0.78 0.068 0.064} {"Channel4" 2 0.38 0.78 0.068 0.064} {"1_val" 3 0.372 0.288 '1' 0.14 'verdana' Font.BOLD} {"2_val" 3 0.372 0.288 '2' 0.14 'verdana' Font.BOLD} {"3_val" 3 0.372 0.288 '3' 0.14 'verdana' Font.BOLD} {"4_val" 3 0.372 0.288 '4' 0.14 'verdana' Font.BOLD} {"Circle1" 4 0.512 0.784 0.044 0.044} {"Circle2" 4 0.570 0.784 0.044 0.044} {"Circle3" 4 0.628 0.784 0.044 0.044} {"Circle4" 4 0.686 0.784 0.044 0.044} {"1" 5 'Channel1' '1_val' 'Circle1'} {"2" 5 'Channel2' '2_val' 'Circle2'} {"3" 5 'Channel3' '3_val' 'Circle3'} {"4" 5 'Channel4' '4_val' 'Circle4'}} HMIP-PS {} HmIP-KRC4 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"1_Arrow" 7 'Arrow' 0.25 0.0} {"2_Arrow" 7 'Arrow' 0.238 0.156} {"3_Arrow" 7 'Arrow' 0.228 0.312} {"4_Arrow" 7 'Arrow' 0.212 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-ES-PMSw1-Pl {} HM-LC-Dim1TPBU-FM {} HM-PB-4Dis-WM-2 {{"2" 2 0.204 0.244 0.556 0.12} {"1" 2 0.204 0.68 0.556 0.12} {"4" 2 0.204 0.244 0.556 0.12} {"3" 2 0.204 0.68 0.556 0.12} {"6" 2 0.204 0.244 0.556 0.12} {"5" 2 0.204 0.68 0.556 0.12} {"8" 2 0.204 0.244 0.556 0.12} {"7" 2 0.204 0.68 0.556 0.12} {"10" 2 0.204 0.244 0.556 0.12} {"9" 2 0.204 0.68 0.556 0.12} {"12" 2 0.204 0.244 0.556 0.12} {"11" 2 0.204 0.68 0.556 0.12} {"14" 2 0.204 0.244 0.556 0.12} {"13" 2 0.204 0.68 0.556 0.12} {"16" 2 0.204 0.244 0.556 0.12} {"15" 2 0.204 0.68 0.556 0.12} {"18" 2 0.204 0.244 0.556 0.12} {"17" 2 0.204 0.68 0.556 0.12} {"20" 2 0.204 0.244 0.556 0.12} {"19" 2 0.204 0.68 0.556 0.12}} {ZEL STG RM FEP 230V} {} HM-RC-4-B {{"1" 4 0.268 0.236 0.16 0.164} {"2" 4 0.476 0.236 0.16 0.164} {"3" 4 0.268 0.48 0.16 0.164} {"4" 4 0.476 0.48 0.16 0.164} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' }} HM-RC-12 {{"1" 2 0.252 0.412 0.044 0.072} {"3" 2 0.252 0.508 0.044 0.072} {"5" 2 0.252 0.604 0.044 0.072} {"7" 2 0.252 0.7 0.044 0.072} {"9" 2 0.252 0.8 0.044 0.072} {"10" 2 0.476 0.8 0.044 0.072} {"8" 2 0.476 0.7 0.044 0.072} {"6" 2 0.476 0.604 0.044 0.072} {"4" 2 0.476 0.508 0.044 0.072} {"2" 2 0.476 0.412 0.044 0.072} {"11" 2 0.62 0.8 0.068 0.064} {"12" 2 0.62 0.704 0.068 0.064} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' } {"7+8" 5 '7' '8' } {"9+10" 5 '9' '10' } {"11+12" 5 '11' '12' }} HMIP-WRC2 {{"2" 4 0.540 0.366 0.04 0.044} {"1" 4 0.540 0.622 0.04 0.044}} OLIGO.smart.iq.HM {} HM-LC-Sw2-DR {{"1" 4 0.095 0.556 0.045 0.04} {"2" 4 0.285 0.556 0.045 0.04}} HM-LC-Dim1T-Pl-2 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HMW-Sen-SC-12-DR {{"1" 2 0.244 0.688 0.06 0.06} {"2" 2 0.304 0.688 0.06 0.06} {"3" 2 0.436 0.688 0.06 0.06} {"4" 2 0.496 0.688 0.06 0.06} {"5" 2 0.62 0.688 0.06 0.06} {"6" 2 0.68 0.688 0.06 0.06} {"7" 2 0.244 0.752 0.06 0.06} {"8" 2 0.304 0.752 0.06 0.06} {"9" 2 0.436 0.752 0.06 0.06} {"10" 2 0.496 0.752 0.06 0.06} {"11" 2 0.62 0.752 0.06 0.06} {"12" 2 0.68 0.752 0.06 0.06}} HM-RC-19 {{"1" 2 0.296 0.344 0.036 0.052} {"3" 2 0.296 0.416 0.036 0.052} {"5" 2 0.296 0.488 0.036 0.052} {"7" 2 0.296 0.56 0.036 0.052} {"9" 2 0.296 0.628 0.036 0.052} {"11" 2 0.296 0.704 0.036 0.048} {"13" 2 0.296 0.772 0.036 0.052} {"15" 2 0.296 0.844 0.036 0.052} {"2" 2 0.468 0.344 0.036 0.052} {"4" 2 0.468 0.416 0.036 0.052} {"6" 2 0.468 0.488 0.036 0.052} {"8" 2 0.468 0.56 0.036 0.052} {"10" 2 0.468 0.628 0.036 0.052} {"12" 2 0.468 0.704 0.036 0.048} {"14" 2 0.468 0.772 0.036 0.052} {"16" 2 0.468 0.844 0.036 0.052} {"17" 2 0.58 0.84 0.044 0.056} {"18" 2 0.312 0.188 0.168 0.088} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' } {"7+8" 5 '7' '8' } {"9+10" 5 '9' '10' } {"11+12" 5 '11' '12' } {"13+14" 5 '13' '14' } {"15+16" 5 '15' '16' }} HM-MOD-EM-8 {} HM-LC-Dim1T-Pl-3 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-TC-IT-WM-W-EU {} HM-Sec-SD-2 {} HM-LC-Dim1T-CV-2 {} HM-RC-Sec4-2 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"1_Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"2_Arrow" 7 '1_Arrow' 0.028 0.156} {"3_Arrow" 7 '1_Arrow' 0.028 0.312} {"4_Arrow" 7 '1_Arrow' 0.012 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} {ZEL STG RM FSA} {} HM-RC-Sec4-3 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"1_Arrow" 7 'Arrow' 0.25 0.0} {"2_Arrow" 7 'Arrow' 0.238 0.156} {"3_Arrow" 7 'Arrow' 0.228 0.312} {"4_Arrow" 7 'Arrow' 0.212 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-OU-CM-PCB {} HM-Sec-MDIR {} HM-Sec-WDS {} HMW-Sen-SC-12-FM {{"1_num" 3 0.744 0.636 '1' 0.164 'verdana' Font.BOLD} {"1_line" 6 0.77 0.055 0.860 0.055 0.016} {"1" 5 '1_num' '1_line'} {"2_num" 3 0.744 0.636 '2' 0.164 'verdana' Font.BOLD} {"2_line" 6 0.77 0.115 0.86 0.115 0.016} {"2" 5 '2_num' '2_line'} {"3_num" 3 0.744 0.636 '3' 0.164 'verdana' Font.BOLD} {"3_line" 6 0.77 0.173 0.86 0.173 0.016} {"3" 5 '3_num' '3_line'} {"4_num" 3 0.744 0.636 '4' 0.164 'verdana' Font.BOLD} {"4_line" 6 0.77 0.226 0.86 0.226 0.016} {"4" 5 '4_num' '4_line'} {"5_num" 3 0.744 0.636 '5' 0.164 'verdana' Font.BOLD} {"5_line" 6 0.77 0.288 0.86 0.288 0.016} {"5" 5 '5_num' '5_line'} {"6_num" 3 0.744 0.636 '6' 0.164 'verdana' Font.BOLD} {"6_line" 6 0.77 0.348 0.86 0.348 0.016} {"6" 5 '6_num' '6_line'} {"7_num" 3 0.744 0.636 '7' 0.164 'verdana' Font.BOLD} {"7_line" 6 0.77 0.403 0.86 0.403 0.016} {"7" 5 '7_num' '7_line'} {"8_num" 3 0.744 0.636 '8' 0.164 'verdana' Font.BOLD} {"8_arc" 4 0.370 0.730 0.036 0.036 0.036} {"8" 5 '8_num' '8_arc'} {"9_num" 3 0.744 0.636 '9' 0.164 'verdana' Font.BOLD} {"9_arc" 4 0.3895 0.685 0.036 0.036 0.0368} {"9" 5 '9_num' '9_arc'} {"10_num" 3 0.744 0.636 '10' 0.164 'verdana' Font.BOLD} {"10_arc" 4 0.41 0.64 0.036 0.036 0.036} {"10" 5 '10_num' '10_arc'} {"11_num" 3 0.744 0.636 '11' 0.164 'verdana' Font.BOLD} {"11_arc" 4 0.43 0.589 0.036 0.036 0.036} {"11" 5 '11_num' '11_arc'} {"12_num" 3 0.744 0.636 '12' 0.164 'verdana' Font.BOLD} {"12_arc" 4 0.45 0.542 0.036 0.036 0.036} {"12" 5 '12_num' '12_arc'}} HM-LC-Sw2-FM {{"1_AUS" 2 0.34 0.66 0.068 0.148} {"1_EIN" 2 0.6 0.66 0.068 0.148} {"2_AUS" 2 0.256 0.66 0.068 0.148} {"2_EIN" 2 0.508 0.66 0.068 0.148} {"1" 5 '1_AUS' '1_EIN' } {"2" 5 '2_AUS' '2_EIN' }} HM-CCU-1 {} HmIP-PSM {} HM-LC-Bl1-FM {} HM-RC-P1 {{"1" 4 0.26 0.248 0.38 0.42}} HM-LC-Dim1L-Pl {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HmIP-PS {} HM-PB-2-WM55 {{"2" 2 0.204 0.23 0.546 0.128} {"1" 2 0.204 0.65 0.546 0.128}} {ZEL STG RM HS 4} {{"1" 4 0.268 0.236 0.16 0.164} {"2" 4 0.476 0.236 0.16 0.164} {"3" 4 0.268 0.48 0.16 0.164} {"4" 4 0.476 0.48 0.16 0.164} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' }} HM-LC-Sw1-Pl-2 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-LC-Dim1L-Pl-644 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-LC-Sw1-Pl-3 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HMW-IO-12-Sw7-DR {{"1" 2 0.264 0.7 0.06 0.06} {"2" 2 0.328 0.7 0.06 0.06} {"3" 2 0.46 0.7 0.06 0.06} {"4" 2 0.524 0.7 0.06 0.06} {"5" 2 0.648 0.7 0.06 0.06} {"6" 2 0.708 0.7 0.06 0.06} {"8" 2 0.328 0.764 0.06 0.06} {"7" 2 0.264 0.764 0.06 0.06} {"9" 2 0.46 0.764 0.06 0.06} {"10" 2 0.524 0.764 0.06 0.06} {"11" 2 0.644 0.764 0.06 0.06} {"12" 2 0.708 0.764 0.06 0.06} {"13" 2 0.268 0.396 0.12 0.06} {"14" 2 0.46 0.396 0.12 0.06} {"15" 2 0.648 0.396 0.12 0.06} {"16" 2 0.076 0.46 0.12 0.06} {"17" 2 0.264 0.46 0.12 0.06} {"18" 2 0.46 0.46 0.12 0.06} {"19" 2 0.648 0.46 0.12 0.06}} HM-WS550STH-I {} {ZEL STG RM WT 2} {{"2" 2 0.204 0.23 0.546 0.128} {"1" 2 0.204 0.65 0.546 0.128}} HM-Sen-MDIR-SM {} HM-WS550STH-O {} HmIP-WRC2 {{"2" 4 0.540 0.366 0.04 0.044} {"1" 4 0.540 0.622 0.04 0.044}} HMW-Sys-PS7-DR {} WS550 {{"1" 3 0.440 0.200 '1' 0.124 'verdana' Font.BOLD} {"2" 3 0.440 0.200 '2' 0.124 'verdana' Font.BOLD} {"3" 3 0.440 0.200 '3' 0.124 'verdana' Font.BOLD} {"4" 3 0.440 0.200 '4' 0.124 'verdana' Font.BOLD} {"5" 3 0.440 0.200 '5' 0.124 'verdana' Font.BOLD} {"6" 3 0.440 0.200 '6' 0.124 'verdana' Font.BOLD} {"7" 3 0.440 0.200 '7' 0.124 'verdana' Font.BOLD} {"8" 3 0.440 0.200 '8' 0.124 'verdana' Font.BOLD} {"9" 3 0.440 0.200 '9' 0.124 'verdana' Font.BOLD} {"10" 3 0.405 0.200 '10' 0.124 'verdana' Font.BOLD}} HM-Sen-Wa-Od {} HM-RC-Key3-B {{"1" 4 0.252 0.2 0.16 0.18} {"2" 4 0.492 0.2 0.16 0.18} {"3" 4 0.34 0.484 0.228 0.252} {"1+2" 5 '1' '2' }} DEVICE {{"Icon" 3 0.092 0.6 'Icon_folgt' 0.14 'verdana' Font.BOLD} {"1_channel" 3 0.44 0.232 '1' 0.18 'verdana' Font.BOLD} {"1" 5 '1_channel' 'Icon'} {"2_channel" 3 0.44 0.232 '2' 0.18 'verdana' Font.BOLD} {"2" 5 '2_channel' 'Icon'}} HM-WDS30-OT2-SM {} HM-PB-2-FM {{"2" 2 0.244 0.312 0.428 0.168} {"1" 2 0.244 0.56 0.428 0.168} {"1+2" 2 0.244 0.308 0.428 0.416}} HM-LC-Bl1PBU-FM {{"1a" 2 0.244 0.312 0.428 0.168} {"1b" 2 0.244 0.56 0.428 0.168} {"1" 5 '1a' '1b'}} HM-LC-Sw1-DR {} HMIP-eTRV {} HMIP-WTH {} HM-RC-2-PBU-FM {{"2" 2 0.244 0.312 0.428 0.168} {"1" 2 0.244 0.56 0.428 0.168} {"1+2" 2 0.244 0.308 0.428 0.416}} HM-LC-Sw1-Pl-OM54 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-LC-Sw4-WM-2 {{"Channel1" 2 0.208 0.766 0.065 0.060} {"Channel2" 2 0.276 0.766 0.065 0.060} {"Channel3" 2 0.344 0.766 0.065 0.060} {"Channel4" 2 0.412 0.766 0.065 0.060} {"1_val" 3 0.372 0.288 '1' 0.14 'verdana' Font.BOLD} {"2_val" 3 0.372 0.288 '2' 0.14 'verdana' Font.BOLD} {"3_val" 3 0.372 0.288 '3' 0.14 'verdana' Font.BOLD} {"4_val" 3 0.372 0.288 '4' 0.14 'verdana' Font.BOLD} {"Circle1" 4 0.534 0.762 0.044 0.044} {"Circle2" 4 0.583 0.762 0.044 0.044} {"Circle3" 4 0.637 0.762 0.044 0.044} {"Circle4" 4 0.693 0.762 0.044 0.044} {"1" 5 'Channel1' '1_val' 'Circle1'} {"2" 5 'Channel2' '2_val' 'Circle2'} {"3" 5 'Channel3' '3_val' 'Circle3'} {"4" 5 'Channel4' '4_val' 'Circle4'}} HM-Sec-MDIR-2 {} HM-Sec-MDIR-3 {} HMW-Sec-TR-FM {} HM-WDC7000 {{"1" 3 0.440 0.200 '1' 0.124 'verdana' Font.BOLD} {"2" 3 0.440 0.200 '2' 0.124 'verdana' Font.BOLD} {"3" 3 0.440 0.200 '3' 0.124 'verdana' Font.BOLD} {"4" 3 0.440 0.200 '4' 0.124 'verdana' Font.BOLD} {"5" 3 0.440 0.200 '5' 0.124 'verdana' Font.BOLD} {"6" 3 0.440 0.200 '6' 0.124 'verdana' Font.BOLD} {"7" 3 0.440 0.200 '7' 0.124 'verdana' Font.BOLD} {"8" 3 0.440 0.200 '8' 0.124 'verdana' Font.BOLD} {"9" 3 0.440 0.200 '9' 0.124 'verdana' Font.BOLD} {"10" 3 0.405 0.200 '10' 0.124 'verdana' Font.BOLD}} HM-OU-LED16 {{"1" 2 0.152 0.218 0.064 0.056} {"2" 2 0.152 0.277 0.064 0.056} {"3" 2 0.152 0.336 0.064 0.056} {"4" 2 0.152 0.395 0.064 0.056} {"5" 2 0.152 0.454 0.064 0.056} {"6" 2 0.152 0.513 0.064 0.056} {"7" 2 0.152 0.572 0.064 0.056} {"8" 2 0.152 0.631 0.064 0.056} {"9" 2 0.728 0.218 0.064 0.056} {"10" 2 0.728 0.277 0.064 0.056} {"11" 2 0.728 0.336 0.064 0.056} {"12" 2 0.728 0.395 0.064 0.056} {"13" 2 0.728 0.454 0.064 0.056} {"14" 2 0.728 0.513 0.064 0.056} {"15" 2 0.728 0.572 0.064 0.056} {"16" 2 0.728 0.631 0.064 0.056}} HM-LC-Sw4-SM {{"1_Part1" 6 0.136 0.896 0.136 0.98 0.012} {"1_Part2" 6 0.136 0.98 0.096 0.916 0.012} {"1_Part3" 6 0.136 0.98 0.176 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.164 0} {"3_Arrow" 7 '1_Arrow' 0.328 0} {"4_Arrow" 7 '1_Arrow' 0.492 0} {"1_Key" 4 0.244 0.372 0.04 0.044} {"2_Key" 4 0.328 0.372 0.04 0.044} {"3_Key" 4 0.404 0.372 0.04 0.044} {"4_Key" 4 0.484 0.372 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' } {"3" 5 '3_Arrow' '3_Key' } {"4" 5 '4_Arrow' '4_Key' }} HM-LC-Sw1-FM {{"1_AUS" 2 0.288 0.66 0.068 0.152} {"1_EIN" 2 0.548 0.66 0.068 0.152} {"1" 5 '1_AUS' '1_EIN' }} HM-LC-Sw2-PB-FM {{"1" 2 0.24 0.312 0.204 0.412} {"2" 2 0.46 0.312 0.204 0.412}} WS888 {{"1" 3 0.440 0.200 '1' 0.124 'verdana' Font.BOLD} {"2" 3 0.440 0.200 '2' 0.124 'verdana' Font.BOLD} {"3" 3 0.440 0.200 '3' 0.124 'verdana' Font.BOLD} {"4" 3 0.440 0.200 '4' 0.124 'verdana' Font.BOLD} {"5" 3 0.440 0.200 '5' 0.124 'verdana' Font.BOLD} {"6" 3 0.440 0.200 '6' 0.124 'verdana' Font.BOLD} {"7" 3 0.440 0.200 '7' 0.124 'verdana' Font.BOLD} {"8" 3 0.440 0.200 '8' 0.124 'verdana' Font.BOLD} {"9" 3 0.440 0.200 '9' 0.124 'verdana' Font.BOLD} {"10" 3 0.405 0.200 '10' 0.124 'verdana' Font.BOLD}} HM-WS550-US {{"1" 3 0.440 0.200 '1' 0.124 'verdana' Font.BOLD} {"2" 3 0.440 0.200 '2' 0.124 'verdana' Font.BOLD} {"3" 3 0.440 0.200 '3' 0.124 'verdana' Font.BOLD} {"4" 3 0.440 0.200 '4' 0.124 'verdana' Font.BOLD} {"5" 3 0.440 0.200 '5' 0.124 'verdana' Font.BOLD} {"6" 3 0.440 0.200 '6' 0.124 'verdana' Font.BOLD} {"7" 3 0.440 0.200 '7' 0.124 'verdana' Font.BOLD} {"8" 3 0.440 0.200 '8' 0.124 'verdana' Font.BOLD} {"9" 3 0.440 0.200 '9' 0.124 'verdana' Font.BOLD} {"10" 3 0.405 0.200 '10' 0.124 'verdana' Font.BOLD}} HM-LC-Dim1PWM-CV {} HM-LC-Sw4-SM-ATmega168 {{"1_Part1" 6 0.136 0.896 0.136 0.98 0.012} {"1_Part2" 6 0.136 0.98 0.096 0.916 0.012} {"1_Part3" 6 0.136 0.98 0.176 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.164 0} {"3_Arrow" 7 '1_Arrow' 0.328 0} {"4_Arrow" 7 '1_Arrow' 0.492 0} {"1_Key" 4 0.244 0.372 0.04 0.044} {"2_Key" 4 0.328 0.372 0.04 0.044} {"3_Key" 4 0.404 0.372 0.04 0.044} {"4_Key" 4 0.484 0.372 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' } {"3" 5 '3_Arrow' '3_Key' } {"4" 5 '4_Arrow' '4_Key' }}} +set DEV_LIST {HM-LC-Sw1-Pl-DN-R3 HM-LC-Sw2-DR {263 146} HM-LC-Sw1-Ba-PCB HM-WS550STH-O HM-RC-2-PBU-FM HM-LC-Sw1-SM-ATmega168 HM-Sen-MDIR-O-2 HM-Sec-Key-S HM-Sec-SD-2-Team HM-PB-4-WM HM-LC-Sw1-Pl-OM54 HM-ES-PMSw1-Pl-DN-R5 HMW-LC-Bl1-DR-2 OLIGO.smart.iq.HM HM-Sec-SD-Team HM-CC-RT-DN HM-LC-Sw1-Pl-CT-R1 HMW-IO-4-FM HM-LC-Dim1L-Pl-2 WS550 HM-LC-Sw1-Pl {ZEL STG RM FSS UP3} HM-LC-Sw1-DR HM-WS550-US HM-LC-Sw4-PCB HM-ES-PMSw1-DR 263_149_/_263_150 HM-ES-PMSw1-Pl-DN-R1 HM-LC-Sw1-SM HmIP-SWDO HM-Dis-TD-T HMW-LC-Sw2-DR HM-RC-4-B HM-LC-Sw4-SM-2 HM-EM-CMM HM-Sec-SC-2 HM-LC-Dim1T-FM HM-PB-6-WM55 {ZEL STG RM FFK} HM-RC-4-2 HM-LC-Dim1L-Pl-644 HM-MOD-EM-8 HM-PB-4Dis-WM HM-CC-VD HM-WDS100-C6-O-2 {263 145} HM-RC-19-SW {263 144} HM-WDS10-TH-O HM-LC-Dim2L-SM-644 HmIP-PS HMW-RCV-50 {263 132} HM-CC-TC HM-WS550ST-IO HM-RC-4-3 HM-WS550STH-I HM-LC-Dim1TPBU-FM-2 HMW-Sen-SC-12-FM HM-LC-Sw4-SM-ATmega168 HM-LC-Dim1L-CV-2 {263 131} HM-Sen-DB-PCB HM-LC-Bl1-SM HM-LC-Dim1T-Pl-3 HmIP-WRC2 HM-Dis-WM55 HM-LC-Dim1T-Pl-2 {263 130} {263 158} HM-LC-Sw1-Pl-DN-R2 HM-LC-Dim1T-CV-644 HMIP-WRC2 {263 157} HM-TC-IT-WM-W-EU HM-PBI-4-FM HM-RC-Sec4-2 HM-RC-Sec3 HM-LC-Sw1-FM {ZEL STG RM WT 2} HM-Sec-SFA-SM HM-WDS30-OT2-SM HMW-LC-Dim1L-DR {ZEL STG RM HS 4} HM-LC-Sw1-PB-FM HMW-Sec-TR-FM HM-LC-DDC1-PCB HM-EM-CCM HM-LC-Sw4-Ba-PCB HM-WDS30-T-O HM-Sen-MDIR-WM55 HM-Sec-MDIR {ZEL STG RM FSA} HM-LC-Sw1-SM-2 HM-CC-VG-1 {263 135} HM-LC-Dim1T-FM-644 {263 167} HM-LC-Bl1-FM HM-ES-PMSw1-Pl-DN-R3 HM-LC-Sw4-PCB-2 HM-LC-Dim1PWM-CV WS888 HM-PB-2-FM HM-Sec-SCo HM-Sec-Key HM-Sen-LI-O HMW-IO-12-Sw7-DR {ZEL STG RM FWT} HM-Sen-EP HM-LC-Dim1L-Pl-3 HM-Sys-sRP-Pl HM-WDC7000 HM-LC-Dim1T-FM-2 HM-LC-Sw2-FM-2 HM-LC-Sw2-FM {ZEL STG RM FST UP4} HM-RC-Dis-H-x-EU HM-LC-Bl1-SM-2 HM-RC-Key3 HM-PB-2-WM55-2 HM-ES-PMSw1-Pl HM-LC-Sw2-PB-FM HM-Sec-SD-2 HMW-Sen-SC-12-DR HmIP-eTRV HMIP-SWDO HmIP-WTH HM-Sen-Wa-Od HM-Sen-RD-O HM-LC-Sw1PBU-FM HM-MOD-Re-8 HM-LC-Sw1-Pl-DN-R4 HM-Sec-RHS HM-WDS40-TH-I HM-LC-Dim2L-SM HM-LC-Dim2T-SM-2 HM-LC-Dim1T-Pl HM-LC-Dim2T-SM HM-PB-2-WM {ZEL STG RM FZS-2} HM-LC-Sw1-Pl-DN-R1 HM-LC-Dim1TPBU-FM HM-LC-Dim2L-SM-2 HM-RC-Sec3-B HM-RC-8 HM-LC-Sw4-DR-2 HM-LC-Sw4-WM {263 155} HM-Sec-WDS-2 KS550 HM-RC-P1 HMW-LC-Bl1-DR HM-RC-12 HMW-IO-12-FM HM-RC-12-B HM-RC-4-3-D HM-RC-Key4-3 HM-Sec-Sir-WM {ZEL STG RM FEP 230V} HM-Sec-TiS HMIP-eTRV {263 162} HM-LC-Sw1-FM-2 HM-Sen-MDIR-O HM-LC-Bl1-FM-2 HM-Sec-WDS HM-ES-TX-WM HMW-IO-12-Sw14-DR HM-LC-Dim1L-CV-644 {ZEL STG RM DWT 10} HMIP-PS HM-PB-2-WM55 HM-LC-Dim1L-CV HM-WDS100-C6-O {ZEL STG RM FZS} HM-OU-LED16 HM-RCV-50 HM-Sec-SD BRC-H HM-Sec-Key-O HM-Sec-MDIR-3 HM-LC-Sw4-WM-2 HM-Sec-Win HM-LC-Dim2T-SM-644 HMIP-PSM HM-RC-Sec4-3 HM-WDS40-TH-I-2 HM-RC-19-B HM-OU-CM-PCB HM-RC-Key3-B HMIP-WTH HM-SCI-3-FM HM-RC-19 HM-RC-4 HM-LC-Sw4-SM HM-LC-Dim1T-Pl-644 HM-LC-RGBW-WM HM-LC-Sw2-DR-2 HM-Sec-SC HMW-WSTH-SM HM-LC-Sw4-DR HmIP-PSM HM-LC-Dim1L-Pl {263 147} HM-RC-Key4-2 HM-LC-Dim1T-CV HMW-WSE-SM HM-SwI-3-FM HmIP-eTRV-2 HM-CCU-1 {ZEL STG RM FDK} HM-LC-Dim1T-CV-2 HM-CC-SCD HM-LC-Sw1-Pl-3 HM-ES-PMSw1-SM {263 133} HmIP-KRC4 HM-LC-Bl1PBU-FM {263 167 Gruppe} HMW-Sys-PS7-DR HM-LC-Bl1-PB-FM HM-ES-PMSw1-Pl-DN-R4 atent {263 134} HM-LC-Sw1-Pl-DN-R5 HM-LC-Dim1PWM-CV-2 DEVICE HM-ES-PMSw1-Pl-DN-R2 HM-LC-Sw1-Pl-2 HM-OU-CFM-Pl HM-OU-CF-Pl HM-WDS30-OT2-SM-2 HM-OU-CFM-TW HM-LC-Dim1T-FM-LF {263 160} HM-Sec-MDIR-2 HM-PB-4Dis-WM-2 HM-Sen-MDIR-SM} +array set DEV_DESCRIPTION {HM-Dis-TD-T HM-Dis-TD-T {ZEL STG RM FWT} ZEL_STG_RM_FWT HM-EM-CCM HM-EM-CCM HMW-RCV-50 HMW-RCV-50 HM-LC-Sw4-Ba-PCB HM-LC-Sw4-Ba-PCB {ZEL STG RM FST UP4} ZEL_STG_RM_FST_UP4 HM-LC-Sw1-PB-FM HM-LC-Sw1-PB-FM HmIP-eTRV TRV HmIP-WTH WTH HM-RC-Key3 HM-RC-Key3 HM-OU-CFM-Pl HM-OU-CFM-Pl HM-RC-Sec3 HM-RC-Sec3 HM-LC-Dim1T-CV HM-LC-Dim1T-CV BRC-H BRC-H HM-PB-4Dis-WM HM-PB-4Dis-WM HM-CC-VG-1 HM-CC-VG-1 HMIP-SWDO SWD HM-WDS40-TH-I-2 HM-WDS40-TH-I {ZEL STG RM FZS} ZEL_STG_RM_FZS HMW-WSTH-SM HMW-WSTH-SM HM-LC-Sw2-DR-2 HM-LC-Sw2-DR HM-LC-Sw4-WM HM-LC-Sw4-WM HM-ES-PMSw1-Pl-DN-R1 HM-ES-PMSw1-Pl-DN-R1 HM-ES-PMSw1-Pl-DN-R2 HM-ES-PMSw1-Pl-DN-R2 HM-OU-CFM-TW HM-OU-CFM-TW HM-Sec-SFA-SM HM-Sec-SFA-SM HM-ES-PMSw1-Pl-DN-R3 HM-ES-PMSw1-Pl-DN-R3 HM-ES-PMSw1-Pl-DN-R4 HM-ES-PMSw1-Pl-DN-R4 HM-ES-PMSw1-Pl-DN-R5 HM-ES-PMSw1-Pl-DN-R5 HM-SwI-3-FM HM-SwI-3-FM HMW-WSE-SM HMW-WSE-SM HM-LC-Dim1T-FM HM-LC-Dim1T-FM HM-Sec-SD-Team HM-Sec-SD-Team HM-RC-Dis-H-x-EU HM-RC-Dis-H-x-EU HM-Sec-Key-O HM-Sec-Key-O HM-RC-Key4-2 HM-RC-Key4-2 HM-LC-RGBW-WM HM-LC-RGBW-WM HM-RC-Key4-3 HM-RC-4 HM-WDS100-C6-O-2 HM-WDS100-C6-O HM-LC-Dim2L-SM-2 HM-LC-Dim2L-SM HM-Sec-TiS HM-Sec-TiS HM-Sec-Key-S HM-Sec-Key-S HM-Sys-sRP-Pl HM-Sys-sRP-Pl HM-LC-Bl1-FM-2 HM-LC-Bl1-FM HM-OU-CF-Pl HM-OU-CF-Pl HMW-LC-Bl1-DR-2 HMW-LC-Bl1-DR HM-SCI-3-FM HM-SCI-3-FM HM-LC-Bl1-SM-2 HM-LC-Bl1-SM HM-LC-Dim1PWM-CV-2 HM-LC-Dim1PWM-CV HM-ES-PMSw1-DR HM-ES-PMSw1-DR HMW-LC-Sw2-DR HMW-LC-Sw2-DR HM-PB-4-WM HM-PB-4-WM HM-LC-Dim1T-CV-644 HM-LC-Dim1T-CV HMW-LC-Bl1-DR HMW-LC-Bl1-DR HmIP-SWDO SWD HM-Sec-Win HM-Sec-Win HM-LC-Sw2-FM-2 HM-LC-Sw2-FM HM-LC-Sw1-Pl-DN-R1 HM-LC-Sw1-Pl-DN-R1 HM-LC-Sw1-Pl-DN-R2 HM-LC-Sw1-Pl-DN-R2 HM-LC-Sw1-Pl-DN-R3 HM-LC-Sw1-Pl-DN-R3 HM-LC-Dim2T-SM HM-LC-Dim2T-SM HM-LC-Sw1-Pl-DN-R4 HM-LC-Sw1-Pl-DN-R4 HM-LC-Sw1-Pl-DN-R5 HM-LC-Sw1-Pl-DN-R5 HM-LC-Sw1-SM-ATmega168 HM-LC-Sw1-SM-ATmega168 HM-LC-Dim1TPBU-FM-2 HM-LC-Dim1TPBU-FM-2 HM-Sen-MDIR-O HM-Sen-MDIR-O HM-RC-12-B HM-RC-12-B HM-LC-Bl1-SM HM-LC-Bl1-SM HM-LC-Dim1L-CV HM-LC-Dim1L-CV {ZEL STG RM FDK} ZEL_STG_RM_FDK HM-Sen-RD-O HM-Sen-RD-O HM-WDS30-T-O HM-WDS30-T-O HM-CC-RT-DN HM-CC-RT-DN HM-WS550ST-IO HM-WS550ST-IO {ZEL STG RM FZS-2} ZEL_STG_RM_FZS-2 HM-Sec-Key HM-Sec-Key HM-Sec-SD-2-Team HM-Sec-SD-Team HM-RC-19-SW HM-RC-19-SW KS550 KS550 HMW-IO-4-FM HMW-IO-4-FM HM-LC-Sw4-PCB-2 HM-LC-Sw4-PCB HM-EM-CMM HM-EM-CMM HM-LC-Dim2T-SM-644 HM-LC-Dim2T-SM {ZEL STG RM FFK} ZEL_STG_RM_FFK HM-Sec-RHS HM-Sec-RHS HMW-IO-12-Sw14-DR HMW-IO-12-Sw14-DR HM-MOD-Re-8 HM-MOD-Re-8 HM-WDS40-TH-I HM-WDS40-TH-I {263 167 Gruppe} 263_167_Gruppe {ZEL STG RM FSS UP3} ZEL_STG_RM_FSS_UP3 {263 130} 263_130 HM-RC-4 HM-RC-4 {263 131} 263_131 {263 132} 263_132 {263 133} 263_133 {263 134} 263_134 {263 135} 263_135 HM-RC-8 HM-RC-8 HM-Sen-DB-PCB HM-Sen-DB-PCB HM-LC-Sw1-SM HM-LC-Sw1-SM HM-LC-Sw4-DR-2 HM-LC-Sw4-DR HM-LC-Dim1L-CV-644 HM-LC-Dim1L-CV HM-CC-SCD HM-CC-SCD HMW-LC-Dim1L-DR HMW-LC-Dim1L-DR HM-LC-Sw1PBU-FM HM-LC-Sw1PBU-FM HM-LC-Sw1-Pl HM-LC-Sw1-Pl HM-LC-Dim2T-SM-2 HM-LC-Dim2T-SM HM-LC-Dim2L-SM HM-LC-Dim2L-SM HM-WDS100-C6-O HM-WDS100-C6-O {263 144} 263_144 HM-LC-DDC1-PCB HM-LC-DDC1-PCB {263 145} 263_145 {263 146} 263_146 {263 147} 263_147 HM-LC-Sw4-DR HM-LC-Sw4-DR HM-Sec-SC-2 HM-Sec-SC-2 HM-PB-6-WM55 HM-PB-6-WM55 HM-LC-Dim1T-FM-2 HM-LC-Dim1T-FM HM-LC-Dim1L-Pl-2 HM-LC-Dim1L-Pl-2 HM-PB-2-WM55-2 HM-PB-2-WM55 HM-RC-19-B HM-RC-19-B HM-LC-Dim1L-Pl-3 HM-LC-Dim1L-Pl-3 {263 155} 263_155 HM-RCV-50 HM-RCV-50 {263 157} 263_157 {263 158} 263_158 {263 160} 263_160 HM-LC-Dim1L-CV-2 HM-LC-Dim1L-CV HM-LC-Bl1-PB-FM HM-LC-Bl1-PB-FM HM-PB-2-WM HM-PB-2-WM {263 162} 263_162 HM-LC-Dim1T-FM-644 HM-LC-Dim1T-FM {263 167} 263_167 HM-RC-Sec3-B HM-RC-Sec3-B HM-RC-4-3-D HM-RC-4 HM-LC-Dim1T-FM-LF HM-LC-Dim1T-FM HM-Dis-WM55 HM-Dis-WM55 HM-LC-Sw4-SM-2 HM-LC-Sw4-SM HM-LC-Sw1-FM-2 HM-LC-Sw1-FM {ZEL STG RM DWT 10} ZEL_STG_RM_DWT_10 HM-Sen-EP HM-Sen-EP HmIP-eTRV-2 TRV HM-LC-Sw1-SM-2 HM-LC-Sw1-SM HM-WDS10-TH-O HM-WDS10-TH-O HM-LC-Dim2L-SM-644 HM-LC-Dim2L-SM HM-Sec-WDS-2 HM-Sec-WDS-2 HM-LC-Sw1-Ba-PCB HM-LC-Sw1-Ba-PCB atent atent HM-Sen-MDIR-O-2 HM-Sen-MDIR-O HM-CC-TC HM-CC-TC HM-LC-Dim1T-Pl HM-LC-Dim1T-Pl HM-Sec-SCo HM-Sec-SCo HM-LC-Dim1T-Pl-644 HM-LC-Dim1T-Pl HM-ES-TX-WM HM-ES-TX-WM HMW-IO-12-FM HMW-IO-12-FM 263_149_/_263_150 263_149_/_263_150 HM-LC-Sw1-Pl-CT-R1 HM-LC-Sw1-Pl-CT-R1 HM-PBI-4-FM HM-PBI-4-FM HM-CC-VD HM-CC-VD HM-RC-4-2 HM-RC-4-2 HM-Sec-SC HM-Sec-SC HM-RC-4-3 HM-RC-4 HM-Sec-SD HM-Sec-SD HMIP-PSM PSM HM-ES-PMSw1-SM HM-ES-PMSw1-SM HM-Sen-MDIR-WM55 HM-Sen-MDIR-WM55 HM-LC-Sw4-PCB HM-LC-Sw4-PCB HMIP-PS PS HmIP-KRC4 KRC4 HM-ES-PMSw1-Pl HM-ES-PMSw1-Pl HM-LC-Dim1TPBU-FM HM-LC-Dim1TPBU-FM HM-PB-4Dis-WM-2 HM-PB-4Dis-WM-2 {ZEL STG RM FEP 230V} ZEL_STG_RM_FEP_230V HM-RC-4-B HM-RC-4-B HM-RC-12 HM-RC-12 HMIP-WRC2 WRC2 OLIGO.smart.iq.HM OLIGO.smart.iq.HM HM-LC-Sw2-DR HM-LC-Sw2-DR HM-LC-Dim1T-Pl-2 HM-LC-Dim1T-Pl-2 HMW-Sen-SC-12-DR HMW-Sen-SC-12-DR HM-RC-19 HM-RC-19 HM-MOD-EM-8 HM-MOD-EM-8 HM-LC-Dim1T-Pl-3 HM-LC-Dim1T-Pl-3 HM-TC-IT-WM-W-EU HM-TC-IT-WM-W-EU HM-Sec-SD-2 HM-Sec-SD HM-LC-Dim1T-CV-2 HM-LC-Dim1T-CV HM-RC-Sec4-2 HM-RC-Sec4-2 {ZEL STG RM FSA} ZEL_STG_RM_FSA HM-RC-Sec4-3 HM-RC-4 HM-OU-CM-PCB HM-OU-CM-PCB HM-Sec-MDIR HM-Sec-MDIR HM-Sen-LI-O HM-Sen-LI-O HM-Sec-WDS HM-Sec-WDS HM-WDS30-OT2-SM-2 HM-WDS30-OT2-SM HM-Sec-Sir-WM HM-Sec-Sir-WM HMW-Sen-SC-12-FM HMW-Sen-SC-12-FM HM-LC-Sw2-FM HM-LC-Sw2-FM HM-CCU-1 HM-CCU-1 HmIP-PSM PSM HM-LC-Bl1-FM HM-LC-Bl1-FM HM-RC-P1 HM-RC-P1 HM-LC-Dim1L-Pl HM-LC-Dim1L-Pl HmIP-PS PS HM-PB-2-WM55 HM-PB-2-WM55 {ZEL STG RM HS 4} ZEL_STG_RM_HS_4 HM-LC-Sw1-Pl-2 HM-LC-Sw1-Pl HM-LC-Dim1L-Pl-644 HM-LC-Dim1L-Pl HM-LC-Sw1-Pl-3 HM-LC-Sw1-Pl HMW-IO-12-Sw7-DR HMW-IO-12-Sw7-DR HM-WS550STH-I HM-WS550STH-I {ZEL STG RM WT 2} ZEL_STG_RM_WT_2 HM-Sen-MDIR-SM HM-Sen-MDIR-SM HM-WS550STH-O HM-WS550STH-O HmIP-WRC2 WRC2 HMW-Sys-PS7-DR HMW-Sys-PS7-DR WS550 {Funk- Wetterstation} HM-Sen-Wa-Od HM-Sen-Wa-Od HM-RC-Key3-B HM-RC-Key3-B DEVICE DEVICE HM-WDS30-OT2-SM HM-WDS30-OT2-SM HM-PB-2-FM HM-PB-2-FM HM-LC-Bl1PBU-FM HM-LC-Bl1PBU-FM HM-LC-Sw1-DR HM-LC-Sw1-DR HMIP-eTRV TRV HMIP-WTH WTH HM-RC-2-PBU-FM HM-RC-2-PBU-FM HM-LC-Sw1-Pl-OM54 HM-LC-Sw1-Pl-OM54 HM-LC-Sw4-WM-2 HM-LC-Sw4-WM HM-Sec-MDIR-2 HM-Sec-MDIR HM-Sec-MDIR-3 HM-Sec-MDIR HMW-Sec-TR-FM HMW-Sec-TR-FM HM-WDC7000 HM-WDC7000 HM-OU-LED16 HM-OU-LED16 HM-LC-Sw4-SM HM-LC-Sw4-SM HM-LC-Sw1-FM HM-LC-Sw1-FM HM-LC-Sw2-PB-FM HM-LC-Sw2-PB-FM WS888 WS888 HM-WS550-US HM-WS550-US HM-LC-Dim1PWM-CV HM-LC-Dim1PWM-CV HM-LC-Sw4-SM-ATmega168 HM-LC-Sw4-SM-ATmega168} +array set DEV_PATHS {HM-Dis-TD-T {{50 /config/img/devices/50/81_hm-dis-td-t_thumb.png} {250 /config/img/devices/250/81_hm-dis-td-t.png}} {ZEL STG RM FWT} {{50 /config/img/devices/50/42_hm-cc-tc_thumb.png} {250 /config/img/devices/250/42_hm-cc-tc.png}} HM-EM-CCM {{50 /config/img/devices/50/44_hm-em-ccm_thumb.png} {250 /config/img/devices/250/44_hm-em-ccm.png}} HMW-RCV-50 {{50 /config/img/devices/50/CCU2_thumb.png} {250 /config/img/devices/250/CCU2.png}} HM-LC-Sw4-Ba-PCB {{50 /config/img/devices/50/88_hm-lc-sw4-ba-pcb_thumb.png} {250 /config/img/devices/250/88_hm-lc-sw4-ba-pcb.png}} {ZEL STG RM FST UP4} {{50 /config/img/devices/50/38_hm-pbi-4-fm_thumb.png} {250 /config/img/devices/250/38_hm-pbi-4-fm.png}} HM-LC-Sw1-PB-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HmIP-eTRV {{50 /config/img/devices/50/120_hmip-etrv_thumb.png} {250 /config/img/devices/250/120_hmip-etrv.png}} HmIP-WTH {{50 /config/img/devices/50/121_hmip-wth_thumb.png} {250 /config/img/devices/250/121_hmip-wth.png}} HM-RC-Key3 {{50 /config/img/devices/50/23_hm-rc-key3-b_thumb.png} {250 /config/img/devices/250/23_hm-rc-key3-b.png}} HM-OU-CFM-Pl {{50 /config/img/devices/50/60_hm-ou-cf-pl_thumb.png} {250 /config/img/devices/250/60_hm-ou-cf-pl.png}} HM-RC-Sec3 {{50 /config/img/devices/50/22_hm-rc-sec3-b_thumb.png} {250 /config/img/devices/250/22_hm-rc-sec3-b.png}} HM-LC-Dim1T-CV {{50 /config/img/devices/50/66_hm-lc-dim1t-cv_thumb.png} {250 /config/img/devices/250/66_hm-lc-dim1t-cv.png}} BRC-H {{50 /config/img/devices/50/72_hm-rc-brc-h_thumb.png} {250 /config/img/devices/250/72_hm-rc-brc-h.png}} HM-PB-4Dis-WM {{50 /config/img/devices/50/70_hm-pb-4dis-wm_thumb.png} {250 /config/img/devices/250/70_hm-pb-4dis-wm.png}} HM-CC-VG-1 {{50 /config/img/devices/50/95_group_hm-cc-vg-1_thumb.png} {250 /config/img/devices/250/95_group_hm-cc-vg-1.png}} HMIP-SWDO {{50 /config/img/devices/50/118_hmip-swdo_thumb.png} {250 /config/img/devices/250/118_hmip-swdo.png}} HM-WDS40-TH-I-2 {{50 /config/img/devices/50/13_hm-ws550sth-i_thumb.png} {250 /config/img/devices/250/13_hm-ws550sth-i.png}} {ZEL STG RM FZS} {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HMW-WSTH-SM {{50 /config/img/devices/50/32_hmw-wsth-sm_thumb.png} {250 /config/img/devices/250/32_hmw-wsth-sm.png}} HM-LC-Sw2-DR-2 {{50 /config/img/devices/50/69_hm-lc-sw2-dr_thumb.png} {250 /config/img/devices/250/69_hm-lc-sw2-dr.png}} HM-LC-Sw4-WM {{50 /config/img/devices/50/76_hm-lc-sw4-wm_thumb.png} {250 /config/img/devices/250/76_hm-lc-sw4-wm.png}} HM-ES-PMSw1-Pl-DN-R1 {{50 /config/img/devices/50/93_hm-es-pmsw1-pl_thumb.png} {250 /config/img/devices/250/93_hm-es-pmsw1-pl.png}} HM-ES-PMSw1-Pl-DN-R2 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R2_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R2.png}} HM-OU-CFM-TW {{50 /config/img/devices/50/117_hm-ou-cfm-tw_thumb.png} {250 /config/img/devices/250/117_hm-ou-cfm-tw.png}} HM-Sec-SFA-SM {{50 /config/img/devices/50/55_hm-sec-sfa-sm_thumb.png} {250 /config/img/devices/250/55_hm-sec-sfa-sm.png}} HM-ES-PMSw1-Pl-DN-R3 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R3_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R3.png}} HM-ES-PMSw1-Pl-DN-R4 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R4_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R4.png}} HM-ES-PMSw1-Pl-DN-R5 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R5_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R5.png}} HM-SwI-3-FM {{50 /config/img/devices/50/39_hm-swi-3-fm_thumb.png} {250 /config/img/devices/250/39_hm-swi-3-fm.png}} HMW-WSE-SM {{50 /config/img/devices/50/31_hmw-wse-sm_thumb.png} {250 /config/img/devices/250/31_hmw-wse-sm.png}} HM-LC-Dim1T-FM {{50 /config/img/devices/50/65_hm-lc-dim1t-fm_thumb.png} {250 /config/img/devices/250/65_hm-lc-dim1t-fm.png}} HM-Sec-SD-Team {{50 /config/img/devices/50/52_hm-sec-sd-team_thumb.png} {250 /config/img/devices/250/52_hm-sec-sd-team.png}} HM-RC-Dis-H-x-EU {{50 /config/img/devices/50/108_hm-rc-dis-h-x-eu_thump.png} {250 /config/img/devices/250/108_hm-rc-dis-h-x-eu.png}} HM-Sec-Key-O {{50 /config/img/devices/50/14_hm-sec-key_thumb.png} {250 /config/img/devices/250/14_hm-sec-key.png}} HM-RC-Key4-2 {{50 /config/img/devices/50/85_hm-rc-key4-2_thumb.png} {250 /config/img/devices/250/85_hm-rc-key4-2.png}} HM-LC-RGBW-WM {{50 /config/img/devices/50/111_hm-lc-rgbw-wm_thumb.png} {250 /config/img/devices/250/111_hm-lc-rgbw-wm.png}} HM-RC-Key4-3 {{50 /config/img/devices/50/84_hm-rc-4-x_thumb.png} {250 /config/img/devices/250/86_hm-rc-key4-3.png}} HM-WDS100-C6-O-2 {{50 /config/img/devices/50/WeatherCombiSensor_thumb.png} {250 /config/img/devices/250/WeatherCombiSensor.png}} HM-LC-Dim2L-SM-2 {{50 /config/img/devices/50/45_hm-lc-dim2l-sm_thumb.png} {250 /config/img/devices/250/45_hm-lc-dim2l-sm.png}} HM-Sec-TiS {{50 /config/img/devices/50/47_hm-sec-tis_thumb.png} {250 /config/img/devices/250/47_hm-sec-tis.png}} HM-Sec-Key-S {{50 /config/img/devices/50/14_hm-sec-key_thumb.png} {250 /config/img/devices/250/14_hm-sec-key.png}} HM-Sys-sRP-Pl {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-LC-Bl1-FM-2 {{50 /config/img/devices/50/7_hm-lc-bl1-fm_thumb.png} {250 /config/img/devices/250/7_hm-lc-bl1-fm.png}} HM-OU-CF-Pl {{50 /config/img/devices/50/60_hm-ou-cf-pl_thumb.png} {250 /config/img/devices/250/60_hm-ou-cf-pl.png}} HMW-LC-Bl1-DR-2 {{50 /config/img/devices/50/27_hmw-lc-bl1-dr_thumb.png} {250 /config/img/devices/250/27_hmw-lc-bl1-dr.png}} HM-SCI-3-FM {{50 /config/img/devices/50/67_hm-sci-3-fm_thumb.png} {250 /config/img/devices/250/67_hm-sci-3-fm.png}} HM-LC-Bl1-SM-2 {{50 /config/img/devices/50/6_hm-lc-bl1-sm_thumb.png} {250 /config/img/devices/250/6_hm-lc-bl1-sm.png}} HM-LC-Dim1PWM-CV-2 {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/79_hm-lc-dim1pwm-cv.png}} HM-ES-PMSw1-DR {{50 /config/img/devices/50/110_hm-es-pmsw1-dr_thump.png} {250 /config/img/devices/250/110_hm-es-pmsw1-dr.png}} HMW-LC-Sw2-DR {{50 /config/img/devices/50/26_hmw-lc-sw2-dr_thumb.png} {250 /config/img/devices/250/26_hmw-lc-sw2-dr.png}} HM-PB-4-WM {{50 /config/img/devices/50/PushButton-4ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-4ch-wm.png}} HM-LC-Dim1T-CV-644 {{50 /config/img/devices/50/66_hm-lc-dim1t-cv_thumb.png} {250 /config/img/devices/250/66_hm-lc-dim1t-cv.png}} HMW-LC-Bl1-DR {{50 /config/img/devices/50/27_hmw-lc-bl1-dr_thumb.png} {250 /config/img/devices/250/27_hmw-lc-bl1-dr.png}} HmIP-SWDO {{50 /config/img/devices/50/118_hmip-swdo_thumb.png} {250 /config/img/devices/250/118_hmip-swdo.png}} HM-Sec-Win {{50 /config/img/devices/50/15_hm-sec-win_thumb.png} {250 /config/img/devices/250/15_hm-sec-win.png}} HM-LC-Sw2-FM-2 {{50 /config/img/devices/50/5_hm-lc-sw2-fm_thumb.png} {250 /config/img/devices/250/5_hm-lc-sw2-fm.png}} HM-LC-Sw1-Pl-DN-R1 {{50 /config/img/devices/50/93_hm-es-pmsw1-pl_thumb.png} {250 /config/img/devices/250/93_hm-es-pmsw1-pl.png}} HM-LC-Sw1-Pl-DN-R2 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R2_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R2.png}} HM-LC-Sw1-Pl-DN-R3 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R3_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R3.png}} HM-LC-Dim2T-SM {{50 /config/img/devices/50/64_hm-lc-dim2T-sm_thumb.png} {250 /config/img/devices/250/64_hm-lc-dim2T-sm.png}} HM-LC-Sw1-Pl-DN-R4 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R4_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R4.png}} HM-LC-Sw1-Pl-DN-R5 {{50 /config/img/devices/50/107_hm-es-pmsw1-pl-R5_thumb.png} {250 /config/img/devices/250/107_hm-es-pmsw1-pl-R5.png}} HM-LC-Sw1-SM-ATmega168 {{50 /config/img/devices/50/8_hm-lc-sw1-sm_thumb.png} {250 /config/img/devices/250/8_hm-lc-sw1-sm.png}} HM-LC-Dim1TPBU-FM-2 {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-Sen-MDIR-O {{50 /config/img/devices/50/80_hm-sen-mdir-o_thumb.png} {250 /config/img/devices/250/80_hm-sen-mdir-o.png}} HM-RC-12-B {{50 /config/img/devices/50/19_hm-rc-12_thumb.png} {250 /config/img/devices/250/19_hm-rc-12.png}} HM-LC-Bl1-SM {{50 /config/img/devices/50/6_hm-lc-bl1-sm_thumb.png} {250 /config/img/devices/250/6_hm-lc-bl1-sm.png}} HM-LC-Dim1L-CV {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/2_hm-lc-dim1l-cv.png}} {ZEL STG RM FDK} {{50 /config/img/devices/50/17_hm-sec-rhs_thumb.png} {250 /config/img/devices/250/17_hm-sec-rhs.png}} HM-Sen-RD-O {{50 /config/img/devices/50/87_hm-sen-rd-o_thumb.png} {250 /config/img/devices/250/87_hm-sen-rd-o.png}} HM-WDS30-T-O {{50 /config/img/devices/50/IP65_G201_thumb.png} {250 /config/img/devices/250/IP65_G201.png}} HM-CC-RT-DN {{50 /config/img/devices/50/83_hm-cc-rt-dn_thumb.png} {250 /config/img/devices/250/83_hm-cc-rt-dn.png}} HM-WS550ST-IO {{50 /config/img/devices/50/IP65_G201_thumb.png} {250 /config/img/devices/250/IP65_G201.png}} {ZEL STG RM FZS-2} {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-Sec-Key {{50 /config/img/devices/50/14_hm-sec-key_thumb.png} {250 /config/img/devices/250/14_hm-sec-key.png}} HM-Sec-SD-2-Team {{50 /config/img/devices/50/105_hm-sec-sd-2-team_thumb.png} {250 /config/img/devices/250/105_hm-sec-sd-2-team.png}} HM-RC-19-SW {{50 /config/img/devices/50/20_hm-rc-19_thumb.png} {250 /config/img/devices/250/20_hm-rc-19.png}} KS550 {{50 /config/img/devices/50/WeatherCombiSensor_thumb.png} {250 /config/img/devices/250/WeatherCombiSensor.png}} HMW-IO-4-FM {{50 /config/img/devices/50/29_hmw-io-4-fm_thumb.png} {250 /config/img/devices/250/29_hmw-io-4-fm.png}} HM-LC-Sw4-PCB-2 {{50 /config/img/devices/50/46_hm-lc-sw4-pcb_thumb.png} {250 /config/img/devices/250/46_hm-lc-sw4-pcb.png}} HM-EM-CMM {{50 /config/img/devices/50/25_hm-em-cmm_thumb.png} {250 /config/img/devices/250/25_hm-em-cmm.png}} HM-LC-Dim2T-SM-644 {{50 /config/img/devices/50/64_hm-lc-dim2T-sm_thumb.png} {250 /config/img/devices/250/64_hm-lc-dim2T-sm.png}} {ZEL STG RM FFK} {{50 /config/img/devices/50/16_hm-sec-sc_thumb.png} {250 /config/img/devices/250/16_hm-sec-sc.png}} HM-Sec-RHS {{50 /config/img/devices/50/17_hm-sec-rhs_thumb.png} {250 /config/img/devices/250/17_hm-sec-rhs.png}} HMW-IO-12-Sw14-DR {{50 /config/img/devices/50/71_hmw-io-12-sw14-dr_thumb.png} {250 /config/img/devices/250/71_hmw-io-12-sw14-dr.png}} HM-MOD-Re-8 {{50 /config/img/devices/50/94_hm-mod-re-8_thumb.png} {250 /config/img/devices/250/94_hm-mod-re-8.png}} HM-WDS40-TH-I {{50 /config/img/devices/50/13_hm-ws550sth-i_thumb.png} {250 /config/img/devices/250/13_hm-ws550sth-i.png}} {263 167 Gruppe} {{50 /config/img/devices/50/52_hm-sec-sd-team_thumb.png} {250 /config/img/devices/250/52_hm-sec-sd-team.png}} {ZEL STG RM FSS UP3} {{50 /config/img/devices/50/39_hm-swi-3-fm_thumb.png} {250 /config/img/devices/250/39_hm-swi-3-fm.png}} {263 130} {{50 /config/img/devices/50/4_hm-lc-sw1-fm_thumb.png} {250 /config/img/devices/250/4_hm-lc-sw1-fm.png}} HM-RC-4 {{50 /config/img/devices/50/18_hm-rc-4_thumb.png} {250 /config/img/devices/250/18_hm-rc-4.png}} {263 131} {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} {263 132} {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/2_hm-lc-dim1l-cv.png}} {263 133} {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} {263 134} {{50 /config/img/devices/50/66_hm-lc-dim1t-cv_thumb.png} {250 /config/img/devices/250/66_hm-lc-dim1t-cv.png}} {263 135} {{50 /config/img/devices/50/75_hm-pb-2-wm55_thumb.png} {250 /config/img/devices/250/75_hm-pb-2-wm55.png}} HM-RC-8 {{50 /config/img/devices/50/100_hm-rc-8_thumb.png} {250 /config/img/devices/250/100_hm-rc-8.png}} HM-Sen-DB-PCB {{50 /config/img/devices/50/101_hm-sen-db-pcb_thumb.png} {250 /config/img/devices/250/101_hm-sen-db-pcb.png}} HM-LC-Sw1-SM {{50 /config/img/devices/50/8_hm-lc-sw1-sm_thumb.png} {250 /config/img/devices/250/8_hm-lc-sw1-sm.png}} HM-LC-Sw4-DR-2 {{50 /config/img/devices/50/68_hm-lc-sw4-dr_thumb.png} {250 /config/img/devices/250/68_hm-lc-sw4-dr.png}} HM-LC-Dim1L-CV-644 {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/2_hm-lc-dim1l-cv.png}} HM-CC-SCD {{50 /config/img/devices/50/57_hm-cc-scd_thumb.png} {250 /config/img/devices/250/57_hm-cc-scd.png}} HMW-LC-Dim1L-DR {{50 /config/img/devices/50/28_hmw-lc-dim1l-dr_thumb.png} {250 /config/img/devices/250/28_hmw-lc-dim1l-dr.png}} HM-LC-Sw1PBU-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-LC-Sw1-Pl {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-LC-Dim2T-SM-2 {{50 /config/img/devices/50/64_hm-lc-dim2T-sm_thumb.png} {250 /config/img/devices/250/64_hm-lc-dim2T-sm.png}} HM-LC-Dim2L-SM {{50 /config/img/devices/50/45_hm-lc-dim2l-sm_thumb.png} {250 /config/img/devices/250/45_hm-lc-dim2l-sm.png}} HM-WDS100-C6-O {{50 /config/img/devices/50/WeatherCombiSensor_thumb.png} {250 /config/img/devices/250/WeatherCombiSensor.png}} {263 144} {{50 /config/img/devices/50/39_hm-swi-3-fm_thumb.png} {250 /config/img/devices/250/39_hm-swi-3-fm.png}} HM-LC-DDC1-PCB {{50 /config/img/devices/50/54a_lc-ddc1_thumb.png} {250 /config/img/devices/250/54a_lc-ddc1-pcb.png}} {263 145} {{50 /config/img/devices/50/38_hm-pbi-4-fm_thumb.png} {250 /config/img/devices/250/38_hm-pbi-4-fm.png}} {263 146} {{50 /config/img/devices/50/7_hm-lc-bl1-fm_thumb.png} {250 /config/img/devices/250/7_hm-lc-bl1-fm.png}} {263 147} {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-LC-Sw4-DR {{50 /config/img/devices/50/68_hm-lc-sw4-dr_thumb.png} {250 /config/img/devices/250/68_hm-lc-sw4-dr.png}} HM-Sec-SC-2 {{50 /config/img/devices/50/16_hm-sec-sc_thumb.png} {250 /config/img/devices/250/16_hm-sec-sc.png}} HM-PB-6-WM55 {{50 /config/img/devices/50/86_hm-pb-6-wm55_thumb.png} {250 /config/img/devices/250/86_hm-pb-6-wm55.png}} HM-LC-Dim1T-FM-2 {{50 /config/img/devices/50/65_hm-lc-dim1t-fm_thumb.png} {250 /config/img/devices/250/65_hm-lc-dim1t-fm.png}} HM-LC-Dim1L-Pl-2 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-PB-2-WM55-2 {{50 /config/img/devices/50/75_hm-pb-2-wm55_thumb.png} {250 /config/img/devices/250/75_hm-pb-2-wm55.png}} HM-RC-19-B {{50 /config/img/devices/50/20_hm-rc-19_thumb.png} {250 /config/img/devices/250/20_hm-rc-19.png}} HM-LC-Dim1L-Pl-3 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} {263 155} {{50 /config/img/devices/50/70_hm-pb-4dis-wm_thumb.png} {250 /config/img/devices/250/70_hm-pb-4dis-wm.png}} HM-RCV-50 {{50 /config/img/devices/50/CCU2_thumb.png} {250 /config/img/devices/250/CCU2.png}} {263 157} {{50 /config/img/devices/50/13_hm-ws550sth-i_thumb.png} {250 /config/img/devices/250/13_hm-ws550sth-i.png}} {263 158} {{50 /config/img/devices/50/TH_CS_thumb.png} {250 /config/img/devices/250/TH_CS.png}} {263 160} {{50 /config/img/devices/50/57_hm-cc-scd_thumb.png} {250 /config/img/devices/250/57_hm-cc-scd.png}} HM-LC-Dim1L-CV-2 {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/2_hm-lc-dim1l-cv.png}} HM-LC-Bl1-PB-FM {{50 /config/img/devices/50/61_hm-lc-bl1-pb-fm_thumb.png} {250 /config/img/devices/250/61_hm-lc-bl1-pb-fm.png}} HM-PB-2-WM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} {263 162} {{50 /config/img/devices/50/124_hm-sec-mdir_thumb.png} {250 /config/img/devices/250/124_hm-sec-mdir.png}} HM-LC-Dim1T-FM-644 {{50 /config/img/devices/50/65_hm-lc-dim1t-fm_thumb.png} {250 /config/img/devices/250/65_hm-lc-dim1t-fm.png}} {263 167} {{50 /config/img/devices/50/51_hm-sec-sd_thumb.png} {250 /config/img/devices/250/51_hm-sec-sd.png}} HM-RC-Sec3-B {{50 /config/img/devices/50/22_hm-rc-sec3-b_thumb.png} {250 /config/img/devices/250/22_hm-rc-sec3-b.png}} HM-RC-4-3-D {{50 /config/img/devices/50/84_hm-rc-4-x_thumb.png} {250 /config/img/devices/250/116_hm-rc-4-3_brc-h3.png}} HM-LC-Dim1T-FM-LF {{50 /config/img/devices/50/114_hm-lc-dim1t-fm-lf_thumb_3.png} {250 /config/img/devices/250/114_hm-lc-dim1t-fm-lf_3.png}} HM-Dis-WM55 {{50 /config/img/devices/50/97_hm-dis-wm55_thumb.png} {250 /config/img/devices/250/97_hm-dis-wm55.png}} HM-LC-Sw4-SM-2 {{50 /config/img/devices/50/3_hm-lc-sw4-sm_thumb.png} {250 /config/img/devices/250/3_hm-lc-sw4-sm.png}} HM-LC-Sw1-FM-2 {{50 /config/img/devices/50/4_hm-lc-sw1-fm_thumb.png} {250 /config/img/devices/250/4_hm-lc-sw1-fm.png}} {ZEL STG RM DWT 10} {{50 /config/img/devices/50/70_hm-pb-4dis-wm_thumb.png} {250 /config/img/devices/250/70_hm-pb-4dis-wm.png}} HM-Sen-EP {{50 /config/img/devices/50/48_hm-sen-ep_thumb.png} {250 /config/img/devices/250/48_hm-sen-ep.png}} HmIP-eTRV-2 {{50 /config/img/devices/50/120_hmip-etrv_thumb.png} {250 /config/img/devices/250/120_hmip-etrv.png}} HM-LC-Sw1-SM-2 {{50 /config/img/devices/50/8_hm-lc-sw1-sm_thumb.png} {250 /config/img/devices/250/8_hm-lc-sw1-sm.png}} HM-WDS10-TH-O {{50 /config/img/devices/50/TH_CS_thumb.png} {250 /config/img/devices/250/TH_CS.png}} HM-LC-Dim2L-SM-644 {{50 /config/img/devices/50/45_hm-lc-dim2l-sm_thumb.png} {250 /config/img/devices/250/45_hm-lc-dim2l-sm.png}} HM-Sec-WDS-2 {{50 /config/img/devices/50/49_hm-sec-wds_thumb.png} {250 /config/img/devices/250/49_hm-sec-wds.png}} HM-LC-Sw1-Ba-PCB {{50 /config/img/devices/50/77_hm-lc-sw1-ba-pcb_thumb.png} {250 /config/img/devices/250/77_hm-lc-sw1-ba-pcb.png}} atent {{50 /config/img/devices/50/73_hm-atent_thumb.png} {250 /config/img/devices/250/73_hm-atent.png}} HM-Sen-MDIR-O-2 {{50 /config/img/devices/50/80_hm-sen-mdir-o_thumb.png} {250 /config/img/devices/250/80_hm-sen-mdir-o.png}} HM-CC-TC {{50 /config/img/devices/50/42_hm-cc-tc_thumb.png} {250 /config/img/devices/250/42_hm-cc-tc.png}} HM-LC-Dim1T-Pl {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-Sec-SCo {{50 /config/img/devices/50/98_hm-sec-sco_thumb.png} {250 /config/img/devices/250/98_hm-sec-sco.png}} HM-LC-Dim1T-Pl-644 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-ES-TX-WM {{50 /config/img/devices/50/102_hm-es-tx-wm_thumb.png} {250 /config/img/devices/250/102_hm-es-tx-wm.png}} HMW-IO-12-FM {{50 /config/img/devices/50/59_hmw-io-12-fm_thumb.png} {250 /config/img/devices/250/59_hmw-io-12-fm.png}} 263_149_/_263_150 {{50 /config/img/devices/50/hm_resc-win-pcb-sc_thumb.png} {250 /config/img/devices/250/hm_resc-win-pcb-sc.png}} HM-LC-Sw1-Pl-CT-R1 {{50 /config/img/devices/50/109_hm-lc-sw1-pl-ct_thump.png} {250 /config/img/devices/250/109_hm-lc-sw1-pl-ct.png}} HM-PBI-4-FM {{50 /config/img/devices/50/38_hm-pbi-4-fm_thumb.png} {250 /config/img/devices/250/38_hm-pbi-4-fm.png}} HM-CC-VD {{50 /config/img/devices/50/43_hm-cc-vd_thumb.png} {250 /config/img/devices/250/43_hm-cc-vd.png}} HM-RC-4-2 {{50 /config/img/devices/50/84_hm-rc-4-2_thumb.png} {250 /config/img/devices/250/84_hm-rc-4-2.png}} HM-Sec-SC {{50 /config/img/devices/50/16_hm-sec-sc_thumb.png} {250 /config/img/devices/250/16_hm-sec-sc.png}} HM-RC-4-3 {{50 /config/img/devices/50/84_hm-rc-4-x_thumb.png} {250 /config/img/devices/250/84_hm-rc-4-3.png}} HM-Sec-SD {{50 /config/img/devices/50/51_hm-sec-sd_thumb.png} {250 /config/img/devices/250/51_hm-sec-sd.png}} HMIP-PSM {{50 /config/img/devices/50/113_hmip-psm_thumb.png} {250 /config/img/devices/250/113_hmip-psm.png}} HM-ES-PMSw1-SM {{50 /config/img/devices/50/115_hm-es-pmsw1-sm_thumb.png} {250 /config/img/devices/250/115_hm-es-pmsw1-sm.png}} HM-Sen-MDIR-WM55 {{50 /config/img/devices/50/103_hm-sen-mdir-wm55_thumb.png} {250 /config/img/devices/250/103_hm-sen-mdir-wm55.png}} HM-LC-Sw4-PCB {{50 /config/img/devices/50/46_hm-lc-sw4-pcb_thumb.png} {250 /config/img/devices/250/46_hm-lc-sw4-pcb.png}} HMIP-PS {{50 /config/img/devices/50/113_hmip-psm_thumb.png} {250 /config/img/devices/250/113_hmip-psm.png}} HmIP-KRC4 {{50 /config/img/devices/50/84_hm-rc-4-x_thumb.png} {250 /config/img/devices/250/84_hm-rc-4-3.png}} HM-ES-PMSw1-Pl {{50 /config/img/devices/50/93_hm-es-pmsw1-pl_thumb.png} {250 /config/img/devices/250/93_hm-es-pmsw1-pl.png}} HM-LC-Dim1TPBU-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-PB-4Dis-WM-2 {{50 /config/img/devices/50/70_hm-pb-4dis-wm_thumb.png} {250 /config/img/devices/250/70_hm-pb-4dis-wm.png}} {ZEL STG RM FEP 230V} {{50 /config/img/devices/50/7_hm-lc-bl1-fm_thumb.png} {250 /config/img/devices/250/7_hm-lc-bl1-fm.png}} HM-RC-4-B {{50 /config/img/devices/50/18_hm-rc-4_thumb.png} {250 /config/img/devices/250/18_hm-rc-4.png}} HM-RC-12 {{50 /config/img/devices/50/19_hm-rc-12_thumb.png} {250 /config/img/devices/250/19_hm-rc-12.png}} HMIP-WRC2 {{50 /config/img/devices/50/112_hmip-wrc2_thumb.png} {250 /config/img/devices/250/112_hmip-wrc2.png}} OLIGO.smart.iq.HM {{50 /config/img/devices/50/123_oligo.smart.ip.hm_thumb.png} {250 /config/img/devices/250/123_oligo.smart.ip.hm.png}} HM-LC-Sw2-DR {{50 /config/img/devices/50/69_hm-lc-sw2-dr_thumb.png} {250 /config/img/devices/250/69_hm-lc-sw2-dr.png}} HM-LC-Dim1T-Pl-2 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HMW-Sen-SC-12-DR {{50 /config/img/devices/50/56_hmw-sen-sc-12-dr_thumb.png} {250 /config/img/devices/250/56_hmw-sen-sc-12-dr.png}} HM-RC-19 {{50 /config/img/devices/50/20_hm-rc-19_thumb.png} {250 /config/img/devices/250/20_hm-rc-19.png}} HM-MOD-EM-8 {{50 /config/img/devices/50/99_hm-mod-em-8_thumb.png} {250 /config/img/devices/250/99_hm-mod-em-8.png}} HM-LC-Dim1T-Pl-3 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-TC-IT-WM-W-EU {{50 /config/img/devices/50/96_hm-tc-it-wm-w-eu_thumb.png} {250 /config/img/devices/250/96_hm-tc-it-wm-w-eu.png}} HM-Sec-SD-2 {{50 /config/img/devices/50/104_hm-sec-sd-2_thumb.png} {250 /config/img/devices/250/104_hm-sec-sd-2.png}} HM-LC-Dim1T-CV-2 {{50 /config/img/devices/50/66_hm-lc-dim1t-cv_thumb.png} {250 /config/img/devices/250/66_hm-lc-dim1t-cv.png}} HM-RC-Sec4-2 {{50 /config/img/devices/50/86_hm-rc-sec4-2_thumb.png} {250 /config/img/devices/250/86_hm-rc-sec4-2.png}} {ZEL STG RM FSA} {{50 /config/img/devices/50/43_hm-cc-vd_thumb.png} {250 /config/img/devices/250/43_hm-cc-vd.png}} HM-RC-Sec4-3 {{50 /config/img/devices/50/84_hm-rc-4-x_thumb.png} {250 /config/img/devices/250/85_hm-rc-sec4-3.png}} HM-OU-CM-PCB {{50 /config/img/devices/50/92_hm-ou-cm-pcb_thumb.png} {250 /config/img/devices/250/92_hm-ou-cm-pcb.png}} HM-Sec-MDIR {{50 /config/img/devices/50/124_hm-sec-mdir_thumb.png} {250 /config/img/devices/250/124_hm-sec-mdir.png}} HM-Sen-LI-O {{50 /config/img/devices/50/126_hm-sen-li-o_thumb.png} {250 /config/img/devices/250/126_hm-sen-li-o.png}} HM-Sec-WDS {{50 /config/img/devices/50/49_hm-sec-wds_thumb.png} {250 /config/img/devices/250/49_hm-sec-wds.png}} HM-WDS30-OT2-SM-2 {{50 /config/img/devices/50/127_hm-wds30-ot2-sm-2_thumb.png} {250 /config/img/devices/250/127_hm-wds30-ot2-sm-2.png}} HM-Sec-Sir-WM {{50 /config/img/devices/50/117_hm-sec-sir-wm_thumb.png} {250 /config/img/devices/250/117_hm-sec-sir-wm.png}} HMW-Sen-SC-12-FM {{50 /config/img/devices/50/58_hmw-sen-sc-12-fm_thumb.png} {250 /config/img/devices/250/58_hmw-sen-sc-12-fm.png}} HM-LC-Sw2-FM {{50 /config/img/devices/50/5_hm-lc-sw2-fm_thumb.png} {250 /config/img/devices/250/5_hm-lc-sw2-fm.png}} HM-CCU-1 {{50 /config/img/devices/50/24_hm-cen-3-1_thumb.png} {250 /config/img/devices/250/24_hm-cen-3-1.png}} HmIP-PSM {{50 /config/img/devices/50/113_hmip-psm_thumb.png} {250 /config/img/devices/250/113_hmip-psm.png}} HM-LC-Bl1-FM {{50 /config/img/devices/50/7_hm-lc-bl1-fm_thumb.png} {250 /config/img/devices/250/7_hm-lc-bl1-fm.png}} HM-RC-P1 {{50 /config/img/devices/50/21_hm-rc-p1_thumb.png} {250 /config/img/devices/250/21_hm-rc-p1.png}} HM-LC-Dim1L-Pl {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HmIP-PS {{50 /config/img/devices/50/113_hmip-psm_thumb.png} {250 /config/img/devices/250/113_hmip-psm.png}} HM-PB-2-WM55 {{50 /config/img/devices/50/75_hm-pb-2-wm55_thumb.png} {250 /config/img/devices/250/75_hm-pb-2-wm55.png}} {ZEL STG RM HS 4} {{50 /config/img/devices/50/18_hm-rc-4_thumb.png} {250 /config/img/devices/250/18_hm-rc-4.png}} HM-LC-Sw1-Pl-2 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-LC-Dim1L-Pl-644 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-LC-Sw1-Pl-3 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HMW-IO-12-Sw7-DR {{50 /config/img/devices/50/30_hmw-io-12-sw7-dr_thumb.png} {250 /config/img/devices/250/30_hmw-io-12-sw7-dr.png}} HM-WS550STH-I {{50 /config/img/devices/50/13_hm-ws550sth-i_thumb.png} {250 /config/img/devices/250/13_hm-ws550sth-i.png}} {ZEL STG RM WT 2} {{50 /config/img/devices/50/75_hm-pb-2-wm55_thumb.png} {250 /config/img/devices/250/75_hm-pb-2-wm55.png}} HM-Sen-MDIR-SM {{50 /config/img/devices/50/53_hm-sen-mdir-sm_thumb.png} {250 /config/img/devices/250/53_hm-sen-mdir-sm.png}} HM-WS550STH-O {{50 /config/img/devices/50/TH_CS_thumb.png} {250 /config/img/devices/250/TH_CS.png}} HmIP-WRC2 {{50 /config/img/devices/50/112_hmip-wrc2_thumb.png} {250 /config/img/devices/250/112_hmip-wrc2.png}} HMW-Sys-PS7-DR {{50 /config/img/devices/50/36_hmw-sys-ps7-dr_thumb.png} {250 /config/img/devices/250/36_hmw-sys-ps7-dr.png}} WS550 {{50 /config/img/devices/50/9_hm-ws550-us_thumb.png} {250 /config/img/devices/250/9_hm-ws550-us.png}} HM-Sen-Wa-Od {{50 /config/img/devices/50/82_hm-sen-wa-od_thumb.png} {250 /config/img/devices/250/82_hm-sen-wa-od.png}} HM-RC-Key3-B {{50 /config/img/devices/50/23_hm-rc-key3-b_thumb.png} {250 /config/img/devices/250/23_hm-rc-key3-b.png}} DEVICE {{50 /config/img/devices/50/unknown_device_thumb.png} {250 /config/img/devices/250/unknown_device.png}} HM-WDS30-OT2-SM {{50 /config/img/devices/50/IP65_G201_thumb.png} {250 /config/img/devices/250/IP65_G201.png}} HM-PB-2-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-LC-Bl1PBU-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-LC-Sw1-DR {{50 /config/img/devices/50/35_hmw-sys-tm-dr_thumb.png} {250 /config/img/devices/250/106_hm-lc-sw1-dr.png}} HMIP-eTRV {{50 /config/img/devices/50/120_hmip-etrv_thumb.png} {250 /config/img/devices/250/120_hmip-etrv.png}} HMIP-WTH {{50 /config/img/devices/50/121_hmip-wth_thumb.png} {250 /config/img/devices/250/121_hmip-wth.png}} HM-RC-2-PBU-FM {{50 /config/img/devices/50/PushButton-2ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-2ch-wm.png}} HM-LC-Sw1-Pl-OM54 {{50 /config/img/devices/50/OM55_DimmerSwitch_thumb.png} {250 /config/img/devices/250/OM55_DimmerSwitch.png}} HM-LC-Sw4-WM-2 {{50 /config/img/devices/50/76_hm-lc-sw4-wm_thumb.png} {250 /config/img/devices/250/76_hm-lc-sw4-wm.png}} HM-Sec-MDIR-2 {{50 /config/img/devices/50/124_hm-sec-mdir_thumb.png} {250 /config/img/devices/250/124_hm-sec-mdir.png}} HM-Sec-MDIR-3 {{50 /config/img/devices/50/124_hm-sec-mdir_thumb.png} {250 /config/img/devices/250/124_hm-sec-mdir.png}} HMW-Sec-TR-FM {{50 /config/img/devices/50/33_hmw-sec-tr-fm_thumb.png} {250 /config/img/devices/250/33_hmw-sec-tr-fm.png}} HM-WDC7000 {{50 /config/img/devices/50/9_hm-ws550-us_thumb.png} {250 /config/img/devices/250/9_hm-ws550-us.png}} HM-OU-LED16 {{50 /config/img/devices/50/78_hm-ou-led16_thumb.png} {250 /config/img/devices/250/78_hm-ou-led16.png}} HM-LC-Sw4-SM {{50 /config/img/devices/50/3_hm-lc-sw4-sm_thumb.png} {250 /config/img/devices/250/3_hm-lc-sw4-sm.png}} HM-LC-Sw1-FM {{50 /config/img/devices/50/4_hm-lc-sw1-fm_thumb.png} {250 /config/img/devices/250/4_hm-lc-sw1-fm.png}} HM-LC-Sw2-PB-FM {{50 /config/img/devices/50/PushButton-4ch-wm_thumb.png} {250 /config/img/devices/250/PushButton-4ch-wm.png}} WS888 {{50 /config/img/devices/50/9_hm-ws550-us_thumb.png} {250 /config/img/devices/250/9_hm-ws550-us.png}} HM-WS550-US {{50 /config/img/devices/50/9_hm-ws550-us_thumb.png} {250 /config/img/devices/250/9_hm-ws550-us.png}} HM-LC-Dim1PWM-CV {{50 /config/img/devices/50/2_hm-lc-dim1l-cv_thumb.png} {250 /config/img/devices/250/79_hm-lc-dim1pwm-cv.png}} HM-LC-Sw4-SM-ATmega168 {{50 /config/img/devices/50/3_hm-lc-sw4-sm_thumb.png} {250 /config/img/devices/250/3_hm-lc-sw4-sm.png}}} +array set DEV_HIGHLIGHT {HM-Dis-TD-T {} {ZEL STG RM FWT} {} HM-EM-CCM {} HMW-RCV-50 {{"RF_1" 4 0.364 0.048 0.028 0.028} {"RF_2" 6 0.4 0.052 0.544 0.004 0.016} {"RF_3" 6 0.4 0.052 0.6 0.052 0.016} {"RF_4" 6 0.4 0.052 0.544 0.104 0.016} {"RF_5" 6 0.168 0.052 0.344 0.052 0.016} {"RF_6" 6 0.168 0 0.344 0.052 0.016} {"RF_7" 6 0.168 0.104 0.344 0.052 0.016} {"RF" 5 'RF_1' 'RF_2' 'RF_3' 'RF_4' 'RF_5' 'RF_6' 'RF_7' } { "S1" 3 0.25 0.15 '1' 0.3 'verdana' Font.BOLD} { "S2" 3 0.25 0.15 '2' 0.3 'verdana' Font.BOLD} { "S3" 3 0.25 0.15 '3' 0.3 'verdana' Font.BOLD} { "S4" 3 0.25 0.15 '4' 0.3 'verdana' Font.BOLD} { "S5" 3 0.25 0.15 '5' 0.3 'verdana' Font.BOLD} { "S6" 3 0.25 0.15 '6' 0.3 'verdana' Font.BOLD} { "S7" 3 0.25 0.15 '7' 0.3 'verdana' Font.BOLD} { "S8" 3 0.25 0.15 '8' 0.3 'verdana' Font.BOLD} { "S9" 3 0.25 0.15 '9' 0.3 'verdana' Font.BOLD} {"S10" 3 0.175 0.15 '10' 0.3 'verdana' Font.BOLD} {"S11" 3 0.175 0.15 '11' 0.3 'verdana' Font.BOLD} {"S12" 3 0.175 0.15 '12' 0.3 'verdana' Font.BOLD} {"S13" 3 0.175 0.15 '13' 0.3 'verdana' Font.BOLD} {"S14" 3 0.175 0.15 '14' 0.3 'verdana' Font.BOLD} {"S15" 3 0.175 0.15 '15' 0.3 'verdana' Font.BOLD} {"S16" 3 0.175 0.15 '16' 0.3 'verdana' Font.BOLD} {"S17" 3 0.175 0.15 '17' 0.3 'verdana' Font.BOLD} {"S18" 3 0.175 0.15 '18' 0.3 'verdana' Font.BOLD} {"S19" 3 0.175 0.15 '19' 0.3 'verdana' Font.BOLD} {"S20" 3 0.175 0.15 '20' 0.3 'verdana' Font.BOLD} {"S21" 3 0.175 0.15 '21' 0.3 'verdana' Font.BOLD} {"S22" 3 0.175 0.15 '22' 0.3 'verdana' Font.BOLD} {"S23" 3 0.175 0.15 '23' 0.3 'verdana' Font.BOLD} {"S24" 3 0.175 0.15 '24' 0.3 'verdana' Font.BOLD} {"S25" 3 0.175 0.15 '25' 0.3 'verdana' Font.BOLD} {"S26" 3 0.175 0.15 '26' 0.3 'verdana' Font.BOLD} {"S27" 3 0.175 0.15 '27' 0.3 'verdana' Font.BOLD} {"S28" 3 0.175 0.15 '28' 0.3 'verdana' Font.BOLD} {"S29" 3 0.175 0.15 '29' 0.3 'verdana' Font.BOLD} {"S30" 3 0.175 0.15 '30' 0.3 'verdana' Font.BOLD} {"S31" 3 0.175 0.15 '31' 0.3 'verdana' Font.BOLD} {"S32" 3 0.175 0.15 '32' 0.3 'verdana' Font.BOLD} {"S33" 3 0.175 0.15 '33' 0.3 'verdana' Font.BOLD} {"S34" 3 0.175 0.15 '34' 0.3 'verdana' Font.BOLD} {"S35" 3 0.175 0.15 '35' 0.3 'verdana' Font.BOLD} {"S36" 3 0.175 0.15 '36' 0.3 'verdana' Font.BOLD} {"S37" 3 0.175 0.15 '37' 0.3 'verdana' Font.BOLD} {"S38" 3 0.175 0.15 '38' 0.3 'verdana' Font.BOLD} {"S39" 3 0.175 0.15 '39' 0.3 'verdana' Font.BOLD} {"S40" 3 0.175 0.15 '40' 0.3 'verdana' Font.BOLD} {"S41" 3 0.175 0.15 '41' 0.3 'verdana' Font.BOLD} {"S42" 3 0.175 0.15 '42' 0.3 'verdana' Font.BOLD} {"S43" 3 0.175 0.15 '43' 0.3 'verdana' Font.BOLD} {"S44" 3 0.175 0.15 '44' 0.3 'verdana' Font.BOLD} {"S45" 3 0.175 0.15 '45' 0.3 'verdana' Font.BOLD} {"S46" 3 0.175 0.15 '46' 0.3 'verdana' Font.BOLD} {"S47" 3 0.175 0.15 '47' 0.3 'verdana' Font.BOLD} {"S48" 3 0.175 0.15 '48' 0.3 'verdana' Font.BOLD} {"S49" 3 0.175 0.15 '49' 0.3 'verdana' Font.BOLD} {"S50" 3 0.175 0.15 '50' 0.3 'verdana' Font.BOLD} {"1" 5 'S1' } {"2" 5 'S2' } {"3" 5 'S3' } {"4" 5 'S4' } {"5" 5 'S5' } {"6" 5 'S6' } {"7" 5 'S7' } {"8" 5 'S8' } {"9" 5 'S9' } {"10" 5 'S10' } {"11" 5 'S11' } {"12" 5 'S12' } {"13" 5 'S13' } {"14" 5 'S14' } {"15" 5 'S15' } {"16" 5 'S16' } {"17" 5 'S17' } {"18" 5 'S18' } {"19" 5 'S19' } {"20" 5 'S20' } {"21" 5 'S21' } {"22" 5 'S22' } {"23" 5 'S23' } {"24" 5 'S24' } {"25" 5 'S25' } {"26" 5 'S26' } {"27" 5 'S27' } {"28" 5 'S28' } {"29" 5 'S29' } {"30" 5 'S30' } {"31" 5 'S31' } {"32" 5 'S32' } {"33" 5 'S33' } {"34" 5 'S34' } {"35" 5 'S35' } {"36" 5 'S36' } {"37" 5 'S37' } {"38" 5 'S38' } {"39" 5 'S39' } {"40" 5 'S40' } {"41" 5 'S41' } {"42" 5 'S42' } {"43" 5 'S43' } {"44" 5 'S44' } {"45" 5 'S45' } {"46" 5 'S46' } {"47" 5 'S47' } {"48" 5 'S48' } {"49" 5 'S49' } {"50" 5 'S50' }} HM-LC-Sw4-Ba-PCB {{"1" 2 0.140 0.704 0.092 0.052} {"2" 2 0.328 0.704 0.092 0.052} {"3" 2 0.512 0.704 0.092 0.052} {"4" 2 0.688 0.704 0.092 0.052}} {ZEL STG RM FST UP4} {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.265 0.500 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.287 0.465 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.309 0.430 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' } {"4_Key" 3 0.18 0.216 '4' 0.14 'verdana' Font.BOLD} {"4_Kreis" 4 0.331 0.395 0.028 0.028} {"4" 5 '4_Key' '4_Kreis' }} HM-LC-Sw1-PB-FM {} HmIP-eTRV {} HmIP-WTH {} HM-RC-Key3 {{"1" 4 0.252 0.2 0.16 0.18} {"2" 4 0.492 0.2 0.16 0.18} {"3" 4 0.34 0.484 0.228 0.252} {"1+2" 5 '1' '2' }} HM-OU-CFM-Pl {{"Light_circle" 4 0.688 0.224 0.118 0.112} {"Light_beam_1" 6 0.628 0.28 0.656 0.28 0.016} {"Light_beam_2" 6 0.656 0.2 0.68 0.22 0.016} {"Light_beam_3" 6 0.74 0.168 0.74 0.196 0.016} {"Light_beam_4" 6 0.82 0.196 0.8 0.216 0.016} {"Light_beam_5" 6 0.824 0.28 0.856 0.28 0.016} {"Light_beam_6" 6 0.68 0.34 0.664 0.36 0.016} {"Light_beam_7" 6 0.74 0.364 0.74 0.392 0.016} {"Light_beam_8" 6 0.8 0.34 0.82 0.36 0.016} {"1" 5 'Light_circle' 'Light_beam_1' 'Light_beam_2' 'Light_beam_3' 'Light_beam_4' 'Light_beam_5' 'Light_beam_6' 'Light_beam_7' 'Light_beam_8' } {"SP_1" 6 0.644 0.676 0.672 0.676 0.016} {"SP_2" 6 0.672 0.676 0.672 0.816 0.016} {"SP_3" 6 0.644 0.816 0.672 0.816 0.016} {"SP_4" 6 0.644 0.676 0.644 0.816 0.016} {"SP_5" 6 0.672 0.676 0.716 0.632 0.016} {"SP_6" 6 0.716 0.632 0.716 0.86 0.016} {"SP_7" 6 0.672 0.816 0.716 0.86 0.016} {"SP_beam_1" 6 0.75 0.7 0.832 0.632 0.016} {"SP_beam_2" 6 0.75 0.748 0.832 0.748 0.016} {"SP_beam_3" 6 0.75 0.796 0.832 0.86 0.016} {"2" 5 'SP_1' 'SP_2' 'SP_3' 'SP_4' 'SP_5' 'SP_6' 'SP_7' 'SP_beam_1' 'SP_beam_2' 'SP_beam_3' }} HM-RC-Sec3 {{"1" 4 0.252 0.2 0.16 0.176} {"2" 4 0.492 0.2 0.16 0.176} {"3" 4 0.34 0.48 0.224 0.248} {"1+2" 5 '1' '2' }} HM-LC-Dim1T-CV {} BRC-H {{"1" 4 0.196 0.222 0.162 0.164} {"2" 4 0.417 0.222 0.162 0.164} {"3" 4 0.196 0.482 0.162 0.164} {"4" 4 0.417 0.482 0.162 0.164}} HM-PB-4Dis-WM {{"2" 2 0.204 0.244 0.556 0.12} {"1" 2 0.204 0.68 0.556 0.12} {"4" 2 0.204 0.244 0.556 0.12} {"3" 2 0.204 0.68 0.556 0.12} {"6" 2 0.204 0.244 0.556 0.12} {"5" 2 0.204 0.68 0.556 0.12} {"8" 2 0.204 0.244 0.556 0.12} {"7" 2 0.204 0.68 0.556 0.12} {"10" 2 0.204 0.244 0.556 0.12} {"9" 2 0.204 0.68 0.556 0.12} {"12" 2 0.204 0.244 0.556 0.12} {"11" 2 0.204 0.68 0.556 0.12} {"14" 2 0.204 0.244 0.556 0.12} {"13" 2 0.204 0.68 0.556 0.12} {"16" 2 0.204 0.244 0.556 0.12} {"15" 2 0.204 0.68 0.556 0.12} {"18" 2 0.204 0.244 0.556 0.12} {"17" 2 0.204 0.68 0.556 0.12} {"20" 2 0.204 0.244 0.556 0.12} {"19" 2 0.204 0.68 0.556 0.12}} HM-CC-VG-1 {} HMIP-SWDO {} HM-WDS40-TH-I-2 {} {ZEL STG RM FZS} {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HMW-WSTH-SM {} HM-LC-Sw2-DR-2 {{"1" 4 0.095 0.556 0.045 0.04} {"2" 4 0.285 0.556 0.045 0.04}} HM-LC-Sw4-WM {{"Channel1" 2 0.208 0.766 0.065 0.060} {"Channel2" 2 0.276 0.766 0.065 0.060} {"Channel3" 2 0.344 0.766 0.065 0.060} {"Channel4" 2 0.412 0.766 0.065 0.060} {"1_val" 3 0.372 0.288 '1' 0.14 'verdana' Font.BOLD} {"2_val" 3 0.372 0.288 '2' 0.14 'verdana' Font.BOLD} {"3_val" 3 0.372 0.288 '3' 0.14 'verdana' Font.BOLD} {"4_val" 3 0.372 0.288 '4' 0.14 'verdana' Font.BOLD} {"Circle1" 4 0.534 0.762 0.044 0.044} {"Circle2" 4 0.583 0.762 0.044 0.044} {"Circle3" 4 0.637 0.762 0.044 0.044} {"Circle4" 4 0.693 0.762 0.044 0.044} {"1" 5 'Channel1' '1_val' 'Circle1'} {"2" 5 'Channel2' '2_val' 'Circle2'} {"3" 5 'Channel3' '3_val' 'Circle3'} {"4" 5 'Channel4' '4_val' 'Circle4'}} HM-ES-PMSw1-Pl-DN-R1 {} HM-ES-PMSw1-Pl-DN-R2 {} HM-OU-CFM-TW {{Light_circle 4 0.8079999999999999 0.656 0.118 0.112} {Light_beam_1 6 0.748 0.712 0.776 0.712 0.016} {Light_beam_2 6 0.776 0.632 0.8 0.652 0.016} {Light_beam_3 6 0.86 0.6 0.86 0.628 0.016} {Light_beam_4 6 0.94 0.628 0.92 0.648 0.016} {Light_beam_5 6 0.944 0.712 0.976 0.712 0.016} {Light_beam_6 6 0.8 0.772 0.784 0.792 0.016} {Light_beam_7 6 0.86 0.796 0.86 0.8240000000000001 0.016} {Light_beam_8 6 0.92 0.772 0.94 0.792 0.016} {"1" 5 'Light_circle' 'Light_beam_1' 'Light_beam_2' 'Light_beam_3' 'Light_beam_4' 'Light_beam_5' 'Light_beam_6' 'Light_beam_7' 'Light_beam_8' } {SP_1 6 0.764 0.12 0.792 0.12 0.016} {SP_2 6 0.792 0.12 0.792 0.2599999999999999 0.016} {SP_3 6 0.764 0.2599999999999999 0.792 0.2599999999999999 0.016} {SP_4 6 0.764 0.12 0.764 0.2599999999999999 0.016} {SP_5 6 0.792 0.12 0.836 0.07599999999999996 0.016} {SP_6 6 0.836 0.07599999999999996 0.836 0.30399999999999994 0.016} {SP_7 6 0.792 0.2599999999999999 0.836 0.30399999999999994 0.016} {SP_beam_1 6 0.87 0.1439999999999999 0.952 0.07599999999999996 0.016} {SP_beam_2 6 0.87 0.19199999999999995 0.952 0.19199999999999995 0.016} {SP_beam_3 6 0.87 0.24 0.952 0.30399999999999994 0.016} {"2" 5 'SP_1' 'SP_2' 'SP_3' 'SP_4' 'SP_5' 'SP_6' 'SP_7' 'SP_beam_1' 'SP_beam_2' 'SP_beam_3' }} HM-Sec-SFA-SM {{"1_Taster" 4 0.348 0.388 0.08 0.08} {"1_Led" 4 0.372 0.304 0.036 0.036} {"1" 5 '1_Taster' '1_Led'} {"2_Taster" 4 0.552 0.388 0.08 0.08} {"2_Led" 4 0.576 0.304 0.036 0.036} {"2" 5 '2_Taster' '2_Led'}} HM-ES-PMSw1-Pl-DN-R3 {} HM-ES-PMSw1-Pl-DN-R4 {} HM-ES-PMSw1-Pl-DN-R5 {} HM-SwI-3-FM {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.220 0.480 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.265 0.405 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.310 0.33 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' }} HMW-WSE-SM {} HM-LC-Dim1T-FM {} HM-Sec-SD-Team {} HM-RC-Dis-H-x-EU {} HM-Sec-Key-O {} HM-RC-Key4-2 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"1_Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"2_Arrow" 7 '1_Arrow' 0.028 0.156} {"3_Arrow" 7 '1_Arrow' 0.028 0.312} {"4_Arrow" 7 '1_Arrow' 0.012 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-LC-RGBW-WM {{"1" 1 0.280 0.569 0.014} {"2" 1 0.280 0.645 0.014} {"3" 1 0.280 0.721 0.014}} HM-RC-Key4-3 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"1_Arrow" 7 'Arrow' 0.25 0.0} {"2_Arrow" 7 'Arrow' 0.238 0.156} {"3_Arrow" 7 'Arrow' 0.228 0.312} {"4_Arrow" 7 'Arrow' 0.212 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-WDS100-C6-O-2 {} HM-LC-Dim2L-SM-2 {{"1_Part1" 6 0.530 0.896 0.530 0.98 0.012} {"1_Part2" 6 0.530 0.98 0.49 0.916 0.012} {"1_Part3" 6 0.530 0.98 0.574 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.168 0} {"1_Key" 4 0.25 0.33 0.04 0.044} {"2_Key" 4 0.328 0.33 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} HM-Sec-TiS {} HM-Sec-Key-S {} HM-Sys-sRP-Pl {} HM-LC-Bl1-FM-2 {} HM-OU-CF-Pl {{"Light_circle" 4 0.688 0.224 0.118 0.112} {"Light_beam_1" 6 0.628 0.28 0.656 0.28 0.016} {"Light_beam_2" 6 0.656 0.2 0.68 0.22 0.016} {"Light_beam_3" 6 0.74 0.168 0.74 0.196 0.016} {"Light_beam_4" 6 0.82 0.196 0.8 0.216 0.016} {"Light_beam_5" 6 0.824 0.28 0.856 0.28 0.016} {"Light_beam_6" 6 0.68 0.34 0.664 0.36 0.016} {"Light_beam_7" 6 0.74 0.364 0.74 0.392 0.016} {"Light_beam_8" 6 0.8 0.34 0.82 0.36 0.016} {"1" 5 'Light_circle' 'Light_beam_1' 'Light_beam_2' 'Light_beam_3' 'Light_beam_4' 'Light_beam_5' 'Light_beam_6' 'Light_beam_7' 'Light_beam_8' } {"SP_1" 6 0.644 0.676 0.672 0.676 0.016} {"SP_2" 6 0.672 0.676 0.672 0.816 0.016} {"SP_3" 6 0.644 0.816 0.672 0.816 0.016} {"SP_4" 6 0.644 0.676 0.644 0.816 0.016} {"SP_5" 6 0.672 0.676 0.716 0.632 0.016} {"SP_6" 6 0.716 0.632 0.716 0.86 0.016} {"SP_7" 6 0.672 0.816 0.716 0.86 0.016} {"SP_beam_1" 6 0.75 0.7 0.832 0.632 0.016} {"SP_beam_2" 6 0.75 0.748 0.832 0.748 0.016} {"SP_beam_3" 6 0.75 0.796 0.832 0.86 0.016} {"2" 5 'SP_1' 'SP_2' 'SP_3' 'SP_4' 'SP_5' 'SP_6' 'SP_7' 'SP_beam_1' 'SP_beam_2' 'SP_beam_3' }} HMW-LC-Bl1-DR-2 {{"1" 2 0.452 0.772 0.044 0.06} {"2" 2 0.5 0.772 0.048 0.06} {"3" 2 0.452 0.388 0.096 0.06}} HM-SCI-3-FM {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.220 0.480 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.265 0.405 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.310 0.33 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' }} HM-LC-Bl1-SM-2 {} HM-LC-Dim1PWM-CV-2 {} HM-ES-PMSw1-DR {} HMW-LC-Sw2-DR {{"1" 2 0.448 0.764 0.048 0.064} {"2" 2 0.496 0.764 0.052 0.068} {"3" 2 0.232 0.384 0.104 0.068} {"4" 2 0.448 0.384 0.104 0.068}} HM-PB-4-WM {{"2" 2 0.24 0.312 0.204 0.168} {"1" 2 0.24 0.556 0.204 0.168} {"3" 2 0.46 0.556 0.204 0.168} {"4" 2 0.46 0.312 0.204 0.168} {"1+2" 2 0.24 0.312 0.204 0.412} {"3+4" 2 0.46 0.312 0.204 0.412}} HM-LC-Dim1T-CV-644 {} HMW-LC-Bl1-DR {{"1" 2 0.452 0.772 0.044 0.06} {"2" 2 0.5 0.772 0.048 0.06} {"3" 2 0.452 0.388 0.096 0.06}} HmIP-SWDO {} HM-Sec-Win {} HM-LC-Sw2-FM-2 {{"1_AUS" 2 0.34 0.66 0.068 0.148} {"1_EIN" 2 0.6 0.66 0.068 0.148} {"2_AUS" 2 0.256 0.66 0.068 0.148} {"2_EIN" 2 0.508 0.66 0.068 0.148} {"1" 5 '1_AUS' '1_EIN' } {"2" 5 '2_AUS' '2_EIN' }} HM-LC-Sw1-Pl-DN-R1 {} HM-LC-Sw1-Pl-DN-R2 {} HM-LC-Sw1-Pl-DN-R3 {} HM-LC-Dim2T-SM {{"1_Part1" 6 0.539 0.864 0.539 0.948 0.012} {"1_Part2" 6 0.539 0.948 0.49 0.884 0.012} {"1_Part3" 6 0.539 0.948 0.588 0.884 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.179 0} {"1_Key" 4 0.25 0.26 0.04 0.044} {"2_Key" 4 0.328 0.26 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} HM-LC-Sw1-Pl-DN-R4 {} HM-LC-Sw1-Pl-DN-R5 {} HM-LC-Sw1-SM-ATmega168 {} HM-LC-Dim1TPBU-FM-2 {} HM-Sen-MDIR-O {} HM-RC-12-B {{"1" 2 0.252 0.412 0.044 0.072} {"3" 2 0.252 0.508 0.044 0.072} {"5" 2 0.252 0.604 0.044 0.072} {"7" 2 0.252 0.7 0.044 0.072} {"9" 2 0.252 0.8 0.044 0.072} {"10" 2 0.476 0.8 0.044 0.072} {"8" 2 0.476 0.7 0.044 0.072} {"6" 2 0.476 0.604 0.044 0.072} {"4" 2 0.476 0.508 0.044 0.072} {"2" 2 0.476 0.412 0.044 0.072} {"11" 2 0.62 0.8 0.068 0.064} {"12" 2 0.62 0.704 0.068 0.064} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' } {"7+8" 5 '7' '8' } {"9+10" 5 '9' '10' } {"11+12" 5 '11' '12' }} HM-LC-Bl1-SM {} HM-LC-Dim1L-CV {} {ZEL STG RM FDK} {} HM-Sen-RD-O {} HM-WDS30-T-O {} HM-CC-RT-DN {} HM-WS550ST-IO {} {ZEL STG RM FZS-2} {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-Sec-Key {} HM-Sec-SD-2-Team {} HM-RC-19-SW {{"1" 2 0.296 0.344 0.036 0.052} {"3" 2 0.296 0.416 0.036 0.052} {"5" 2 0.296 0.488 0.036 0.052} {"7" 2 0.296 0.56 0.036 0.052} {"9" 2 0.296 0.628 0.036 0.052} {"11" 2 0.296 0.704 0.036 0.048} {"13" 2 0.296 0.772 0.036 0.052} {"15" 2 0.296 0.844 0.036 0.052} {"2" 2 0.468 0.344 0.036 0.052} {"4" 2 0.468 0.416 0.036 0.052} {"6" 2 0.468 0.488 0.036 0.052} {"8" 2 0.468 0.56 0.036 0.052} {"10" 2 0.468 0.628 0.036 0.052} {"12" 2 0.468 0.704 0.036 0.048} {"14" 2 0.468 0.772 0.036 0.052} {"16" 2 0.468 0.844 0.036 0.052} {"17" 2 0.58 0.84 0.044 0.056} {"18" 2 0.312 0.188 0.168 0.088} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' } {"7+8" 5 '7' '8' } {"9+10" 5 '9' '10' } {"11+12" 5 '11' '12' } {"13+14" 5 '13' '14' } {"15+16" 5 '15' '16' }} KS550 {} HMW-IO-4-FM {{"1" 6 0.616 0.736 0.612 0.836 0.02} {"2" 6 0.672 0.736 0.668 0.836 0.02} {"3" 6 0.724 0.736 0.724 0.836 0.02} {"4" 6 0.78 0.736 0.78 0.836 0.02}} HM-LC-Sw4-PCB-2 {{"Channel1" 2 0.176 0.78 0.068 0.064} {"Channel2" 2 0.244 0.78 0.068 0.064} {"Channel3" 2 0.312 0.78 0.068 0.064} {"Channel4" 2 0.38 0.78 0.068 0.064} {"1_val" 3 0.372 0.288 '1' 0.14 'verdana' Font.BOLD} {"2_val" 3 0.372 0.288 '2' 0.14 'verdana' Font.BOLD} {"3_val" 3 0.372 0.288 '3' 0.14 'verdana' Font.BOLD} {"4_val" 3 0.372 0.288 '4' 0.14 'verdana' Font.BOLD} {"Circle1" 4 0.512 0.784 0.044 0.044} {"Circle2" 4 0.570 0.784 0.044 0.044} {"Circle3" 4 0.628 0.784 0.044 0.044} {"Circle4" 4 0.686 0.784 0.044 0.044} {"1" 5 'Channel1' '1_val' 'Circle1'} {"2" 5 'Channel2' '2_val' 'Circle2'} {"3" 5 'Channel3' '3_val' 'Circle3'} {"4" 5 'Channel4' '4_val' 'Circle4'}} HM-EM-CMM {} HM-LC-Dim2T-SM-644 {{"1_Part1" 6 0.539 0.864 0.539 0.948 0.012} {"1_Part2" 6 0.539 0.948 0.49 0.884 0.012} {"1_Part3" 6 0.539 0.948 0.588 0.884 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.179 0} {"1_Key" 4 0.25 0.26 0.04 0.044} {"2_Key" 4 0.328 0.26 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} {ZEL STG RM FFK} {} HM-Sec-RHS {} HMW-IO-12-Sw14-DR {{"1" 2 0.106 0.398 0.06 0.06} {"2" 2 0.230 0.398 0.06 0.06} {"3" 2 0.294 0.398 0.06 0.06} {"4" 2 0.422 0.398 0.06 0.06} {"5" 2 0.482 0.398 0.06 0.06} {"6" 2 0.602 0.398 0.06 0.06} {"7" 2 0.046 0.458 0.06 0.06} {"8" 2 0.106 0.458 0.06 0.06} {"9" 2 0.230 0.458 0.06 0.06} {"10" 2 0.294 0.458 0.06 0.06} {"11" 2 0.422 0.458 0.06 0.06} {"12" 2 0.482 0.458 0.06 0.06} {"13" 2 0.602 0.458 0.06 0.06} {"14" 2 0.666 0.458 0.06 0.06} {"15" 2 0.230 0.69 0.06 0.06} {"16" 2 0.294 0.69 0.06 0.06} {"17" 2 0.422 0.69 0.06 0.06} {"18" 2 0.482 0.69 0.06 0.06} {"19" 2 0.602 0.69 0.06 0.06} {"20" 2 0.666 0.69 0.06 0.06} {"21" 2 0.230 0.755 0.06 0.06} {"22" 2 0.294 0.755 0.06 0.06} {"23" 2 0.422 0.755 0.06 0.06} {"24" 2 0.482 0.755 0.06 0.06} {"25" 2 0.602 0.755 0.06 0.06} {"26" 2 0.666 0.755 0.06 0.06}} HM-MOD-Re-8 {} HM-WDS40-TH-I {} {263 167 Gruppe} {} {ZEL STG RM FSS UP3} {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.220 0.480 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.265 0.405 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.310 0.33 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' }} {263 130} {{"1_AUS" 2 0.288 0.66 0.068 0.152} {"1_EIN" 2 0.548 0.66 0.068 0.152} {"1" 5 '1_AUS' '1_EIN' }} HM-RC-4 {{"1" 4 0.268 0.236 0.16 0.164} {"2" 4 0.476 0.236 0.16 0.164} {"3" 4 0.268 0.48 0.16 0.164} {"4" 4 0.476 0.48 0.16 0.164} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' }} {263 131} {{"1a" 2 0.244 0.312 0.428 0.168} {"1b" 2 0.244 0.56 0.428 0.168} {"1" 5 '1a' '1b'}} {263 132} {} {263 133} {} {263 134} {} {263 135} {{"2" 2 0.204 0.23 0.546 0.128} {"1" 2 0.204 0.65 0.546 0.128}} HM-RC-8 {{"1" 1 0.374 0.192 0.02} {"2" 1 0.537 0.248 0.02} {"3" 1 0.374 0.284 0.02} {"4" 1 0.537 0.340 0.02} {"5" 1 0.374 0.378 0.02} {"6" 1 0.537 0.434 0.02} {"7" 1 0.374 0.470 0.02} {"8" 1 0.537 0.526 0.02} {"1+2" 5 '1' '2'} {"3+4" 5 '3' '4'} {"5+6" 5 '5' '6'} {"7+8" 5 '7' '8'}} HM-Sen-DB-PCB {} HM-LC-Sw1-SM {} HM-LC-Sw4-DR-2 {{"1" 4 0.088 0.556 0.048 0.04} {"2" 4 0.280 0.556 0.048 0.04} {"3" 4 0.472 0.556 0.048 0.04} {"4" 4 0.656 0.556 0.048 0.04}} HM-LC-Dim1L-CV-644 {} HM-CC-SCD {} HMW-LC-Dim1L-DR {{"1" 2 0.312 0.756 0.056 0.06} {"2" 2 0.368 0.752 0.048 0.068} {"3" 2 0.368 0.388 0.048 0.064}} HM-LC-Sw1PBU-FM {{"1a" 2 0.244 0.312 0.428 0.168} {"1b" 2 0.244 0.56 0.428 0.168} {"1" 5 '1a' '1b'}} HM-LC-Sw1-Pl {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-LC-Dim2T-SM-2 {{"1_Part1" 6 0.539 0.864 0.539 0.948 0.012} {"1_Part2" 6 0.539 0.948 0.49 0.884 0.012} {"1_Part3" 6 0.539 0.948 0.588 0.884 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.179 0} {"1_Key" 4 0.25 0.26 0.04 0.044} {"2_Key" 4 0.328 0.26 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} HM-LC-Dim2L-SM {{"1_Part1" 6 0.530 0.896 0.530 0.98 0.012} {"1_Part2" 6 0.530 0.98 0.49 0.916 0.012} {"1_Part3" 6 0.530 0.98 0.574 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.168 0} {"1_Key" 4 0.25 0.33 0.04 0.044} {"2_Key" 4 0.328 0.33 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} HM-WDS100-C6-O {} {263 144} {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.220 0.480 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.265 0.405 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.310 0.33 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' }} HM-LC-DDC1-PCB {} {263 145} {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.265 0.500 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.287 0.465 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.309 0.430 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' } {"4_Key" 3 0.18 0.216 '4' 0.14 'verdana' Font.BOLD} {"4_Kreis" 4 0.331 0.395 0.028 0.028} {"4" 5 '4_Key' '4_Kreis' }} {263 146} {} {263 147} {{"1a" 2 0.244 0.312 0.428 0.168} {"1b" 2 0.244 0.56 0.428 0.168} {"1" 5 '1a' '1b'}} HM-LC-Sw4-DR {{"1" 4 0.088 0.556 0.048 0.04} {"2" 4 0.280 0.556 0.048 0.04} {"3" 4 0.472 0.556 0.048 0.04} {"4" 4 0.656 0.556 0.048 0.04}} HM-Sec-SC-2 {} HM-PB-6-WM55 {{"1" 2 0.164 0.232 0.112 0.156} {"2" 2 0.588 0.232 0.112 0.156} {"3" 2 0.164 0.428 0.112 0.156} {"4" 2 0.588 0.428 0.112 0.156} {"5" 2 0.164 0.616 0.112 0.156} {"6" 2 0.588 0.616 0.112 0.156} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' }} HM-LC-Dim1T-FM-2 {} HM-LC-Dim1L-Pl-2 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-PB-2-WM55-2 {{"2" 2 0.204 0.23 0.546 0.128} {"1" 2 0.204 0.65 0.546 0.128}} HM-RC-19-B {{"1" 2 0.296 0.344 0.036 0.052} {"3" 2 0.296 0.416 0.036 0.052} {"5" 2 0.296 0.488 0.036 0.052} {"7" 2 0.296 0.56 0.036 0.052} {"9" 2 0.296 0.628 0.036 0.052} {"11" 2 0.296 0.704 0.036 0.048} {"13" 2 0.296 0.772 0.036 0.052} {"15" 2 0.296 0.844 0.036 0.052} {"2" 2 0.468 0.344 0.036 0.052} {"4" 2 0.468 0.416 0.036 0.052} {"6" 2 0.468 0.488 0.036 0.052} {"8" 2 0.468 0.56 0.036 0.052} {"10" 2 0.468 0.628 0.036 0.052} {"12" 2 0.468 0.704 0.036 0.048} {"14" 2 0.468 0.772 0.036 0.052} {"16" 2 0.468 0.844 0.036 0.052} {"17" 2 0.58 0.84 0.044 0.056} {"18" 2 0.312 0.188 0.168 0.088} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' } {"7+8" 5 '7' '8' } {"9+10" 5 '9' '10' } {"11+12" 5 '11' '12' } {"13+14" 5 '13' '14' } {"15+16" 5 '15' '16' }} HM-LC-Dim1L-Pl-3 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} {263 155} {{"2" 2 0.204 0.244 0.556 0.12} {"1" 2 0.204 0.68 0.556 0.12} {"4" 2 0.204 0.244 0.556 0.12} {"3" 2 0.204 0.68 0.556 0.12} {"6" 2 0.204 0.244 0.556 0.12} {"5" 2 0.204 0.68 0.556 0.12} {"8" 2 0.204 0.244 0.556 0.12} {"7" 2 0.204 0.68 0.556 0.12} {"10" 2 0.204 0.244 0.556 0.12} {"9" 2 0.204 0.68 0.556 0.12} {"12" 2 0.204 0.244 0.556 0.12} {"11" 2 0.204 0.68 0.556 0.12} {"14" 2 0.204 0.244 0.556 0.12} {"13" 2 0.204 0.68 0.556 0.12} {"16" 2 0.204 0.244 0.556 0.12} {"15" 2 0.204 0.68 0.556 0.12} {"18" 2 0.204 0.244 0.556 0.12} {"17" 2 0.204 0.68 0.556 0.12} {"20" 2 0.204 0.244 0.556 0.12} {"19" 2 0.204 0.68 0.556 0.12}} HM-RCV-50 {{"RF_1" 4 0.364 0.048 0.028 0.028} {"RF_2" 6 0.4 0.052 0.544 0.004 0.016} {"RF_3" 6 0.4 0.052 0.6 0.052 0.016} {"RF_4" 6 0.4 0.052 0.544 0.104 0.016} {"RF_5" 6 0.168 0.052 0.344 0.052 0.016} {"RF_6" 6 0.168 0 0.344 0.052 0.016} {"RF_7" 6 0.168 0.104 0.344 0.052 0.016} {"RF" 5 'RF_1' 'RF_2' 'RF_3' 'RF_4' 'RF_5' 'RF_6' 'RF_7' } { "S1" 3 0.25 0.15 '1' 0.3 'verdana' Font.BOLD} { "S2" 3 0.25 0.15 '2' 0.3 'verdana' Font.BOLD} { "S3" 3 0.25 0.15 '3' 0.3 'verdana' Font.BOLD} { "S4" 3 0.25 0.15 '4' 0.3 'verdana' Font.BOLD} { "S5" 3 0.25 0.15 '5' 0.3 'verdana' Font.BOLD} { "S6" 3 0.25 0.15 '6' 0.3 'verdana' Font.BOLD} { "S7" 3 0.25 0.15 '7' 0.3 'verdana' Font.BOLD} { "S8" 3 0.25 0.15 '8' 0.3 'verdana' Font.BOLD} { "S9" 3 0.25 0.15 '9' 0.3 'verdana' Font.BOLD} {"S10" 3 0.175 0.15 '10' 0.3 'verdana' Font.BOLD} {"S11" 3 0.175 0.15 '11' 0.3 'verdana' Font.BOLD} {"S12" 3 0.175 0.15 '12' 0.3 'verdana' Font.BOLD} {"S13" 3 0.175 0.15 '13' 0.3 'verdana' Font.BOLD} {"S14" 3 0.175 0.15 '14' 0.3 'verdana' Font.BOLD} {"S15" 3 0.175 0.15 '15' 0.3 'verdana' Font.BOLD} {"S16" 3 0.175 0.15 '16' 0.3 'verdana' Font.BOLD} {"S17" 3 0.175 0.15 '17' 0.3 'verdana' Font.BOLD} {"S18" 3 0.175 0.15 '18' 0.3 'verdana' Font.BOLD} {"S19" 3 0.175 0.15 '19' 0.3 'verdana' Font.BOLD} {"S20" 3 0.175 0.15 '20' 0.3 'verdana' Font.BOLD} {"S21" 3 0.175 0.15 '21' 0.3 'verdana' Font.BOLD} {"S22" 3 0.175 0.15 '22' 0.3 'verdana' Font.BOLD} {"S23" 3 0.175 0.15 '23' 0.3 'verdana' Font.BOLD} {"S24" 3 0.175 0.15 '24' 0.3 'verdana' Font.BOLD} {"S25" 3 0.175 0.15 '25' 0.3 'verdana' Font.BOLD} {"S26" 3 0.175 0.15 '26' 0.3 'verdana' Font.BOLD} {"S27" 3 0.175 0.15 '27' 0.3 'verdana' Font.BOLD} {"S28" 3 0.175 0.15 '28' 0.3 'verdana' Font.BOLD} {"S29" 3 0.175 0.15 '29' 0.3 'verdana' Font.BOLD} {"S30" 3 0.175 0.15 '30' 0.3 'verdana' Font.BOLD} {"S31" 3 0.175 0.15 '31' 0.3 'verdana' Font.BOLD} {"S32" 3 0.175 0.15 '32' 0.3 'verdana' Font.BOLD} {"S33" 3 0.175 0.15 '33' 0.3 'verdana' Font.BOLD} {"S34" 3 0.175 0.15 '34' 0.3 'verdana' Font.BOLD} {"S35" 3 0.175 0.15 '35' 0.3 'verdana' Font.BOLD} {"S36" 3 0.175 0.15 '36' 0.3 'verdana' Font.BOLD} {"S37" 3 0.175 0.15 '37' 0.3 'verdana' Font.BOLD} {"S38" 3 0.175 0.15 '38' 0.3 'verdana' Font.BOLD} {"S39" 3 0.175 0.15 '39' 0.3 'verdana' Font.BOLD} {"S40" 3 0.175 0.15 '40' 0.3 'verdana' Font.BOLD} {"S41" 3 0.175 0.15 '41' 0.3 'verdana' Font.BOLD} {"S42" 3 0.175 0.15 '42' 0.3 'verdana' Font.BOLD} {"S43" 3 0.175 0.15 '43' 0.3 'verdana' Font.BOLD} {"S44" 3 0.175 0.15 '44' 0.3 'verdana' Font.BOLD} {"S45" 3 0.175 0.15 '45' 0.3 'verdana' Font.BOLD} {"S46" 3 0.175 0.15 '46' 0.3 'verdana' Font.BOLD} {"S47" 3 0.175 0.15 '47' 0.3 'verdana' Font.BOLD} {"S48" 3 0.175 0.15 '48' 0.3 'verdana' Font.BOLD} {"S49" 3 0.175 0.15 '49' 0.3 'verdana' Font.BOLD} {"S50" 3 0.175 0.15 '50' 0.3 'verdana' Font.BOLD} {"1" 5 'S1' } {"2" 5 'S2' } {"3" 5 'S3' } {"4" 5 'S4' } {"5" 5 'S5' } {"6" 5 'S6' } {"7" 5 'S7' } {"8" 5 'S8' } {"9" 5 'S9' } {"10" 5 'S10' } {"11" 5 'S11' } {"12" 5 'S12' } {"13" 5 'S13' } {"14" 5 'S14' } {"15" 5 'S15' } {"16" 5 'S16' } {"17" 5 'S17' } {"18" 5 'S18' } {"19" 5 'S19' } {"20" 5 'S20' } {"21" 5 'S21' } {"22" 5 'S22' } {"23" 5 'S23' } {"24" 5 'S24' } {"25" 5 'S25' } {"26" 5 'S26' } {"27" 5 'S27' } {"28" 5 'S28' } {"29" 5 'S29' } {"30" 5 'S30' } {"31" 5 'S31' } {"32" 5 'S32' } {"33" 5 'S33' } {"34" 5 'S34' } {"35" 5 'S35' } {"36" 5 'S36' } {"37" 5 'S37' } {"38" 5 'S38' } {"39" 5 'S39' } {"40" 5 'S40' } {"41" 5 'S41' } {"42" 5 'S42' } {"43" 5 'S43' } {"44" 5 'S44' } {"45" 5 'S45' } {"46" 5 'S46' } {"47" 5 'S47' } {"48" 5 'S48' } {"49" 5 'S49' } {"50" 5 'S50' }} {263 157} {} {263 158} {} {263 160} {} HM-LC-Dim1L-CV-2 {} HM-LC-Bl1-PB-FM {} HM-PB-2-WM {{"2" 2 0.244 0.312 0.428 0.168} {"1" 2 0.244 0.56 0.428 0.168} {"1+2" 2 0.244 0.308 0.428 0.416}} {263 162} {} HM-LC-Dim1T-FM-644 {} {263 167} {} HM-RC-Sec3-B {{"1" 4 0.252 0.2 0.16 0.176} {"2" 4 0.492 0.2 0.16 0.176} {"3" 4 0.34 0.48 0.224 0.248} {"1+2" 5 '1' '2' }} HM-RC-4-3-D {} HM-LC-Dim1T-FM-LF {} HM-Dis-WM55 {} HM-LC-Sw4-SM-2 {{"1_Part1" 6 0.136 0.896 0.136 0.98 0.012} {"1_Part2" 6 0.136 0.98 0.096 0.916 0.012} {"1_Part3" 6 0.136 0.98 0.176 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.164 0} {"3_Arrow" 7 '1_Arrow' 0.328 0} {"4_Arrow" 7 '1_Arrow' 0.492 0} {"1_Key" 4 0.244 0.372 0.04 0.044} {"2_Key" 4 0.328 0.372 0.04 0.044} {"3_Key" 4 0.404 0.372 0.04 0.044} {"4_Key" 4 0.484 0.372 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' } {"3" 5 '3_Arrow' '3_Key' } {"4" 5 '4_Arrow' '4_Key' }} HM-LC-Sw1-FM-2 {{"1_AUS" 2 0.288 0.66 0.068 0.152} {"1_EIN" 2 0.548 0.66 0.068 0.152} {"1" 5 '1_AUS' '1_EIN' }} {ZEL STG RM DWT 10} {{"2" 2 0.204 0.244 0.556 0.12} {"1" 2 0.204 0.68 0.556 0.12} {"4" 2 0.204 0.244 0.556 0.12} {"3" 2 0.204 0.68 0.556 0.12} {"6" 2 0.204 0.244 0.556 0.12} {"5" 2 0.204 0.68 0.556 0.12} {"8" 2 0.204 0.244 0.556 0.12} {"7" 2 0.204 0.68 0.556 0.12} {"10" 2 0.204 0.244 0.556 0.12} {"9" 2 0.204 0.68 0.556 0.12} {"12" 2 0.204 0.244 0.556 0.12} {"11" 2 0.204 0.68 0.556 0.12} {"14" 2 0.204 0.244 0.556 0.12} {"13" 2 0.204 0.68 0.556 0.12} {"16" 2 0.204 0.244 0.556 0.12} {"15" 2 0.204 0.68 0.556 0.12} {"18" 2 0.204 0.244 0.556 0.12} {"17" 2 0.204 0.68 0.556 0.12} {"20" 2 0.204 0.244 0.556 0.12} {"19" 2 0.204 0.68 0.556 0.12}} HM-Sen-EP {{"1_rect" 2 0.14 0.612 0.086 0.05} {"2_rect" 2 0.14 0.740 0.086 0.05} {"1_channel" 3 0.44 0.232 '1' 0.18 'verdana' Font.BOLD} {"1" 5 '1_channel' '1_rect'} {"2_channel" 3 0.44 0.232 '2' 0.18 'verdana' Font.BOLD} {"2" 5 '2_channel' '2_rect'}} HmIP-eTRV-2 {} HM-LC-Sw1-SM-2 {} HM-WDS10-TH-O {} HM-LC-Dim2L-SM-644 {{"1_Part1" 6 0.530 0.896 0.530 0.98 0.012} {"1_Part2" 6 0.530 0.98 0.49 0.916 0.012} {"1_Part3" 6 0.530 0.98 0.574 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.168 0} {"1_Key" 4 0.25 0.33 0.04 0.044} {"2_Key" 4 0.328 0.33 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' }} HM-Sec-WDS-2 {} HM-LC-Sw1-Ba-PCB {} atent {{"1" 4 0.177 0.216 0.166 0.166} {"2" 4 0.438 0.216 0.166 0.166} {"3" 4 0.273 0.49 0.24 0.235} {"1+2" 5 '1' '2' }} HM-Sen-MDIR-O-2 {} HM-CC-TC {} HM-LC-Dim1T-Pl {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-Sec-SCo {} HM-LC-Dim1T-Pl-644 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-ES-TX-WM {} HMW-IO-12-FM {{"1_num" 3 0.744 0.636 '1' 0.164 'verdana' Font.BOLD} {"1_line" 6 0.77 0.08 0.860 0.08 0.016} {"1" 5 '1_num' '1_line'} {"2_num" 3 0.744 0.636 '2' 0.164 'verdana' Font.BOLD} {"2_line" 6 0.77 0.136 0.86 0.136 0.016} {"2" 5 '2_num' '2_line'} {"3_num" 3 0.744 0.636 '3' 0.164 'verdana' Font.BOLD} {"3_line" 6 0.77 0.194 0.86 0.194 0.016} {"3" 5 '3_num' '3_line'} {"4_num" 3 0.744 0.636 '4' 0.164 'verdana' Font.BOLD} {"4_line" 6 0.77 0.25 0.86 0.25 0.016} {"4" 5 '4_num' '4_line'} {"5_num" 3 0.744 0.636 '5' 0.164 'verdana' Font.BOLD} {"5_line" 6 0.77 0.308 0.86 0.308 0.016} {"5" 5 '5_num' '5_line'} {"6_num" 3 0.744 0.636 '6' 0.164 'verdana' Font.BOLD} {"6_line" 6 0.77 0.366 0.86 0.366 0.016} {"6" 5 '6_num' '6_line'} {"7_num" 3 0.744 0.636 '7' 0.164 'verdana' Font.BOLD} {"7_line" 6 0.77 0.424 0.86 0.424 0.016} {"7" 5 '7_num' '7_line'} {"8_num" 3 0.744 0.636 '8' 0.164 'verdana' Font.BOLD} {"8_arc" 4 0.370 0.748 0.036 0.036 0.036} {"8" 5 '8_num' '8_arc'} {"9_num" 3 0.744 0.636 '9' 0.164 'verdana' Font.BOLD} {"9_arc" 4 0.3895 0.704 0.036 0.036 0.036} {"9" 5 '9_num' '9_arc'} {"10_num" 3 0.744 0.636 '10' 0.164 'verdana' Font.BOLD} {"10_arc" 4 0.41 0.65 0.035 0.036 0.036} {"10" 5 '10_num' '10_arc'} {"11_num" 3 0.744 0.636 '11' 0.164 'verdana' Font.BOLD} {"11_arc" 4 0.4293 0.612 0.036 0.036 0.036} {"11" 5 '11_num' '11_arc'} {"12_num" 3 0.744 0.636 '12' 0.164 'verdana' Font.BOLD} {"12_arc" 4 0.448 0.564 0.036 0.036 0.036} {"12" 5 '12_num' '12_arc'}} 263_149_/_263_150 {} HM-LC-Sw1-Pl-CT-R1 {} HM-PBI-4-FM {{"1_Key" 3 0.18 0.216 '1' 0.14 'verdana' Font.BOLD} {"1_Kreis" 4 0.265 0.500 0.028 0.028} {"1" 5 '1_Key' '1_Kreis' } {"2_Key" 3 0.18 0.216 '2' 0.14 'verdana' Font.BOLD} {"2_Kreis" 4 0.287 0.465 0.028 0.028} {"2" 5 '2_Key' '2_Kreis' } {"3_Key" 3 0.18 0.216 '3' 0.14 'verdana' Font.BOLD} {"3_Kreis" 4 0.309 0.430 0.028 0.028} {"3" 5 '3_Key' '3_Kreis' } {"4_Key" 3 0.18 0.216 '4' 0.14 'verdana' Font.BOLD} {"4_Kreis" 4 0.331 0.395 0.028 0.028} {"4" 5 '4_Key' '4_Kreis' }} HM-CC-VD {} HM-RC-4-2 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"1_Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"2_Arrow" 7 '1_Arrow' 0.028 0.156} {"3_Arrow" 7 '1_Arrow' 0.028 0.312} {"4_Arrow" 7 '1_Arrow' 0.012 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-Sec-SC {} HM-RC-4-3 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"1_Arrow" 7 'Arrow' 0.25 0.0} {"2_Arrow" 7 'Arrow' 0.238 0.156} {"3_Arrow" 7 'Arrow' 0.228 0.312} {"4_Arrow" 7 'Arrow' 0.212 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-Sec-SD {} HMIP-PSM {} HM-ES-PMSw1-SM {} HM-Sen-MDIR-WM55 {{"1" 2 0.192 0.660 0.524 0.12} {"2" 2 0.192 0.252 0.524 0.12} {"1+2" 5 '1' '2' }} HM-LC-Sw4-PCB {{"Channel1" 2 0.176 0.78 0.068 0.064} {"Channel2" 2 0.244 0.78 0.068 0.064} {"Channel3" 2 0.312 0.78 0.068 0.064} {"Channel4" 2 0.38 0.78 0.068 0.064} {"1_val" 3 0.372 0.288 '1' 0.14 'verdana' Font.BOLD} {"2_val" 3 0.372 0.288 '2' 0.14 'verdana' Font.BOLD} {"3_val" 3 0.372 0.288 '3' 0.14 'verdana' Font.BOLD} {"4_val" 3 0.372 0.288 '4' 0.14 'verdana' Font.BOLD} {"Circle1" 4 0.512 0.784 0.044 0.044} {"Circle2" 4 0.570 0.784 0.044 0.044} {"Circle3" 4 0.628 0.784 0.044 0.044} {"Circle4" 4 0.686 0.784 0.044 0.044} {"1" 5 'Channel1' '1_val' 'Circle1'} {"2" 5 'Channel2' '2_val' 'Circle2'} {"3" 5 'Channel3' '3_val' 'Circle3'} {"4" 5 'Channel4' '4_val' 'Circle4'}} HMIP-PS {} HmIP-KRC4 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"1_Arrow" 7 'Arrow' 0.25 0.0} {"2_Arrow" 7 'Arrow' 0.238 0.156} {"3_Arrow" 7 'Arrow' 0.228 0.312} {"4_Arrow" 7 'Arrow' 0.212 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-ES-PMSw1-Pl {} HM-LC-Dim1TPBU-FM {} HM-PB-4Dis-WM-2 {{"2" 2 0.204 0.244 0.556 0.12} {"1" 2 0.204 0.68 0.556 0.12} {"4" 2 0.204 0.244 0.556 0.12} {"3" 2 0.204 0.68 0.556 0.12} {"6" 2 0.204 0.244 0.556 0.12} {"5" 2 0.204 0.68 0.556 0.12} {"8" 2 0.204 0.244 0.556 0.12} {"7" 2 0.204 0.68 0.556 0.12} {"10" 2 0.204 0.244 0.556 0.12} {"9" 2 0.204 0.68 0.556 0.12} {"12" 2 0.204 0.244 0.556 0.12} {"11" 2 0.204 0.68 0.556 0.12} {"14" 2 0.204 0.244 0.556 0.12} {"13" 2 0.204 0.68 0.556 0.12} {"16" 2 0.204 0.244 0.556 0.12} {"15" 2 0.204 0.68 0.556 0.12} {"18" 2 0.204 0.244 0.556 0.12} {"17" 2 0.204 0.68 0.556 0.12} {"20" 2 0.204 0.244 0.556 0.12} {"19" 2 0.204 0.68 0.556 0.12}} {ZEL STG RM FEP 230V} {} HM-RC-4-B {{"1" 4 0.268 0.236 0.16 0.164} {"2" 4 0.476 0.236 0.16 0.164} {"3" 4 0.268 0.48 0.16 0.164} {"4" 4 0.476 0.48 0.16 0.164} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' }} HM-RC-12 {{"1" 2 0.252 0.412 0.044 0.072} {"3" 2 0.252 0.508 0.044 0.072} {"5" 2 0.252 0.604 0.044 0.072} {"7" 2 0.252 0.7 0.044 0.072} {"9" 2 0.252 0.8 0.044 0.072} {"10" 2 0.476 0.8 0.044 0.072} {"8" 2 0.476 0.7 0.044 0.072} {"6" 2 0.476 0.604 0.044 0.072} {"4" 2 0.476 0.508 0.044 0.072} {"2" 2 0.476 0.412 0.044 0.072} {"11" 2 0.62 0.8 0.068 0.064} {"12" 2 0.62 0.704 0.068 0.064} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' } {"7+8" 5 '7' '8' } {"9+10" 5 '9' '10' } {"11+12" 5 '11' '12' }} HMIP-WRC2 {{"2" 4 0.540 0.366 0.04 0.044} {"1" 4 0.540 0.622 0.04 0.044}} OLIGO.smart.iq.HM {} HM-LC-Sw2-DR {{"1" 4 0.095 0.556 0.045 0.04} {"2" 4 0.285 0.556 0.045 0.04}} HM-LC-Dim1T-Pl-2 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HMW-Sen-SC-12-DR {{"1" 2 0.244 0.688 0.06 0.06} {"2" 2 0.304 0.688 0.06 0.06} {"3" 2 0.436 0.688 0.06 0.06} {"4" 2 0.496 0.688 0.06 0.06} {"5" 2 0.62 0.688 0.06 0.06} {"6" 2 0.68 0.688 0.06 0.06} {"7" 2 0.244 0.752 0.06 0.06} {"8" 2 0.304 0.752 0.06 0.06} {"9" 2 0.436 0.752 0.06 0.06} {"10" 2 0.496 0.752 0.06 0.06} {"11" 2 0.62 0.752 0.06 0.06} {"12" 2 0.68 0.752 0.06 0.06}} HM-RC-19 {{"1" 2 0.296 0.344 0.036 0.052} {"3" 2 0.296 0.416 0.036 0.052} {"5" 2 0.296 0.488 0.036 0.052} {"7" 2 0.296 0.56 0.036 0.052} {"9" 2 0.296 0.628 0.036 0.052} {"11" 2 0.296 0.704 0.036 0.048} {"13" 2 0.296 0.772 0.036 0.052} {"15" 2 0.296 0.844 0.036 0.052} {"2" 2 0.468 0.344 0.036 0.052} {"4" 2 0.468 0.416 0.036 0.052} {"6" 2 0.468 0.488 0.036 0.052} {"8" 2 0.468 0.56 0.036 0.052} {"10" 2 0.468 0.628 0.036 0.052} {"12" 2 0.468 0.704 0.036 0.048} {"14" 2 0.468 0.772 0.036 0.052} {"16" 2 0.468 0.844 0.036 0.052} {"17" 2 0.58 0.84 0.044 0.056} {"18" 2 0.312 0.188 0.168 0.088} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' } {"5+6" 5 '5' '6' } {"7+8" 5 '7' '8' } {"9+10" 5 '9' '10' } {"11+12" 5 '11' '12' } {"13+14" 5 '13' '14' } {"15+16" 5 '15' '16' }} HM-MOD-EM-8 {} HM-LC-Dim1T-Pl-3 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-TC-IT-WM-W-EU {} HM-Sec-SD-2 {} HM-LC-Dim1T-CV-2 {} HM-RC-Sec4-2 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"1_Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"2_Arrow" 7 '1_Arrow' 0.028 0.156} {"3_Arrow" 7 '1_Arrow' 0.028 0.312} {"4_Arrow" 7 '1_Arrow' 0.012 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} {ZEL STG RM FSA} {} HM-RC-Sec4-3 {{"arrow_part1" 6 0.312 0.288 0.416 0.288 0.012} {"arrow_part2" 6 0.312 0.288 0.352 0.248 0.012} {"arrow_part3" 6 0.312 0.288 0.352 0.328 0.012} {"Arrow" 5 'arrow_part1' 'arrow_part2' 'arrow_part3' } {"1_Arrow" 7 'Arrow' 0.25 0.0} {"2_Arrow" 7 'Arrow' 0.238 0.156} {"3_Arrow" 7 'Arrow' 0.228 0.312} {"4_Arrow" 7 'Arrow' 0.212 0.468} {"1" 5 '2_Arrow' } {"2" 5 '1_Arrow' } {"3" 5 '4_Arrow' } {"4" 5 '3_Arrow' } {"1+2" 5 '1_Arrow' '2_Arrow'} {"3+4" 5 '3_Arrow' '4_Arrow'}} HM-OU-CM-PCB {} HM-Sec-MDIR {} HM-Sen-LI-O {} HM-Sec-WDS {} HM-WDS30-OT2-SM-2 {} HM-Sec-Sir-WM {} HMW-Sen-SC-12-FM {{"1_num" 3 0.744 0.636 '1' 0.164 'verdana' Font.BOLD} {"1_line" 6 0.77 0.055 0.860 0.055 0.016} {"1" 5 '1_num' '1_line'} {"2_num" 3 0.744 0.636 '2' 0.164 'verdana' Font.BOLD} {"2_line" 6 0.77 0.115 0.86 0.115 0.016} {"2" 5 '2_num' '2_line'} {"3_num" 3 0.744 0.636 '3' 0.164 'verdana' Font.BOLD} {"3_line" 6 0.77 0.173 0.86 0.173 0.016} {"3" 5 '3_num' '3_line'} {"4_num" 3 0.744 0.636 '4' 0.164 'verdana' Font.BOLD} {"4_line" 6 0.77 0.226 0.86 0.226 0.016} {"4" 5 '4_num' '4_line'} {"5_num" 3 0.744 0.636 '5' 0.164 'verdana' Font.BOLD} {"5_line" 6 0.77 0.288 0.86 0.288 0.016} {"5" 5 '5_num' '5_line'} {"6_num" 3 0.744 0.636 '6' 0.164 'verdana' Font.BOLD} {"6_line" 6 0.77 0.348 0.86 0.348 0.016} {"6" 5 '6_num' '6_line'} {"7_num" 3 0.744 0.636 '7' 0.164 'verdana' Font.BOLD} {"7_line" 6 0.77 0.403 0.86 0.403 0.016} {"7" 5 '7_num' '7_line'} {"8_num" 3 0.744 0.636 '8' 0.164 'verdana' Font.BOLD} {"8_arc" 4 0.370 0.730 0.036 0.036 0.036} {"8" 5 '8_num' '8_arc'} {"9_num" 3 0.744 0.636 '9' 0.164 'verdana' Font.BOLD} {"9_arc" 4 0.3895 0.685 0.036 0.036 0.0368} {"9" 5 '9_num' '9_arc'} {"10_num" 3 0.744 0.636 '10' 0.164 'verdana' Font.BOLD} {"10_arc" 4 0.41 0.64 0.036 0.036 0.036} {"10" 5 '10_num' '10_arc'} {"11_num" 3 0.744 0.636 '11' 0.164 'verdana' Font.BOLD} {"11_arc" 4 0.43 0.589 0.036 0.036 0.036} {"11" 5 '11_num' '11_arc'} {"12_num" 3 0.744 0.636 '12' 0.164 'verdana' Font.BOLD} {"12_arc" 4 0.45 0.542 0.036 0.036 0.036} {"12" 5 '12_num' '12_arc'}} HM-LC-Sw2-FM {{"1_AUS" 2 0.34 0.66 0.068 0.148} {"1_EIN" 2 0.6 0.66 0.068 0.148} {"2_AUS" 2 0.256 0.66 0.068 0.148} {"2_EIN" 2 0.508 0.66 0.068 0.148} {"1" 5 '1_AUS' '1_EIN' } {"2" 5 '2_AUS' '2_EIN' }} HM-CCU-1 {} HmIP-PSM {} HM-LC-Bl1-FM {} HM-RC-P1 {{"1" 4 0.26 0.248 0.38 0.42}} HM-LC-Dim1L-Pl {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HmIP-PS {} HM-PB-2-WM55 {{"2" 2 0.204 0.23 0.546 0.128} {"1" 2 0.204 0.65 0.546 0.128}} {ZEL STG RM HS 4} {{"1" 4 0.268 0.236 0.16 0.164} {"2" 4 0.476 0.236 0.16 0.164} {"3" 4 0.268 0.48 0.16 0.164} {"4" 4 0.476 0.48 0.16 0.164} {"1+2" 5 '1' '2' } {"3+4" 5 '3' '4' }} HM-LC-Sw1-Pl-2 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-LC-Dim1L-Pl-644 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-LC-Sw1-Pl-3 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HMW-IO-12-Sw7-DR {{"1" 2 0.264 0.7 0.06 0.06} {"2" 2 0.328 0.7 0.06 0.06} {"3" 2 0.46 0.7 0.06 0.06} {"4" 2 0.524 0.7 0.06 0.06} {"5" 2 0.648 0.7 0.06 0.06} {"6" 2 0.708 0.7 0.06 0.06} {"8" 2 0.328 0.764 0.06 0.06} {"7" 2 0.264 0.764 0.06 0.06} {"9" 2 0.46 0.764 0.06 0.06} {"10" 2 0.524 0.764 0.06 0.06} {"11" 2 0.644 0.764 0.06 0.06} {"12" 2 0.708 0.764 0.06 0.06} {"13" 2 0.268 0.396 0.12 0.06} {"14" 2 0.46 0.396 0.12 0.06} {"15" 2 0.648 0.396 0.12 0.06} {"16" 2 0.076 0.46 0.12 0.06} {"17" 2 0.264 0.46 0.12 0.06} {"18" 2 0.46 0.46 0.12 0.06} {"19" 2 0.648 0.46 0.12 0.06}} HM-WS550STH-I {} {ZEL STG RM WT 2} {{"2" 2 0.204 0.23 0.546 0.128} {"1" 2 0.204 0.65 0.546 0.128}} HM-Sen-MDIR-SM {} HM-WS550STH-O {} HmIP-WRC2 {{"2" 4 0.540 0.366 0.04 0.044} {"1" 4 0.540 0.622 0.04 0.044}} HMW-Sys-PS7-DR {} WS550 {{"1" 3 0.440 0.200 '1' 0.124 'verdana' Font.BOLD} {"2" 3 0.440 0.200 '2' 0.124 'verdana' Font.BOLD} {"3" 3 0.440 0.200 '3' 0.124 'verdana' Font.BOLD} {"4" 3 0.440 0.200 '4' 0.124 'verdana' Font.BOLD} {"5" 3 0.440 0.200 '5' 0.124 'verdana' Font.BOLD} {"6" 3 0.440 0.200 '6' 0.124 'verdana' Font.BOLD} {"7" 3 0.440 0.200 '7' 0.124 'verdana' Font.BOLD} {"8" 3 0.440 0.200 '8' 0.124 'verdana' Font.BOLD} {"9" 3 0.440 0.200 '9' 0.124 'verdana' Font.BOLD} {"10" 3 0.405 0.200 '10' 0.124 'verdana' Font.BOLD}} HM-Sen-Wa-Od {} HM-RC-Key3-B {{"1" 4 0.252 0.2 0.16 0.18} {"2" 4 0.492 0.2 0.16 0.18} {"3" 4 0.34 0.484 0.228 0.252} {"1+2" 5 '1' '2' }} DEVICE {{"Icon" 3 0.092 0.6 'Icon_folgt' 0.14 'verdana' Font.BOLD} {"1_channel" 3 0.44 0.232 '1' 0.18 'verdana' Font.BOLD} {"1" 5 '1_channel' 'Icon'} {"2_channel" 3 0.44 0.232 '2' 0.18 'verdana' Font.BOLD} {"2" 5 '2_channel' 'Icon'}} HM-WDS30-OT2-SM {} HM-PB-2-FM {{"2" 2 0.244 0.312 0.428 0.168} {"1" 2 0.244 0.56 0.428 0.168} {"1+2" 2 0.244 0.308 0.428 0.416}} HM-LC-Bl1PBU-FM {{"1a" 2 0.244 0.312 0.428 0.168} {"1b" 2 0.244 0.56 0.428 0.168} {"1" 5 '1a' '1b'}} HM-LC-Sw1-DR {} HMIP-eTRV {} HMIP-WTH {} HM-RC-2-PBU-FM {{"2" 2 0.244 0.312 0.428 0.168} {"1" 2 0.244 0.56 0.428 0.168} {"1+2" 2 0.244 0.308 0.428 0.416}} HM-LC-Sw1-Pl-OM54 {{"1_part1" 2 0.548 0.468 0.072 0.052} {"1_part2" 2 0.612 0.452 0.028 0.056} {"1" 5 '1_part1' '1_part2' }} HM-LC-Sw4-WM-2 {{"Channel1" 2 0.208 0.766 0.065 0.060} {"Channel2" 2 0.276 0.766 0.065 0.060} {"Channel3" 2 0.344 0.766 0.065 0.060} {"Channel4" 2 0.412 0.766 0.065 0.060} {"1_val" 3 0.372 0.288 '1' 0.14 'verdana' Font.BOLD} {"2_val" 3 0.372 0.288 '2' 0.14 'verdana' Font.BOLD} {"3_val" 3 0.372 0.288 '3' 0.14 'verdana' Font.BOLD} {"4_val" 3 0.372 0.288 '4' 0.14 'verdana' Font.BOLD} {"Circle1" 4 0.534 0.762 0.044 0.044} {"Circle2" 4 0.583 0.762 0.044 0.044} {"Circle3" 4 0.637 0.762 0.044 0.044} {"Circle4" 4 0.693 0.762 0.044 0.044} {"1" 5 'Channel1' '1_val' 'Circle1'} {"2" 5 'Channel2' '2_val' 'Circle2'} {"3" 5 'Channel3' '3_val' 'Circle3'} {"4" 5 'Channel4' '4_val' 'Circle4'}} HM-Sec-MDIR-2 {} HM-Sec-MDIR-3 {} HMW-Sec-TR-FM {} HM-WDC7000 {{"1" 3 0.440 0.200 '1' 0.124 'verdana' Font.BOLD} {"2" 3 0.440 0.200 '2' 0.124 'verdana' Font.BOLD} {"3" 3 0.440 0.200 '3' 0.124 'verdana' Font.BOLD} {"4" 3 0.440 0.200 '4' 0.124 'verdana' Font.BOLD} {"5" 3 0.440 0.200 '5' 0.124 'verdana' Font.BOLD} {"6" 3 0.440 0.200 '6' 0.124 'verdana' Font.BOLD} {"7" 3 0.440 0.200 '7' 0.124 'verdana' Font.BOLD} {"8" 3 0.440 0.200 '8' 0.124 'verdana' Font.BOLD} {"9" 3 0.440 0.200 '9' 0.124 'verdana' Font.BOLD} {"10" 3 0.405 0.200 '10' 0.124 'verdana' Font.BOLD}} HM-OU-LED16 {{"1" 2 0.152 0.218 0.064 0.056} {"2" 2 0.152 0.277 0.064 0.056} {"3" 2 0.152 0.336 0.064 0.056} {"4" 2 0.152 0.395 0.064 0.056} {"5" 2 0.152 0.454 0.064 0.056} {"6" 2 0.152 0.513 0.064 0.056} {"7" 2 0.152 0.572 0.064 0.056} {"8" 2 0.152 0.631 0.064 0.056} {"9" 2 0.728 0.218 0.064 0.056} {"10" 2 0.728 0.277 0.064 0.056} {"11" 2 0.728 0.336 0.064 0.056} {"12" 2 0.728 0.395 0.064 0.056} {"13" 2 0.728 0.454 0.064 0.056} {"14" 2 0.728 0.513 0.064 0.056} {"15" 2 0.728 0.572 0.064 0.056} {"16" 2 0.728 0.631 0.064 0.056}} HM-LC-Sw4-SM {{"1_Part1" 6 0.136 0.896 0.136 0.98 0.012} {"1_Part2" 6 0.136 0.98 0.096 0.916 0.012} {"1_Part3" 6 0.136 0.98 0.176 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.164 0} {"3_Arrow" 7 '1_Arrow' 0.328 0} {"4_Arrow" 7 '1_Arrow' 0.492 0} {"1_Key" 4 0.244 0.372 0.04 0.044} {"2_Key" 4 0.328 0.372 0.04 0.044} {"3_Key" 4 0.404 0.372 0.04 0.044} {"4_Key" 4 0.484 0.372 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' } {"3" 5 '3_Arrow' '3_Key' } {"4" 5 '4_Arrow' '4_Key' }} HM-LC-Sw1-FM {{"1_AUS" 2 0.288 0.66 0.068 0.152} {"1_EIN" 2 0.548 0.66 0.068 0.152} {"1" 5 '1_AUS' '1_EIN' }} HM-LC-Sw2-PB-FM {{"1" 2 0.24 0.312 0.204 0.412} {"2" 2 0.46 0.312 0.204 0.412}} WS888 {{"1" 3 0.440 0.200 '1' 0.124 'verdana' Font.BOLD} {"2" 3 0.440 0.200 '2' 0.124 'verdana' Font.BOLD} {"3" 3 0.440 0.200 '3' 0.124 'verdana' Font.BOLD} {"4" 3 0.440 0.200 '4' 0.124 'verdana' Font.BOLD} {"5" 3 0.440 0.200 '5' 0.124 'verdana' Font.BOLD} {"6" 3 0.440 0.200 '6' 0.124 'verdana' Font.BOLD} {"7" 3 0.440 0.200 '7' 0.124 'verdana' Font.BOLD} {"8" 3 0.440 0.200 '8' 0.124 'verdana' Font.BOLD} {"9" 3 0.440 0.200 '9' 0.124 'verdana' Font.BOLD} {"10" 3 0.405 0.200 '10' 0.124 'verdana' Font.BOLD}} HM-WS550-US {{"1" 3 0.440 0.200 '1' 0.124 'verdana' Font.BOLD} {"2" 3 0.440 0.200 '2' 0.124 'verdana' Font.BOLD} {"3" 3 0.440 0.200 '3' 0.124 'verdana' Font.BOLD} {"4" 3 0.440 0.200 '4' 0.124 'verdana' Font.BOLD} {"5" 3 0.440 0.200 '5' 0.124 'verdana' Font.BOLD} {"6" 3 0.440 0.200 '6' 0.124 'verdana' Font.BOLD} {"7" 3 0.440 0.200 '7' 0.124 'verdana' Font.BOLD} {"8" 3 0.440 0.200 '8' 0.124 'verdana' Font.BOLD} {"9" 3 0.440 0.200 '9' 0.124 'verdana' Font.BOLD} {"10" 3 0.405 0.200 '10' 0.124 'verdana' Font.BOLD}} HM-LC-Dim1PWM-CV {} HM-LC-Sw4-SM-ATmega168 {{"1_Part1" 6 0.136 0.896 0.136 0.98 0.012} {"1_Part2" 6 0.136 0.98 0.096 0.916 0.012} {"1_Part3" 6 0.136 0.98 0.176 0.916 0.012} {"1_Arrow" 5 '1_Part1' '1_Part2' '1_Part3' } {"2_Arrow" 7 '1_Arrow' 0.164 0} {"3_Arrow" 7 '1_Arrow' 0.328 0} {"4_Arrow" 7 '1_Arrow' 0.492 0} {"1_Key" 4 0.244 0.372 0.04 0.044} {"2_Key" 4 0.328 0.372 0.04 0.044} {"3_Key" 4 0.404 0.372 0.04 0.044} {"4_Key" 4 0.484 0.372 0.04 0.044} {"1" 5 '1_Arrow' '1_Key' } {"2" 5 '2_Arrow' '2_Key' } {"3" 5 '3_Arrow' '3_Key' } {"4" 5 '4_Arrow' '4_Key' }}} proc DEV_getImagePath {key size} { global DEV_PATHS DEV_LIST diff --git a/WebUI/www/config/easymodes/ACTOR_SECURITY/WEATHER.tcl b/WebUI/www/config/easymodes/ACTOR_SECURITY/WEATHER.tcl index dc880556..51a20e72 100755 --- a/WebUI/www/config/easymodes/ACTOR_SECURITY/WEATHER.tcl +++ b/WebUI/www/config/easymodes/ACTOR_SECURITY/WEATHER.tcl @@ -4,69 +4,69 @@ source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options.tcl] -set PROFILES_MAP(0) "\${expert}" -set PROFILES_MAP(1) "\${security_on}" -set PROFILES_MAP(2) "\${security_off}" -set PROFILES_MAP(3) "\${security_toggle}" -set PROFILES_MAP(4) "\${no_action}" +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${security_on}" +set PROFILES_MAP(2) "\${security_off}" +set PROFILES_MAP(3) "\${security_toggle}" +set PROFILES_MAP(4) "\${no_action}" -set PROFILE_0(UI_HINT) 0 -set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" -set PROFILE_0(UI_TEMPLATE) "Expertenprofil" +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" set PROFILE_1(SHORT_CT_OFF) 0 set PROFILE_1(SHORT_CT_ON) 0 -set PROFILE_1(SHORT_JT_OFF) 1 -set PROFILE_1(SHORT_JT_ON) 1 -set PROFILE_1(UI_DESCRIPTION) "" -set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) -set PROFILE_1(UI_HINT) 1 +set PROFILE_1(SHORT_JT_OFF) 1 +set PROFILE_1(SHORT_JT_ON) 1 +set PROFILE_1(UI_DESCRIPTION) "" +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 set PROFILE_2(SHORT_CT_OFF) 0 set PROFILE_2(SHORT_CT_ON) 0 -set PROFILE_2(SHORT_JT_OFF) 2 -set PROFILE_2(SHORT_JT_ON) 2 -set PROFILE_2(UI_DESCRIPTION) "" -set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) -set PROFILE_2(UI_HINT) 2 +set PROFILE_2(SHORT_JT_OFF) 2 +set PROFILE_2(SHORT_JT_ON) 2 +set PROFILE_2(UI_DESCRIPTION) "" +set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) +set PROFILE_2(UI_HINT) 2 set PROFILE_3(SHORT_CT_OFF) 0 set PROFILE_3(SHORT_CT_ON) 0 -set PROFILE_3(SHORT_JT_OFF) 1 -set PROFILE_3(SHORT_JT_ON) 2 -set PROFILE_3(UI_DESCRIPTION) "" -set PROFILE_3(UI_TEMPLATE) $PROFILE_3(UI_DESCRIPTION) -set PROFILE_3(UI_HINT) 3 +set PROFILE_3(SHORT_JT_OFF) 1 +set PROFILE_3(SHORT_JT_ON) 2 +set PROFILE_3(UI_DESCRIPTION) "" +set PROFILE_3(UI_TEMPLATE) $PROFILE_3(UI_DESCRIPTION) +set PROFILE_3(UI_HINT) 3 proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { - global dev_descr_sender dev_descr_receiver - upvar PROFILES_MAP PROFILES_MAP - upvar HTML_PARAMS HTML_PARAMS - upvar PROFILE_PNAME PROFILE_PNAME - upvar $pps ps - upvar $pps_descr ps_descr - - foreach pro [array names PROFILES_MAP] { - upvar PROFILE_$pro PROFILE_$pro - } - - set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] - - #global SUBSETS + global dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + #global SUBSETS -# die Texte der Platzhalter einlesen - puts "" - set prn 0 - append HTML_PARAMS(separate_$prn) "
" +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" #1 - incr prn - append HTML_PARAMS(separate_$prn) "
" + incr prn + append HTML_PARAMS(separate_$prn) "
" #2 incr prn @@ -83,10 +83,10 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { append HTML_PARAMS(separate_$prn) "
" #4 - incr prn - append HTML_PARAMS(separate_$prn) "
" + incr prn + append HTML_PARAMS(separate_$prn) "
" } diff --git a/WebUI/www/config/easymodes/ACTOR_WINDOW/SMOKE_DETECTOR_TEAM_V2.tcl b/WebUI/www/config/easymodes/ACTOR_WINDOW/SMOKE_DETECTOR_TEAM_V2.tcl index d4d2f093..8fd4d3cb 100755 --- a/WebUI/www/config/easymodes/ACTOR_WINDOW/SMOKE_DETECTOR_TEAM_V2.tcl +++ b/WebUI/www/config/easymodes/ACTOR_WINDOW/SMOKE_DETECTOR_TEAM_V2.tcl @@ -69,13 +69,13 @@ set PROFILE_2(UI_HINT) 2 #set SUBSET_1(NAME) "nur auslösender Rauchmelder" set SUBSET_1(NAME) "\${subset_1}" set SUBSET_1(SUBSET_OPTION_VALUE) 1 -set SUBSET_1(SHORT_COND_VALUE_LO) 1 +set SUBSET_1(SHORT_COND_VALUE_LO) 2 set SUBSET_1(SHORT_COND_VALUE_HI) 180 set SUBSET_1(SHORT_CT_ON) 2 set SUBSET_2(NAME) "\${subset_2}" set SUBSET_2(SUBSET_OPTION_VALUE) 2 -set SUBSET_2(SHORT_COND_VALUE_LO) 2 +set SUBSET_2(SHORT_COND_VALUE_LO) 4 set SUBSET_2(SHORT_COND_VALUE_HI) 180 set SUBSET_2(SHORT_CT_ON) 4 diff --git a/WebUI/www/config/easymodes/ALARMACTUATOR/KEY.tcl b/WebUI/www/config/easymodes/ALARMACTUATOR/KEY.tcl index 5c896f40..eabf480c 100755 --- a/WebUI/www/config/easymodes/ALARMACTUATOR/KEY.tcl +++ b/WebUI/www/config/easymodes/ALARMACTUATOR/KEY.tcl @@ -5,162 +5,162 @@ source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options_alarmactuator.tcl] -set PROFILES_MAP(0) "\${expert}" -set PROFILES_MAP(1) "\${alarm_on}" -set PROFILES_MAP(2) "\${alarm_on_off}" -set PROFILES_MAP(3) "\${alarm_emergency_off}" - - -set PROFILE_0(UI_HINT) 0 -set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" -set PROFILE_0(UI_TEMPLATE) "Expertenprofil" - - -set PROFILE_1(SHORT_CT_OFFDELAY) 0 -set PROFILE_1(SHORT_CT_ONDELAY) 0 -set PROFILE_1(SHORT_CT_OFF) 0 -set PROFILE_1(SHORT_CT_ON) 0 -set PROFILE_1(SHORT_COND_VALUE_LO) 50 -set PROFILE_1(SHORT_COND_VALUE_HI) 100 -set PROFILE_1(SHORT_ON_TIME) {120 300} -set PROFILE_1(SHORT_ACTION_TYPE) 1 -set PROFILE_1(SHORT_JT_OFF) 1 -set PROFILE_1(SHORT_JT_ON) 0 -set PROFILE_1(SHORT_JT_OFFDELAY) 0 -set PROFILE_1(SHORT_JT_ONDELAY) 0 -set PROFILE_1(LONG_CT_OFFDELAY) 0 -set PROFILE_1(LONG_CT_ONDELAY) 0 -set PROFILE_1(LONG_CT_OFF) 0 -set PROFILE_1(LONG_CT_ON) 0 -set PROFILE_1(LONG_COND_VALUE_LO) 50 -set PROFILE_1(LONG_COND_VALUE_HI) 100 -set PROFILE_1(LONG_ON_TIME) {120 300} -set PROFILE_1(LONG_ACTION_TYPE) 1 -set PROFILE_1(LONG_JT_OFF) 1 -set PROFILE_1(LONG_JT_ON) 0 -set PROFILE_1(LONG_JT_OFFDELAY) 0 -set PROFILE_1(LONG_JT_ONDELAY) 0 -set PROFILE_1(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Alarm für die gewählte Zeit eingeschaltet.
" -set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) -set PROFILE_1(UI_HINT) 1 - -set PROFILE_2(SHORT_CT_OFFDELAY) 0 -set PROFILE_2(SHORT_CT_ONDELAY) 0 -set PROFILE_2(SHORT_CT_OFF) 0 -set PROFILE_2(SHORT_CT_ON) 0 -set PROFILE_2(SHORT_COND_VALUE_LO) 50 -set PROFILE_2(SHORT_COND_VALUE_HI) 100 -set PROFILE_2(SHORT_ON_TIME) {120 300} -set PROFILE_2(SHORT_ACTION_TYPE) 1 -set PROFILE_2(SHORT_JT_OFF) 1 -set PROFILE_2(SHORT_JT_ON) {3 4} -set PROFILE_2(SHORT_JT_OFFDELAY) 4 -set PROFILE_2(SHORT_JT_ONDELAY) 2 -set PROFILE_2(LONG_CT_OFFDELAY) 0 -set PROFILE_2(LONG_CT_ONDELAY) 0 -set PROFILE_2(LONG_CT_OFF) 0 -set PROFILE_2(LONG_CT_ON) 0 -set PROFILE_2(LONG_COND_VALUE_LO) 50 -set PROFILE_2(LONG_COND_VALUE_HI) 100 -set PROFILE_2(LONG_ON_TIME) {120 300} -set PROFILE_2(LONG_ACTION_TYPE) 1 -set PROFILE_2(LONG_JT_OFF) 1 -set PROFILE_2(LONG_JT_ON) {3 4} -set PROFILE_2(LONG_JT_OFFDELAY) 4 -set PROFILE_2(LONG_JT_ONDELAY) 2 -set PROFILE_2(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Alarm je nach aktuellem Zustand ein- oder ausgeschaltet (Togglefunktion)." -set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) -set PROFILE_2(UI_HINT) 2 - -set PROFILE_3(SHORT_CT_OFFDELAY) 0 -set PROFILE_3(SHORT_CT_ONDELAY) 0 -set PROFILE_3(SHORT_CT_OFF) 0 -set PROFILE_3(SHORT_CT_ON) 0 -set PROFILE_3(SHORT_COND_VALUE_LO) 50 -set PROFILE_3(SHORT_COND_VALUE_HI) 100 -set PROFILE_3(SHORT_ON_TIME) {120 300} -set PROFILE_3(SHORT_ACTION_TYPE) 1 -set PROFILE_3(SHORT_JT_OFF) 4 -set PROFILE_3(SHORT_JT_ON) 3 -set PROFILE_3(SHORT_JT_OFFDELAY) 4 -set PROFILE_3(SHORT_JT_ONDELAY) 4 -set PROFILE_3(LONG_CT_OFFDELAY) 0 -set PROFILE_3(LONG_CT_ONDELAY) 0 -set PROFILE_3(LONG_CT_OFF) 0 -set PROFILE_3(LONG_CT_ON) 0 -set PROFILE_3(LONG_COND_VALUE_LO) 50 -set PROFILE_3(LONG_COND_VALUE_HI) 100 -set PROFILE_3(LONG_ON_TIME) {120 300} -set PROFILE_3(LONG_ACTION_TYPE) 1 -set PROFILE_3(LONG_JT_OFF) 4 -set PROFILE_3(LONG_JT_ON) 3 -set PROFILE_3(LONG_JT_OFFDELAY) 4 -set PROFILE_3(LONG_JT_ONDELAY) 4 -set PROFILE_3(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Alarm sofort ausgeschaltet." -set PROFILE_3(UI_TEMPLATE) $PROFILE_3(UI_DESCRIPTION) -set PROFILE_3(UI_HINT) 3 +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${alarm_on}" +set PROFILES_MAP(2) "\${alarm_on_off}" +set PROFILES_MAP(3) "\${alarm_emergency_off}" + + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + + +set PROFILE_1(SHORT_CT_OFFDELAY) 0 +set PROFILE_1(SHORT_CT_ONDELAY) 0 +set PROFILE_1(SHORT_CT_OFF) 0 +set PROFILE_1(SHORT_CT_ON) 0 +set PROFILE_1(SHORT_COND_VALUE_LO) 50 +set PROFILE_1(SHORT_COND_VALUE_HI) 100 +set PROFILE_1(SHORT_ON_TIME) {120 300} +set PROFILE_1(SHORT_ACTION_TYPE) 1 +set PROFILE_1(SHORT_JT_OFF) 1 +set PROFILE_1(SHORT_JT_ON) 0 +set PROFILE_1(SHORT_JT_OFFDELAY) 0 +set PROFILE_1(SHORT_JT_ONDELAY) 0 +set PROFILE_1(LONG_CT_OFFDELAY) 0 +set PROFILE_1(LONG_CT_ONDELAY) 0 +set PROFILE_1(LONG_CT_OFF) 0 +set PROFILE_1(LONG_CT_ON) 0 +set PROFILE_1(LONG_COND_VALUE_LO) 50 +set PROFILE_1(LONG_COND_VALUE_HI) 100 +set PROFILE_1(LONG_ON_TIME) {120 300} +set PROFILE_1(LONG_ACTION_TYPE) 1 +set PROFILE_1(LONG_JT_OFF) 1 +set PROFILE_1(LONG_JT_ON) 0 +set PROFILE_1(LONG_JT_OFFDELAY) 0 +set PROFILE_1(LONG_JT_ONDELAY) 0 +set PROFILE_1(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Alarm für die gewählte Zeit eingeschaltet.
" +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 + +set PROFILE_2(SHORT_CT_OFFDELAY) 0 +set PROFILE_2(SHORT_CT_ONDELAY) 0 +set PROFILE_2(SHORT_CT_OFF) 0 +set PROFILE_2(SHORT_CT_ON) 0 +set PROFILE_2(SHORT_COND_VALUE_LO) 50 +set PROFILE_2(SHORT_COND_VALUE_HI) 100 +set PROFILE_2(SHORT_ON_TIME) {120 300} +set PROFILE_2(SHORT_ACTION_TYPE) 1 +set PROFILE_2(SHORT_JT_OFF) 1 +set PROFILE_2(SHORT_JT_ON) {3 4} +set PROFILE_2(SHORT_JT_OFFDELAY) 4 +set PROFILE_2(SHORT_JT_ONDELAY) 2 +set PROFILE_2(LONG_CT_OFFDELAY) 0 +set PROFILE_2(LONG_CT_ONDELAY) 0 +set PROFILE_2(LONG_CT_OFF) 0 +set PROFILE_2(LONG_CT_ON) 0 +set PROFILE_2(LONG_COND_VALUE_LO) 50 +set PROFILE_2(LONG_COND_VALUE_HI) 100 +set PROFILE_2(LONG_ON_TIME) {120 300} +set PROFILE_2(LONG_ACTION_TYPE) 1 +set PROFILE_2(LONG_JT_OFF) 1 +set PROFILE_2(LONG_JT_ON) {3 4} +set PROFILE_2(LONG_JT_OFFDELAY) 4 +set PROFILE_2(LONG_JT_ONDELAY) 2 +set PROFILE_2(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Alarm je nach aktuellem Zustand ein- oder ausgeschaltet (Togglefunktion)." +set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) +set PROFILE_2(UI_HINT) 2 + +set PROFILE_3(SHORT_CT_OFFDELAY) 0 +set PROFILE_3(SHORT_CT_ONDELAY) 0 +set PROFILE_3(SHORT_CT_OFF) 0 +set PROFILE_3(SHORT_CT_ON) 0 +set PROFILE_3(SHORT_COND_VALUE_LO) 50 +set PROFILE_3(SHORT_COND_VALUE_HI) 100 +set PROFILE_3(SHORT_ON_TIME) {120 300} +set PROFILE_3(SHORT_ACTION_TYPE) 1 +set PROFILE_3(SHORT_JT_OFF) 4 +set PROFILE_3(SHORT_JT_ON) 3 +set PROFILE_3(SHORT_JT_OFFDELAY) 4 +set PROFILE_3(SHORT_JT_ONDELAY) 4 +set PROFILE_3(LONG_CT_OFFDELAY) 0 +set PROFILE_3(LONG_CT_ONDELAY) 0 +set PROFILE_3(LONG_CT_OFF) 0 +set PROFILE_3(LONG_CT_ON) 0 +set PROFILE_3(LONG_COND_VALUE_LO) 50 +set PROFILE_3(LONG_COND_VALUE_HI) 100 +set PROFILE_3(LONG_ON_TIME) {120 300} +set PROFILE_3(LONG_ACTION_TYPE) 1 +set PROFILE_3(LONG_JT_OFF) 4 +set PROFILE_3(LONG_JT_ON) 3 +set PROFILE_3(LONG_JT_OFFDELAY) 4 +set PROFILE_3(LONG_JT_ONDELAY) 4 +set PROFILE_3(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Alarm sofort ausgeschaltet." +set PROFILE_3(UI_TEMPLATE) $PROFILE_3(UI_DESCRIPTION) +set PROFILE_3(UI_HINT) 3 proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { - - - global dev_descr_sender dev_descr_receiver receiver_address - upvar PROFILES_MAP PROFILES_MAP - upvar HTML_PARAMS HTML_PARAMS - upvar PROFILE_PNAME PROFILE_PNAME - upvar $pps ps - upvar $pps_descr ps_descr - - # hier wird der gewaehlte Kancal der ASA ermittelt, Kanal 1 = Sirene - Kanal 2 = Blitzlicht - set ch [string range $receiver_address [expr [string first ":" $receiver_address] +1] [string length $receiver_address]] - set manner(1) "siren" - set manner(2) "flashlight" - - foreach pro [array names PROFILES_MAP] { - upvar PROFILE_$pro PROFILE_$pro - } - - set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] - -# die Texte der Platzhalter einlesen - puts "" - set prn 0 - append HTML_PARAMS(separate_$prn) "
" - -#1 Alarm Ein - incr prn - set pref 1 - if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} - append HTML_PARAMS(separate_$prn) "
" -#2 Alarm Ein/Aus - incr prn - set pref 1 - if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} - append HTML_PARAMS(separate_$prn) "
" -#3 Alarm NOT-AUS - incr prn - append HTML_PARAMS(separate_$prn) "
" + + + global dev_descr_sender dev_descr_receiver receiver_address + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + # hier wird der gewaehlte Kancal der ASA ermittelt, Kanal 1 = Sirene - Kanal 2 = Blitzlicht + set ch [string range $receiver_address [expr [string first ":" $receiver_address] +1] [string length $receiver_address]] + set manner(1) "siren" + set manner(2) "flashlight" + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" + +#1 Alarm Ein + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" +#2 Alarm Ein/Aus + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" +#3 Alarm NOT-AUS + incr prn + append HTML_PARAMS(separate_$prn) "
" } constructor diff --git a/WebUI/www/config/easymodes/ALARMACTUATOR/SMOKE_DETECTOR_TEAM_V2.tcl b/WebUI/www/config/easymodes/ALARMACTUATOR/SMOKE_DETECTOR_TEAM_V2.tcl index 0bf88fea..a3a6d2da 100755 --- a/WebUI/www/config/easymodes/ALARMACTUATOR/SMOKE_DETECTOR_TEAM_V2.tcl +++ b/WebUI/www/config/easymodes/ALARMACTUATOR/SMOKE_DETECTOR_TEAM_V2.tcl @@ -33,14 +33,14 @@ set PROFILE_1(UI_HINT) 1 #set SUBSET_1(NAME) "nur auslösender Rauchmelder" set SUBSET_1(NAME) "\${subset_1}" set SUBSET_1(SUBSET_OPTION_VALUE) 1 -set SUBSET_1(SHORT_COND_VALUE_LO) 1 +set SUBSET_1(SHORT_COND_VALUE_LO) 2 set SUBSET_1(SHORT_COND_VALUE_HI) 180 set SUBSET_1(SHORT_CT_ON) 2 #set SUBSET_2(NAME) "Rauchmelder der gleichen Gruppe" set SUBSET_2(NAME) "\${subset_2}" set SUBSET_2(SUBSET_OPTION_VALUE) 2 -set SUBSET_2(SHORT_COND_VALUE_LO) 2 +set SUBSET_2(SHORT_COND_VALUE_LO) 4 set SUBSET_2(SHORT_COND_VALUE_HI) 180 set SUBSET_2(SHORT_CT_ON) 4 diff --git a/WebUI/www/config/easymodes/ALARMACTUATOR/WEATHER.tcl b/WebUI/www/config/easymodes/ALARMACTUATOR/WEATHER.tcl index 473e0fc4..330dbe6f 100755 --- a/WebUI/www/config/easymodes/ALARMACTUATOR/WEATHER.tcl +++ b/WebUI/www/config/easymodes/ALARMACTUATOR/WEATHER.tcl @@ -4,104 +4,110 @@ source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options_alarmactuator.tcl] -set PROFILES_MAP(0) "\${expert}" -set PROFILES_MAP(1) "\${alarm_on}" - - -set PROFILE_0(UI_HINT) 0 -set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" -set PROFILE_0(UI_TEMPLATE) "Expertenprofil" - -set PROFILE_1(SHORT_CT_OFFDELAY) 0 -set PROFILE_1(SHORT_CT_ONDELAY) 0 -set PROFILE_1(SHORT_CT_OFF) 0 -set PROFILE_1(SHORT_CT_ON) 0 -set PROFILE_1(SHORT_COND_VALUE_LO) {50 200} -set PROFILE_1(SHORT_COND_VALUE_HI) {0 100} -set PROFILE_1(SHORT_ONDELAY_TIME) 0 -set PROFILE_1(SHORT_ON_TIME) {120 300} -set PROFILE_1(SHORT_OFFDELAY_TIME) 0 -set PROFILE_1(SHORT_OFF_TIME) 111600 -set PROFILE_1(SHORT_ON_TIME_MODE) 0 -set PROFILE_1(SHORT_OFF_TIME_MODE) 0 -set PROFILE_1(SHORT_ACTION_TYPE) 1 -set PROFILE_1(SHORT_JT_OFF) 1 -set PROFILE_1(SHORT_JT_ON) 0 -set PROFILE_1(SHORT_JT_OFFDELAY) 0 -set PROFILE_1(SHORT_JT_ONDELAY) 0 -set PROFILE_1(UI_DESCRIPTION) "Wenn die eingestellte Windgeschwindigkeit erreicht wird, schaltet der Alarm für die eingestellte Zeit ein." -set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) -set PROFILE_1(UI_HINT) 1 - -#set SUBSET_1(NAME) "Wind stark - Aus / Wind schwach - Ein" -set SUBSET_1(NAME) "\${subset_1}" -set SUBSET_1(SUBSET_OPTION_VALUE) 1 -set SUBSET_1(SHORT_CT_OFF) 2 -set SUBSET_1(SHORT_CT_OFFDELAY) 2 -set SUBSET_1(SHORT_CT_ON) 0 -set SUBSET_1(SHORT_CT_ONDELAY) 0 - -#set SUBSET_2(NAME) "Wind stark - Ein / Wind schwach - Aus" -set SUBSET_2(NAME) "\${subset_2}" -set SUBSET_2(SUBSET_OPTION_VALUE) 2 -set SUBSET_2(SHORT_CT_OFF) 0 -set SUBSET_2(SHORT_CT_OFFDELAY) 0 -set SUBSET_2(SHORT_CT_ON) 2 -set SUBSET_2(SHORT_CT_ONDELAY) 2 +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${alarm_on}" + + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + +set PROFILE_1(SHORT_CT_OFFDELAY) {0 1} +set PROFILE_1(SHORT_CT_ONDELAY) {0 1} +set PROFILE_1(SHORT_CT_OFF) {0 1} +set PROFILE_1(SHORT_CT_ON) {0 1} +set PROFILE_1(SHORT_COND_VALUE_LO) {50 range 0 - 200} +set PROFILE_1(SHORT_COND_VALUE_HI) {0 range 0 - 100} +set PROFILE_1(SHORT_ONDELAY_TIME) 0 +set PROFILE_1(SHORT_ON_TIME) {120 300} +set PROFILE_1(SHORT_OFFDELAY_TIME) 0 +set PROFILE_1(SHORT_OFF_TIME) 111600 +set PROFILE_1(SHORT_ON_TIME_MODE) 0 +set PROFILE_1(SHORT_OFF_TIME_MODE) 0 +set PROFILE_1(SHORT_ACTION_TYPE) 1 +set PROFILE_1(SHORT_JT_OFF) 1 +set PROFILE_1(SHORT_JT_ON) {0 2} +set PROFILE_1(SHORT_JT_OFFDELAY) {0 2} +set PROFILE_1(SHORT_JT_ONDELAY) {0 2} +set PROFILE_1(UI_DESCRIPTION) "Wenn die eingestellte Windgeschwindigkeit erreicht wird, schaltet der Alarm für die eingestellte Zeit ein." +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 + + +set SUBSET_1(NAME) "hidden element" +set SUBSET_1(SUBSET_OPTION_VALUE) 1 +set SUBSET_1(SHORT_CT_OFFDELAY) 1 +set SUBSET_1(SHORT_CT_ONDELAY) 1 +set SUBSET_1(SHORT_CT_OFF) 1 +set SUBSET_1(SHORT_CT_ON) 1 + +set SUBSET_1(SHORT_JT_OFF) 1 +set SUBSET_1(SHORT_JT_ON) 2 +set SUBSET_1(SHORT_JT_OFFDELAY) 2 +set SUBSET_1(SHORT_JT_ONDELAY) 2 + proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { - global dev_descr_sender dev_descr_receiver receiver_address - upvar PROFILES_MAP PROFILES_MAP - upvar HTML_PARAMS HTML_PARAMS - upvar PROFILE_PNAME PROFILE_PNAME - upvar $pps ps - upvar $pps_descr ps_descr - - # hier wird der gewaehlte Kancal der ASA ermittelt, Kanal 1 = Sirene - Kanal 2 = Blitzlicht - set ch [string range $receiver_address [expr [string first ":" $receiver_address] +1] [string length $receiver_address]] - set manner(1) "siren" - set manner(2) "flashlight" - - foreach pro [array names PROFILES_MAP] { - upvar PROFILE_$pro PROFILE_$pro - } - - set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] - - #global SUBSETS - set name "x" - set i 1 - while {$name != ""} { - upvar SUBSET_$i SUBSET_$i - array set subset [array get SUBSET_$i] - set name "" - catch {set name $subset(NAME)} - array_clear subset - incr i - } - -# die Texte der Platzhalter einlesen - puts "" - set prn 0 - append HTML_PARAMS(separate_$prn) "
" + global dev_descr_sender dev_descr_receiver receiver_address + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + # hier wird der gewaehlte Kancal der ASA ermittelt, Kanal 1 = Sirene - Kanal 2 = Blitzlicht + set ch [string range $receiver_address [expr [string first ":" $receiver_address] +1] [string length $receiver_address]] + set manner(1) "siren" + set manner(2) "flashlight" + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + #global SUBSETS + set name "x" + set i 1 + while {$name != ""} { + upvar SUBSET_$i SUBSET_$i + array set subset [array get SUBSET_$i] + set name "" + catch {set name $subset(NAME)} + array_clear subset + incr i + } + +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" #1 - incr prn - set pref 1 - if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} - append HTML_PARAMS(separate_$prn) "
" + incr prn + set pref 0 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" } constructor diff --git a/WebUI/www/config/easymodes/BLIND/WEATHER.tcl b/WebUI/www/config/easymodes/BLIND/WEATHER.tcl index a3c2952f..4237ce4d 100755 --- a/WebUI/www/config/easymodes/BLIND/WEATHER.tcl +++ b/WebUI/www/config/easymodes/BLIND/WEATHER.tcl @@ -84,6 +84,18 @@ set PROFILE_2(UI_HINT) 2 # hier folgen die eventuellen Subsets +# This is for the new HM-WDS100-C6-O-2 +set SUBSET_1(SUBSET_OPTION_VALUE) 1 +set SUBSET_1(NAME) "hidden parameter" +set SUBSET_1(SHORT_CT_RAMPOFF) 1 +set SUBSET_1(SHORT_CT_RAMPON) 1 +set SUBSET_1(SHORT_CT_OFFDELAY) 1 +set SUBSET_1(SHORT_CT_ONDELAY) 1 +set SUBSET_1(SHORT_CT_OFF) 1 +set SUBSET_1(SHORT_CT_ON) 1 +set SUBSET_1(SHORT_CT_REFOFF) 1 +set SUBSET_1(SHORT_CT_REFON) 1 + proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { global receiver_address dev_descr_sender dev_descr_receiver @@ -126,19 +138,35 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { append HTML_PARAMS(separate_$prn) "\${description_$prn}" append HTML_PARAMS(separate_$prn) "" + + # Hide this + if {$dev_descr_sender(PARENT_TYPE) == "HM-WDS100-C6-O-2"} { + append HTML_PARAMS(separate_$prn) "" + incr pref ; + } + + append HTML_PARAMS(separate_$prn) "" - incr pref ;# 2 + incr pref ;# 2 / 3 append HTML_PARAMS(separate_$prn) "" - + + # Hide tr 3/4 and 4/5 + incr pref ;# 3 / 4 + append HTML_PARAMS(separate_$prn) "" + incr pref ;# 4 / 5 + append HTML_PARAMS(separate_$prn) "" + append HTML_PARAMS(separate_$prn) "
Hidden Parameter" + append HTML_PARAMS(separate_$prn) [subset2combobox {SUBSET_1} subset_$prn\_$pref separate_${special_input_id}_$prn\_$pref PROFILE_$prn] + append HTML_PARAMS(separate_$prn) "
\${UP_TIME}" option LENGTH_OF_STAY append HTML_PARAMS(separate_$prn) [get_ComboBox options SHORT_ON_TIME|LONG_ON_TIME separate_${special_input_id}_$prn\_$pref PROFILE_$prn SHORT_ON_TIME "onchange=\"ActivateFreeTime(\$('${special_input_id}_profiles'),$pref);\""] EnterTime_h_m_s $prn $pref ${special_input_id} ps_descr SHORT_ON_TIME append HTML_PARAMS(separate_$prn) "
\${UP_DELAY_TIME}" option DELAY append HTML_PARAMS(separate_$prn) [get_ComboBox options SHORT_ONDELAY_TIME separate_${special_input_id}_$prn\_$pref PROFILE_$prn SHORT_ONDELAY_TIME "onchange=\"ActivateFreeTime(\$('${special_input_id}_profiles'),$pref);\""] EnterTime_h_m_s $prn $pref ${special_input_id} ps_descr SHORT_ONDELAY_TIME append HTML_PARAMS(separate_$prn) "
" #2 incr prn @@ -148,19 +176,33 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { append HTML_PARAMS(separate_$prn) "\${description_$prn}" append HTML_PARAMS(separate_$prn) "" + # Hide this + if {$dev_descr_sender(PARENT_TYPE) == "HM-WDS100-C6-O-2"} { + append HTML_PARAMS(separate_$prn) "" + incr pref + } + append HTML_PARAMS(separate_$prn) "" - incr pref ;# 2 + incr pref ;# 2 / 3 append HTML_PARAMS(separate_$prn) "" - + + # Hide tr 3/4 and 4/5 + incr pref ;# 3 / 4 + append HTML_PARAMS(separate_$prn) "" + incr pref ;# 4 /5 + append HTML_PARAMS(separate_$prn) "" + append HTML_PARAMS(separate_$prn) "
Hidden Parameter" + append HTML_PARAMS(separate_$prn) [subset2combobox {SUBSET_1} subset_$prn\_$pref separate_${special_input_id}_$prn\_$pref PROFILE_$prn] + append HTML_PARAMS(separate_$prn) "
\${DOWN_TIME}" option LENGTH_OF_STAY append HTML_PARAMS(separate_$prn) [get_ComboBox options SHORT_OFF_TIME|LONG_OFF_TIME separate_${special_input_id}_$prn\_$pref PROFILE_$prn SHORT_OFF_TIME "onchange=\"ActivateFreeTime(\$('${special_input_id}_profiles'),$pref);\""] EnterTime_h_m_s $prn $pref ${special_input_id} ps_descr SHORT_OFF_TIME append HTML_PARAMS(separate_$prn) "
\${DOWN_DELAY_TIME}" option DELAY append HTML_PARAMS(separate_$prn) [get_ComboBox options SHORT_OFFDELAY_TIME separate_${special_input_id}_$prn\_$pref PROFILE_$prn SHORT_OFFDELAY_TIME "onchange=\"ActivateFreeTime(\$('${special_input_id}_profiles'),$pref);\""] EnterTime_h_m_s $prn $pref ${special_input_id} ps_descr SHORT_OFFDELAY_TIME append HTML_PARAMS(separate_$prn) "
" } diff --git a/WebUI/www/config/easymodes/DIMMER/DIMMER.tcl b/WebUI/www/config/easymodes/DIMMER/DIMMER.tcl index bb723658..73754a9a 100755 --- a/WebUI/www/config/easymodes/DIMMER/DIMMER.tcl +++ b/WebUI/www/config/easymodes/DIMMER/DIMMER.tcl @@ -109,8 +109,8 @@ set PROFILE_2(LONG_CT_ON) 0 set PROFILE_2(LONG_CT_ONDELAY) 0 set PROFILE_2(LONG_CT_RAMPOFF) 0 set PROFILE_2(LONG_CT_RAMPON) 0 -set PROFILE_2(LONG_DIM_MAX_LEVEL) 1.0 -set PROFILE_2(LONG_DIM_MIN_LEVEL) 0.0 +set PROFILE_2(LONG_DIM_MAX_LEVEL) {1.0 range 0.0 - 1.0} +set PROFILE_2(LONG_DIM_MIN_LEVEL) {0.0 range 0.0 - 1.0} set PROFILE_2(LONG_DIM_STEP) 0.05 set PROFILE_2(LONG_JT_OFF) 4 set PROFILE_2(LONG_JT_OFFDELAY) 5 @@ -146,8 +146,8 @@ set PROFILE_2(SHORT_CT_ON) 0 set PROFILE_2(SHORT_CT_ONDELAY) 0 set PROFILE_2(SHORT_CT_RAMPOFF) 0 set PROFILE_2(SHORT_CT_RAMPON) 0 -set PROFILE_2(SHORT_DIM_MAX_LEVEL) 1.0 -set PROFILE_2(SHORT_DIM_MIN_LEVEL) 0.0 +set PROFILE_2(SHORT_DIM_MAX_LEVEL) {1.0 range 0.0 - 1.0} +set PROFILE_2(SHORT_DIM_MIN_LEVEL) {0.0 range 0.0 - 1.0} set PROFILE_2(SHORT_DIM_STEP) 0.05 set PROFILE_2(SHORT_JT_OFF) 4 set PROFILE_2(SHORT_JT_OFFDELAY) 5 diff --git a/WebUI/www/config/easymodes/DIMMER/SMOKE_DETECTOR_TEAM_V2.tcl b/WebUI/www/config/easymodes/DIMMER/SMOKE_DETECTOR_TEAM_V2.tcl index 35fbe25b..ca701911 100755 --- a/WebUI/www/config/easymodes/DIMMER/SMOKE_DETECTOR_TEAM_V2.tcl +++ b/WebUI/www/config/easymodes/DIMMER/SMOKE_DETECTOR_TEAM_V2.tcl @@ -104,7 +104,7 @@ set SUBSET_1(SUBSET_OPTION_VALUE) 1 set SUBSET_1SHORT_CT_RAMPON) 2 set SUBSET_1(SHORT_CT_ONDELAY) 2 set SUBSET_1(SHORT_CT_ON) 2 -set SUBSET_1(SHORT_COND_VALUE_LO) 1 +set SUBSET_1(SHORT_COND_VALUE_LO) 2 set SUBSET_1(SHORT_COND_VALUE_HI) 180 #set SUBSET_2(NAME) "Rauchmelder der gleichen Gruppe" @@ -113,19 +113,19 @@ set SUBSET_2(SUBSET_OPTION_VALUE) 2 set SUBSET_2(SHORT_CT_RAMPON) 3 set SUBSET_2(SHORT_CT_ONDELAY) 3 set SUBSET_2(SHORT_CT_ON) 3 -set SUBSET_2(SHORT_COND_VALUE_LO) 2 +set SUBSET_2(SHORT_COND_VALUE_LO) 4 set SUBSET_2(SHORT_COND_VALUE_HI) 180 #set SUBSET_3(NAME) "nur auslösender Rauchmelder" ;# Subset für Alarmblinken set SUBSET_3(NAME) "\${subset_3}" set SUBSET_3(SUBSET_OPTION_VALUE) 3 -set SUBSET_3(SHORT_COND_VALUE_LO) 1 +set SUBSET_3(SHORT_COND_VALUE_LO) 2 set SUBSET_3(SHORT_COND_VALUE_HI) 180 #set SUBSET_4(NAME) "Rauchmelder der gleichen Gruppe" ;# Subset für Alarmblinken set SUBSET_4(NAME) "\${subset_4}" set SUBSET_4(SUBSET_OPTION_VALUE) 4 -set SUBSET_4(SHORT_COND_VALUE_LO) 2 +set SUBSET_4(SHORT_COND_VALUE_LO) 4 set SUBSET_4(SHORT_COND_VALUE_HI) 180 proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { diff --git a/WebUI/www/config/easymodes/MASTER_LANG/HM_ES_TX_WM.js b/WebUI/www/config/easymodes/MASTER_LANG/HM_ES_TX_WM.js index 9be93ec1..54c77ce9 100755 --- a/WebUI/www/config/easymodes/MASTER_LANG/HM_ES_TX_WM.js +++ b/WebUI/www/config/easymodes/MASTER_LANG/HM_ES_TX_WM.js @@ -8,7 +8,31 @@ jQuery.extend(true,langJSON, { "PowerMeterIGLSensorGAS" : "Gas", "PowerMeterIGLSensorIR" : "Infrarot", "PowerMeterIGLSensorLED" : "LED", - "PowerMeterIGLSensorUnknown" : "Unbekannt" + "PowerMeterIGLSensorUnknown" : "Unbekannt", + + "****" : "****", + "PowerMeterIECSensor" : "IEC", + "PowerMeterPowerString" : "Identifikationskennzeichnung der Leistung", + "PowerMeterEnergyCounterString" : "Identifikationskennzeichnung des Z%E4hlerstandes", + + "PowerMeterBaudRate" : "Baudrate", + "PowerMeterSerialFormat" : "Zeichenformat des Verbrauchsz%E4hlers", + "PowerMeterPowerMode" : "Energiemodus des Verbrauchsz%E4hlers", + "PowerMeterProtocolMode" : "Protokollmodus des Verbrauchsz%E4hlers", + "PowerMeterSamplesPerCycle" : "Anzahl der Datenabfragen pro Senderaster", + + "PowerMeterSerialFormatOption0" : "1_7D_1P_E_1S", + "PowerMeterSerialFormatOption1" : "1_7D_1P_E_2S", + "PowerMeterSerialFormatOption2" : "1_8D_0P_N_1S", + "PowerMeterSerialFormatOption3" : "1_8D_1P_E_1S", + + "PowerMeterPowerModeOptionMains" : "Netzspannung", + "PowerMeterPowerModeOptionBattery" : "Batteriebetrieb", + + "PowerMeterProtocolModeModeOptionA" : "Modus A - bidirektionale Datenschnittstelle ohne Geschwindigkeitsumschaltung", + "PowerMeterProtocolModeModeOptionB" : "Modus B - bidirektionale Datenschnittstelle mit Geschwindigkeitsumschaltung", + "PowerMeterProtocolModeModeOptionC" : "Modus C - bidirektionale Datenschnittstelle mit Geschwindigkeitsumschaltung", + "PowerMeterProtocolModeModeOptionD" : "Modus D - unidirektionale Datenschnittstelle mit Sendeintervall (z. B. EasyMeter)" }, "en" : { @@ -20,18 +44,66 @@ jQuery.extend(true,langJSON, { "PowerMeterIGLSensorGAS" : "Gas", "PowerMeterIGLSensorIR" : "Infrared", "PowerMeterIGLSensorLED" : "LED", - "PowerMeterIGLSensorUnknown" : "Unknown" + "PowerMeterIGLSensorUnknown" : "Unknown", + + "****" : "****", + "PowerMeterIECSensor" : "IEC", + "PowerMeterPowerString" : "Identification marking of power", + "PowerMeterEnergyCounterString" : "Identification marking of meter reading", + + "PowerMeterBaudRate" : "Baud rate", + "PowerMeterSerialFormat" : "Character format of consumption meter", + "PowerMeterPowerMode" : "Energy mode of consumption meter", + "PowerMeterProtocolMode" : "Protocol mode of consumption meter", + "PowerMeterSamplesPerCycle" : "Number of data requests per transmission interval", + + "PowerMeterSerialFormatOption0" : "1_7D_1P_E_1S", + "PowerMeterSerialFormatOption1" : "1_7D_1P_E_2S", + "PowerMeterSerialFormatOption2" : "1_8D_0P_N_1S", + "PowerMeterSerialFormatOption3" : "1_8D_1P_E_1S", + + "PowerMeterPowerModeOptionMains" : "Mains voltage", + "PowerMeterPowerModeOptionBattery" : "Battery operation", + + "PowerMeterProtocolModeModeOptionA" : "Mode A - bidirectional data interface without speed switching", + "PowerMeterProtocolModeModeOptionB" : "Mode B - bidirectional data interface with speed switching", + "PowerMeterProtocolModeModeOptionC" : "Mode C - bidirectional data interface with speed switching", + "PowerMeterProtocolModeModeOptionD" : "Mode D - unidirectional data interface with transmission interval (e.g. EasyMeter)" }, "tr" : { - "PowerMeterIGLMeterType" : "Sens%F6r tipi", - "PowerMeterIGLConstantGas" : "Gaz sayac sabiti", - "PowerMeterIGLConstantIR" : "IR sayac sabiti", - "PowerMeterIGLSensibilityIR" : "IR hassasiyeti", - "PowerMeterIGLConstantLed" : "LED sayac sabiti", - "PowerMeterIGLSensorGAS" : "Gaz", - "PowerMeterIGLSensorIR" : "Kizil%F6tesi", + "PowerMeterIGLMeterType" : "Type of sensor", + "PowerMeterIGLConstantGas" : "Gas meter constant", + "PowerMeterIGLConstantIR" : "IR meter constant", + "PowerMeterIGLSensibilityIR" : "IR threshold sensibility", + "PowerMeterIGLConstantLed" : "LED meter constant", + "PowerMeterIGLSensorGAS" : "Gas", + "PowerMeterIGLSensorIR" : "Infrared", "PowerMeterIGLSensorLED" : "LED", - "PowerMeterIGLSensorUnknown" : "Bilinmiyor" + "PowerMeterIGLSensorUnknown" : "Unknown", + + "****" : "****", + "PowerMeterIECSensor" : "IEC", + "PowerMeterPowerString" : "Identification marking of power", + "PowerMeterEnergyCounterString" : "Identification marking of meter reading", + + "PowerMeterBaudRate" : "Baud rate", + "PowerMeterSerialFormat" : "Character format of consumption meter", + "PowerMeterPowerMode" : "Energy mode of consumption meter", + "PowerMeterProtocolMode" : "Protocol mode of consumption meter", + "PowerMeterSamplesPerCycle" : "Number of data requests per transmission interval", + + "PowerMeterSerialFormatOption0" : "1_7D_1P_E_1S", + "PowerMeterSerialFormatOption1" : "1_7D_1P_E_2S", + "PowerMeterSerialFormatOption2" : "1_8D_0P_N_1S", + "PowerMeterSerialFormatOption3" : "1_8D_1P_E_1S", + + "PowerMeterPowerModeOptionMains" : "Mains voltage", + "PowerMeterPowerModeOptionBattery" : "Battery operation", + + "PowerMeterProtocolModeModeOptionA" : "Mode A - bidirectional data interface without speed switching", + "PowerMeterProtocolModeModeOptionB" : "Mode B - bidirectional data interface with speed switching", + "PowerMeterProtocolModeModeOptionC" : "Mode C - bidirectional data interface with speed switching", + "PowerMeterProtocolModeModeOptionD" : "Mode D - unidirectional data interface with transmission interval (e.g. EasyMeter)" } }); \ No newline at end of file diff --git a/WebUI/www/config/easymodes/MASTER_LANG/HM_ES_TX_WM_HELP.js b/WebUI/www/config/easymodes/MASTER_LANG/HM_ES_TX_WM_HELP.js new file mode 100755 index 00000000..d9af65a9 --- /dev/null +++ b/WebUI/www/config/easymodes/MASTER_LANG/HM_ES_TX_WM_HELP.js @@ -0,0 +1,171 @@ +jQuery.extend(true,langJSON, { + + "de" : { + "HelpTitle" : "Hilfe", + "SERIAL_FORMAT" : + "Standardeinstellung nach Norm:
"+ + "1 Startbit, 7 Datenbits, 1 Paritätsbit (gerade Parität), 1 Stoppbit

"+ + + "Weitere Einstellungsmöglichkeiten:
"+ + "1 Startbit, 7 Datenbits, 1 Paritätsbit (gerade Parität), 2 Stoppbits
"+ + "1 Startbit, 8 Datenbits, 0 Paritätsbit (keine Parität), 1 Stoppbit
"+ + "1 Startbit, 8 Datenbits, 1 Paritätsbit (gerade Parität), 1 Stoppbit
", + + "SAMPLES_PER_CYCLE": + "Das Gerät sendet die Daten zyklisch alle 2–3 Minuten. Falls das Senderaster zu langsam ist, weil z. B. ein Zentralenprogramm schneller reagieren soll, " + + "können zusätzliche Datenabfragen pro Senderaster in Zusammenhang mit Schwellwerte für die Abweichung der Leistung beider Kanäle " + + "konfiguriert werden, die zusätzliche Sendungen auslösen.", + + "POWER_STRING_CH1" : + "Standardeinstellung: 1-0:1.7
"+ + "1 --> Summe Wirkleistung +
"+ + "7 --> Momentanwert

"+ + + "Hinweis: Wenn von dem Zähler die Wirkleistungen der einzelnen Phasen nicht zusammen in einer Kennzahl übertragen werden, können hier die Messgrößen von mehreren Phasen zusammengefasst werden.

"+ + + "Beispieleinstellung: 1-0:21|41|61.7
"+ + "21 --> L1 Wirkleistung +
"+ + "41 --> L2 Wirkleistung +
"+ + "61 --> L3 Wirkleistung +
"+ + "7 --> Momentanwert", + + + "ENERGY_COUNTER_STRING_CH1" : + "Standardeinstellung: 1-0:1.8
"+ + "1 --> Summe Wirkleistung +
"+ + "8 --> Zählerstand", + + "POWER_STRING_CH2" : + "Standardeinstellung: 1-0:2.7
"+ + "2 --> Summe Wirkleistung -
"+ + "7 --> Momentanwert

"+ + + "Hinweis: Wenn von dem Zähler die Wirkleistungen der einzelnen Phasen nicht zusammen in einer Kennzahl übertragen werden, "+ + "können hier die Messgrößen von mehreren Phasen zusammengefasst werden.

"+ + + "Beispieleinstellung: 1-0:22|42|62.7
"+ + "22 --> L1 Wirkleistung -
"+ + "42 --> L2 Wirkleistung -
"+ + "62 --> L3 Wirkleistung -
"+ + "7 --> Momentanwert", + + "ENERGY_COUNTER_STRING_CH2" : + "Standardeinstellung: 1-0:2.8
"+ + "2 --> Summe Wirkleistung -
"+ + "8 --> Zählerstand" + + }, + "en" :{ + "HelpTitle" : "Help", + + "SERIAL_FORMAT" : + "Default setting according to standard:
"+ + "1 start bit, 7 data bits, 1 parity bit (even parity), 1 stop bit

"+ + + "Further setting options are:
"+ + "1 start bit, 7 data bits, 1 parity bit (even parity), 2 stop bits
"+ + "1 start bit, 8 data bits, 0 parity bit (no parity), 1 stop bit
"+ + "1 start bit, 8 data bits, 1 parity bit (even parity), 1 stop bit", + + "SAMPLES_PER_CYCLE": + "The device cyclically transmits the data every 2-3 minutes. If the transmission interval is too slow because e.g. a central control unit program is supposed to "+ + "react faster, you can configure additional data requests per transmission interval relating to threshold values for deviation of power of both channels that "+ + "trigger additional transmissions.", + + "POWER_STRING_CH1" : + "Default setting: 1-0:1.7
" + + "1 --> sum of effective power +
" + + "7 --> current value
" + + + "Please note: If the meter does not transfer the effective power of the single phases in one key figure, "+ + "the measured values of several phases can be summarised here.

"+ + + "Example setting: 1-0:21|41|61.7
"+ + "21 --> L1 effective power +
"+ + "41 --> L2 effective power +
"+ + "61 --> L3 effective power +
"+ + "7 --> current value
", + + "ENERGY_COUNTER_STRING_CH1" : + "Default setting: 1-0:1.8
"+ + "1 --> sum of effective power +
"+ + "8 --> meter reading
", + + "POWER_STRING_CH2" : + + "Default setting: 1-0:2.7
"+ + "2 --> sum of effective power -
"+ + "7 --> current value

"+ + + "Please note: If the meter does not transfer the effective power of the single phases in one key figure, "+ + "the measured values of several phases can be summarised here."+ + + "Example setting: 1-0:22|43|62.7
"+ + "22 --> L1 effective power -
"+ + "42 --> L2 effective power -
"+ + "62 --> L3 effective power -
"+ + "7 --> current value
", + + "ENERGY_COUNTER_STRING_CH2" : + "Default setting: 1-0:2.8
"+ + "2 --> sum of effective power -
"+ + "8 --> meter reading
" + + }, + "tr" : { + "HelpTitle" : "Help", + + "SERIAL_FORMAT" : + "Default setting according to standard:
"+ + "1 start bit, 7 data bits, 1 parity bit (even parity), 1 stop bit

"+ + + "Further setting options are:
"+ + "1 start bit, 7 data bits, 1 parity bit (even parity), 2 stop bits
"+ + "1 start bit, 8 data bits, 0 parity bit (no parity), 1 stop bit
"+ + "1 start bit, 8 data bits, 1 parity bit (even parity), 1 stop bit", + + "SAMPLES_PER_CYCLE": + "The device cyclically transmits the data every 2-3 minutes. If the transmission interval is too slow because e.g. a central control unit program is supposed to "+ + "react faster, you can configure additional data requests per transmission interval relating to threshold values for deviation of power of both channels that "+ + "trigger additional transmissions.", + + "POWER_STRING_CH1" : + "Default setting: 1-0:1.7
" + + "1 --> sum of effective power +
" + + "7 --> current value
" + + + "Please note: If the meter does not transfer the effective power of the single phases in one key figure, "+ + "the measured values of several phases can be summarised here.

"+ + + "Example setting: 1-0:21|41|61.7
"+ + "21 --> L1 effective power +
"+ + "41 --> L2 effective power +
"+ + "61 --> L3 effective power +
"+ + "7 --> current value
", + + "ENERGY_COUNTER_STRING_CH1" : + "Default setting: 1-0:1.8
"+ + "1 --> sum of effective power +
"+ + "8 --> meter reading
", + + "POWER_STRING_CH2" : + "Default setting: 1-0:2.7
"+ + "2 --> sum of effective power -
"+ + "7 --> current value

"+ + + "Please note: If the meter does not transfer the effective power of the single phases in one key figure, "+ + "the measured values of several phases can be summarised here."+ + + "Example setting: 1-0:22|43|62.7
"+ + "22 --> L1 effective power -
"+ + "42 --> L2 effective power -
"+ + "62 --> L3 effective power -
"+ + "7 --> current value
", + + "ENERGY_COUNTER_STRING_CH2" : + "Default setting: 1-0:2.8
"+ + "2 --> sum of effective power -
"+ + "8 --> meter reading
" + } + +}); diff --git a/WebUI/www/config/easymodes/MASTER_LANG/HM_SEC_SIR_WM.js b/WebUI/www/config/easymodes/MASTER_LANG/HM_SEC_SIR_WM.js new file mode 100755 index 00000000..96c52c31 --- /dev/null +++ b/WebUI/www/config/easymodes/MASTER_LANG/HM_SEC_SIR_WM.js @@ -0,0 +1,33 @@ +/** + * Created by grobelnik on 05.02.2016. + */ +jQuery.extend(true,langJSON, { + "de" : { + "soundID" : "Alarmsignal", + "pitch" : "Tonh%F6he", + "speed" : "Geschwindigkeit", + "signal" : "Signal", + "speedSlow" : "langsam", + "speedFast" : "schnell", + + "" : "" + }, + "en" : { + "soundID" : "en Alarmsignal", + "pitch" : "en Tonh%F6he", + "speed" : "en Geschwindigkeit", + "signal" : "en Signal", + "speedSlow" : "en langsam", + "speedFast" : "en schnell", + "" : "" + }, + "tr" : { + "soundID" : "tr Alarmsignal", + "pitch" : "tr Tonh%F6he", + "speed" : "tr Geschwindigkeit", + "signal" : "tr Signal", + "speedSlow" : "tr langsam", + "speedFast" : "tr schnell", + "" : "" + } +}); \ No newline at end of file diff --git a/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/VIRTUAL_KEY.tcl b/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/VIRTUAL_KEY.tcl new file mode 100755 index 00000000..fbaeec7f --- /dev/null +++ b/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/VIRTUAL_KEY.tcl @@ -0,0 +1,124 @@ +#!/bin/tclsh + +source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options.tcl] + + +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${mode}" + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + +# hier folgen die verschiedenen Profile +set PROFILE_1(SHORT_CONTROL_RC) {1 range 0 - 6} +set PROFILE_1(SHORT_TEMPERATUR_RC) {17.00 range 5.00 - 30.00} +set PROFILE_1(LONG_CONTROL_RC) {0 range 0 - 6} +set PROFILE_1(LONG_TEMPERATUR_RC) {17.00 range 5.00 - 30.00} +set PROFILE_1(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_1(UI_TEMPLATE) "Expertenprofil" +set PROFILE_1(UI_HINT) 1 + +# hier folgen die eventuellen Subsets + +proc isLinkActive {manuMode partyMode} { + set active 1 + + if {$manuMode != 1 || $partyMode != 1} { + set active 0 + } + return $active +} + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global url dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + #global SUBSETS + set name "x" + set i 1 + while {$name != ""} { + upvar SUBSET_$i SUBSET_$i + array set subset [array get SUBSET_$i] + set name "" + catch {set name $subset(NAME)} + array_clear subset + incr i + } + + array set dev_descr [xmlrpc $url getParamset [list string $dev_descr_receiver(PARENT)] MASTER] + set MANU_MODE_PRIO [lindex [array get dev_descr MANU_MODE_PRIORITIZATION] 1] + set PARTY_MODE_PRIO [lindex [array get dev_descr PARTY_MODE_PRIORITIZATION] 1] + set linkIsActive [isLinkActive $MANU_MODE_PRIO $PARTY_MODE_PRIO] + + + puts "" + +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" + +# hier folgt die Profildarstellung + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" + + # Depending of the current mode the setpoint input field is visible or not. + append HTML_PARAMS(separate_$prn) "" + +} + +constructor diff --git a/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/localization/de/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/localization/de/VIRTUAL_KEY.txt new file mode 100755 index 00000000..1e28c756 --- /dev/null +++ b/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/localization/de/VIRTUAL_KEY.txt @@ -0,0 +1 @@ +"description_1" : "Mit einem kurzen oder langen Tastendruck wird der Heizungsregler in die gewählte Betriebsart geschaltet.

", diff --git a/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/localization/en/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/localization/en/VIRTUAL_KEY.txt new file mode 100755 index 00000000..267b18e1 --- /dev/null +++ b/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/localization/en/VIRTUAL_KEY.txt @@ -0,0 +1 @@ +"description_1" : "With a short or long button press the heating thermostat will be switched to the selected operation mode

", diff --git a/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/localization/tr/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/localization/tr/VIRTUAL_KEY.txt new file mode 100755 index 00000000..4b5e468c --- /dev/null +++ b/WebUI/www/config/easymodes/REMOTECONTROL_RECEIVER/localization/tr/VIRTUAL_KEY.txt @@ -0,0 +1 @@ +"description_1" : "Tusa kisa veya uzun süre basildiginda kalorifer regülatörü istenen isletim moduna alinir.

", diff --git a/WebUI/www/config/easymodes/RGBW_AUTOMATIC/VIRTUAL_KEY.tcl b/WebUI/www/config/easymodes/RGBW_AUTOMATIC/VIRTUAL_KEY.tcl new file mode 100755 index 00000000..4ba1f700 --- /dev/null +++ b/WebUI/www/config/easymodes/RGBW_AUTOMATIC/VIRTUAL_KEY.tcl @@ -0,0 +1,235 @@ +#!/bin/tclsh + +source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options.tcl] + +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${dec_Program}" +set PROFILES_MAP(2) "\${inc_Program}" +set PROFILES_MAP(3) "\${set_Program}" + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + +set PROFILE_1(SHORT_ACT_COLOR_PROGRAM) 0 +set PROFILE_1(SHORT_ACT_MIN_BOARDER) {0 range 0 - 255} +set PROFILE_1(SHORT_ACT_MAX_BOARDER) {0 range 0 - 255} +set PROFILE_1(LONG_ACT_COLOR_PROGRAM) 254 +set PROFILE_1(LONG_ACT_MIN_BOARDER) {0 range 0 - 255} +set PROFILE_1(LONG_ACT_MAX_BOARDER) {0 range 0 - 255} +set PROFILE_1(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird ....." +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 + +set PROFILE_2(SHORT_ACT_COLOR_PROGRAM) 2 +set PROFILE_2(SHORT_ACT_MIN_BOARDER) {0 range 0 - 255} +set PROFILE_2(SHORT_ACT_MAX_BOARDER) {0 range 0 - 255} +set PROFILE_2(LONG_ACT_COLOR_PROGRAM) 253 +set PROFILE_2(LONG_ACT_MIN_BOARDER) {0 range 0 - 255} +set PROFILE_2(LONG_ACT_MAX_BOARDER) {0 range 0 - 255} +set PROFILE_2(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird ....." +set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) +set PROFILE_2(UI_HINT) 2 + +set PROFILE_3(SHORT_ACT_COLOR_PROGRAM) {0 range 0 - 6} +set PROFILE_3(SHORT_ACT_MIN_BOARDER) {0 range 0 - 255} +set PROFILE_3(SHORT_ACT_MAX_BOARDER) {0 range 0 - 255} +set PROFILE_3(LONG_ACT_COLOR_PROGRAM) {0 range 0 - 6} +set PROFILE_3(LONG_ACT_MIN_BOARDER) {0 range 0 - 255} +set PROFILE_3(LONG_ACT_MAX_BOARDER) {0 range 0 - 255} +set PROFILE_3(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird ....." +set PROFILE_3(UI_TEMPLATE) $PROFILE_3(UI_DESCRIPTION) +set PROFILE_3(UI_HINT) 3 + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global env receiver_address dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + #global SUBSETS + set name "x" + set i 1 + while {$name != ""} { + upvar SUBSET_$i SUBSET_$i + array set subset [array get SUBSET_$i] + set name "" + catch {set name $subset(NAME)} + array_clear subset + incr i + } + +# die Texte der Platzhalter einlesen + puts "" + puts "" + + set prn 0 + append HTML_PARAMS(separate_$prn) "
" +#1 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + + append HTML_PARAMS(separate_$prn) "
" + +#2 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + + append HTML_PARAMS(separate_$prn) "
" + +#3 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + + append HTML_PARAMS(separate_$prn) "
" +} + +constructor + diff --git a/WebUI/www/config/easymodes/RGBW_AUTOMATIC/localization/de/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/RGBW_AUTOMATIC/localization/de/VIRTUAL_KEY.txt new file mode 100755 index 00000000..0c242557 --- /dev/null +++ b/WebUI/www/config/easymodes/RGBW_AUTOMATIC/localization/de/VIRTUAL_KEY.txt @@ -0,0 +1,3 @@ +"description_1" : "Mit einem langen Tastendruck können Sie die Nummer des Farbwechselprogramms verringern. Ein kurzer Tastendruck schaltet die Programmfunktion aus.

", +"description_2" : "Mit einem langen Tastendruck können Sie die Nummer des Farbwechselprogramms erhöhen. Ein kurzer Tastendruck wählt das Program 'Normaler Durchlauf'

", +"description_3" : "Hier können Sie ein Programm festlegen, welches bei kurzen und langem Tastendruck aktiviert wird.

", diff --git a/WebUI/www/config/easymodes/RGBW_AUTOMATIC/localization/en/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/RGBW_AUTOMATIC/localization/en/VIRTUAL_KEY.txt new file mode 100755 index 00000000..db692977 --- /dev/null +++ b/WebUI/www/config/easymodes/RGBW_AUTOMATIC/localization/en/VIRTUAL_KEY.txt @@ -0,0 +1,3 @@ +"description_1" : "A long button press will decrease the number of the colour program. A brief button press will stop the program.

", +"description_2" : "A long button press will increase the number of the colour program. A brief button press will select the program 'Normal cycle'

", +"description_3" : "You can set the program for the brief and long button press here.

", diff --git a/WebUI/www/config/easymodes/RGBW_AUTOMATIC/localization/tr/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/RGBW_AUTOMATIC/localization/tr/VIRTUAL_KEY.txt new file mode 100755 index 00000000..5b4d5123 --- /dev/null +++ b/WebUI/www/config/easymodes/RGBW_AUTOMATIC/localization/tr/VIRTUAL_KEY.txt @@ -0,0 +1,3 @@ +"description_1" : "Tusa uzun bir basisla renk degisim programi numarasini azaltabilirsiniz. Kisa bir basis program fonksiyonunu kapatir.

", +"description_2" : "Tusa uzun bir basisla renk degisim programinin numarasini artirabilirsiniz. Kisa bir basis "Normal Akis" programini secer.

", +"description_3" : "Burada kisa ve uzun tus basiminda aktif hale gelen bir program belirleyebilirsiniz.

", diff --git a/WebUI/www/config/easymodes/RGBW_COLOR/VIRTUAL_KEY.tcl b/WebUI/www/config/easymodes/RGBW_COLOR/VIRTUAL_KEY.tcl new file mode 100755 index 00000000..e73e6d00 --- /dev/null +++ b/WebUI/www/config/easymodes/RGBW_COLOR/VIRTUAL_KEY.tcl @@ -0,0 +1,110 @@ +#!/bin/tclsh + +source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options.tcl] + +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${choose_Mode}" +set PROFILES_MAP(2) "\${jumpToColor}" + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + +set PROFILE_1(SHORT_ACT_HSV_COLOR_VALUE) {253 254 255} +set PROFILE_1(LONG_ACT_HSV_COLOR_VALUE) {253 254 255} +set PROFILE_1(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird ....." +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 + +set PROFILE_2(SHORT_ACT_HSV_COLOR_VALUE) {0 range 0 - 200} +set PROFILE_2(LONG_ACT_HSV_COLOR_VALUE) {0 range 0 - 200} +set PROFILE_2(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird ....." +set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) +set PROFILE_2(UI_HINT) 2 + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global env receiver_address dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + #global SUBSETS + set name "x" + set i 1 + while {$name != ""} { + upvar SUBSET_$i SUBSET_$i + array set subset [array get SUBSET_$i] + set name "" + catch {set name $subset(NAME)} + array_clear subset + incr i + } + + puts "" + puts "" + + set prn 0 + append HTML_PARAMS(separate_$prn) "
" +#1 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + + append HTML_PARAMS(separate_$prn) "
" + +#2 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + + append HTML_PARAMS(separate_$prn) "
" + +} + +constructor diff --git a/WebUI/www/config/easymodes/RGBW_COLOR/localization/de/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/RGBW_COLOR/localization/de/VIRTUAL_KEY.txt new file mode 100755 index 00000000..74aafe07 --- /dev/null +++ b/WebUI/www/config/easymodes/RGBW_COLOR/localization/de/VIRTUAL_KEY.txt @@ -0,0 +1,3 @@ +"description_1" : "Hier können Sie den Modus der Taste einstellen. Es gibt folgende Möglichkeiten: Farbwert erhöhen, Farbwert verringern und Farbwert abwechselnd erhöhen oder verringern, abhängig vom Tastendruckzähler.

", +"description_2" : "Hier können Sie eine Taste mit einer Farbe für den kurzen und langen Tastendruck belegen

", + diff --git a/WebUI/www/config/easymodes/RGBW_COLOR/localization/en/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/RGBW_COLOR/localization/en/VIRTUAL_KEY.txt new file mode 100755 index 00000000..3486cb60 --- /dev/null +++ b/WebUI/www/config/easymodes/RGBW_COLOR/localization/en/VIRTUAL_KEY.txt @@ -0,0 +1,2 @@ +"description_1" : "You can define the mode of the button here. There are the following options: increase the color value, decrease the color value and - depending on the button press counter - alternate between increasing and decreasing of the color value.

", +"description_2" : "You can set the button for activating a particular color value here. You can set a color value for the short and for the long button press separately.

", diff --git a/WebUI/www/config/easymodes/RGBW_COLOR/localization/tr/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/RGBW_COLOR/localization/tr/VIRTUAL_KEY.txt new file mode 100755 index 00000000..8d3d2614 --- /dev/null +++ b/WebUI/www/config/easymodes/RGBW_COLOR/localization/tr/VIRTUAL_KEY.txt @@ -0,0 +1,2 @@ +"description_1" : "Burada tusun modunu ayarlayabilirsiniz. Asagidaki secenekler mevcut: Renk degerini y%FCkselt, renk degerini azalt ve renk degerini degisimli olarak y%FCkselt veya azalt, tus basimi sayacina bagli.

", +"description_2" : "Burada kisa ve uzun tus basimi icin bir tusu bir renkle atayabilirsiniz.

", diff --git a/WebUI/www/config/easymodes/STATUS_INDICATOR/SMOKE_DETECTOR_TEAM_V2.tcl b/WebUI/www/config/easymodes/STATUS_INDICATOR/SMOKE_DETECTOR_TEAM_V2.tcl index 5f254e38..3d6bc65b 100755 --- a/WebUI/www/config/easymodes/STATUS_INDICATOR/SMOKE_DETECTOR_TEAM_V2.tcl +++ b/WebUI/www/config/easymodes/STATUS_INDICATOR/SMOKE_DETECTOR_TEAM_V2.tcl @@ -37,13 +37,13 @@ set PROFILE_1(UI_HINT) 1 #set SUBSET_1(NAME) "nur auslösender Rauchmelder" set SUBSET_1(NAME) "\${subset_1}" set SUBSET_1(SUBSET_OPTION_VALUE) 1 -set SUBSET_1(SHORT_COND_VALUE_LO) 1 +set SUBSET_1(SHORT_COND_VALUE_LO) 2 set SUBSET_1(SHORT_COND_VALUE_HI) 180 set SUBSET_1(SHORT_CT_ON) 2 set SUBSET_2(NAME) "\${subset_2}" set SUBSET_2(SUBSET_OPTION_VALUE) 2 -set SUBSET_2(SHORT_COND_VALUE_LO) 2 +set SUBSET_2(SHORT_COND_VALUE_LO) 4 set SUBSET_2(SHORT_COND_VALUE_HI) 180 set SUBSET_2(SHORT_CT_ON) 4 diff --git a/WebUI/www/config/easymodes/STATUS_INDICATOR/WEATHER.tcl b/WebUI/www/config/easymodes/STATUS_INDICATOR/WEATHER.tcl index 31d1a166..13d06e86 100755 --- a/WebUI/www/config/easymodes/STATUS_INDICATOR/WEATHER.tcl +++ b/WebUI/www/config/easymodes/STATUS_INDICATOR/WEATHER.tcl @@ -4,173 +4,215 @@ source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options.tcl] -set PROFILES_MAP(0) "\${expert}" -set PROFILES_MAP(1) "\${switch_on_off}" -set PROFILES_MAP(2) "\${switch_on}" - -set PROFILE_0(UI_HINT) 0 -set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" -set PROFILE_0(UI_TEMPLATE) "Expertenprofil" - - -set PROFILE_1(SHORT_CT_OFFDELAY) 0 -set PROFILE_1(SHORT_CT_ONDELAY) 2 -set PROFILE_1(SHORT_CT_OFF) 0 -set PROFILE_1(SHORT_CT_ON) 2 -set PROFILE_1(SHORT_COND_VALUE_LO) 200 -set PROFILE_1(SHORT_COND_VALUE_HI) {100 0} -set PROFILE_1(SHORT_ONDELAY_TIME) 0 -set PROFILE_1(SHORT_ON_TIME) 111600 -set PROFILE_1(SHORT_OFFDELAY_TIME) 0 -set PROFILE_1(SHORT_OFF_TIME) 111600 -set PROFILE_1(SHORT_ON_TIME_MODE) 0 -set PROFILE_1(SHORT_OFF_TIME_MODE) 0 -set PROFILE_1(SHORT_ACTION_TYPE) 1 -set PROFILE_1(SHORT_JT_OFF) 1 -set PROFILE_1(SHORT_JT_ON) 3 -set PROFILE_1(SHORT_JT_OFFDELAY) 2 -set PROFILE_1(SHORT_JT_ONDELAY) 4 -set PROFILE_1(UI_DESCRIPTION) "Bei starkem Wind wird die Anzeige ein- und bei schwachem Wind ausgeschaltet. Die Schaltzuordnung lässt sich auch umkehren." -set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) -set PROFILE_1(UI_HINT) 1 - -set PROFILE_2(SHORT_CT_OFFDELAY) 0 -set PROFILE_2(SHORT_CT_ONDELAY) 0 -set PROFILE_2(SHORT_CT_OFF) 0 -set PROFILE_2(SHORT_CT_ON) 0 -set PROFILE_2(SHORT_COND_VALUE_LO) 200 -set PROFILE_2(SHORT_COND_VALUE_HI) {100 0} -set PROFILE_2(SHORT_ONDELAY_TIME) 0 -set PROFILE_2(SHORT_ON_TIME) 111600 -set PROFILE_2(SHORT_OFFDELAY_TIME) 0 -set PROFILE_2(SHORT_OFF_TIME) 111600 -set PROFILE_2(SHORT_ON_TIME_MODE) 0 -set PROFILE_2(SHORT_OFF_TIME_MODE) 0 -set PROFILE_2(SHORT_ACTION_TYPE) 1 -set PROFILE_2(SHORT_JT_OFF) 1 -set PROFILE_2(SHORT_JT_ON) 2 -set PROFILE_2(SHORT_JT_OFFDELAY) 2 -set PROFILE_2(SHORT_JT_ONDELAY) 2 -set PROFILE_2(UI_DESCRIPTION) "Wenn die eingestellte Windgeschwindigkeit erreicht wird, schaltet die Anzeige für die eingestellte Zeit ein." -set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) -set PROFILE_2(UI_HINT) 2 - -#set SUBSET_1(NAME) "Wind stark - Aus / Wind schwach - Ein" -set SUBSET_1(NAME) "\${subset_1}" -set SUBSET_1(SUBSET_OPTION_VALUE) 1 -set SUBSET_1(SHORT_CT_OFF) 2 -set SUBSET_1(SHORT_CT_OFFDELAY) 2 -set SUBSET_1(SHORT_CT_ON) 0 -set SUBSET_1(SHORT_CT_ONDELAY) 0 - -#set SUBSET_2(NAME) "Wind stark - Ein / Wind schwach - Aus" -set SUBSET_2(SUBSET_OPTION_VALUE) 2 -set SUBSET_2(NAME) "\${subset_2}" -set SUBSET_2(SHORT_CT_OFF) 0 -set SUBSET_2(SHORT_CT_OFFDELAY) 0 -set SUBSET_2(SHORT_CT_ON) 2 -set SUBSET_2(SHORT_CT_ONDELAY) 2 +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${switch_on_off}" +set PROFILES_MAP(2) "\${switch_on}" + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + + +set PROFILE_1(SHORT_CT_OFFDELAY) 0 +set PROFILE_1(SHORT_CT_ONDELAY) 2 +set PROFILE_1(SHORT_CT_OFF) 0 +set PROFILE_1(SHORT_CT_ON) 2 +set PROFILE_1(SHORT_COND_VALUE_LO) 200 +set PROFILE_1(SHORT_COND_VALUE_HI) {100 0} +set PROFILE_1(SHORT_ONDELAY_TIME) 0 +set PROFILE_1(SHORT_ON_TIME) 111600 +set PROFILE_1(SHORT_OFFDELAY_TIME) 0 +set PROFILE_1(SHORT_OFF_TIME) 111600 +set PROFILE_1(SHORT_ON_TIME_MODE) 0 +set PROFILE_1(SHORT_OFF_TIME_MODE) 0 +set PROFILE_1(SHORT_ACTION_TYPE) 1 +set PROFILE_1(SHORT_JT_OFF) 1 +set PROFILE_1(SHORT_JT_ON) 3 +set PROFILE_1(SHORT_JT_OFFDELAY) 2 +set PROFILE_1(SHORT_JT_ONDELAY) 4 +set PROFILE_1(UI_DESCRIPTION) "Bei starkem Wind wird die Anzeige ein- und bei schwachem Wind ausgeschaltet. Die Schaltzuordnung lässt sich auch umkehren." +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 + +set PROFILE_2(SHORT_CT_OFFDELAY) 0 +set PROFILE_2(SHORT_CT_ONDELAY) 0 +set PROFILE_2(SHORT_CT_OFF) 0 +set PROFILE_2(SHORT_CT_ON) 0 +set PROFILE_2(SHORT_COND_VALUE_LO) 200 +set PROFILE_2(SHORT_COND_VALUE_HI) {100 0} +set PROFILE_2(SHORT_ONDELAY_TIME) 0 +set PROFILE_2(SHORT_ON_TIME) 111600 +set PROFILE_2(SHORT_OFFDELAY_TIME) 0 +set PROFILE_2(SHORT_OFF_TIME) 111600 +set PROFILE_2(SHORT_ON_TIME_MODE) 0 +set PROFILE_2(SHORT_OFF_TIME_MODE) 0 +set PROFILE_2(SHORT_ACTION_TYPE) 1 +set PROFILE_2(SHORT_JT_OFF) 1 +set PROFILE_2(SHORT_JT_ON) 2 +set PROFILE_2(SHORT_JT_OFFDELAY) 2 +set PROFILE_2(SHORT_JT_ONDELAY) 2 +set PROFILE_2(UI_DESCRIPTION) "Wenn die eingestellte Windgeschwindigkeit erreicht wird, schaltet die Anzeige für die eingestellte Zeit ein." +set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) +set PROFILE_2(UI_HINT) 2 + +#set SUBSET_1(NAME) "Wind stark - Aus / Wind schwach - Ein" +set SUBSET_1(NAME) "\${subset_1}" +set SUBSET_1(SUBSET_OPTION_VALUE) 1 +set SUBSET_1(SHORT_CT_OFF) 2 +set SUBSET_1(SHORT_CT_OFFDELAY) 2 +set SUBSET_1(SHORT_CT_ON) 0 +set SUBSET_1(SHORT_CT_ONDELAY) 0 + +#set SUBSET_2(NAME) "Wind stark - Ein / Wind schwach - Aus" +set SUBSET_2(SUBSET_OPTION_VALUE) 2 +set SUBSET_2(NAME) "\${subset_2}" +set SUBSET_2(SHORT_CT_OFF) 0 +set SUBSET_2(SHORT_CT_OFFDELAY) 0 +set SUBSET_2(SHORT_CT_ON) 2 +set SUBSET_2(SHORT_CT_ONDELAY) 2 + +# This is for the new HM-WDS100-C6-O-2 +set SUBSET_3(NAME) "\${subset_1}" +set SUBSET_3(SUBSET_OPTION_VALUE) 3 +set SUBSET_3(SHORT_CT_OFF) 3 +set SUBSET_3(SHORT_CT_OFFDELAY) 3 +set SUBSET_3(SHORT_CT_ON) 1 +set SUBSET_3(SHORT_CT_ONDELAY) 1 + +# This is for the new HM-WDS100-C6-O-2 +set SUBSET_4(SUBSET_OPTION_VALUE) 4 +set SUBSET_4(NAME) "\${subset_2}" +set SUBSET_4(SHORT_CT_OFF) 1 +set SUBSET_4(SHORT_CT_OFFDELAY) 1 +set SUBSET_4(SHORT_CT_ON) 3 +set SUBSET_4(SHORT_CT_ONDELAY) 3 + +# This is for the new HM-WDS100-C6-O-2 +# This device is using other conditions than the old device +set SUBSET_5(SUBSET_OPTION_VALUE) 5 +set SUBSET_5(NAME) "hidden element" +set SUBSET_5(SHORT_CT_OFF) 1 +set SUBSET_5(SHORT_CT_OFFDELAY) 1 +set SUBSET_5(SHORT_CT_ON) 1 +set SUBSET_5(SHORT_CT_ONDELAY) 1 proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { - global dev_descr_sender dev_descr_receiver - upvar PROFILES_MAP PROFILES_MAP - upvar HTML_PARAMS HTML_PARAMS - upvar PROFILE_PNAME PROFILE_PNAME - upvar $pps ps - upvar $pps_descr ps_descr - - foreach pro [array names PROFILES_MAP] { - upvar PROFILE_$pro PROFILE_$pro - } - - set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] - - #global SUBSETS - set name "x" - set i 1 - while {$name != ""} { - upvar SUBSET_$i SUBSET_$i - array set subset [array get SUBSET_$i] - set name "" - catch {set name $subset(NAME)} - array_clear subset - incr i - } - -# die Texte der Platzhalter einlesen - puts "" - set prn 0 - append HTML_PARAMS(separate_$prn) "
" + global dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + #global SUBSETS + set name "x" + set i 1 + while {$name != ""} { + upvar SUBSET_$i SUBSET_$i + array set subset [array get SUBSET_$i] + set name "" + catch {set name $subset(NAME)} + array_clear subset + incr i + } + +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" #1 - incr prn - if {$cur_profile == $prn} then { - # ermittelt die Schaltrichtung und setzt entsprechend die Beschriftung im Sender - append HTML_PARAMS(separate_$prn) "" - array set PROFILE_$prn [array get ps] - } - append HTML_PARAMS(separate_$prn) "
" -#2 - incr prn - set pref 1 - if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} - append HTML_PARAMS(separate_$prn) "
" + incr prn + if {$cur_profile == $prn} then { + # ermittelt die Schaltrichtung und setzt entsprechend die Beschriftung im Sender + append HTML_PARAMS(separate_$prn) "" + array set PROFILE_$prn [array get ps] + } + append HTML_PARAMS(separate_$prn) "
" +#2 + incr prn + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" } constructor diff --git a/WebUI/www/config/easymodes/SWITCH/SHUTTER_CONTACT.tcl b/WebUI/www/config/easymodes/SWITCH/SHUTTER_CONTACT.tcl index c7fc54f7..9030c206 100755 --- a/WebUI/www/config/easymodes/SWITCH/SHUTTER_CONTACT.tcl +++ b/WebUI/www/config/easymodes/SWITCH/SHUTTER_CONTACT.tcl @@ -9,211 +9,211 @@ set PROFILES_MAP(0) "\${expert}" set PROFILES_MAP(1) "\${switch_on_off}" set PROFILES_MAP(2) "\${change_signal}" -set PROFILE_0(UI_HINT) 0 -set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" -set PROFILE_0(UI_TEMPLATE) "Expertenprofil" - -set PROFILE_1(SHORT_CT_OFFDELAY) 0 -set PROFILE_1(SHORT_CT_ONDELAY) 2 -set PROFILE_1(SHORT_CT_OFF) 0 -set PROFILE_1(SHORT_CT_ON) 2 -set PROFILE_1(SHORT_COND_VALUE_LO) 50 -set PROFILE_1(SHORT_COND_VALUE_HI) 180 -set PROFILE_1(SHORT_ONDELAY_TIME) 0 -set PROFILE_1(SHORT_ON_TIME) {111600 range 0.0 - 111600.0} -set PROFILE_1(SHORT_OFFDELAY_TIME) 0 -set PROFILE_1(SHORT_OFF_TIME) 111600 -set PROFILE_1(SHORT_ON_TIME_MODE) 0 -set PROFILE_1(SHORT_OFF_TIME_MODE) 0 -set PROFILE_1(SHORT_ACTION_TYPE) 1 -set PROFILE_1(SHORT_JT_OFF) 1 -set PROFILE_1(SHORT_JT_ON) {3 4} -set PROFILE_1(SHORT_JT_OFFDELAY) 2 -set PROFILE_1(SHORT_JT_ONDELAY) {3 4} -set PROFILE_1(LONG_ACTION_TYPE) 0 -set PROFILE_1(UI_DESCRIPTION) "Beim Öffnen des Schaltkontaktes wird der Schalter ein- und beim Schließen ausgeschaltet. Die Schaltzuordnung lässt sich auch umkehren." -set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) -set PROFILE_1(UI_HINT) 1 - -set PROFILE_2(LONG_ACTION_TYPE) 0 -set PROFILE_2(SHORT_ACTION_TYPE) 1 -set PROFILE_2(SHORT_COND_VALUE_HI) 180 -set PROFILE_2(SHORT_COND_VALUE_LO) 50 -set PROFILE_2(SHORT_CT_OFF) 0 -set PROFILE_2(SHORT_CT_OFFDELAY) 0 -set PROFILE_2(SHORT_CT_ON) 2 -set PROFILE_2(SHORT_CT_ONDELAY) 2 -set PROFILE_2(SHORT_JT_OFF) 1 -set PROFILE_2(SHORT_JT_OFFDELAY) 2 -set PROFILE_2(SHORT_JT_ON) 2 -set PROFILE_2(SHORT_JT_ONDELAY) 0 -set PROFILE_2(SHORT_OFFDELAY_TIME) 0 -set PROFILE_2(SHORT_OFF_TIME) 111600 -set PROFILE_2(SHORT_OFF_TIME_MODE) 0 -set PROFILE_2(SHORT_ONDELAY_TIME) 0 -set PROFILE_2(SHORT_ON_TIME) 111600 -set PROFILE_2(SHORT_ON_TIME_MODE) 0 -set PROFILE_2(UI_DESCRIPTION) "Bei Erkennung des Änderungssignals wird der Schalter für eine bestimmte Zeit eingeschaltet." -set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) -set PROFILE_2(UI_HINT) 2 - - -#set SUBSET_1(NAME) "Offen-Ein/Zu-Aus" -set SUBSET_1(NAME) "\${subset_1}" -set SUBSET_1(SUBSET_OPTION_VALUE) 1 -set SUBSET_1(SHORT_CT_OFF) 0 -set SUBSET_1(SHORT_CT_OFFDELAY) 0 -set SUBSET_1(SHORT_CT_ON) 2 -set SUBSET_1(SHORT_CT_ONDELAY) 2 - -#set SUBSET_2(NAME) "Offen-Aus/Zu-Ein" -set SUBSET_2(NAME) "\${subset_2}" -set SUBSET_2(SUBSET_OPTION_VALUE) 2 -set SUBSET_2(SHORT_CT_OFF) 2 -set SUBSET_2(SHORT_CT_OFFDELAY) 2 -set SUBSET_2(SHORT_CT_ON) 0 -set SUBSET_2(SHORT_CT_ONDELAY) 0 - -#set SUBSET_3(NAME) "Oeffnen" -set SUBSET_3(NAME) "\${subset_3}" -set SUBSET_3(SUBSET_OPTION_VALUE) 3 -set SUBSET_3(SHORT_CT_OFF) 0 -set SUBSET_3(SHORT_CT_OFFDELAY) 0 -set SUBSET_3(SHORT_CT_ON) 0 -set SUBSET_3(SHORT_CT_ONDELAY) 0 - -#set SUBSET_4(NAME) "Schliessen" -set SUBSET_4(NAME) "\${subset_4}" -set SUBSET_4(SUBSET_OPTION_VALUE) 4 -set SUBSET_4(SHORT_CT_OFF) 2 -set SUBSET_4(SHORT_CT_OFFDELAY) 2 -set SUBSET_4(SHORT_CT_ON) 2 -set SUBSET_4(SHORT_CT_ONDELAY) 2 - - -#set SUBSET_5(NAME) "Aendern" -set SUBSET_5(NAME) "\${subset_5}" -set SUBSET_5(SUBSET_OPTION_VALUE) 5 -set SUBSET_5(SHORT_CT_OFF) 5 -set SUBSET_5(SHORT_CT_OFFDELAY) 5 -set SUBSET_5(SHORT_CT_ON) 5 -set SUBSET_5(SHORT_CT_ONDELAY) 5 +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + +set PROFILE_1(SHORT_CT_OFFDELAY) 0 +set PROFILE_1(SHORT_CT_ONDELAY) 2 +set PROFILE_1(SHORT_CT_OFF) 0 +set PROFILE_1(SHORT_CT_ON) 2 +set PROFILE_1(SHORT_COND_VALUE_LO) 50 +set PROFILE_1(SHORT_COND_VALUE_HI) 180 +set PROFILE_1(SHORT_ONDELAY_TIME) 0 +set PROFILE_1(SHORT_ON_TIME) {111600 range 0.0 - 111600.0} +set PROFILE_1(SHORT_OFFDELAY_TIME) 0 +set PROFILE_1(SHORT_OFF_TIME) 111600 +set PROFILE_1(SHORT_ON_TIME_MODE) 0 +set PROFILE_1(SHORT_OFF_TIME_MODE) 0 +set PROFILE_1(SHORT_ACTION_TYPE) 1 +set PROFILE_1(SHORT_JT_OFF) 1 +set PROFILE_1(SHORT_JT_ON) {3 4} +set PROFILE_1(SHORT_JT_OFFDELAY) 2 +set PROFILE_1(SHORT_JT_ONDELAY) {3 4} +set PROFILE_1(LONG_ACTION_TYPE) 0 +set PROFILE_1(UI_DESCRIPTION) "Beim Öffnen des Schaltkontaktes wird der Schalter ein- und beim Schließen ausgeschaltet. Die Schaltzuordnung lässt sich auch umkehren." +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 + +set PROFILE_2(LONG_ACTION_TYPE) 0 +set PROFILE_2(SHORT_ACTION_TYPE) 1 +set PROFILE_2(SHORT_COND_VALUE_HI) 180 +set PROFILE_2(SHORT_COND_VALUE_LO) 50 +set PROFILE_2(SHORT_CT_OFF) 0 +set PROFILE_2(SHORT_CT_OFFDELAY) 0 +set PROFILE_2(SHORT_CT_ON) 2 +set PROFILE_2(SHORT_CT_ONDELAY) 2 +set PROFILE_2(SHORT_JT_OFF) 1 +set PROFILE_2(SHORT_JT_OFFDELAY) 2 +set PROFILE_2(SHORT_JT_ON) 2 +set PROFILE_2(SHORT_JT_ONDELAY) 0 +set PROFILE_2(SHORT_OFFDELAY_TIME) 0 +set PROFILE_2(SHORT_OFF_TIME) 111600 +set PROFILE_2(SHORT_OFF_TIME_MODE) 0 +set PROFILE_2(SHORT_ONDELAY_TIME) 0 +set PROFILE_2(SHORT_ON_TIME) 111600 +set PROFILE_2(SHORT_ON_TIME_MODE) 0 +set PROFILE_2(UI_DESCRIPTION) "Bei Erkennung des Änderungssignals wird der Schalter für eine bestimmte Zeit eingeschaltet." +set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) +set PROFILE_2(UI_HINT) 2 + + +#set SUBSET_1(NAME) "Offen-Ein/Zu-Aus" +set SUBSET_1(NAME) "\${subset_1}" +set SUBSET_1(SUBSET_OPTION_VALUE) 1 +set SUBSET_1(SHORT_CT_OFF) 0 +set SUBSET_1(SHORT_CT_OFFDELAY) 0 +set SUBSET_1(SHORT_CT_ON) 2 +set SUBSET_1(SHORT_CT_ONDELAY) 2 + +#set SUBSET_2(NAME) "Offen-Aus/Zu-Ein" +set SUBSET_2(NAME) "\${subset_2}" +set SUBSET_2(SUBSET_OPTION_VALUE) 2 +set SUBSET_2(SHORT_CT_OFF) 2 +set SUBSET_2(SHORT_CT_OFFDELAY) 2 +set SUBSET_2(SHORT_CT_ON) 0 +set SUBSET_2(SHORT_CT_ONDELAY) 0 + +#set SUBSET_3(NAME) "Oeffnen" +set SUBSET_3(NAME) "\${subset_3}" +set SUBSET_3(SUBSET_OPTION_VALUE) 3 +set SUBSET_3(SHORT_CT_OFF) 0 +set SUBSET_3(SHORT_CT_OFFDELAY) 0 +set SUBSET_3(SHORT_CT_ON) 0 +set SUBSET_3(SHORT_CT_ONDELAY) 0 + +#set SUBSET_4(NAME) "Schliessen" +set SUBSET_4(NAME) "\${subset_4}" +set SUBSET_4(SUBSET_OPTION_VALUE) 4 +set SUBSET_4(SHORT_CT_OFF) 2 +set SUBSET_4(SHORT_CT_OFFDELAY) 2 +set SUBSET_4(SHORT_CT_ON) 2 +set SUBSET_4(SHORT_CT_ONDELAY) 2 + + +#set SUBSET_5(NAME) "Aendern" +set SUBSET_5(NAME) "\${subset_5}" +set SUBSET_5(SUBSET_OPTION_VALUE) 5 +set SUBSET_5(SHORT_CT_OFF) 5 +set SUBSET_5(SHORT_CT_OFFDELAY) 5 +set SUBSET_5(SHORT_CT_ON) 5 +set SUBSET_5(SHORT_CT_ONDELAY) 5 proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { - - global dev_descr_sender dev_descr_receiver - upvar PROFILES_MAP PROFILES_MAP - upvar HTML_PARAMS HTML_PARAMS - upvar PROFILE_PNAME PROFILE_PNAME - upvar $pps ps - upvar $pps_descr ps_descr - - foreach pro [array names PROFILES_MAP] { - upvar PROFILE_$pro PROFILE_$pro - } - - set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] - - #global SUBSETS - set name "x" - set i 1 - while {$name != ""} { - upvar SUBSET_$i SUBSET_$i - array set subset [array get SUBSET_$i] - set name "" - catch {set name $subset(NAME)} - array_clear subset - incr i - } - -# die Texte der Platzhalter einlesen - puts "" - set prn 0 - append HTML_PARAMS(separate_$prn) "
" + + global dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + #global SUBSETS + set name "x" + set i 1 + while {$name != ""} { + upvar SUBSET_$i SUBSET_$i + array set subset [array get SUBSET_$i] + set name "" + catch {set name $subset(NAME)} + array_clear subset + incr i + } + +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" #1 - incr prn - set pref 1 - if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} - append HTML_PARAMS(separate_$prn) "
" + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" #2 - incr prn - set pref 1 - if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} - append HTML_PARAMS(separate_$prn) "
" + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" } constructor diff --git a/WebUI/www/config/easymodes/SWITCH/SMOKE_DETECTOR_TEAM_V2.tcl b/WebUI/www/config/easymodes/SWITCH/SMOKE_DETECTOR_TEAM_V2.tcl index 44a88712..65811c9b 100755 --- a/WebUI/www/config/easymodes/SWITCH/SMOKE_DETECTOR_TEAM_V2.tcl +++ b/WebUI/www/config/easymodes/SWITCH/SMOKE_DETECTOR_TEAM_V2.tcl @@ -38,13 +38,13 @@ set PROFILE_1(UI_HINT) 1 #set SUBSET_1(NAME) "nur auslösender Rauchmelder" set SUBSET_1(NAME) "\${subset_1}" set SUBSET_1(SUBSET_OPTION_VALUE) 1 -set SUBSET_1(SHORT_COND_VALUE_LO) 1 +set SUBSET_1(SHORT_COND_VALUE_LO) 2 set SUBSET_1(SHORT_COND_VALUE_HI) 180 set SUBSET_1(SHORT_CT_ON) 2 set SUBSET_2(NAME) "\${subset_2}" set SUBSET_2(SUBSET_OPTION_VALUE) 2 -set SUBSET_2(SHORT_COND_VALUE_LO) 2 +set SUBSET_2(SHORT_COND_VALUE_LO) 4 set SUBSET_2(SHORT_COND_VALUE_HI) 180 set SUBSET_2(SHORT_CT_ON) 4 diff --git a/WebUI/www/config/easymodes/SWITCH/WEATHER.tcl b/WebUI/www/config/easymodes/SWITCH/WEATHER.tcl index bc83d2d0..9005f8b9 100755 --- a/WebUI/www/config/easymodes/SWITCH/WEATHER.tcl +++ b/WebUI/www/config/easymodes/SWITCH/WEATHER.tcl @@ -5,173 +5,254 @@ source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options.tcl] source [file join $env(DOCUMENT_ROOT) config/easymodes/SWITCH/mapping/WEATHER_map.tcl] -set PROFILES_MAP(0) "\${expert}" -set PROFILES_MAP(1) "\${switch_on_off}" -set PROFILES_MAP(2) "\${switch_on}" - -set PROFILE_0(UI_HINT) 0 -set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" -set PROFILE_0(UI_TEMPLATE) "Expertenprofil" - - -set PROFILE_1(SHORT_CT_OFFDELAY) 0 -set PROFILE_1(SHORT_CT_ONDELAY) 2 -set PROFILE_1(SHORT_CT_OFF) 0 -set PROFILE_1(SHORT_CT_ON) 2 -set PROFILE_1(SHORT_COND_VALUE_LO) 200 -set PROFILE_1(SHORT_COND_VALUE_HI) {100 0} -set PROFILE_1(SHORT_ONDELAY_TIME) 0 -set PROFILE_1(SHORT_ON_TIME) {111600 range 0.0 - 111600.0} -set PROFILE_1(SHORT_OFFDELAY_TIME) 0 -set PROFILE_1(SHORT_OFF_TIME) 111600 -set PROFILE_1(SHORT_ON_TIME_MODE) 0 -set PROFILE_1(SHORT_OFF_TIME_MODE) 0 -set PROFILE_1(SHORT_ACTION_TYPE) 1 -set PROFILE_1(SHORT_JT_OFF) 1 -set PROFILE_1(SHORT_JT_ON) 3 -set PROFILE_1(SHORT_JT_OFFDELAY) 2 -set PROFILE_1(SHORT_JT_ONDELAY) 4 -set PROFILE_1(UI_DESCRIPTION) "Bei starkem Wind wird der Schalter ein- und bei schwachem Wind ausgeschaltet. Die Schaltzuordnung lässt sich auch umkehren." -set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) -set PROFILE_1(UI_HINT) 1 - -set PROFILE_2(SHORT_CT_OFFDELAY) 0 -set PROFILE_2(SHORT_CT_ONDELAY) 0 -set PROFILE_2(SHORT_CT_OFF) 0 -set PROFILE_2(SHORT_CT_ON) 0 -set PROFILE_2(SHORT_COND_VALUE_LO) 200 -set PROFILE_2(SHORT_COND_VALUE_HI) {100 0} -set PROFILE_2(SHORT_ONDELAY_TIME) 0 -set PROFILE_2(SHORT_ON_TIME) {111600 range 0.0 - 111600.0} -set PROFILE_2(SHORT_OFFDELAY_TIME) 0 -set PROFILE_2(SHORT_OFF_TIME) 111600 -set PROFILE_2(SHORT_ON_TIME_MODE) 0 -set PROFILE_2(SHORT_OFF_TIME_MODE) 0 -set PROFILE_2(SHORT_ACTION_TYPE) 1 -set PROFILE_2(SHORT_JT_OFF) 1 -set PROFILE_2(SHORT_JT_ON) 2 -set PROFILE_2(SHORT_JT_OFFDELAY) 2 -set PROFILE_2(SHORT_JT_ONDELAY) 2 -set PROFILE_2(UI_DESCRIPTION) "Wenn die eingestellte Windgeschwindigkeit erreicht wird, schaltet der Schalter für die eingestellte Zeit ein." -set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) -set PROFILE_2(UI_HINT) 2 - -#set SUBSET_1(NAME) "Wind stark - Aus / Wind schwach - Ein" -set SUBSET_1(NAME) "\${subset_1}" -set SUBSET_1(SUBSET_OPTION_VALUE) 1 -set SUBSET_1(SHORT_CT_OFF) 2 -set SUBSET_1(SHORT_CT_OFFDELAY) 2 -set SUBSET_1(SHORT_CT_ON) 0 -set SUBSET_1(SHORT_CT_ONDELAY) 0 - -#set SUBSET_2(NAME) "Wind stark - Ein / Wind schwach - Aus" -set SUBSET_2(SUBSET_OPTION_VALUE) 2 -set SUBSET_2(NAME) "\${subset_2}" -set SUBSET_2(SHORT_CT_OFF) 0 -set SUBSET_2(SHORT_CT_OFFDELAY) 0 -set SUBSET_2(SHORT_CT_ON) 2 -set SUBSET_2(SHORT_CT_ONDELAY) 2 +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${switch_on_off}" +set PROFILES_MAP(2) "\${switch_on}" + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + +set PROFILE_1(SHORT_CT_OFFDELAY) 0 +set PROFILE_1(SHORT_CT_ONDELAY) 2 +set PROFILE_1(SHORT_CT_OFF) 0 +set PROFILE_1(SHORT_CT_ON) 2 +set PROFILE_1(SHORT_COND_VALUE_LO) 200 +set PROFILE_1(SHORT_COND_VALUE_HI) {100 0} +set PROFILE_1(SHORT_ONDELAY_TIME) 0 +set PROFILE_1(SHORT_ON_TIME) {111600 range 0.0 - 111600.0} +set PROFILE_1(SHORT_OFFDELAY_TIME) 0 +set PROFILE_1(SHORT_OFF_TIME) 111600 +set PROFILE_1(SHORT_ON_TIME_MODE) 0 +set PROFILE_1(SHORT_OFF_TIME_MODE) 0 +set PROFILE_1(SHORT_ACTION_TYPE) 1 +set PROFILE_1(SHORT_JT_OFF) 1 +set PROFILE_1(SHORT_JT_ON) 3 +set PROFILE_1(SHORT_JT_OFFDELAY) 2 +set PROFILE_1(SHORT_JT_ONDELAY) 4 +set PROFILE_1(UI_DESCRIPTION) "Bei starkem Wind wird der Schalter ein- und bei schwachem Wind ausgeschaltet. Die Schaltzuordnung lässt sich auch umkehren." +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 + +set PROFILE_2(SHORT_CT_OFFDELAY) {0 1} +set PROFILE_2(SHORT_CT_ONDELAY) {0 1} +set PROFILE_2(SHORT_CT_OFF) {0 1} +set PROFILE_2(SHORT_CT_ON) {0 1} +set PROFILE_2(SHORT_COND_VALUE_LO) {200 range 0 - 255} +set PROFILE_2(SHORT_COND_VALUE_HI) {100 range 0 - 255} +set PROFILE_2(SHORT_ONDELAY_TIME) 0 +set PROFILE_2(SHORT_ON_TIME) {111600 range 0.0 - 111600.0} +set PROFILE_2(SHORT_OFFDELAY_TIME) 0 +set PROFILE_2(SHORT_OFF_TIME) 111600 +set PROFILE_2(SHORT_ON_TIME_MODE) 0 +set PROFILE_2(SHORT_OFF_TIME_MODE) 0 +set PROFILE_2(SHORT_ACTION_TYPE) 1 +set PROFILE_2(SHORT_JT_OFF) 1 +set PROFILE_2(SHORT_JT_ON) 2 +set PROFILE_2(SHORT_JT_OFFDELAY) 2 +set PROFILE_2(SHORT_JT_ONDELAY) 2 +set PROFILE_2(UI_DESCRIPTION) "Wenn die eingestellte Windgeschwindigkeit erreicht wird, schaltet der Schalter für die eingestellte Zeit ein." +set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) +set PROFILE_2(UI_HINT) 2 + + +#set SUBSET_1(NAME) "Wind stark - Aus / Wind schwach - Ein" +set SUBSET_1(NAME) "\${subset_1}" +set SUBSET_1(SUBSET_OPTION_VALUE) 1 +set SUBSET_1(SHORT_CT_OFF) 2 +set SUBSET_1(SHORT_CT_OFFDELAY) 2 +set SUBSET_1(SHORT_CT_ON) 0 +set SUBSET_1(SHORT_CT_ONDELAY) 0 + +#set SUBSET_2(NAME) "Wind stark - Ein / Wind schwach - Aus" +set SUBSET_2(SUBSET_OPTION_VALUE) 2 +set SUBSET_2(NAME) "\${subset_2}" +set SUBSET_2(SHORT_CT_OFF) 1 +set SUBSET_2(SHORT_CT_OFFDELAY) 1 +set SUBSET_2(SHORT_CT_ON) 3 +set SUBSET_2(SHORT_CT_ONDELAY) 3 + +# This is for the new HM-WDS100-C6-O-2 +#set SUBSET_3(NAME) "Wind stark - Aus / Wind schwach - Ein" +set SUBSET_3(NAME) "\${subset_1}" +set SUBSET_3(SUBSET_OPTION_VALUE) 3 +set SUBSET_3(SHORT_CT_OFF) 2 +set SUBSET_3(SHORT_CT_OFFDELAY) 2 +set SUBSET_3(SHORT_CT_ON) 1 +set SUBSET_3(SHORT_CT_ONDELAY) 1 + +# This is for the new HM-WDS100-C6-O-2 +#set SUBSET_4(NAME) "Wind stark - Ein / Wind schwach - Aus" +set SUBSET_4(SUBSET_OPTION_VALUE) 4 +set SUBSET_4(NAME) "\${subset_2}" +set SUBSET_4(SHORT_CT_OFF) 1 +set SUBSET_4(SHORT_CT_OFFDELAY) 1 +set SUBSET_4(SHORT_CT_ON) 2 +set SUBSET_4(SHORT_CT_ONDELAY) 2 + +# This is for the new HM-WDS100-C6-O-2 +# This device is using other conditions than the old device + +set SUBSET_5(SUBSET_OPTION_VALUE) 5 +set SUBSET_5(NAME) "hidden element" +set SUBSET_5(SHORT_CT_OFF) 1 +set SUBSET_5(SHORT_CT_OFFDELAY) 1 +set SUBSET_5(SHORT_CT_ON) 1 +set SUBSET_5(SHORT_CT_ONDELAY) 1 proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { - global dev_descr_sender dev_descr_receiver - upvar PROFILES_MAP PROFILES_MAP - upvar HTML_PARAMS HTML_PARAMS - upvar PROFILE_PNAME PROFILE_PNAME - upvar $pps ps - upvar $pps_descr ps_descr - - foreach pro [array names PROFILES_MAP] { - upvar PROFILE_$pro PROFILE_$pro - } - - set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] - - #global SUBSETS - set name "x" - set i 1 - while {$name != ""} { - upvar SUBSET_$i SUBSET_$i - array set subset [array get SUBSET_$i] - set name "" - catch {set name $subset(NAME)} - array_clear subset - incr i - } - -# die Texte der Platzhalter einlesen - puts "" - set prn 0 - append HTML_PARAMS(separate_$prn) "
" + global dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + set newSensor "HM-WDS100-C6-O-2" + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + #global SUBSETS + set name "x" + set i 1 + while {$name != ""} { + upvar SUBSET_$i SUBSET_$i + array set subset [array get SUBSET_$i] + set name "" + catch {set name $subset(NAME)} + array_clear subset + incr i + } + +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" #1 - incr prn - if {$cur_profile == $prn} then { - # ermittelt die Schaltrichtung und setzt entsprechend die Beschriftung im Sender - append HTML_PARAMS(separate_$prn) "" - array set PROFILE_$prn [array get ps] - } - append HTML_PARAMS(separate_$prn) "
" -#2 - incr prn - set pref 1 - if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} - append HTML_PARAMS(separate_$prn) "
" + incr prn + if {$cur_profile == $prn} then { + # ermittelt die Schaltrichtung und setzt entsprechend die Beschriftung im Sender + append HTML_PARAMS(separate_$prn) "" + array set PROFILE_$prn [array get ps] + } + append HTML_PARAMS(separate_$prn) "
" +#2 + incr prn + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" + + if {$dev_descr_sender(PARENT_TYPE) == $newSensor} { + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_2) "" + } } constructor diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/KEY.tcl b/WebUI/www/config/easymodes/SWITCH_SENSOR/KEY.tcl new file mode 100755 index 00000000..19bcc966 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/KEY.tcl @@ -0,0 +1,247 @@ +#!/bin/tclsh + +source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options.tcl] + +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${switch_on}" +set PROFILES_MAP(2) "\${switch_off}" +set PROFILES_MAP(3) "\${switch_on_off}" + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + +set PROFILE_1(LONG_ACTION_TYPE_SIRSEN) 1 +set PROFILE_1(LONG_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_1(LONG_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_1(LONG_CT_OFF_SIRSEN) 0 +set PROFILE_1(LONG_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_1(LONG_CT_ON_SIRSEN) 0 +set PROFILE_1(LONG_CT_ONDELAY_SIRSEN) 0 +set PROFILE_1(LONG_JT_OFF_SIRSEN) 1 +set PROFILE_1(LONG_JT_OFFDELAY_SIRSEN) 2 +set PROFILE_1(LONG_JT_ON_SIRSEN) 2 +set PROFILE_1(LONG_JT_ONDELAY_SIRSEN) 2 +set PROFILE_1(LONG_OFF_TIME_SIRSEN) 111600 +set PROFILE_1(LONG_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_1(LONG_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_1(LONG_ON_TIME_SIRSEN) 120 +set PROFILE_1(LONG_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_1(LONG_ON_LEVEL_SIRSEN) 50 +set PROFILE_1(LONG_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_1(LONG_MULTIEXECUTE_SIRSEN) 1 + +set PROFILE_1(SHORT_ACTION_TYPE_SIRSEN) 1 +set PROFILE_1(SHORT_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_1(SHORT_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_1(SHORT_CT_OFF_SIRSEN) 0 +set PROFILE_1(SHORT_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_1(SHORT_CT_ON_SIRSEN) 0 +set PROFILE_1(SHORT_CT_ONDELAY_SIRSEN) 0 +set PROFILE_1(SHORT_JT_OFF_SIRSEN) 1 +set PROFILE_1(SHORT_JT_OFFDELAY_SIRSEN) 2 +set PROFILE_1(SHORT_JT_ON_SIRSEN) 2 +set PROFILE_1(SHORT_JT_ONDELAY_SIRSEN) 2 +set PROFILE_1(SHORT_OFF_TIME_SIRSEN) 111600 +set PROFILE_1(SHORT_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_1(SHORT_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_1(SHORT_ON_TIME_SIRSEN) 120 +set PROFILE_1(SHORT_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_1(SHORT_ON_LEVEL_SIRSEN) 200 +set PROFILE_1(SHORT_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_1(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Schalter für die eingestellte Zeit eingeschaltet. Ist eine Einschaltverzögerungszeit eingestellt, so wird der Schalter erst nach Ablauf dieser Zeit eingeschaltet." +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 + +set PROFILE_2(LONG_ACTION_TYPE_SIRSEN) 1 +set PROFILE_2(LONG_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_2(LONG_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_2(LONG_CT_OFF_SIRSEN) 0 +set PROFILE_2(LONG_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_2(LONG_CT_ON_SIRSEN) 0 +set PROFILE_2(LONG_CT_ONDELAY_SIRSEN) 0 +set PROFILE_2(LONG_JT_OFF_SIRSEN) 4 +set PROFILE_2(LONG_JT_OFFDELAY_SIRSEN) 4 +set PROFILE_2(LONG_JT_ON_SIRSEN) 3 +set PROFILE_2(LONG_JT_ONDELAY_SIRSEN) 4 +set PROFILE_2(LONG_OFF_TIME_SIRSEN) 111600 +set PROFILE_2(LONG_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_2(LONG_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_2(LONG_ON_TIME_SIRSEN) 120 +set PROFILE_2(LONG_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_2(LONG_ON_LEVEL_SIRSEN) 50 +set PROFILE_2(LONG_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_2(LONG_MULTIEXECUTE_SIRSEN) 1 + +set PROFILE_2(SHORT_ACTION_TYPE_SIRSEN) 1 +set PROFILE_2(SHORT_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_2(SHORT_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_2(SHORT_CT_OFF_SIRSEN) 0 +set PROFILE_2(SHORT_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_2(SHORT_CT_ON_SIRSEN) 0 +set PROFILE_2(SHORT_CT_ONDELAY_SIRSEN) 0 +set PROFILE_2(SHORT_JT_OFF_SIRSEN) 4 +set PROFILE_2(SHORT_JT_OFFDELAY_SIRSEN) 4 +set PROFILE_2(SHORT_JT_ON_SIRSEN) 3 +set PROFILE_2(SHORT_JT_ONDELAY_SIRSEN) 4 +set PROFILE_2(SHORT_OFF_TIME_SIRSEN) 111600 +set PROFILE_2(SHORT_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_2(SHORT_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_2(SHORT_ON_TIME_SIRSEN) 120 +set PROFILE_2(SHORT_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_2(SHORT_ON_LEVEL_SIRSEN) 200 +set PROFILE_2(SHORT_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_2(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Schalter für die eingestellte Zeit ausgeschaltet. Ist eine Ausschaltverzögerungszeit eingestellt, so wird der Schalter erst nach Ablauf dieser Zeit ausgeschaltet." +set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) +set PROFILE_2(UI_HINT) 2 + +set PROFILE_3(LONG_ACTION_TYPE_SIRSEN) 1 +set PROFILE_3(LONG_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_3(LONG_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_3(LONG_CT_OFF_SIRSEN) 0 +set PROFILE_3(LONG_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_3(LONG_CT_ON_SIRSEN) 0 +set PROFILE_3(LONG_CT_ONDELAY_SIRSEN) 0 +set PROFILE_3(LONG_JT_OFF_SIRSEN) 1 +set PROFILE_3(LONG_JT_OFFDELAY_SIRSEN) 4 +set PROFILE_3(LONG_JT_ON_SIRSEN) 3 +set PROFILE_3(LONG_JT_ONDELAY_SIRSEN) 2 +set PROFILE_3(LONG_OFF_TIME_SIRSEN) 111600 +set PROFILE_3(LONG_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_3(LONG_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_3(LONG_ON_TIME_SIRSEN) 120 +set PROFILE_3(LONG_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_3(LONG_ON_LEVEL_SIRSEN) 50 +set PROFILE_3(LONG_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_3(LONG_MULTIEXECUTE_SIRSEN) 1 + +set PROFILE_3(SHORT_ACTION_TYPE_SIRSEN) 1 +set PROFILE_3(SHORT_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_3(SHORT_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_3(SHORT_CT_OFF_SIRSEN) 0 +set PROFILE_3(SHORT_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_3(SHORT_CT_ON_SIRSEN) 0 +set PROFILE_3(SHORT_CT_ONDELAY_SIRSEN) 0 +set PROFILE_3(SHORT_JT_OFF_SIRSEN) 1 +set PROFILE_3(SHORT_JT_OFFDELAY_SIRSEN) 4 +set PROFILE_3(SHORT_JT_ON_SIRSEN) 3 +set PROFILE_3(SHORT_JT_ONDELAY_SIRSEN) 2 +set PROFILE_3(SHORT_OFF_TIME_SIRSEN) 111600 +set PROFILE_3(SHORT_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_3(SHORT_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_3(SHORT_ON_TIME_SIRSEN) 120 +set PROFILE_3(SHORT_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_3(SHORT_ON_LEVEL_SIRSEN) 200 +set PROFILE_3(SHORT_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_3(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Schalter für die eingestellte Zeit je nach aktuellem Zustand ein- oder ausgeschaltet (Togglefunktion). Ist eine Ein- oder Ausschaltverzögerungszeit eingestellt, so wird der Schalter erst nach Ablauf dieser Zeit ein- bzw. ausgeschaltet." +set PROFILE_3(UI_TEMPLATE) $PROFILE_3(UI_DESCRIPTION) +set PROFILE_3(UI_HINT) 3 + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global receiver_address dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" +#1 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" +#2 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" +#3 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" + +} + +constructor diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/ROTARY_HANDLE_SENSOR.tcl b/WebUI/www/config/easymodes/SWITCH_SENSOR/ROTARY_HANDLE_SENSOR.tcl new file mode 100755 index 00000000..f8683ed5 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/ROTARY_HANDLE_SENSOR.tcl @@ -0,0 +1,195 @@ +#/bin/tclsh + +source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options.tcl] + +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${switch_on}" +set PROFILES_MAP(2) "\${change_signal}" + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + +set PROFILE_1(LONG_ACTION_TYPE_SIRSEN) {0 1} +set PROFILE_1(SHORT_ACTION_TYPE_SIRSEN) 1 +set PROFILE_1(SHORT_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_1(SHORT_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_1(SHORT_CT_OFF_SIRSEN) 0 +set PROFILE_1(SHORT_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_1(SHORT_CT_ON_SIRSEN) 0 +set PROFILE_1(SHORT_CT_ONDELAY_SIRSEN) 0 +set PROFILE_1(SHORT_JT_OFF_SIRSEN) 1 +set PROFILE_1(SHORT_JT_OFFDELAY_SIRSEN) 2 +set PROFILE_1(SHORT_JT_ON_SIRSEN) 2 +set PROFILE_1(SHORT_JT_ONDELAY_SIRSEN) 2 +set PROFILE_1(SHORT_OFF_TIME_SIRSEN) 111600 +set PROFILE_1(SHORT_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_1(SHORT_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_1(SHORT_ON_TIME_SIRSEN) 120 +set PROFILE_1(SHORT_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_1(SHORT_ON_LEVEL_SIRSEN) 200 +set PROFILE_1(SHORT_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_1(UI_DESCRIPTION) "Beim Öffnen des Schaltkontaktes wird der Alarm ein- und beim Schließen ausgeschaltet. Die Schaltzuordnung lässt sich auch umkehren." +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 + +set PROFILE_2(LONG_ACTION_TYPE_SIRSEN) 0 +set PROFILE_2(SHORT_ACTION_TYPE_SIRSEN) 1 +set PROFILE_2(SHORT_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_2(SHORT_COND_VALUE_LO_SIRSEN) 0 +set PROFILE_2(SHORT_CT_OFF_SIRSEN) 0 +set PROFILE_2(SHORT_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_2(SHORT_CT_ON_SIRSEN) 0 +set PROFILE_2(SHORT_CT_ONDELAY_SIRSEN) 0 +set PROFILE_2(SHORT_JT_OFF_SIRSEN) 1 +set PROFILE_2(SHORT_JT_OFFDELAY_SIRSEN) 2 +set PROFILE_2(SHORT_JT_ON_SIRSEN) 2 +set PROFILE_2(SHORT_JT_ONDELAY_SIRSEN) 0 +set PROFILE_2(SHORT_OFF_TIME_SIRSEN) 111600 +set PROFILE_2(SHORT_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_2(SHORT_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_2(SHORT_ON_TIME_SIRSEN) 120 +set PROFILE_2(SHORT_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_2(SHORT_ON_LEVEL_SIRSEN) 200 +set PROFILE_2(SHORT_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_2(UI_DESCRIPTION) "Bei Erkennung des Änderungssignals wird der Alarm für eine bestimmte Zeit eingeschaltet." +set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) +set PROFILE_2(UI_HINT) 2 + + +#set SUBSET_1(NAME) "Offen-Ein" +set SUBSET_1(NAME) "\${subset_1}" +set SUBSET_1(SUBSET_OPTION_VALUE) 1 +set SUBSET_1(SHORT_CT_OFF_SIRSEN) 0 +set SUBSET_1(SHORT_CT_OFFDELAY_SIRSEN) 0 +set SUBSET_1(SHORT_CT_ON_SIRSEN) 0 +set SUBSET_1(SHORT_CT_ONDELAY_SIRSEN) 0 + +#set SUBSET_2(NAME) "Zu-Ein" +set SUBSET_2(NAME) "\${subset_2}" +set SUBSET_2(SUBSET_OPTION_VALUE) 2 +set SUBSET_2(SHORT_CT_OFF_SIRSEN) 2 +set SUBSET_2(SHORT_CT_OFFDELAY_SIRSEN) 2 +set SUBSET_2(SHORT_CT_ON_SIRSEN) 2 +set SUBSET_2(SHORT_CT_ONDELAY_SIRSEN) 2 + +#set SUBSET_3(NAME) "Oeffnen" +set SUBSET_3(NAME) "\${subset_3}" +set SUBSET_3(SUBSET_OPTION_VALUE) 3 +set SUBSET_3(SHORT_CT_OFF_SIRSEN) 0 +set SUBSET_3(SHORT_CT_OFFDELAY_SIRSEN) 0 +set SUBSET_3(SHORT_CT_ON_SIRSEN) 0 +set SUBSET_3(SHORT_CT_ONDELAY_SIRSEN) 0 + +#set SUBSET_4(NAME) "Schliessen" +set SUBSET_4(NAME) "\${subset_4}" +set SUBSET_4(SUBSET_OPTION_VALUE) 4 +set SUBSET_4(SHORT_CT_OFF_SIRSEN) 3 +set SUBSET_4(SHORT_CT_OFFDELAY_SIRSEN) 3 +set SUBSET_4(SHORT_CT_ON_SIRSEN) 3 +set SUBSET_4(SHORT_CT_ONDELAY_SIRSEN) 3 + + +#set SUBSET_5(NAME) "Aendern" +set SUBSET_5(NAME) "\${subset_5}" +set SUBSET_5(SUBSET_OPTION_VALUE) 5 +set SUBSET_5(SHORT_CT_OFF_SIRSEN) 0 +set SUBSET_5(SHORT_CT_OFFDELAY_SIRSEN) 0 +set SUBSET_5(SHORT_CT_ON_SIRSEN) 0 +set SUBSET_5(SHORT_CT_ONDELAY_SIRSEN) 0 +set SUBSET_5(SHORT_COND_VALUE_LO_SIRSEN) 0 + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + #global SUBSETS + set name "x" + set i 1 + while {$name != ""} { + upvar SUBSET_$i SUBSET_$i + array set subset [array get SUBSET_$i] + set name "" + catch {set name $subset(NAME)} + array_clear subset + incr i + } + +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" + +#1 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" + + +#2 + incr prn +# set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" +} +constructor diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/SHUTTER_CONTACT.tcl b/WebUI/www/config/easymodes/SWITCH_SENSOR/SHUTTER_CONTACT.tcl new file mode 100755 index 00000000..bb715910 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/SHUTTER_CONTACT.tcl @@ -0,0 +1,197 @@ +#/bin/tclsh + +source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options.tcl] + +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${switch_on}" +set PROFILES_MAP(2) "\${change_signal}" + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + +set PROFILE_1(LONG_ACTION_TYPE_SIRSEN) {0 1} +set PROFILE_1(SHORT_ACTION_TYPE_SIRSEN) 1 +set PROFILE_1(SHORT_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_1(SHORT_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_1(SHORT_CT_OFF_SIRSEN) 0 +set PROFILE_1(SHORT_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_1(SHORT_CT_ON_SIRSEN) 0 +set PROFILE_1(SHORT_CT_ONDELAY_SIRSEN) 0 +set PROFILE_1(SHORT_JT_OFF_SIRSEN) 1 +set PROFILE_1(SHORT_JT_OFFDELAY_SIRSEN) 2 +set PROFILE_1(SHORT_JT_ON_SIRSEN) 2 +set PROFILE_1(SHORT_JT_ONDELAY_SIRSEN) 2 +set PROFILE_1(SHORT_OFF_TIME_SIRSEN) 111600 +set PROFILE_1(SHORT_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_1(SHORT_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_1(SHORT_ON_TIME_SIRSEN) 120 +set PROFILE_1(SHORT_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_1(SHORT_ON_LEVEL_SIRSEN) 200 +set PROFILE_1(SHORT_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_1(UI_DESCRIPTION) "Beim Öffnen des Schaltkontaktes wird der Alarm ein- und beim Schließen ausgeschaltet. Die Schaltzuordnung lässt sich auch umkehren." +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 + +set PROFILE_2(LONG_ACTION_TYPE_SIRSEN) 0 +set PROFILE_2(SHORT_ACTION_TYPE_SIRSEN) 1 +set PROFILE_2(SHORT_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_2(SHORT_COND_VALUE_LO_SIRSEN) 0 +set PROFILE_2(SHORT_CT_OFF_SIRSEN) 0 +set PROFILE_2(SHORT_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_2(SHORT_CT_ON_SIRSEN) 0 +set PROFILE_2(SHORT_CT_ONDELAY_SIRSEN) 0 +set PROFILE_2(SHORT_JT_OFF_SIRSEN) 1 +set PROFILE_2(SHORT_JT_OFFDELAY_SIRSEN) 2 +set PROFILE_2(SHORT_JT_ON_SIRSEN) 2 +set PROFILE_2(SHORT_JT_ONDELAY_SIRSEN) 0 +set PROFILE_2(SHORT_OFF_TIME_SIRSEN) 111600 +set PROFILE_2(SHORT_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_2(SHORT_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_2(SHORT_ON_TIME_SIRSEN) 120 +set PROFILE_2(SHORT_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_2(SHORT_ON_LEVEL_SIRSEN) 200 +set PROFILE_2(SHORT_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_2(UI_DESCRIPTION) "Bei Erkennung des Änderungssignals wird der Alarm für eine bestimmte Zeit eingeschaltet." +set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) +set PROFILE_2(UI_HINT) 2 + + +#set SUBSET_1(NAME) "Offen-Ein" +set SUBSET_1(NAME) "\${subset_1}" +set SUBSET_1(SUBSET_OPTION_VALUE) 1 +set SUBSET_1(SHORT_CT_OFF_SIRSEN) 0 +set SUBSET_1(SHORT_CT_OFFDELAY_SIRSEN) 0 +set SUBSET_1(SHORT_CT_ON_SIRSEN) 0 +set SUBSET_1(SHORT_CT_ONDELAY_SIRSEN) 0 + +#set SUBSET_2(NAME) "Zu-Ein" +set SUBSET_2(NAME) "\${subset_2}" +set SUBSET_2(SUBSET_OPTION_VALUE) 2 +set SUBSET_2(SHORT_CT_OFF_SIRSEN) 2 +set SUBSET_2(SHORT_CT_OFFDELAY_SIRSEN) 2 +set SUBSET_2(SHORT_CT_ON_SIRSEN) 2 +set SUBSET_2(SHORT_CT_ONDELAY_SIRSEN) 2 + +#set SUBSET_3(NAME) "Oeffnen" +set SUBSET_3(NAME) "\${subset_3}" +set SUBSET_3(SUBSET_OPTION_VALUE) 3 +set SUBSET_3(SHORT_CT_OFF_SIRSEN) 0 +set SUBSET_3(SHORT_CT_OFFDELAY_SIRSEN) 0 +set SUBSET_3(SHORT_CT_ON_SIRSEN) 0 +set SUBSET_3(SHORT_CT_ONDELAY_SIRSEN) 0 + +#set SUBSET_4(NAME) "Schliessen" +set SUBSET_4(NAME) "\${subset_4}" +set SUBSET_4(SUBSET_OPTION_VALUE) 4 +set SUBSET_4(SHORT_CT_OFF_SIRSEN) 3 +set SUBSET_4(SHORT_CT_OFFDELAY_SIRSEN) 3 +set SUBSET_4(SHORT_CT_ON_SIRSEN) 3 +set SUBSET_4(SHORT_CT_ONDELAY_SIRSEN) 3 + + +#set SUBSET_5(NAME) "Aendern" +set SUBSET_5(NAME) "\${subset_5}" +set SUBSET_5(SUBSET_OPTION_VALUE) 5 +set SUBSET_5(SHORT_CT_OFF_SIRSEN) 0 +set SUBSET_5(SHORT_CT_OFFDELAY_SIRSEN) 0 +set SUBSET_5(SHORT_CT_ON_SIRSEN) 0 +set SUBSET_5(SHORT_CT_ONDELAY_SIRSEN) 0 +set SUBSET_5(SHORT_COND_VALUE_LO_SIRSEN) 0 + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + #global SUBSETS + set name "x" + set i 1 + while {$name != ""} { + upvar SUBSET_$i SUBSET_$i + array set subset [array get SUBSET_$i] + set name "" + catch {set name $subset(NAME)} + array_clear subset + incr i + } + +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" + +#1 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" + + +#2 + incr prn + #set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" +} +constructor diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/VIRTUAL_KEY.tcl b/WebUI/www/config/easymodes/SWITCH_SENSOR/VIRTUAL_KEY.tcl new file mode 100755 index 00000000..19bcc966 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/VIRTUAL_KEY.tcl @@ -0,0 +1,247 @@ +#!/bin/tclsh + +source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] +source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/options.tcl] + +set PROFILES_MAP(0) "\${expert}" +set PROFILES_MAP(1) "\${switch_on}" +set PROFILES_MAP(2) "\${switch_off}" +set PROFILES_MAP(3) "\${switch_on_off}" + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + +set PROFILE_1(LONG_ACTION_TYPE_SIRSEN) 1 +set PROFILE_1(LONG_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_1(LONG_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_1(LONG_CT_OFF_SIRSEN) 0 +set PROFILE_1(LONG_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_1(LONG_CT_ON_SIRSEN) 0 +set PROFILE_1(LONG_CT_ONDELAY_SIRSEN) 0 +set PROFILE_1(LONG_JT_OFF_SIRSEN) 1 +set PROFILE_1(LONG_JT_OFFDELAY_SIRSEN) 2 +set PROFILE_1(LONG_JT_ON_SIRSEN) 2 +set PROFILE_1(LONG_JT_ONDELAY_SIRSEN) 2 +set PROFILE_1(LONG_OFF_TIME_SIRSEN) 111600 +set PROFILE_1(LONG_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_1(LONG_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_1(LONG_ON_TIME_SIRSEN) 120 +set PROFILE_1(LONG_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_1(LONG_ON_LEVEL_SIRSEN) 50 +set PROFILE_1(LONG_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_1(LONG_MULTIEXECUTE_SIRSEN) 1 + +set PROFILE_1(SHORT_ACTION_TYPE_SIRSEN) 1 +set PROFILE_1(SHORT_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_1(SHORT_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_1(SHORT_CT_OFF_SIRSEN) 0 +set PROFILE_1(SHORT_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_1(SHORT_CT_ON_SIRSEN) 0 +set PROFILE_1(SHORT_CT_ONDELAY_SIRSEN) 0 +set PROFILE_1(SHORT_JT_OFF_SIRSEN) 1 +set PROFILE_1(SHORT_JT_OFFDELAY_SIRSEN) 2 +set PROFILE_1(SHORT_JT_ON_SIRSEN) 2 +set PROFILE_1(SHORT_JT_ONDELAY_SIRSEN) 2 +set PROFILE_1(SHORT_OFF_TIME_SIRSEN) 111600 +set PROFILE_1(SHORT_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_1(SHORT_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_1(SHORT_ON_TIME_SIRSEN) 120 +set PROFILE_1(SHORT_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_1(SHORT_ON_LEVEL_SIRSEN) 200 +set PROFILE_1(SHORT_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_1(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Schalter für die eingestellte Zeit eingeschaltet. Ist eine Einschaltverzögerungszeit eingestellt, so wird der Schalter erst nach Ablauf dieser Zeit eingeschaltet." +set PROFILE_1(UI_TEMPLATE) $PROFILE_1(UI_DESCRIPTION) +set PROFILE_1(UI_HINT) 1 + +set PROFILE_2(LONG_ACTION_TYPE_SIRSEN) 1 +set PROFILE_2(LONG_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_2(LONG_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_2(LONG_CT_OFF_SIRSEN) 0 +set PROFILE_2(LONG_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_2(LONG_CT_ON_SIRSEN) 0 +set PROFILE_2(LONG_CT_ONDELAY_SIRSEN) 0 +set PROFILE_2(LONG_JT_OFF_SIRSEN) 4 +set PROFILE_2(LONG_JT_OFFDELAY_SIRSEN) 4 +set PROFILE_2(LONG_JT_ON_SIRSEN) 3 +set PROFILE_2(LONG_JT_ONDELAY_SIRSEN) 4 +set PROFILE_2(LONG_OFF_TIME_SIRSEN) 111600 +set PROFILE_2(LONG_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_2(LONG_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_2(LONG_ON_TIME_SIRSEN) 120 +set PROFILE_2(LONG_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_2(LONG_ON_LEVEL_SIRSEN) 50 +set PROFILE_2(LONG_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_2(LONG_MULTIEXECUTE_SIRSEN) 1 + +set PROFILE_2(SHORT_ACTION_TYPE_SIRSEN) 1 +set PROFILE_2(SHORT_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_2(SHORT_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_2(SHORT_CT_OFF_SIRSEN) 0 +set PROFILE_2(SHORT_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_2(SHORT_CT_ON_SIRSEN) 0 +set PROFILE_2(SHORT_CT_ONDELAY_SIRSEN) 0 +set PROFILE_2(SHORT_JT_OFF_SIRSEN) 4 +set PROFILE_2(SHORT_JT_OFFDELAY_SIRSEN) 4 +set PROFILE_2(SHORT_JT_ON_SIRSEN) 3 +set PROFILE_2(SHORT_JT_ONDELAY_SIRSEN) 4 +set PROFILE_2(SHORT_OFF_TIME_SIRSEN) 111600 +set PROFILE_2(SHORT_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_2(SHORT_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_2(SHORT_ON_TIME_SIRSEN) 120 +set PROFILE_2(SHORT_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_2(SHORT_ON_LEVEL_SIRSEN) 200 +set PROFILE_2(SHORT_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_2(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Schalter für die eingestellte Zeit ausgeschaltet. Ist eine Ausschaltverzögerungszeit eingestellt, so wird der Schalter erst nach Ablauf dieser Zeit ausgeschaltet." +set PROFILE_2(UI_TEMPLATE) $PROFILE_2(UI_DESCRIPTION) +set PROFILE_2(UI_HINT) 2 + +set PROFILE_3(LONG_ACTION_TYPE_SIRSEN) 1 +set PROFILE_3(LONG_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_3(LONG_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_3(LONG_CT_OFF_SIRSEN) 0 +set PROFILE_3(LONG_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_3(LONG_CT_ON_SIRSEN) 0 +set PROFILE_3(LONG_CT_ONDELAY_SIRSEN) 0 +set PROFILE_3(LONG_JT_OFF_SIRSEN) 1 +set PROFILE_3(LONG_JT_OFFDELAY_SIRSEN) 4 +set PROFILE_3(LONG_JT_ON_SIRSEN) 3 +set PROFILE_3(LONG_JT_ONDELAY_SIRSEN) 2 +set PROFILE_3(LONG_OFF_TIME_SIRSEN) 111600 +set PROFILE_3(LONG_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_3(LONG_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_3(LONG_ON_TIME_SIRSEN) 120 +set PROFILE_3(LONG_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_3(LONG_ON_LEVEL_SIRSEN) 50 +set PROFILE_3(LONG_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_3(LONG_MULTIEXECUTE_SIRSEN) 1 + +set PROFILE_3(SHORT_ACTION_TYPE_SIRSEN) 1 +set PROFILE_3(SHORT_COND_VALUE_HI_SIRSEN) 180 +set PROFILE_3(SHORT_COND_VALUE_LO_SIRSEN) 1 +set PROFILE_3(SHORT_CT_OFF_SIRSEN) 0 +set PROFILE_3(SHORT_CT_OFFDELAY_SIRSEN) 0 +set PROFILE_3(SHORT_CT_ON_SIRSEN) 0 +set PROFILE_3(SHORT_CT_ONDELAY_SIRSEN) 0 +set PROFILE_3(SHORT_JT_OFF_SIRSEN) 1 +set PROFILE_3(SHORT_JT_OFFDELAY_SIRSEN) 4 +set PROFILE_3(SHORT_JT_ON_SIRSEN) 3 +set PROFILE_3(SHORT_JT_ONDELAY_SIRSEN) 2 +set PROFILE_3(SHORT_OFF_TIME_SIRSEN) 111600 +set PROFILE_3(SHORT_OFF_TIME_MODE_SIRSEN) 0 +set PROFILE_3(SHORT_OFFDELAY_TIME_SIRSEN) 0 +set PROFILE_3(SHORT_ON_TIME_SIRSEN) 120 +set PROFILE_3(SHORT_ON_TIME_MODE_SIRSEN) 0 +set PROFILE_3(SHORT_ON_LEVEL_SIRSEN) 200 +set PROFILE_3(SHORT_ONDELAY_TIME_SIRSEN) 0 +set PROFILE_3(UI_DESCRIPTION) "Mit einem kurzen oder langen Tastendruck wird der Schalter für die eingestellte Zeit je nach aktuellem Zustand ein- oder ausgeschaltet (Togglefunktion). Ist eine Ein- oder Ausschaltverzögerungszeit eingestellt, so wird der Schalter erst nach Ablauf dieser Zeit ein- bzw. ausgeschaltet." +set PROFILE_3(UI_TEMPLATE) $PROFILE_3(UI_DESCRIPTION) +set PROFILE_3(UI_HINT) 3 + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global receiver_address dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" +#1 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" +#2 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" +#3 + incr prn + set pref 1 + if {$cur_profile == $prn} then {array set PROFILE_$prn [array get ps]} + append HTML_PARAMS(separate_$prn) "
" + +} + +constructor diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/GENERIC.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/GENERIC.txt new file mode 100755 index 00000000..990e1555 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/GENERIC.txt @@ -0,0 +1,3 @@ +"switch_off" : "Alarm aus", +"switch_on" : "Alarm ein", +"switch_on_off" : "Alarm ein / aus", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/KEY.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/KEY.txt new file mode 100755 index 00000000..d2dde8d3 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/KEY.txt @@ -0,0 +1,4 @@ +"description_1" : "Mit einem kurzen oder langen Tastendruck wird der Alarm für die eingestellte Zeit eingeschaltet. Ist eine Einschaltverzögerungszeit eingestellt, so wird der Alarm erst nach Ablauf dieser Zeit eingeschaltet.

", +"description_2" : "Mit einem kurzen oder langen Tastendruck wird der Alarm ausgeschaltet. Ist eine Ausschaltverzögerungszeit eingestellt, so wird der Alarm erst nach Ablauf dieser Zeit ausgeschaltet

", +"description_3" : "Mit einem kurzen oder langen Tastendruck wird der Alarm je nach aktuellem Zustand für die eingestellte Zeit ein- oder ausgeschaltet (Togglefunktion). Ist eine Einschaltverzögerungszeit eingestellt, so wird der Alarm erst nach Ablauf dieser Zeit eingeschaltet.

", + diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/ROTARY_HANDLE_SENSOR.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/ROTARY_HANDLE_SENSOR.txt new file mode 100755 index 00000000..dc4ef563 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/ROTARY_HANDLE_SENSOR.txt @@ -0,0 +1,10 @@ +"description_1" : "Beim Öffnen des Fensters wird der Alarm für die eingestellte Zeit eingeschaltet. Ist eine Einschaltverzögerungszeit eingestellt, so wird der Alarm erst nach Ablauf dieser Zeit eingeschaltet Diese Funktion lässt sich auch umkehren.

", +"description_2" : "Bei Wechseln des Fensterzustands wird der Alarm für die eingestellte Zeit eingeschaltet. Ist eine Einschaltverzögerungszeit eingestellt, so wird der Alarm erst nach Ablauf dieser Zeit eingeschaltet.

", + +"subset_1" : "Offen - ein", +"subset_2" : "Zu - ein", +"subset_3" : "Öffnen", +"subset_4" : "Schließen", +"subset_5" : "Ändern", + +"at" : "beim", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/SHUTTER_CONTACT.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/SHUTTER_CONTACT.txt new file mode 100755 index 00000000..75f10948 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/SHUTTER_CONTACT.txt @@ -0,0 +1,9 @@ +"description_1" : "Beim Öffnen des Kontakts wird der Alarm für die festgelegte Zeit eingeschaltet. Diese Funktion lässt sich auch umkehren.

", +"description_2" : "Beim Erkennen des Änderungssignals wird der Schalter für eine festgelegte Zeit eingeschaltet.

", + +"subset_1" : "Offen - ein", +"subset_2" : "Zu - ein", +"subset_3" : "Öffnen", +"subset_4" : "Schließen", +"subset_5" : "Ändern", +"at" : "beim", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/VIRTUAL_KEY.txt new file mode 100755 index 00000000..d2dde8d3 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/de/VIRTUAL_KEY.txt @@ -0,0 +1,4 @@ +"description_1" : "Mit einem kurzen oder langen Tastendruck wird der Alarm für die eingestellte Zeit eingeschaltet. Ist eine Einschaltverzögerungszeit eingestellt, so wird der Alarm erst nach Ablauf dieser Zeit eingeschaltet.

", +"description_2" : "Mit einem kurzen oder langen Tastendruck wird der Alarm ausgeschaltet. Ist eine Ausschaltverzögerungszeit eingestellt, so wird der Alarm erst nach Ablauf dieser Zeit ausgeschaltet

", +"description_3" : "Mit einem kurzen oder langen Tastendruck wird der Alarm je nach aktuellem Zustand für die eingestellte Zeit ein- oder ausgeschaltet (Togglefunktion). Ist eine Einschaltverzögerungszeit eingestellt, so wird der Alarm erst nach Ablauf dieser Zeit eingeschaltet.

", + diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/GENERIC.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/GENERIC.txt new file mode 100755 index 00000000..546a797a --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/GENERIC.txt @@ -0,0 +1,3 @@ +"switch_off" : "Switch - off", +"switch_on" : "Switch - on", +"switch_on_off" : "Switch - on/off", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/KEY.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/KEY.txt new file mode 100755 index 00000000..825d098b --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/KEY.txt @@ -0,0 +1,3 @@ +"description_1" : "With a short or long button press the alarm will be toggled on for the set time. If a delay is set switching will be performed after the delay time has expired.

", +"description_2" : "With a short or long button press the alarm will be toggled off for the set time. If a delay is set switching will be performed after the delay time has expired.

", +"description_3" : "With a short or long button press the alarm will be toggled on or off for the set time (toggle function). If a delay is set switching will be performed after the delay time has expired.

", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/ROTARY_HANDLE_SENSOR.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/ROTARY_HANDLE_SENSOR.txt new file mode 100755 index 00000000..3e379fa6 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/ROTARY_HANDLE_SENSOR.txt @@ -0,0 +1,10 @@ +"description_1" : "When the window is opened the alarm will be switched on for the time set. This function can be reversed.

", +"description_2" : "The alarm will be switched on for the time set if a change of the window state is recognized.

", + +"subset_1" : "Open - on", +"subset_2" : "Closed - on", +"subset_3" : "Open", +"subset_4" : "Close", +"subset_5" : "Change", + +"at" : "on", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/SHUTTER_CONTACT.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/SHUTTER_CONTACT.txt new file mode 100755 index 00000000..94a1548e --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/SHUTTER_CONTACT.txt @@ -0,0 +1,9 @@ +"description_1" : "When the contact is opened the alarm will be switched on for the time set. This function can be reversed.

", +"description_2" : "The alarm will be switched on for the time set if the change signal is recognized.

", + +"subset_1" : "Open - on", +"subset_2" : "Closed - on", +"subset_3" : "Open", +"subset_4" : "Close", +"subset_5" : "Change", +"at" : "on", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/VIRTUAL_KEY.txt new file mode 100755 index 00000000..825d098b --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/en/VIRTUAL_KEY.txt @@ -0,0 +1,3 @@ +"description_1" : "With a short or long button press the alarm will be toggled on for the set time. If a delay is set switching will be performed after the delay time has expired.

", +"description_2" : "With a short or long button press the alarm will be toggled off for the set time. If a delay is set switching will be performed after the delay time has expired.

", +"description_3" : "With a short or long button press the alarm will be toggled on or off for the set time (toggle function). If a delay is set switching will be performed after the delay time has expired.

", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/GENERIC.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/GENERIC.txt new file mode 100755 index 00000000..546a797a --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/GENERIC.txt @@ -0,0 +1,3 @@ +"switch_off" : "Switch - off", +"switch_on" : "Switch - on", +"switch_on_off" : "Switch - on/off", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/KEY.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/KEY.txt new file mode 100755 index 00000000..825d098b --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/KEY.txt @@ -0,0 +1,3 @@ +"description_1" : "With a short or long button press the alarm will be toggled on for the set time. If a delay is set switching will be performed after the delay time has expired.

", +"description_2" : "With a short or long button press the alarm will be toggled off for the set time. If a delay is set switching will be performed after the delay time has expired.

", +"description_3" : "With a short or long button press the alarm will be toggled on or off for the set time (toggle function). If a delay is set switching will be performed after the delay time has expired.

", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/ROTARY_HANDLE_SENSOR.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/ROTARY_HANDLE_SENSOR.txt new file mode 100755 index 00000000..3e379fa6 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/ROTARY_HANDLE_SENSOR.txt @@ -0,0 +1,10 @@ +"description_1" : "When the window is opened the alarm will be switched on for the time set. This function can be reversed.

", +"description_2" : "The alarm will be switched on for the time set if a change of the window state is recognized.

", + +"subset_1" : "Open - on", +"subset_2" : "Closed - on", +"subset_3" : "Open", +"subset_4" : "Close", +"subset_5" : "Change", + +"at" : "on", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/SHUTTER_CONTACT.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/SHUTTER_CONTACT.txt new file mode 100755 index 00000000..c7487960 --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/SHUTTER_CONTACT.txt @@ -0,0 +1,9 @@ +"description_1" : "When the contact is opened the alarm will be switched on for the time set. This function can be reversed.

", +"description_2" : "The switch will be switched on for the time set if the change signal is recognized.

", + +"subset_1" : "Open - on", +"subset_2" : "Closed - on", +"subset_3" : "Open", +"subset_4" : "Close", +"subset_5" : "Change", +"at" : "on", diff --git a/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/VIRTUAL_KEY.txt new file mode 100755 index 00000000..825d098b --- /dev/null +++ b/WebUI/www/config/easymodes/SWITCH_SENSOR/localization/tr/VIRTUAL_KEY.txt @@ -0,0 +1,3 @@ +"description_1" : "With a short or long button press the alarm will be toggled on for the set time. If a delay is set switching will be performed after the delay time has expired.

", +"description_2" : "With a short or long button press the alarm will be toggled off for the set time. If a delay is set switching will be performed after the delay time has expired.

", +"description_3" : "With a short or long button press the alarm will be toggled on or off for the set time (toggle function). If a delay is set switching will be performed after the delay time has expired.

", diff --git a/WebUI/www/config/easymodes/SWITCH_VIRTUAL_RECEIVER/KEY_TRANSCEIVER.tcl b/WebUI/www/config/easymodes/SWITCH_VIRTUAL_RECEIVER/KEY_TRANSCEIVER.tcl index 201d7114..48dbaf72 100755 --- a/WebUI/www/config/easymodes/SWITCH_VIRTUAL_RECEIVER/KEY_TRANSCEIVER.tcl +++ b/WebUI/www/config/easymodes/SWITCH_VIRTUAL_RECEIVER/KEY_TRANSCEIVER.tcl @@ -10,8 +10,8 @@ set PROFILES_MAP(0) "\${expert}" set PROFILES_MAP(1) "\${switch_on}" set PROFILES_MAP(2) "\${switch_off}" set PROFILES_MAP(3) "\${switch_on_off}" -set PROFILES_MAP(4) "\${switch_shortOn_longOff}" -set PROFILES_MAP(5) "\${switch_shortOff_longOn}" +#set PROFILES_MAP(4) "\${switch_shortOn_longOff}" +#set PROFILES_MAP(5) "\${switch_shortOff_longOn}" set PROFILE_0(UI_HINT) 0 set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" @@ -611,6 +611,7 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { append HTML_PARAMS(separate_$prn) "" +set comment { #4 incr prn set pref 1 @@ -772,7 +773,7 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { append HTML_PARAMS(separate_$prn) "\${ON_TIME_FACTOR}" append HTML_PARAMS(separate_$prn) "[get_InputElem LONG_ON_TIME_FACTOR separate_${special_input_id}_$prn\_$pref ps LONG_ON_TIME_FACTOR ]" append HTML_PARAMS(separate_$prn) "" - +} append HTML_PARAMS(separate_$prn) "" } diff --git a/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/VIRTUAL_KEY.tcl b/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/VIRTUAL_KEY.tcl new file mode 100755 index 00000000..86fe0516 --- /dev/null +++ b/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/VIRTUAL_KEY.tcl @@ -0,0 +1,35 @@ +#!/bin/tclsh + +source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] + + +set PROFILES_MAP(0) "\${no_profile}" + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "no" +set PROFILE_0(UI_TEMPLATE) "no" + + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global dev_descr_sender dev_descr_receiver + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar $pps ps + upvar $pps_descr ps_descr + upvar prn prn + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + +# die Texte der Platzhalter einlesen + puts "" + set prn 0 + append HTML_PARAMS(separate_$prn) "
" + +} + +constructor diff --git a/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/localization/de/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/localization/de/VIRTUAL_KEY.txt new file mode 100755 index 00000000..b6a75ce8 --- /dev/null +++ b/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/localization/de/VIRTUAL_KEY.txt @@ -0,0 +1 @@ +"description_1" : "NIL

", diff --git a/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/localization/en/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/localization/en/VIRTUAL_KEY.txt new file mode 100755 index 00000000..b6a75ce8 --- /dev/null +++ b/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/localization/en/VIRTUAL_KEY.txt @@ -0,0 +1 @@ +"description_1" : "NIL

", diff --git a/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/localization/tr/VIRTUAL_KEY.txt b/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/localization/tr/VIRTUAL_KEY.txt new file mode 100755 index 00000000..b6a75ce8 --- /dev/null +++ b/WebUI/www/config/easymodes/WINDOW_SWITCH_RECEIVER/localization/tr/VIRTUAL_KEY.txt @@ -0,0 +1 @@ +"description_1" : "NIL

", diff --git a/WebUI/www/config/easymodes/dimmer_virt_ch_masterParams.tcl b/WebUI/www/config/easymodes/dimmer_virt_ch_masterParams.tcl index 598941ee..b2dd4ac8 100755 --- a/WebUI/www/config/easymodes/dimmer_virt_ch_masterParams.tcl +++ b/WebUI/www/config/easymodes/dimmer_virt_ch_masterParams.tcl @@ -11,43 +11,43 @@ set PROFILE_PNAME(STATUSINFO_MINDELAY) "\${stringTableDimmerStatusInfoMinDelay}" set PROFILE_PNAME(STATUSINFO_RANDOM) "\${stringTableDimmerStatusInfoRandom}" set PROFILE_PNAME(TRANSMIT_TRY_MAX) "\${stringTableTransmitTryMax}" -set PROFILES_MAP(0) "Experte" -set PROFILES_MAP(1) "TheOneAndOnlyEasyMode" +set PROFILES_MAP(0) "Experte" +set PROFILES_MAP(1) "TheOneAndOnlyEasyMode" proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { - global env + global env - upvar PROFILES_MAP PROFILES_MAP - upvar HTML_PARAMS HTML_PARAMS - upvar PROFILE_PNAME PROFILE_PNAME - upvar $pps ps - upvar $pps_descr ps_descr + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr - foreach pro [array names PROFILES_MAP] { - upvar PROFILE_$pro PROFILE_$pro - } + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } array_clear param_descr - array set param_descr $ps_descr(STATUSINFO_MINDELAY) - set minDelay_min [format {%1.2f} $param_descr(MIN)] - set minDelay_max [format {%1.2f} $param_descr(MAX)] + array set param_descr $ps_descr(STATUSINFO_MINDELAY) + set minDelay_min [format {%1.2f} $param_descr(MIN)] + set minDelay_max [format {%1.2f} $param_descr(MAX)] array_clear param_descr - array set param_descr $ps_descr(STATUSINFO_RANDOM) - set random_min [format {%1.2f} $param_descr(MIN)] - set random_max [format {%1.2f} $param_descr(MAX)] + array set param_descr $ps_descr(STATUSINFO_RANDOM) + set random_min [format {%1.2f} $param_descr(MIN)] + set random_max [format {%1.2f} $param_descr(MAX)] - array_clear param_descr - array set param_descr $ps_descr(TRANSMIT_TRY_MAX) - set tryMax_min $param_descr(MIN) - set tryMax_max $param_descr(MAX) + array_clear param_descr + array set param_descr $ps_descr(TRANSMIT_TRY_MAX) + set tryMax_min $param_descr(MIN) + set tryMax_max $param_descr(MAX) - set ch [lindex [split $address ":"] 1] + set ch [lindex [split $address ":"] 1] - puts "" + puts "" - append HTML_PARAMS(separate_1) "" + + + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + puts "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "
" + append HTML_PARAMS(separate_1) "" } - append HTML_PARAMS(separate_1) "" - - - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - - puts "" - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - - append HTML_PARAMS(separate_1) "" - - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "
" catch { array set loadAppearBehaviour "$ps_descr(LOAD_APPEAR_BEHAVIOUR)" @@ -61,86 +61,86 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { append HTML_PARAMS(separate_1) [get_ComboBox options LOAD_APPEAR_BEHAVIOUR separate_${special_input_id}_7 ps LOAD_APPEAR_BEHAVIOUR] append HTML_PARAMS(separate_1) "
" - append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(LOGIC_COMBINATION)" - array_clear options - set options(0) "\${stringTableLogicInactive}" - set options(1) "\${stringTableLogicOR}" - set options(2) "\${stringTableLogicAND}" - set options(3) "\${stringTableLogicXOR}" - set options(4) "\${stringTableLogicNOR}" - set options(5) "\${stringTableLogicNAND}" - set options(6) "\${stringTableLogicORINVERS}" - set options(7) \${stringTableLogicANDINVERS}" - set options(8) "\${stringTableLogicPLUS}" - set options(9) "\${stringTableLogicMINUS}" - set options(10) "\${stringTableLogicMUL}" - set options(11) "\${stringTableLogicPLUSINVERS}" - set options(12) "\${stringTableLogicMINUSINVERS}" + append HTML_PARAMS(separate_1) "
" + append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(LOGIC_COMBINATION)" + array_clear options + set options(0) "\${stringTableLogicInactive}" + set options(1) "\${stringTableLogicOR}" + set options(2) "\${stringTableLogicAND}" + set options(3) "\${stringTableLogicXOR}" + set options(4) "\${stringTableLogicNOR}" + set options(5) "\${stringTableLogicNAND}" + set options(6) "\${stringTableLogicORINVERS}" + set options(7) \${stringTableLogicANDINVERS}" + set options(8) "\${stringTableLogicPLUS}" + set options(9) "\${stringTableLogicMINUS}" + set options(10) "\${stringTableLogicMUL}" + set options(11) "\${stringTableLogicPLUSINVERS}" + set options(12) "\${stringTableLogicMINUSINVERS}" set options(13) "\${stringTableLogicMULINVERS}" - set options(14) "\${stringTableLogicINVERSPLUS}" - set options(15) "\${stringTableLogicINVERSMINUS}" - set options(16) "\${stringTableLogicINVERSMUL}" - append HTML_PARAMS(separate_1) [get_ComboBox options LOGIC_COMBINATION separate_${special_input_id}_6 ps LOGIC_COMBINATION] - - append HTML_PARAMS(separate_1) " " - append HTML_PARAMS(separate_1) "
" - append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(POWERUP_ACTION)" - array_clear options - set options(0) "\${stringTablePowerUpOFF}" - set options(1) "\${stringTablePowerUpON}" - append HTML_PARAMS(separate_1) [get_ComboBox options POWERUP_ACTION separate_${special_input_id}_2 ps POWERUP_ACTION] - append HTML_PARAMS(separate_1) "
" - - append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(STATUSINFO_MINDELAY)" - set options(0) "\${stringTableNotUsed}" - set options(1) "\${stringTableEnterValue}" - - append HTML_PARAMS(separate_1) [get_ComboBox options STATUSINFO_MINDELAY separate_${special_input_id}_3 ps STATUSINFO_MINDELAY "onchange=\"setMinDelayVisibility($ch, $ps(STATUSINFO_MINDELAY));\""] - append HTML_PARAMS(separate_1) " s ($minDelay_min - $minDelay_max)
$PROFILE_PNAME(STATUSINFO_RANDOM)[get_InputElem STATUSINFO_RANDOM separate_${special_input_id}_5 ps tmp_STATUSINFO_RANDOM]s ($random_min - $random_max)
$PROFILE_PNAME(TRANSMIT_TRY_MAX)" - append HTML_PARAMS(separate_1) "[get_InputElem TRANSMIT_TRY_MAX separate_${special_input_id}_1 ps TRANSMIT_TRY_MAX] ($tryMax_min - $tryMax_max)
" - - append HTML_PARAMS(separate_1) "" - #set help_txt "Die Hilfe steht leider nicht zur Verfügung!" - #catch {source [file join $env(DOCUMENT_ROOT) config/virtualHelp.tcl]} - #append HTML_PARAMS(separate_1) "" - - append HTML_PARAMS(separate_1) "" - - append HTML_PARAMS(separate_1) "
$help_txt
\${virtualHelpTxt}
" - - puts "" + set options(14) "\${stringTableLogicINVERSPLUS}" + set options(15) "\${stringTableLogicINVERSMINUS}" + set options(16) "\${stringTableLogicINVERSMUL}" + append HTML_PARAMS(separate_1) [get_ComboBox options LOGIC_COMBINATION separate_${special_input_id}_6 ps LOGIC_COMBINATION] + + append HTML_PARAMS(separate_1) " " + append HTML_PARAMS(separate_1) "
" + append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(POWERUP_ACTION)" + array_clear options + set options(0) "\${stringTablePowerUpOFF}" + set options(1) "\${stringTablePowerUpON}" + append HTML_PARAMS(separate_1) [get_ComboBox options POWERUP_ACTION separate_${special_input_id}_2 ps POWERUP_ACTION] + append HTML_PARAMS(separate_1) "
" + + append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(STATUSINFO_MINDELAY)" + set options(0) "\${stringTableNotUsed}" + set options(1) "\${stringTableEnterValue}" + + append HTML_PARAMS(separate_1) [get_ComboBox options STATUSINFO_MINDELAY separate_${special_input_id}_3 ps STATUSINFO_MINDELAY "onchange=\"setMinDelayVisibility($ch, $ps(STATUSINFO_MINDELAY));\""] + append HTML_PARAMS(separate_1) " s ($minDelay_min - $minDelay_max)
$PROFILE_PNAME(STATUSINFO_RANDOM)[get_InputElem STATUSINFO_RANDOM separate_${special_input_id}_5 ps tmp_STATUSINFO_RANDOM]s ($random_min - $random_max)
$PROFILE_PNAME(TRANSMIT_TRY_MAX)" + append HTML_PARAMS(separate_1) "[get_InputElem TRANSMIT_TRY_MAX separate_${special_input_id}_1 ps TRANSMIT_TRY_MAX] ($tryMax_min - $tryMax_max)
" + + append HTML_PARAMS(separate_1) "" + #set help_txt "Die Hilfe steht leider nicht zur Verfügung!" + #catch {source [file join $env(DOCUMENT_ROOT) config/virtualHelp.tcl]} + #append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "
$help_txt
\${virtualHelpTxt}
" + + puts "" } constructor diff --git a/WebUI/www/config/easymodes/etc/localization/de/PNAME.txt b/WebUI/www/config/easymodes/etc/localization/de/PNAME.txt index 0a00cc8d..ce5a1a91 100755 --- a/WebUI/www/config/easymodes/etc/localization/de/PNAME.txt +++ b/WebUI/www/config/easymodes/etc/localization/de/PNAME.txt @@ -28,7 +28,7 @@ "ON_AIRING" : "Lüften bei", "ON_LEVEL" : "Pegel im Zustand \"ein\"", "ON_THRESHOLD" : "Einschalten bei", -"ON_TIME" : "Einschaltdauer (Verweildauer im Zustand \"ein\")", +"ON_TIME" : "Verweildauer im Zustand \"ein\"", "ON_TIME_MODE" : "Art der Verweildauer", "OPEN_WHEN" : "Öffnen bei ", "RAMPOFF_TIME" : "Rampenzeit beim Ausschalten", diff --git a/WebUI/www/config/easymodes/etc/uiElements.tcl b/WebUI/www/config/easymodes/etc/uiElements.tcl index 39265299..d8f3c47f 100755 --- a/WebUI/www/config/easymodes/etc/uiElements.tcl +++ b/WebUI/www/config/easymodes/etc/uiElements.tcl @@ -1,10 +1,3 @@ -proc getCheckBox {param value prn} { - set checked "" - if { $value } then { set checked "checked=\"checked\"" } - set s "" - return $s -} - proc getMinValue {param} { global psDescr upvar psDescr descr @@ -23,15 +16,20 @@ proc getMaxValue {param} { return "$max" } -proc getTextField {param value prn} { - set elemId 'separate_CHANNEL_0\_$prn' +proc getMinMaxValueDescr {param} { + global psDescr + upvar psDescr descr + array_clear param_descr + array set param_descr $descr($param) + set min $param_descr(MIN) + set max $param_descr(MAX) + # Limit float to 2 decimal places - if {[llength [split $value "."]] == 2} { - set value [format {%1.2f} $value] + if {[llength [split $min "."]] == 2} { + set min [format {%1.2f} $min] + set max [format {%1.2f} $max] } - - set s "" - return $s + return "($min - $max)" } proc getUnit {param} { @@ -52,20 +50,29 @@ proc getUnit {param} { return "$unit" } -proc getMinMaxValueDescr {param} { +proc getTextField {param value chn prn} { global psDescr upvar psDescr descr array_clear param_descr array set param_descr $descr($param) - set min $param_descr(MIN) - set max $param_descr(MAX) + set minValue [format {%1.1f} $param_descr(MIN)] + set maxValue [format {%1.1f} $param_descr(MAX)] + set elemId 'separate_CHANNEL\_$chn\_$prn' # Limit float to 2 decimal places - if {[llength [split $min "."]] == 2} { - set min [format {%1.2f} $min] - set max [format {%1.2f} $max] + if {[llength [split $value "."]] == 2} { + set value [format {%1.2f} $value] } - return "($min - $max)" + + set s "" + return $s +} + +proc getCheckBox {param value chn prn} { + set checked "" + if { $value } then { set checked "checked=\"checked\"" } + set s "" + return $s } proc getHelpIcon {topic x y} { diff --git a/WebUI/www/config/easymodes/hmip-etrv_0_master.tcl b/WebUI/www/config/easymodes/hmip-etrv_0_master.tcl index 6e28c4f8..6de023e8 100755 --- a/WebUI/www/config/easymodes/hmip-etrv_0_master.tcl +++ b/WebUI/www/config/easymodes/hmip-etrv_0_master.tcl @@ -27,39 +27,40 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { } append HTML_PARAMS(separate_1) "" + set chn 0 set prn 1 set param CYCLIC_INFO_MSG append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param CYCLIC_INFO_MSG_DIS append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param DAYLIGHT_SAVINGS_TIME append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param GLOBAL_BUTTON_LOCK append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param LOCAL_RESET_DISABLED append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "
\${stringTableCyclicInfoMsg}[getTextField $param $ps($param) $prn] [getMinMaxValueDescr $param][getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableCyclicInfoMsgDis}[getTextField $param $ps($param) $prn] [getMinMaxValueDescr $param][getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableDST}[getCheckBox '$param' $ps($param) $prn][getCheckBox '$param' $ps($param) $chn $prn]
\${stringTableGlobalButtonLock}[getCheckBox '$param' $ps($param) $prn][getCheckBox '$param' $ps($param) $chn $prn]
\${stringTableLocalResetDisable}[getCheckBox '$param' $ps($param) $prn][getCheckBox '$param' $ps($param) $chn $prn]
" diff --git a/WebUI/www/config/easymodes/hmip-krc4_0_master.tcl b/WebUI/www/config/easymodes/hmip-krc4_0_master.tcl index 3da671bb..19a7177b 100755 --- a/WebUI/www/config/easymodes/hmip-krc4_0_master.tcl +++ b/WebUI/www/config/easymodes/hmip-krc4_0_master.tcl @@ -28,11 +28,12 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { } append HTML_PARAMS(separate_1) "" + set chn 0 set prn 1 set param LOCAL_RESET_DISABLED append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "
\${stringTableLocalResetDisable}[getCheckBox '$param' $ps($param) $prn][getCheckBox '$param' $ps($param) $chn $prn]
" diff --git a/WebUI/www/config/easymodes/hmip-ps_0_master.tcl b/WebUI/www/config/easymodes/hmip-ps_0_master.tcl index ed71f160..c219cccc 100755 --- a/WebUI/www/config/easymodes/hmip-ps_0_master.tcl +++ b/WebUI/www/config/easymodes/hmip-ps_0_master.tcl @@ -28,25 +28,26 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { } append HTML_PARAMS(separate_1) "" + set chn 0 set prn 1 set param CYCLIC_INFO_MSG append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param CYCLIC_INFO_MSG_DIS append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param LOCAL_RESET_DISABLED append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "
\${stringTableCyclicInfoMsg}[getTextField $param $ps($param) $prn] [getMinMaxValueDescr $param][getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableCyclicInfoMsgDis}[getTextField $param $ps($param) $prn] [getMinMaxValueDescr $param][getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableLocalResetDisable}[getCheckBox '$param' $ps($param) $prn][getCheckBox '$param' $ps($param) $chn $prn]
" diff --git a/WebUI/www/config/easymodes/hmip-psm_0_master.tcl b/WebUI/www/config/easymodes/hmip-psm_0_master.tcl index ed71f160..c219cccc 100755 --- a/WebUI/www/config/easymodes/hmip-psm_0_master.tcl +++ b/WebUI/www/config/easymodes/hmip-psm_0_master.tcl @@ -28,25 +28,26 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { } append HTML_PARAMS(separate_1) "" + set chn 0 set prn 1 set param CYCLIC_INFO_MSG append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param CYCLIC_INFO_MSG_DIS append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param LOCAL_RESET_DISABLED append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "
\${stringTableCyclicInfoMsg}[getTextField $param $ps($param) $prn] [getMinMaxValueDescr $param][getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableCyclicInfoMsgDis}[getTextField $param $ps($param) $prn] [getMinMaxValueDescr $param][getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableLocalResetDisable}[getCheckBox '$param' $ps($param) $prn][getCheckBox '$param' $ps($param) $chn $prn]
" diff --git a/WebUI/www/config/easymodes/hmip-swdo_0_master.tcl b/WebUI/www/config/easymodes/hmip-swdo_0_master.tcl index ed71f160..c219cccc 100755 --- a/WebUI/www/config/easymodes/hmip-swdo_0_master.tcl +++ b/WebUI/www/config/easymodes/hmip-swdo_0_master.tcl @@ -28,25 +28,26 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { } append HTML_PARAMS(separate_1) "" + set chn 0 set prn 1 set param CYCLIC_INFO_MSG append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param CYCLIC_INFO_MSG_DIS append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param LOCAL_RESET_DISABLED append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "
\${stringTableCyclicInfoMsg}[getTextField $param $ps($param) $prn] [getMinMaxValueDescr $param][getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableCyclicInfoMsgDis}[getTextField $param $ps($param) $prn] [getMinMaxValueDescr $param][getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableLocalResetDisable}[getCheckBox '$param' $ps($param) $prn][getCheckBox '$param' $ps($param) $chn $prn]
" diff --git a/WebUI/www/config/easymodes/hmip-wrc2_0_master.tcl b/WebUI/www/config/easymodes/hmip-wrc2_0_master.tcl index 3da671bb..19a7177b 100755 --- a/WebUI/www/config/easymodes/hmip-wrc2_0_master.tcl +++ b/WebUI/www/config/easymodes/hmip-wrc2_0_master.tcl @@ -28,11 +28,12 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { } append HTML_PARAMS(separate_1) "" + set chn 0 set prn 1 set param LOCAL_RESET_DISABLED append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "
\${stringTableLocalResetDisable}[getCheckBox '$param' $ps($param) $prn][getCheckBox '$param' $ps($param) $chn $prn]
" diff --git a/WebUI/www/config/easymodes/hmip-wth_0_master.tcl b/WebUI/www/config/easymodes/hmip-wth_0_master.tcl index f7499fda..e22c74c3 100755 --- a/WebUI/www/config/easymodes/hmip-wth_0_master.tcl +++ b/WebUI/www/config/easymodes/hmip-wth_0_master.tcl @@ -29,39 +29,40 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { append HTML_PARAMS(separate_1) "" + set chn 0 set prn 1 set param CYCLIC_INFO_MSG append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param CYCLIC_INFO_MSG_DIS append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param DAYLIGHT_SAVINGS_TIME append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param GLOBAL_BUTTON_LOCK append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" incr prn set param LOCAL_RESET_DISABLED append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "" append HTML_PARAMS(separate_1) "
\${stringTableCyclicInfoMsg}[getTextField $param $ps($param) $prn] [getMinMaxValueDescr $param][getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableCyclicInfoMsgDis}[getTextField $param $ps($param) $prn] [getMinMaxValueDescr $param][getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableDST}[getCheckBox '$param' $ps($param) $prn][getCheckBox '$param' $ps($param) $chn $prn]
\${stringTableGlobalButtonLock}[getCheckBox '$param' $ps($param) $prn][getCheckBox '$param' $ps($param) $chn $prn]
\${stringTableLocalResetDisable}[getCheckBox '$param' $ps($param) $prn][getCheckBox '$param' $ps($param) $chn $prn]
" diff --git a/WebUI/www/config/easymodes/js/CC.js b/WebUI/www/config/easymodes/js/CC.js index a3ce31d6..f3d19695 100755 --- a/WebUI/www/config/easymodes/js/CC.js +++ b/WebUI/www/config/easymodes/js/CC.js @@ -307,7 +307,7 @@ self.isEcoLTComfort = function(elmName) { errorMsg = translateKey("errorComfortLTEco"), fadeOutTime = 3500; - console.log("comfValIsValid: " + comfValIsValid + " - ecoValIsValid: " + ecoValIsValid); + //console.log("comfValIsValid: " + comfValIsValid + " - ecoValIsValid: " + ecoValIsValid); switch (elmType) { case "COMFORT": diff --git a/WebUI/www/config/easymodes/js/HmIP.js b/WebUI/www/config/easymodes/js/HmIP.js index df8cc200..184439dd 100755 --- a/WebUI/www/config/easymodes/js/HmIP.js +++ b/WebUI/www/config/easymodes/js/HmIP.js @@ -16,7 +16,7 @@ HmIpTest = function(sTime) { result = parseInt(tmpVal), remainder = (tmpVal * 100) % 100; // Nachkommastellen - console.log("val: " + val + " - result: " + result + " - remainder: " + remainder); + //console.log("val: " + val + " - result: " + result + " - remainder: " + remainder); }); }; diff --git a/WebUI/www/config/easymodes/js/ic_functions.js b/WebUI/www/config/easymodes/js/ic_functions.js index b95d00a1..f508902a 100755 --- a/WebUI/www/config/easymodes/js/ic_functions.js +++ b/WebUI/www/config/easymodes/js/ic_functions.js @@ -1180,26 +1180,77 @@ WEATHER_change_thres = function(id) WEATHER_check_dir = function() { + var newSensor = "HM-WDS100-C6-O-2"; + var sensorTypeDesc = jQuery("#weatherSensor").val(); + var selectedWindDirection = jQuery("[name=\"subset_1_1\"]").prop("selectedIndex"); + var ein; var aus; //1 - - if (switch_dir) - { - //ein = document.createTextNode("Einschaltschwelle"); - ein = document.createTextNode(translateKey("upperStormThreshold")); - //aus = document.createTextNode("Ausschaltschwelle"); - aus = document.createTextNode(translateKey("lowerStormThreshold")); + + if (sensorTypeDesc != newSensor) { + if (switch_dir) { + //ein = document.createTextNode("Einschaltschwelle"); + ein = document.createTextNode(translateKey("upperStormThreshold")); + //aus = document.createTextNode("Ausschaltschwelle"); + aus = document.createTextNode(translateKey("lowerStormThreshold")); + } + else { + //ein = document.createTextNode("Ausschaltschwelle"); + ein = document.createTextNode(translateKey("lowerStormThreshold")); + //aus = document.createTextNode("Einschaltschwelle"); + aus = document.createTextNode(translateKey("upperStormThreshold")); + } + } else { + // new Sensor + var ctON = jQuery("[name=\"SHORT_CT_ON\"]").prop("selectedIndex"); + var ctOFF = jQuery("[name=\"SHORT_CT_OFF\"]").prop("selectedIndex"); + + if (switch_dir == 1) { + //ein = document.createTextNode("Einschaltschwelle"); + ein = document.createTextNode(translateKey("upperStormThreshold")); + //aus = document.createTextNode("Ausschaltschwelle"); + aus = document.createTextNode(translateKey("lowerStormThreshold")); + $('ein').replaceChild(ein, $('ein').firstChild); + $('aus').replaceChild(aus, $('aus').firstChild); + return; + } + else if (switch_dir == 0) { + //ein = document.createTextNode("Ausschaltschwelle"); + ein = document.createTextNode(translateKey("lowerStormThreshold")); + //aus = document.createTextNode("Einschaltschwelle"); + aus = document.createTextNode(translateKey("upperStormThreshold")); + $('ein').replaceChild(ein, $('ein').firstChild); + $('aus').replaceChild(aus, $('aus').firstChild); + return; + } + + // X GE LO = 0 + // X GE HI = 1 + // X LT LO = 2 + // X LT HI = 3 + // Starker Wind EIN, schwacher Wind AUS / oder EIN nur bei starkem Wind, nicht aus (2. Profil) + if ((ctON == 2 && ctOFF == 1) || (ctON == 1 && ctOFF == 1)) { + //ein = document.createTextNode("Einschaltschwelle"); + ein = document.createTextNode(translateKey("upperStormThreshold")); + //aus = document.createTextNode("Ausschaltschwelle"); + aus = document.createTextNode(translateKey("lowerStormThreshold")); + } + // Starker Wind AUS, schwacher Wind EIN + if (ctON == 1 && ctOFF == 2) { + //ein = document.createTextNode("Ausschaltschwelle"); + ein = document.createTextNode(translateKey("lowerStormThreshold")); + //aus = document.createTextNode("Einschaltschwelle"); + aus = document.createTextNode(translateKey("upperStormThreshold")); + } + + + } - else - { - //ein = document.createTextNode("Ausschaltschwelle"); - ein = document.createTextNode(translateKey("lowerStormThreshold")); - //aus = document.createTextNode("Einschaltschwelle"); - aus = document.createTextNode(translateKey("upperStormThreshold")); - } - $('ein').replaceChild(ein, $('ein').firstChild); - $('aus').replaceChild(aus, $('aus').firstChild); + try { + $('ein').replaceChild(ein, $('ein').firstChild); + $('aus').replaceChild(aus, $('aus').firstChild); + } catch (e) {} }; WEATHER_check_expert = function() diff --git a/WebUI/www/config/easymodes/ks550_ch_link.tcl b/WebUI/www/config/easymodes/ks550_ch_link.tcl index 94af394e..6e3d31b1 100755 --- a/WebUI/www/config/easymodes/ks550_ch_link.tcl +++ b/WebUI/www/config/easymodes/ks550_ch_link.tcl @@ -1,11 +1,11 @@ #!/bin/tclsh source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] -set PROFILES_MAP(0) "Experte" -#set PROFILES_MAP(1) "Sturmschwelle" -set PROFILES_MAP(1) "\${weatherProfile1}" +set PROFILES_MAP(0) "Experte" +#set PROFILES_MAP(1) "Sturmschwelle" +set PROFILES_MAP(1) "\${weatherProfile1}" -set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_HINT) 0 set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" set PROFILE_0(UI_TEMPLATE) "Expertenprofil" @@ -13,104 +13,104 @@ set range {1 2 5 12 15 25 29 39 50 62 75 89 103 118} set PROFILE_1(STORM_UPPER_THRESHOLD) $range set PROFILE_1(STORM_LOWER_THRESHOLD) $range set PROFILE_1(UI_DESCRIPTION) "
\${windInBeaufort}" -set PROFILE_1(UI_TEMPLATE) "Windstärke in Beaufort" -set PROFILE_1(UI_HINT) 1 +set PROFILE_1(UI_TEMPLATE) "Windstärke in Beaufort" +set PROFILE_1(UI_HINT) 1 set multilingual 1 proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { - global dev_descr_sender dev_descr_receiver sender_address - set ACTOR $dev_descr_receiver(TYPE) - # Kanal aus der Senderaddresse entfernen, aus EDD00001234:1 wird EDD00001234 - set sender_addr [string toupper [string range $sender_address 0 [expr [string first ":" $sender_address] -1] ]] - catch {puts ""} - catch {puts ""} + global dev_descr_sender dev_descr_receiver sender_address + set ACTOR $dev_descr_receiver(TYPE) + # Kanal aus der Senderaddresse entfernen, aus EDD00001234:1 wird EDD00001234 + set sender_addr [string toupper [string range $sender_address 0 [expr [string first ":" $sender_address] -1] ]] + catch {puts ""} + catch {puts ""} - # bei Verknuepfung Wetterstation - Kombisensor sinnlos - if {$ACTOR != "WS_CS"} { - - upvar PROFILES_MAP PROFILES_MAP - upvar HTML_PARAMS HTML_PARAMS - upvar PROFILE_PNAME PROFILE_PNAME - upvar $pps ps - upvar $pps_descr ps_descr + # bei Verknuepfung Wetterstation - Kombisensor sinnlos + if {$ACTOR != "WS_CS"} { + + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr - - foreach pro [array names PROFILES_MAP] { - upvar PROFILE_$pro PROFILE_$pro - } - - set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] - append HTML_PARAMS(separate_0) [cmd_link_paramset2 $iface $address ps_descr ps "LINK" ${special_input_id}_0] - - array_clear options - set options(1) "\${windForce0}" - set options(2) "\${windForce1}" - set options(5) "\${windForce2}" - set options(12) "\${windForce3}" - set options(25) "\${windForce4}" - set options(29) "\${windForce5}" - set options(39) "\${windForce6}" - set options(50) "\${windForce7}" - set options(62) "\${windForce8}" - set options(75) "\${windForce9}" - set options(89) "\${windForce10}" - set options(103) "\${windForce11}" - set options(118) "\${windForce12}" + append HTML_PARAMS(separate_0) [cmd_link_paramset2 $iface $address ps_descr ps "LINK" ${special_input_id}_0] + + array_clear options + set options(1) "\${windForce0}" + set options(2) "\${windForce1}" + set options(5) "\${windForce2}" + set options(12) "\${windForce3}" + set options(25) "\${windForce4}" + set options(29) "\${windForce5}" + set options(39) "\${windForce6}" + set options(50) "\${windForce7}" + set options(62) "\${windForce8}" + set options(75) "\${windForce9}" + set options(89) "\${windForce10}" + set options(103) "\${windForce11}" + set options(118) "\${windForce12}" - # obere Sturmschwelle - - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "
" - append HTML_PARAMS(separate_1) $PROFILE_1(UI_DESCRIPTION) - append HTML_PARAMS(separate_1) "
" - #append HTML_PARAMS(separate_1) "Einschaltschwelle" - append HTML_PARAMS(separate_1) "\${upperStormThreshold}" - append HTML_PARAMS(separate_1) "" + # obere Sturmschwelle + + append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "
" + append HTML_PARAMS(separate_1) $PROFILE_1(UI_DESCRIPTION) + append HTML_PARAMS(separate_1) "
" + #append HTML_PARAMS(separate_1) "Einschaltschwelle" + append HTML_PARAMS(separate_1) "\${upperStormThreshold}" + append HTML_PARAMS(separate_1) "" - if {$cur_profile == 1} then { - append HTML_PARAMS(separate_1) "
" - append HTML_PARAMS(separate_1) [get_ComboBox options STORM_UPPER_THRESHOLD separate_${special_input_id}_1_1 ps STORM_UPPER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_1',1);\""] - append HTML_PARAMS(separate_1) "
" - } else { - append HTML_PARAMS(separate_1) [get_ComboBox options STORM_UPPER_THRESHOLD separate_${special_input_id}_1_1 PROFILE_1 STORM_UPPER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_1',1);\""] - append HTML_PARAMS(separate_1) "" - } - append HTML_PARAMS(separate_1) "
 

" - append HTML_PARAMS(separate_1) "
" - - # untere Sturmschwelle - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "
" - #append HTML_PARAMS(separate_1) "Ausschaltschwelle" - append HTML_PARAMS(separate_1) "\${lowerStormThreshold}" - append HTML_PARAMS(separate_1) - append HTML_PARAMS(separate_1) "" - - if {$cur_profile == 1} then { - append HTML_PARAMS(separate_1) "
" - append HTML_PARAMS(separate_1) [get_ComboBox options STORM_LOWER_THRESHOLD separate_${special_input_id}_1_2 ps STORM_LOWER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_2',1);\""] - append HTML_PARAMS(separate_1) "
" - } else { - append HTML_PARAMS(separate_1) [get_ComboBox options STORM_LOWER_THRESHOLD separate_${special_input_id}_1_2 PROFILE_1 STORM_LOWER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_2',1);\""] - append HTML_PARAMS(separate_1) "" - } - append HTML_PARAMS(separate_1) "
 " - append HTML_PARAMS(separate_1) "
" - } else { - puts "" - } + if {$cur_profile == 1} then { + append HTML_PARAMS(separate_1) "
" + append HTML_PARAMS(separate_1) [get_ComboBox options STORM_UPPER_THRESHOLD separate_${special_input_id}_1_1 ps STORM_UPPER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_1',1);\""] + append HTML_PARAMS(separate_1) "
" + } else { + append HTML_PARAMS(separate_1) [get_ComboBox options STORM_UPPER_THRESHOLD separate_${special_input_id}_1_1 PROFILE_1 STORM_UPPER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_1',1);\""] + append HTML_PARAMS(separate_1) "" + } + append HTML_PARAMS(separate_1) "
 

" + append HTML_PARAMS(separate_1) "
" + + # untere Sturmschwelle + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "
" + #append HTML_PARAMS(separate_1) "Ausschaltschwelle" + append HTML_PARAMS(separate_1) "\${lowerStormThreshold}" + append HTML_PARAMS(separate_1) + append HTML_PARAMS(separate_1) "" + + if {$cur_profile == 1} then { + append HTML_PARAMS(separate_1) "
" + append HTML_PARAMS(separate_1) [get_ComboBox options STORM_LOWER_THRESHOLD separate_${special_input_id}_1_2 ps STORM_LOWER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_2',1);\""] + append HTML_PARAMS(separate_1) "
" + } else { + append HTML_PARAMS(separate_1) [get_ComboBox options STORM_LOWER_THRESHOLD separate_${special_input_id}_1_2 PROFILE_1 STORM_LOWER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_2',1);\""] + append HTML_PARAMS(separate_1) "" + } + append HTML_PARAMS(separate_1) "
 " + append HTML_PARAMS(separate_1) "
" + } else { + puts "" + } - # die Texte der Platzhalter einlesen - puts "" - + # die Texte der Platzhalter einlesen + puts "" + #puts "" } diff --git a/WebUI/www/config/easymodes/md_ch_master.tcl b/WebUI/www/config/easymodes/md_ch_master.tcl index 4bd41ff7..fd80418c 100755 --- a/WebUI/www/config/easymodes/md_ch_master.tcl +++ b/WebUI/www/config/easymodes/md_ch_master.tcl @@ -10,116 +10,116 @@ set PROFILE_PNAME(D) "MOTION_DETECTOR|BRIGHTNESS_FILTER" set PROFILE_PNAME(E) "MOTION_DETECTOR|LED_ONTIME" set PROFILE_PNAME(F) "\${motionDetectorSendMotionWithinDetectionSpan}" -set PROFILES_MAP(0) "Experte" -set PROFILES_MAP(1) "TheOneAndOnlyEasyMode" +set PROFILES_MAP(0) "Experte" +set PROFILES_MAP(1) "TheOneAndOnlyEasyMode" proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { - puts "" - puts "" - - global iface_url - - upvar PROFILES_MAP PROFILES_MAP - upvar HTML_PARAMS HTML_PARAMS - upvar PROFILE_PNAME PROFILE_PNAME - upvar $pps ps - upvar $pps_descr ps_descr - - set url $iface_url($iface) - array set dev_descr [xmlrpc $url getParamset [list string $address] MASTER] - set capture_within_interval $dev_descr(CAPTURE_WITHIN_INTERVAL) + puts "" + puts "" + + global iface_url + + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + set url $iface_url($iface) + array set dev_descr [xmlrpc $url getParamset [list string $address] MASTER] + set capture_within_interval $dev_descr(CAPTURE_WITHIN_INTERVAL) set help_txt "\${motionDetectorHelp}" ### - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - - append HTML_PARAMS(separate_1) "" - - append HTML_PARAMS(separate_1) "" - - append HTML_PARAMS(separate_1) "" - - append HTML_PARAMS(separate_1) "" - } else { - append HTML_PARAMS(separate_1) "" - } - - - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - -# append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(A)\${mdTrigger}" - array_clear options - set options(1) "1" - set options(2) "2" - set options(3) "3" - set options(4) "4" - set options(5) "5" - set options(6) "6" - set options(7) "7" - set options(8) "8" - set options(9) "9" - set options(10) "10" - set options(11) "11" - set options(12) "12" - set options(13) "13" - set options(14) "14" - set options(15) "15" - append HTML_PARAMS(separate_1) [get_ComboBox options EVENT_FILTER_NUMBER separate_${special_input_id}_1 ps EVENT_FILTER_NUMBER "onchange=\"MD_init(\'separate_${special_input_id}_1\', 1, 15)\"" ] - append HTML_PARAMS(separate_1) " Sensor-Impulsen innerhalb " - append HTML_PARAMS(separate_1) "" - - array_clear options - set options(0.5) "0.5" - set options(1.0) "1.0" - set options(1.5) "1.5" - set options(2.0) "2.0" - set options(2.5) "2.5" - set options(3.0) "3.0" - set options(3.5) "3.5" - set options(4.0) "4.0" - set options(4.5) "4.5" - set options(5.0) "5.0" - set options(5.5) "5.5" - set options(6.0) "6.0" - set options(6.5) "6.5" - set options(7.0) "7.0" - set options(7.5) "7.5" - append HTML_PARAMS(separate_1) [get_ComboBox options EVENT_FILTER_PERIOD separate_${special_input_id}_2 ps EVENT_FILTER_PERIOD] - append HTML_PARAMS(separate_1) " Sekunden
\${motionDetectorOnAirIntervalMode}" - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) " " - append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(C)" - array_clear options - set options(0) "15s" - set options(1) "30s" - set options(2) "60s" - set options(3) "120s" - set options(4) "240s" - append HTML_PARAMS(separate_1) [get_ComboBox options MIN_INTERVAL separate_${special_input_id}_4 ps MIN_INTERVAL ] - append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(F)" - if {$capture_within_interval == 1} { - append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(D)" - array_clear options - set options(0) "1" - set options(1) "2" - set options(2) "3" - set options(3) "4" - set options(4) "5" - set options(5) "6" - set options(6) "7" - set options(7) "8" - append HTML_PARAMS(separate_1) [get_ComboBox options BRIGHTNESS_FILTER separate_${special_input_id}_6 ps BRIGHTNESS_FILTER "onchange=\"MD_init(\'separate_${special_input_id}_6\', 0, 7)\""] - append HTML_PARAMS(separate_1) " \${motionDetectorMinumumOfLastValuesA} \${motionDetectorMinumumOfLastValuesB1} [expr $ps(BRIGHTNESS_FILTER) + 1] \${motionDetectorMinumumOfLastValuesC} \${motionDetectorMinumumOfLastValuesD}
" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(E)" - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) " s (0 - 1.27)

" + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + } else { + append HTML_PARAMS(separate_1) "" + } + + + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + +# append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(A)\${mdTrigger}" + array_clear options + set options(1) "1" + set options(2) "2" + set options(3) "3" + set options(4) "4" + set options(5) "5" + set options(6) "6" + set options(7) "7" + set options(8) "8" + set options(9) "9" + set options(10) "10" + set options(11) "11" + set options(12) "12" + set options(13) "13" + set options(14) "14" + set options(15) "15" + append HTML_PARAMS(separate_1) [get_ComboBox options EVENT_FILTER_NUMBER separate_${special_input_id}_1 ps EVENT_FILTER_NUMBER "onchange=\"MD_init(\'separate_${special_input_id}_1\', 1, 15)\"" ] + append HTML_PARAMS(separate_1) " Sensor-Impulsen innerhalb " + append HTML_PARAMS(separate_1) "" + + array_clear options + set options(0.5) "0.5" + set options(1.0) "1.0" + set options(1.5) "1.5" + set options(2.0) "2.0" + set options(2.5) "2.5" + set options(3.0) "3.0" + set options(3.5) "3.5" + set options(4.0) "4.0" + set options(4.5) "4.5" + set options(5.0) "5.0" + set options(5.5) "5.5" + set options(6.0) "6.0" + set options(6.5) "6.5" + set options(7.0) "7.0" + set options(7.5) "7.5" + append HTML_PARAMS(separate_1) [get_ComboBox options EVENT_FILTER_PERIOD separate_${special_input_id}_2 ps EVENT_FILTER_PERIOD] + append HTML_PARAMS(separate_1) " Sekunden
\${motionDetectorOnAirIntervalMode}" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) " " + append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(C)" + array_clear options + set options(0) "15s" + set options(1) "30s" + set options(2) "60s" + set options(3) "120s" + set options(4) "240s" + append HTML_PARAMS(separate_1) [get_ComboBox options MIN_INTERVAL separate_${special_input_id}_4 ps MIN_INTERVAL ] + append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(F)" + if {$capture_within_interval == 1} { + append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(D)" + array_clear options + set options(0) "1" + set options(1) "2" + set options(2) "3" + set options(3) "4" + set options(4) "5" + set options(5) "6" + set options(6) "7" + set options(7) "8" + append HTML_PARAMS(separate_1) [get_ComboBox options BRIGHTNESS_FILTER separate_${special_input_id}_6 ps BRIGHTNESS_FILTER "onchange=\"MD_init(\'separate_${special_input_id}_6\', 0, 7)\""] + append HTML_PARAMS(separate_1) " \${motionDetectorMinumumOfLastValuesA} \${motionDetectorMinumumOfLastValuesB1} [expr $ps(BRIGHTNESS_FILTER) + 1] \${motionDetectorMinumumOfLastValuesC} \${motionDetectorMinumumOfLastValuesD}
" + append HTML_PARAMS(separate_1) "" set param TRANSMIT_TRY_MAX if {[catch {set tmp $ps($param)}] == 0} { @@ -129,16 +129,16 @@ proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { append HTML_PARAMS(separate_1) "" } - append HTML_PARAMS(separate_1) "
$PROFILE_PNAME(E)" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) " s (0 - 1.27)

" + append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "" - append HTML_PARAMS(separate_1) "
$help_txt
" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "
$help_txt
" - append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" } constructor diff --git a/WebUI/www/config/easymodes/powermeter_iec_ch1_master.tcl b/WebUI/www/config/easymodes/powermeter_iec_ch1_master.tcl new file mode 100755 index 00000000..4afbc4d7 --- /dev/null +++ b/WebUI/www/config/easymodes/powermeter_iec_ch1_master.tcl @@ -0,0 +1,217 @@ +#!/bin/tclsh + +source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] + +proc getDefaultValue {psDescr param} { + upvar psDescr descr + array_clear param_descr + array set param_descr $descr($param) + set default $param_descr(DEFAULT) + return "$default" +} + +proc getUnit {psDescr param} { + upvar psDescr descr + array_clear param_descr + array set param_descr $descr($param) + set unit $param_descr(UNIT) + return "$unit" +} + +proc getMinMaxValueDescr {psDescr param} { + upvar psDescr descr + array_clear param_descr + array set param_descr $descr($param) + set min $param_descr(MIN) + set max $param_descr(MAX) + + # Limit float to 2 decimal places + if {[llength [split $min "."]] == 2} { + set min [format {%1.2f} $min] + set max [format {%1.2f} $max] + } + return "($min - $max)" +} + +proc getTextField {psDescr type param value inputId} { + upvar psDescr descr + array_clear param_descr + array set param_descr $descr($param) + + set elemId '$inputId' + + set s "" + return $s +} + +proc getComboBox {param prn special_input_id} { + global psDescr + upvar ps ps + set CHANNEL "CHANNEL" + + array_clear options + set options(0) "\${PowerMeterIGLSensorGAS}" + set options(1) "\${PowerMeterIGLSensorIR}" + set options(2) "\${PowerMeterIGLSensorLED}" + set options(3) "\${PowerMeterIECSensor}" + set options(4) "\${PowerMeterIGLSensorUnknown}" + + append s "" + append s "[get_ComboBox options $param separate_${special_input_id}_$prn ps $param]" + append s "" + return $s +} + +catch {unset internalKey} + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global env iface_url psDescr + + #upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + #upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + puts "" + set chn [lindex [split $special_input_id _] 1] + set CHANNEL "CHANNEL" + + set hlpBoxWidth 450 + set hlpBoxHeight 160 + + array set psDescr [xmlrpc $iface_url($iface) getParamsetDescription [list string $address] [list string MASTER]] + + append HTML_PARAMS(separate_1) "" + + set comment { + set prn 1 + # This parameter will be removed + set param TX_MINDELAY + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + } + + set prn 1 + set param TX_THRESHOLD_POWER + + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + if {$ps($param) == "0.00"} { + append HTML_PARAMS(separate_1) "" + } + + incr prn + set param METER_TYPE + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) [getComboBox $param $prn $special_input_id] + append HTML_PARAMS(separate_1) "" + + incr prn + set param METER_CONSTANT_GAS + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param METER_CONSTANT_IR + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param METER_SENSIBILITY_IR + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param METER_CONSTANT_LED + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param POWER_STRING + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param ENERGY_COUNTER_STRING + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "
\${stringTableTxMinDelay}[getTextField psDescr $CHANNEL $param $ps($param) separate_${special_input_id}_$prn] [getUnit psDescr $param] [getMinMaxValueDescr psDescr $param]
\${PowerMeterIGLMeterType}
" + + append HTML_PARAMS(separate_1) "" +} + +constructor + + diff --git a/WebUI/www/config/easymodes/powermeter_iec_ch2_master.tcl b/WebUI/www/config/easymodes/powermeter_iec_ch2_master.tcl new file mode 100755 index 00000000..b7a2f85e --- /dev/null +++ b/WebUI/www/config/easymodes/powermeter_iec_ch2_master.tcl @@ -0,0 +1,186 @@ +#!/bin/tclsh + +source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] + +proc getDefaultValue {psDescr param} { + upvar psDescr descr + array_clear param_descr + array set param_descr $descr($param) + set default $param_descr(DEFAULT) + return "$default" +} + +proc getUnit {psDescr param} { + upvar psDescr descr + array_clear param_descr + array set param_descr $descr($param) + set unit $param_descr(UNIT) + return "$unit" +} + +proc getMinMaxValueDescr {psDescr param} { + upvar psDescr descr + array_clear param_descr + array set param_descr $descr($param) + set min $param_descr(MIN) + set max $param_descr(MAX) + + # Limit float to 2 decimal places + if {[llength [split $min "."]] == 2} { + set min [format {%1.2f} $min] + set max [format {%1.2f} $max] + } + return "($min - $max)" +} + +proc getTextField {psDescr type param value inputId} { + upvar psDescr descr + array_clear param_descr + array set param_descr $descr($param) + + set elemId '$inputId' + + set s "" + return $s +} + +proc getComboBox {param prn special_input_id} { + global psDescr + upvar ps ps + set CHANNEL "CHANNEL" + + array_clear options + set options(0) "\${PowerMeterIGLSensorGAS}" + set options(1) "\${PowerMeterIGLSensorIR}" + set options(2) "\${PowerMeterIGLSensorLED}" + set options(3) "\${PowerMeterIECSensor}" + set options(4) "\${PowerMeterIGLSensorUnknown}" + + append s "" + append s "[get_ComboBox options $param separate_${special_input_id}_$prn ps $param]" + append s "" + return $s +} + +catch {unset internalKey} + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global env iface_url psDescr + + #upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + #upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + puts "" + set chn [lindex [split $special_input_id _] 1] + set CHANNEL "CHANNEL" + + set hlpBoxWidth 450 + set hlpBoxHeight 160 + + array set psDescr [xmlrpc $iface_url($iface) getParamsetDescription [list string $address] [list string MASTER]] + + append HTML_PARAMS(separate_1) "
" + append HTML_PARAMS(separate_1) "" + + set comment { + # This parameter will be removed + set prn 1 + set param TX_MINDELAY + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + } + + set prn 1 + set param TX_THRESHOLD_POWER + + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + if {$ps($param) == "0.00"} { + append HTML_PARAMS(separate_1) "" + } + + incr prn + set param METER_TYPE + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) [getComboBox $param $prn $special_input_id] + append HTML_PARAMS(separate_1) "" + + incr prn + set param POWER_STRING + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param ENERGY_COUNTER_STRING + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "
\${stringTableTxMinDelay}[getTextField psDescr $CHANNEL $param $ps($param) separate_${special_input_id}_$prn] [getUnit psDescr $param] [getMinMaxValueDescr psDescr $param]
\${stringTablePowerMeterTxThresholdPower}" + if {$ps($param) != "0.00"} { + set thresholdVal [format %.2f $ps($param)] + set notUsed "" + set used "selected=\"selected\"" + } else { + set thresholdVal "0.00" + set notUsed "selected=\"selected\"" + set used "" + } + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "[getTextField psDescr $CHANNEL $param [format "%.2f" $ps($param)] separate_${special_input_id}_$prn] [getUnit psDescr $param] [getMinMaxValueDescr psDescr $param]" + append HTML_PARAMS(separate_1) "
\${PowerMeterIGLMeterType}
" + append HTML_PARAMS(separate_1) "
" + + append HTML_PARAMS(separate_1) "" +} + +constructor + + diff --git a/WebUI/www/config/easymodes/powermeter_iec_dev_master.tcl b/WebUI/www/config/easymodes/powermeter_iec_dev_master.tcl new file mode 100755 index 00000000..53e2f631 --- /dev/null +++ b/WebUI/www/config/easymodes/powermeter_iec_dev_master.tcl @@ -0,0 +1,159 @@ +#!/bin/tclsh +#Kanal-EasyMode! +source [file join /www/config/easymodes/em_common.tcl] + +set PROFILES_MAP(0) "Experte" +set PROFILES_MAP(1) "TheOneAndOnlyEasyMode" + +proc getHelpIcon {topic x y} { + set ret "" + return $ret +} + +proc getCheckBox {param value prn} { + set checked "" + if { $value } then { set checked "checked=\"checked\"" } + set s "" + return $s +} + +proc getComboBox {arOptions prn param val} { + upvar $arOptions options + + set s "" + return $s +} + +proc getMinMaxValueDescr {param} { + global psDescr + upvar psDescr descr + array_clear param_descr + array set param_descr $descr($param) + set min $param_descr(MIN) + set max $param_descr(MAX) + + # Limit float to 2 decimal places + if {[llength [split $min "."]] == 2} { + set min [format {%1.2f} $min] + set max [format {%1.2f} $max] + } + return "($min - $max)" +} + +proc getTextField {prn param val} { + global psDescr + upvar psDescr descr + array_clear param_descr + array set param_descr $descr($param) + set minValue [format {%1.1f} $param_descr(MIN)] + set maxValue [format {%1.1f} $param_descr(MAX)] + + set elemId 'separate_DEVICE\_$prn' + # Limit float to 2 decimal places + if {[llength [split $val "."]] == 2} { + set val [format {%1.2f} $val] + } + + set s "" + return $s +} + +puts "" + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + global iface_url psDescr + + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + + set hlpBoxWidth 450 + set hlpBoxHeight 160 + + puts "" + + array set psDescr [xmlrpc $iface_url($iface) getParamsetDescription [list string $address] [list string MASTER]] + + append HTML_PARAMS(separate_1) "" + set prn 1 + set param LOCAL_RESET_DISABLE + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param BAUDRATE + append HTML_PARAMS(separate_1) "" + array_clear options + set options(0) "\${optionBaud300}" + set options(1) "\${optionBaud600}" + set options(2) "\${optionBaud1200}" + set options(3) "\${optionBaud2400}" + set options(4) "\${optionBaud4800}" + set options(5) "\${optionBaud9600}" + set options(6) "\${optionBaud19200}" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param SERIAL_FORMAT + append HTML_PARAMS(separate_1) "" + array_clear options + set options(0) "\${PowerMeterSerialFormatOption0}" + set options(1) "\${PowerMeterSerialFormatOption1}" + set options(2) "\${PowerMeterSerialFormatOption2}" + set options(3) "\${PowerMeterSerialFormatOption3}" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param METER_POWERMODE + append HTML_PARAMS(separate_1) "" + array_clear options + set options(0) "\${PowerMeterPowerModeOptionMains}" + set options(1) "\${PowerMeterPowerModeOptionBattery}" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param METER_PROTOCOLMODE + append HTML_PARAMS(separate_1) "" + array_clear options + set options(0) "\${PowerMeterProtocolModeModeOptionA}" + set options(1) "\${PowerMeterProtocolModeModeOptionB}" + set options(2) "\${PowerMeterProtocolModeModeOptionC}" + set options(3) "\${PowerMeterProtocolModeModeOptionD}" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param SAMPLES_PER_CYCLE + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "
\${stringTableLocalResetDisable}" + append HTML_PARAMS(separate_1) "[getCheckBox '$param' $ps($param) $prn]" + append HTML_PARAMS(separate_1) "
\${PowerMeterBaudRate}[getComboBox options $prn '$param' $ps($param)]
\${PowerMeterSerialFormat}[getComboBox options $prn '$param' $ps($param)][getHelpIcon $param $hlpBoxWidth $hlpBoxHeight]
\${PowerMeterPowerMode}[getComboBox options $prn '$param' $ps($param)]
\${PowerMeterProtocolMode}[getComboBox options $prn '$param' $ps($param)]
\${PowerMeterSamplesPerCycle}[getTextField $prn $param $ps($param)] [getMinMaxValueDescr $param][getHelpIcon $param $hlpBoxWidth $hlpBoxHeight]
" + +} +constructor diff --git a/WebUI/www/config/easymodes/sensor_ch_master.tcl b/WebUI/www/config/easymodes/sensor_ch_master.tcl index c355c912..001a8904 100755 --- a/WebUI/www/config/easymodes/sensor_ch_master.tcl +++ b/WebUI/www/config/easymodes/sensor_ch_master.tcl @@ -6,37 +6,37 @@ source [file join $env(DOCUMENT_ROOT) config/easymodes/EnterFreeValue.tcl] # set PROFILE_PNAME(Lichthupe) "Wie oft soll die Lichthupe zum Auslösen des Aktors betätigt werden? " set PROFILE_PNAME(Lichthupe) "\${triggerNecessary}" -set PROFILES_MAP(0) "Experte" -set PROFILES_MAP(1) "TheOneAndOnlyEasyMode" +set PROFILES_MAP(0) "Experte" +set PROFILES_MAP(1) "TheOneAndOnlyEasyMode" proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { - puts "" - - upvar PROFILES_MAP PROFILES_MAP - upvar HTML_PARAMS HTML_PARAMS - upvar PROFILE_PNAME PROFILE_PNAME - upvar $pps ps - upvar $pps_descr ps_descr + puts "" + + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr - array set arr_pulse "" + array set arr_pulse "" puts "" - - append HTML_PARAMS(separate_1) "
" - + append HTML_PARAMS(separate_1) "" + - EnterPulse ${special_input_id} ps_descr $pulse_values + EnterPulse ${special_input_id} ps_descr $pulse_values puts "" diff --git a/WebUI/www/config/easymodes/switch_ch_link.tcl b/WebUI/www/config/easymodes/switch_ch_link.tcl index 642fa22b..7fdec39d 100755 --- a/WebUI/www/config/easymodes/switch_ch_link.tcl +++ b/WebUI/www/config/easymodes/switch_ch_link.tcl @@ -11,16 +11,16 @@ catch {puts ""} if {[catch {set x $dev_descr_sender(TYPE)}] == 0} { - - if {[catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/$ACTOR/$x.tcl]}] != 0} { - catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/NO_PROFILE.tcl]} - } + + if {[catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/$ACTOR/$x.tcl]}] != 0} { + catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/NO_PROFILE.tcl]} + } } else { - - if {[catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/$ACTOR/$dev_descr_sender_tmp.tcl]}] != 0} { - catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/NO_PROFILE.tcl]} - } + + if {[catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/$ACTOR/$dev_descr_sender_tmp.tcl]}] != 0} { + catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/NO_PROFILE.tcl]} + } } diff --git a/WebUI/www/config/easymodes/switch_panic_ch_link.tcl b/WebUI/www/config/easymodes/switch_panic_ch_link.tcl new file mode 100755 index 00000000..642fa22b --- /dev/null +++ b/WebUI/www/config/easymodes/switch_panic_ch_link.tcl @@ -0,0 +1,26 @@ +#!/bin/tclsh + +# dev_descr_sender(TYPE) enthaelt den Sendertype (KEY, WATERDETECTIONSENSOR usw.) + +global dev_descr_receiver dev_descr_sender + +set multilingual 1 +set ACTOR $dev_descr_receiver(TYPE) + +catch {puts ""} +catch {puts ""} + +if {[catch {set x $dev_descr_sender(TYPE)}] == 0} { + + if {[catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/$ACTOR/$x.tcl]}] != 0} { + catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/NO_PROFILE.tcl]} + } + +} else { + + if {[catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/$ACTOR/$dev_descr_sender_tmp.tcl]}] != 0} { + catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/NO_PROFILE.tcl]} + } +} + + diff --git a/WebUI/www/config/easymodes/switch_sensor_ch_link.tcl b/WebUI/www/config/easymodes/switch_sensor_ch_link.tcl new file mode 100755 index 00000000..642fa22b --- /dev/null +++ b/WebUI/www/config/easymodes/switch_sensor_ch_link.tcl @@ -0,0 +1,26 @@ +#!/bin/tclsh + +# dev_descr_sender(TYPE) enthaelt den Sendertype (KEY, WATERDETECTIONSENSOR usw.) + +global dev_descr_receiver dev_descr_sender + +set multilingual 1 +set ACTOR $dev_descr_receiver(TYPE) + +catch {puts ""} +catch {puts ""} + +if {[catch {set x $dev_descr_sender(TYPE)}] == 0} { + + if {[catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/$ACTOR/$x.tcl]}] != 0} { + catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/NO_PROFILE.tcl]} + } + +} else { + + if {[catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/$ACTOR/$dev_descr_sender_tmp.tcl]}] != 0} { + catch {source [file join $env(DOCUMENT_ROOT) config/easymodes/NO_PROFILE.tcl]} + } +} + + diff --git a/WebUI/www/config/easymodes/switch_senspan_ch_master.tcl b/WebUI/www/config/easymodes/switch_senspan_ch_master.tcl new file mode 100755 index 00000000..eb80e884 --- /dev/null +++ b/WebUI/www/config/easymodes/switch_senspan_ch_master.tcl @@ -0,0 +1,172 @@ +#!/bin/tclsh + +#Kanal-EasyMode! + +source [file join $env(DOCUMENT_ROOT) config/easymodes/etc/uiElements.tcl] +source [file join /www/config/easymodes/em_common.tcl] + +proc getComboBox {arOptions chn prn attrID} { + upvar $arOptions options + + set s "" + return $s +} + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global env iface_url psDescr + + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr psDescr + + upvar PROFILE_1 PROFILE_1 + set chn [lindex [split $special_input_id _] 1] + + puts "" + + + # Available parameters + #TRANSMIT_TRY_MAX + #STATUSINFO_MINDELAY + #STATUSINFO_RANDOM + #SOUND_ID + + + append HTML_PARAMS(separate_1) "" + + set prn 1 + set param TRANSMIT_TRY_MAX + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param STATUSINFO_MINDELAY + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param STATUSINFO_RANDOM + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + incr prn + set param SOUND_ID + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + array_clear options + for {set i 1} {$i <= 9} {incr i} { + set options($i) "\${signal} $i" + } + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + array_clear options + set options(0) "\${stringTableSignalToneLow}" + set options(1) "\${stringTableSignalToneMid}" + set options(2) "\${stringTableSignalToneHigh}" + set options(3) "\${stringTableSignalToneVeryHigh}" + + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + array_clear options + set options(0) "\${speedSlow}" + set options(1) "\${speedFast}" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "
\${stringTableTransmitTryMax}[getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableStatusInfoMinDelay}[getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableStatusInfoRandom}[getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${stringTableSoundID}[getTextField $param $ps($param) $chn $prn] [getMinMaxValueDescr $param]
\${soundID}[getComboBox options $chn $prn 'sound\_$chn'] 
\${pitch}[getComboBox options $chn $prn 'pitch\_$chn']
\${speed}[getComboBox options $chn $prn 'speed\_$chn']
" + + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + +} + +constructor + diff --git a/WebUI/www/config/easymodes/wds100_ch_link.tcl b/WebUI/www/config/easymodes/wds100_ch_link.tcl new file mode 100755 index 00000000..b480056f --- /dev/null +++ b/WebUI/www/config/easymodes/wds100_ch_link.tcl @@ -0,0 +1,171 @@ +#!/bin/tclsh +source [file join $env(DOCUMENT_ROOT) config/easymodes/em_common.tcl] + +set PROFILES_MAP(0) "Experte" +#set PROFILES_MAP(1) "Sturmschwelle" +set PROFILES_MAP(1) "\${weatherProfile1}" + +set PROFILE_0(UI_HINT) 0 +set PROFILE_0(UI_DESCRIPTION) "Expertenprofil" +set PROFILE_0(UI_TEMPLATE) "Expertenprofil" + +set range {1 2 5 12 15 25 29 39 50 62 75 89 103 118} +set PROFILE_1(STORM_UPPER_THRESHOLD) $range +set PROFILE_1(STORM_LOWER_THRESHOLD) $range +set PROFILE_1(UI_DESCRIPTION) "
\${windInBeaufort}" +set PROFILE_1(UI_TEMPLATE) "Windstärke in Beaufort" +set PROFILE_1(UI_HINT) 1 + +set multilingual 1 + +proc set_htmlParams {iface address pps pps_descr special_input_id peer_type} { + + global dev_descr_sender dev_descr_receiver sender_address + set ACTOR $dev_descr_receiver(TYPE) + set sender_addr $dev_descr_sender(PARENT) + catch {puts ""} + catch {puts ""} + + # bei Verknuepfung Wetterstation - Kombisensor sinnlos + if {$ACTOR != "WS_CS"} { + + upvar PROFILES_MAP PROFILES_MAP + upvar HTML_PARAMS HTML_PARAMS + upvar PROFILE_PNAME PROFILE_PNAME + upvar $pps ps + upvar $pps_descr ps_descr + + + foreach pro [array names PROFILES_MAP] { + upvar PROFILE_$pro PROFILE_$pro + } + + set cur_profile [get_cur_profile2 ps PROFILES_MAP PROFILE_TMP $peer_type] + + append HTML_PARAMS(separate_0) [cmd_link_paramset2 $iface $address ps_descr ps "LINK" ${special_input_id}_0] + + array_clear options + set options(1) "\${windForce0}" + set options(2) "\${windForce1}" + set options(5) "\${windForce2}" + set options(12) "\${windForce3}" + set options(25) "\${windForce4}" + set options(29) "\${windForce5}" + set options(39) "\${windForce6}" + set options(50) "\${windForce7}" + set options(62) "\${windForce8}" + set options(75) "\${windForce9}" + set options(89) "\${windForce10}" + set options(103) "\${windForce11}" + set options(118) "\${windForce12}" + + # obere Sturmschwelle + + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "
" + append HTML_PARAMS(separate_1) $PROFILE_1(UI_DESCRIPTION) + append HTML_PARAMS(separate_1) "
" + #append HTML_PARAMS(separate_1) "Einschaltschwelle" + append HTML_PARAMS(separate_1) "\${upperStormThreshold}" + append HTML_PARAMS(separate_1) "" + + if {$cur_profile == 1} then { + append HTML_PARAMS(separate_1) "
" + append HTML_PARAMS(separate_1) [get_ComboBox options STORM_UPPER_THRESHOLD separate_${special_input_id}_1_1 ps STORM_UPPER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_1',1);setActorConditions();\""] + append HTML_PARAMS(separate_1) "
" + } else { + append HTML_PARAMS(separate_1) [get_ComboBox options STORM_UPPER_THRESHOLD separate_${special_input_id}_1_1 PROFILE_1 STORM_UPPER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_1',1);setActorConditions();\""] + append HTML_PARAMS(separate_1) "" + } + append HTML_PARAMS(separate_1) "
 

" + append HTML_PARAMS(separate_1) "
" + + # untere Sturmschwelle + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "
" + #append HTML_PARAMS(separate_1) "Ausschaltschwelle" + append HTML_PARAMS(separate_1) "\${lowerStormThreshold}" + append HTML_PARAMS(separate_1) + append HTML_PARAMS(separate_1) "" + + if {$cur_profile == 1} then { + append HTML_PARAMS(separate_1) "
" + append HTML_PARAMS(separate_1) [get_ComboBox options STORM_LOWER_THRESHOLD separate_${special_input_id}_1_2 ps STORM_LOWER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_2',1);setActorConditions();\""] + append HTML_PARAMS(separate_1) "
" + } else { + append HTML_PARAMS(separate_1) [get_ComboBox options STORM_LOWER_THRESHOLD separate_${special_input_id}_1_2 PROFILE_1 STORM_LOWER_THRESHOLD "onchange=\"WEATHER_put_desc('separate_${special_input_id}_1_2',1);setActorConditions();\""] + append HTML_PARAMS(separate_1) "" + } + append HTML_PARAMS(separate_1) "
 " + append HTML_PARAMS(separate_1) "
" + } else { + puts "" + } + + # die Texte der Platzhalter einlesen + puts "" + + #puts "" + + # TODO /*Das funktioniert für eine Verknüpfung WEATHER - SWITCH + if {$dev_descr_sender(PARENT_TYPE) == "HM-WDS100-C6-O-2"} { + append HTML_PARAMS(separate_1) "" + append HTML_PARAMS(separate_1) "" + + append HTML_PARAMS(separate_1) "" + } +} + +constructor diff --git a/WebUI/www/config/ic_common.tcl b/WebUI/www/config/ic_common.tcl index 59e53cbd..15f671a6 100755 --- a/WebUI/www/config/ic_common.tcl +++ b/WebUI/www/config/ic_common.tcl @@ -23,10 +23,10 @@ set GL_FLAG_SENDER_UNKNOWN 0x4 set GL_FLAG_RECEIVER_UNKNOWN 0x8 set HTMLTITLE "HomeMatic Interne Konfiguration" -set INTERFACES_FILE "/etc/config/InterfacesList.xml" +set INTERFACES_FILE "/opt/hm/etc/config/InterfacesList.xml" if { ![info exists env(CONFIG_ROOT)] } { - set env(CONFIG_ROOT) "/etc/config" + set env(CONFIG_ROOT) "/opt/hm/etc/config" } set USERPROFILESPATH "$env(CONFIG_ROOT)/userprofiles" @@ -1210,15 +1210,15 @@ proc cmd_link_paramset2 {iface address pps_descr pps ps_type {pnr 0}} { array set sv $_sv set sv_value [expr $sv(VALUE) * $factor] - if {$ps_type == "MASTER" && $parent_type == "" } then { - set v "${param_id}=$sv(ID)" - } elseif {$ps_type == "MASTER" || $ps_type == "VALUES"} then { - set v "$channel_type|${param_id}=$sv(ID)" - } else { - set v $sv(ID) - } + if {$ps_type == "MASTER" && $parent_type == "" } then { + set v "${param_id}=$sv(ID)" + } elseif {$ps_type == "MASTER" || $ps_type == "VALUES"} then { + set v "$channel_type|${param_id}=$sv(ID)" + } else { + set v $sv(ID) + } - if { $sv_value == $value } then { + if { $sv_value == $value } then { set selected selected=\"selected\" } else { set selected "" diff --git a/WebUI/www/config/ic_seldevice.cgi b/WebUI/www/config/ic_seldevice.cgi index 152d81c7..1257269f 100755 --- a/WebUI/www/config/ic_seldevice.cgi +++ b/WebUI/www/config/ic_seldevice.cgi @@ -23,598 +23,607 @@ ise_getChannelRooms ise_ROOMS proc put_page {} { - global iface_url HTMLTITLE sidname sid - global step dev_descr_sender dev_descr_receiver iface sender_address receiver_address name description group_name group_description sender_group + global iface_url HTMLTITLE sidname sid + global step dev_descr_sender dev_descr_receiver iface sender_address receiver_address name description group_name group_description sender_group #cgi_debug -on - puts "
" - - puts "
" - - puts "
" - - puts "
" - - if {$step > 1} then { - put_PreviousStep - } - - set realchannels 0 - set virtualchannels 0 - - if {$step < 3} then { - # wegen dem IE muss das Style overflow:visible eingestellt sein - puts "
" - puts "" - put_colgroup - put_tableheader - - put_tablebody realchannels virtualchannels - puts "
" - puts "
" - - put_js_SizeTable - #put_js_sortby 0 - - #if {$realchannels == 0 && $virtualchannels > 0} then { - # Funktioniert an dieser Stelle noch nicht, da der Button noch gar nicht vorhanden ist. - # put_js_ShowVirtualChannels - #} - } - - #body_wrapper - puts "
" - - puts "
" - puts "
" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "
" - puts "
" - - #subOffsetDivPopup - puts "
" - - puts "" - - #id_body - puts "
" - - #ic_selchannel - puts "
" + puts "" + + #id_body + puts "" + + #ic_selchannel + puts "" } proc put_colgroup {} { - puts "" + puts "" #Name - puts " " + puts " " #Typenbezeichnung - puts " " + puts " " #Bild - puts " " + puts " " #Bezeichnung - puts " " + puts " " #Seriennummer - puts " " + puts " " #Kategorie - #puts " " + #puts " " #Übertragungsmodus - #puts " " + #puts " " #Gewerk - #puts " " + #puts " " #Raum - #puts " " + #puts " " #Aktion - puts " " + puts " " - puts "" + puts "" } proc put_NaviButtons {} { - global step + global step #cgi_debug -on - puts "
" - puts "" - puts "" - - puts "" - - if {$step < 3} then { - puts "" - puts "" - puts "" - puts "" - } else { - puts "" - puts "" - puts "" - puts "" - } - - puts "" - puts "" - - puts "
\${btnCancel}
\${footerBtnResetFilter}
\${footerBtnVirtualChannelsShow}
 
\${btnCancel}
\${footerBtnCreateEdit}
\${footerBtnCreate}
 
" - puts "
" + puts "
" + puts "" + puts "" + + puts "" + + if {$step < 3} then { + puts "" + puts "" + puts "" + puts "" + } else { + puts "" + puts "" + puts "" + puts "" + } + + puts "" + puts "" + + puts "
\${btnCancel}
\${footerBtnResetFilter}
\${footerBtnVirtualChannelsShow}
 
\${btnCancel}
\${footerBtnCreateEdit}
\${footerBtnCreate}
 
" + puts "
" } # AG test_space proc test_space {pruefling} { - + # wenn   vorhanden, dann 1, sonst 0 - if {$pruefling == " "} { - return 1 - } else { - return 0 - } + if {$pruefling == " "} { + return 1 + } else { + return 0 + } } proc put_PreviousStep {} { #cgi_debug -on - global ise_CHANNELNAMES step receiver_links - global dev_descr_sender dev_descr_receiver iface sender_address receiver_address name description group_name group_description sender_group dev_descr_sender_group + global ise_CHANNELNAMES step receiver_links + global dev_descr_sender dev_descr_receiver iface sender_address receiver_address name description group_name group_description sender_group dev_descr_sender_group #cgi_debug -on - - array set SENTRY "" - set SENTRY(RECEIVERADDR) " " - set SENTRY(RECEIVERNAME) " " - set SENTRY(RECEIVERNAME_DISPLAY) " " - set SENTRY(SENDERADDR) " " - set SENTRY(SENDERNAME) " " - set SENTRY(SENDERNAME_DISPLAY) " " - set SENTRY(SENDERGROUPADDR) " " - set SENTRY(SENDERGROUPNAME) " " - set SENTRY(SENDERGROUPNAME_DISPLAY) " " - set SENTRY(LINKNAME) " " - set SENTRY(LINKDESC) " " - set SENTRY(WARNINGS) "" - - - if {$receiver_address != ""} then { - set SENTRY(RECEIVERADDR) $receiver_address - if { [catch { set SENTRY(RECEIVERNAME) $ise_CHANNELNAMES($iface;$receiver_address)} ] } then { - set SENTRY(RECEIVERNAME) "$iface" - append SENTRY(RECEIVERNAME) ".$receiver_address" - } - - if {[test_space $SENTRY(RECEIVERNAME)] == 1} { - set SENTRY(RECEIVERNAME_DISPLAY) "
$SENTRY(RECEIVERNAME)
" - } else { - set SENTRY(RECEIVERNAME_DISPLAY) "
[cgi_quote_html $SENTRY(RECEIVERNAME)]
" - } - - } - - - if {$sender_address != ""} then { - set SENTRY(SENDERADDR) $sender_address - if { [catch { set SENTRY(SENDERNAME) $ise_CHANNELNAMES($iface;$sender_address)} ] } then { - set SENTRY(SENDERNAME) "$iface" - append SENTRY(SENDERNAME) ".$sender_address" - } - - if {[test_space $SENTRY(SENDERNAME)] == 1 } { - set SENTRY(SENDERNAME_DISPLAY) "
$SENTRY(SENDERNAME)
" - } else { - set SENTRY(SENDERNAME_DISPLAY) "
[cgi_quote_html $SENTRY(SENDERNAME)]
" - } - } - - if {$sender_group != ""} then { - set SENTRY(SENDERGROUPADDR) $sender_group - if { [catch { set SENTRY(SENDERGROUPNAME) $ise_CHANNELNAMES($iface;$sender_group)} ] } then { - set SENTRY(SENDERGROUPNAME) "$iface" - append SENTRY(SENDERGROUPNAME) ".$sender_group" - } - - if {[test_space $SENTRY(SENDERGROUPNAME)] == 1} { - set SENTRY(SENDERGROUPNAME_DISPLAY) "
$SENTRY(SENDERGROUPNAME)
" - } else { - set SENTRY(SENDERGROUPNAME_DISPLAY) "
[cgi_quote_html $SENTRY(SENDERGROUPNAME)]
" - } - - } - - if {$step < 3} then { - set SENTRY(LINKNAME) " " - set SENTRY(LINKDESC) " " - set SENTRY(LINKGROUPNAME) " " - set SENTRY(LINKGROUPDESC) " " - } else { - if {$name == "" } then {set name "[cgi_quote_html $SENTRY(SENDERNAME)] \${lblLinkNameWith} [cgi_quote_html $SENTRY(RECEIVERNAME)]"} - if {$group_name == "" && $sender_group != ""} then {set group_name "[cgi_quote_html $SENTRY(SENDERGROUPNAME)] \${lblLinkNameWith} [cgi_quote_html $SENTRY(RECEIVERNAME)]"} - - set description1 "" - set description2 "" - - catch {set description1 "\${lblStandardLink} $dev_descr_sender(TYPE) - $dev_descr_receiver(TYPE)"} - catch {set description2 "Standardverknüpfung $dev_descr_sender(TYPE) - $dev_descr_receiver(TYPE)"} - #catch {set description2 "\${lblStandardLink} $dev_descr_sender(TYPE) - $dev_descr_receiver(TYPE)"} - - set SENTRY(LINKNAME) "" - set SENTRY(LINKDESC) "" - puts "" - set SENTRY(LINKGROUPNAME) "" - set SENTRY(LINKGROUPDESC) "" - puts "" - puts "" - - #Warnung vor dem Überschreiben von Verknüpfungen---------------------------------- - set i 0 - - if { [LinkExists receiver_links $sender_address $receiver_address ] == 1 } then { + + array set SENTRY "" + set SENTRY(RECEIVERADDR) " " + set SENTRY(RECEIVERNAME) " " + set SENTRY(RECEIVERNAME_DISPLAY) " " + set SENTRY(SENDERADDR) " " + set SENTRY(SENDERNAME) " " + set SENTRY(SENDERNAME_DISPLAY) " " + set SENTRY(SENDERGROUPADDR) " " + set SENTRY(SENDERGROUPNAME) " " + set SENTRY(SENDERGROUPNAME_DISPLAY) " " + set SENTRY(LINKNAME) " " + set SENTRY(LINKDESC) " " + set SENTRY(WARNINGS) "" + + + if {$receiver_address != ""} then { + set SENTRY(RECEIVERADDR) $receiver_address + if { [catch { set SENTRY(RECEIVERNAME) $ise_CHANNELNAMES($iface;$receiver_address)} ] } then { + set SENTRY(RECEIVERNAME) "$iface" + append SENTRY(RECEIVERNAME) ".$receiver_address" + } + + if {[test_space $SENTRY(RECEIVERNAME)] == 1} { + set SENTRY(RECEIVERNAME_DISPLAY) "
$SENTRY(RECEIVERNAME)
" + } else { + set SENTRY(RECEIVERNAME_DISPLAY) "
[cgi_quote_html $SENTRY(RECEIVERNAME)]
" + } + + } + + + if {$sender_address != ""} then { + set SENTRY(SENDERADDR) $sender_address + if { [catch { set SENTRY(SENDERNAME) $ise_CHANNELNAMES($iface;$sender_address)} ] } then { + set SENTRY(SENDERNAME) "$iface" + append SENTRY(SENDERNAME) ".$sender_address" + } + + if {[test_space $SENTRY(SENDERNAME)] == 1 } { + set SENTRY(SENDERNAME_DISPLAY) "
$SENTRY(SENDERNAME)
" + } else { + set SENTRY(SENDERNAME_DISPLAY) "
[cgi_quote_html $SENTRY(SENDERNAME)]
" + } + } + + if {$sender_group != ""} then { + set SENTRY(SENDERGROUPADDR) $sender_group + if { [catch { set SENTRY(SENDERGROUPNAME) $ise_CHANNELNAMES($iface;$sender_group)} ] } then { + set SENTRY(SENDERGROUPNAME) "$iface" + append SENTRY(SENDERGROUPNAME) ".$sender_group" + } + + if {[test_space $SENTRY(SENDERGROUPNAME)] == 1} { + set SENTRY(SENDERGROUPNAME_DISPLAY) "
$SENTRY(SENDERGROUPNAME)
" + } else { + set SENTRY(SENDERGROUPNAME_DISPLAY) "
[cgi_quote_html $SENTRY(SENDERGROUPNAME)]
" + } + + } + + if {$step < 3} then { + set SENTRY(LINKNAME) " " + set SENTRY(LINKDESC) " " + set SENTRY(LINKGROUPNAME) " " + set SENTRY(LINKGROUPDESC) " " + } else { + if {$name == "" } then {set name "[cgi_quote_html $SENTRY(SENDERNAME)] \${lblLinkNameWith} [cgi_quote_html $SENTRY(RECEIVERNAME)]"} + if {$group_name == "" && $sender_group != ""} then {set group_name "[cgi_quote_html $SENTRY(SENDERGROUPNAME)] \${lblLinkNameWith} [cgi_quote_html $SENTRY(RECEIVERNAME)]"} + + set description1 "" + set description2 "" + + catch {set description1 "\${lblStandardLink} $dev_descr_sender(TYPE) - $dev_descr_receiver(TYPE)"} + catch {set description2 "Standardverknüpfung $dev_descr_sender(TYPE) - $dev_descr_receiver(TYPE)"} + #catch {set description2 "\${lblStandardLink} $dev_descr_sender(TYPE) - $dev_descr_receiver(TYPE)"} + + set SENTRY(LINKNAME) "" + set SENTRY(LINKDESC) "" + puts "" + set SENTRY(LINKGROUPNAME) "" + set SENTRY(LINKGROUPDESC) "" + puts "" + puts "" + + #Warnung vor dem Überschreiben von Verknüpfungen---------------------------------- + set i 0 + + if { [LinkExists receiver_links $sender_address $receiver_address ] == 1 } then { append SENTRY(LINKNAME) "\"Warnung\"" - #append SENTRY(LINKNAME) "Achtung, die Verknüpfung existiert bereits und wird überschrieben." - append SENTRY(LINKNAME) "\${dialogCreateLinkHintLinkExists}" - incr i - } + #append SENTRY(LINKNAME) "Achtung, die Verknüpfung existiert bereits und wird überschrieben." + append SENTRY(LINKNAME) "\${dialogCreateLinkHintLinkExists}" + incr i + } - if { [LinkExists receiver_links $sender_group $receiver_address ] == 1 } then { + if { [LinkExists receiver_links $sender_group $receiver_address ] == 1 } then { append SENTRY(LINKGROUPNAME) "\"Warnung\"" - #append SENTRY(LINKGROUPNAME) "Achtung, die Verknüpfung existiert bereits und wird überschrieben." - append SENTRY(LINKNAME) "\${dialogCreateLinkHintLinkExists}" - incr i - } - - if {$i > 0} then { - #append SENTRY(WARNINGS) "" - append SENTRY(WARNINGS) "" - } - #--------------------------------------------------------------------------------- - } - - puts "
" - - puts "" - - puts "" - puts " " - puts " " - puts " " - puts " " - puts " " - puts " " - puts "" - - puts "" - - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - - puts "" - - puts "" - - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - - puts "" - - puts "
\${thSender}\${thLink}\${thReceiver}
\${thName}\${thSerialNumber}\${thName}\${thDescription}\${thName}\${thSerialNumber}
$SENTRY(SENDERNAME_DISPLAY)$SENTRY(SENDERADDR)$SENTRY(LINKNAME)$SENTRY(LINKDESC)$SENTRY(RECEIVERNAME_DISPLAY)$SENTRY(RECEIVERADDR)
$SENTRY(SENDERGROUPNAME_DISPLAY)$SENTRY(SENDERGROUPADDR)$SENTRY(LINKGROUPNAME)$SENTRY(LINKGROUPDESC)$SENTRY(RECEIVERNAME_DISPLAY)$SENTRY(RECEIVERADDR)
" - - puts "" - - puts $SENTRY(WARNINGS) - - puts "
" + #append SENTRY(LINKGROUPNAME) "Achtung, die Verknüpfung existiert bereits und wird überschrieben." + append SENTRY(LINKNAME) "\${dialogCreateLinkHintLinkExists}" + incr i + } + + if {$i > 0} then { + #append SENTRY(WARNINGS) "" + append SENTRY(WARNINGS) "" + } + #--------------------------------------------------------------------------------- + } + + puts "
" + + puts "" + + puts "" + puts " " + puts " " + puts " " + puts " " + puts " " + puts " " + puts "" + + puts "" + + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + + puts "" + + puts "" + + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + + puts "" + + puts "
\${thSender}\${thLink}\${thReceiver}
\${thName}\${thSerialNumber}\${thName}\${thDescription}\${thName}\${thSerialNumber}
$SENTRY(SENDERNAME_DISPLAY)$SENTRY(SENDERADDR)$SENTRY(LINKNAME)$SENTRY(LINKDESC)$SENTRY(RECEIVERNAME_DISPLAY)$SENTRY(RECEIVERADDR)
$SENTRY(SENDERGROUPNAME_DISPLAY)$SENTRY(SENDERGROUPADDR)$SENTRY(LINKGROUPNAME)$SENTRY(LINKGROUPDESC)$SENTRY(RECEIVERNAME_DISPLAY)$SENTRY(RECEIVERADDR)
" + + puts "" + + puts $SENTRY(WARNINGS) + + puts "
" } proc put_js_ShowVirtualChannels {} { - set msg [cgi_quote_html "Es stehen nur virtuelle Kanäle zur Verfügung."] - puts "" + set msg [cgi_quote_html "Es stehen nur virtuelle Kanäle zur Verfügung."] + puts "" } proc put_js_sortby {colNr} { - puts "" + puts "" } proc put_js_SizeTable {} { - puts "" + puts "" } proc put_tableheader {} { - global step - - puts "" - - puts "" - puts "\${replaceDeviceTblHeader}" - puts "" - - puts "" - puts "\${thName}\"sorting\"/" - puts "\${thTypeDescriptor}\"sorting\"/" - puts "\${thPicture}" - puts "\${thDescriptor}\"sorting\"/" - puts "\${thSerialNumber}\"sorting\"/" - #puts "\${thCategorie}\"sorting\"/" - #puts "\${thTransmitMode}\"sorting\"/" - #puts "\${thFunction}\"sorting\"/" - #puts "\${thRoom}\"sorting\"/" - puts "\${thAction}" - puts "" + global step + + puts "" + + puts "" + puts "\${replaceDeviceTblHeader}" + puts "" + + puts "" + puts "\${thName}\"sorting\"/" + puts "\${thTypeDescriptor}\"sorting\"/" + puts "\${thPicture}" + puts "\${thDescriptor}\"sorting\"/" + puts "\${thSerialNumber}\"sorting\"/" + #puts "\${thCategorie}\"sorting\"/" + #puts "\${thTransmitMode}\"sorting\"/" + #puts "\${thFunction}\"sorting\"/" + #puts "\${thRoom}\"sorting\"/" + puts "\${thAction}" + puts "" puts "" - puts "" + puts "" - #Name - put_FilterControl TEXTINPUT 0 + #Name + put_FilterControl TEXTINPUT 0 - #Typenbezeichnung - put_FilterControl TEXTINPUT 1 + #Typenbezeichnung + put_FilterControl TEXTINPUT 1 - #Bild - put_FilterControl NONE 2 - #puts " " + #Bild + put_FilterControl NONE 2 + #puts " " - #Bezeichnung - put_FilterControl TEXTINPUT 3 + #Bezeichnung + put_FilterControl TEXTINPUT 3 - #Seriennummer / Adresse - put_FilterControl TEXTINPUT 4 - - #Kategorie - #put_FilterControl CHECKBOXES 5 [list "\${lblReceiver}" "\${lblSender}"] + #Seriennummer / Adresse + put_FilterControl TEXTINPUT 4 + + #Kategorie + #put_FilterControl CHECKBOXES 5 [list "\${lblReceiver}" "\${lblSender}"] - #Übertragungsmodus - #put_FilterControl CHECKBOXES 6 [list "\${lblStandard}" "\${lblSecured}"] + #Übertragungsmodus + #put_FilterControl CHECKBOXES 6 [list "\${lblStandard}" "\${lblSecured}"] - #Gewerk - #set ise_FUNCTIONS "" - #ise_getFunctions ise_FUNCTIONS - #put_FilterControl CHECKBOXES 7 $ise_FUNCTIONS - - #Raum - #set ise_ROOMS "" - #ise_getRooms ise_ROOMS - #put_FilterControl CHECKBOXES 8 $ise_ROOMS - - #Aktion - put_FilterControl NONE 9 - puts " " + #Gewerk + #set ise_FUNCTIONS "" + #ise_getFunctions ise_FUNCTIONS + #put_FilterControl CHECKBOXES 7 $ise_FUNCTIONS + + #Raum + #set ise_ROOMS "" + #ise_getRooms ise_ROOMS + #put_FilterControl CHECKBOXES 8 $ise_ROOMS + + #Aktion + put_FilterControl NONE 9 + puts " " - puts "" + puts "" - puts "" + puts "" } #control: NONE|TEXTINPUT|CHECKBOXES|RADIOBOXES proc put_FilterControl {control colNr {entrylist ""} } { - #cgi_debug -on - - if {$control == "NONE"} then { - puts "" - puts "
 
" - puts "
 " - } else { - puts "" - puts "
Filter
" - puts "
" - } - - puts "
" - - if {$control == "TEXTINPUT"} then { - - puts "
" - - } elseif {$control == "CHECKBOXES"} then { - - if {[llength $entrylist] > 0} then { - - puts "" - foreach entry $entrylist { - puts "" - puts "" - puts "" - puts "" - } - puts "
[cgi_quote_html $entry]
" - } else { - puts "Keine Einträge vorhanden." - } - - } elseif {$control == "RADIOBOXES"} then { - - foreach entry $entrylist { - puts "[cgi_quote_html $entry]
" - } - - # TODO Übersetzung - puts "Keine Auswahl
" - } - - puts "
" - puts " \${btnOk}" - puts "
" - - puts "
" - - puts "
" - puts "" + #cgi_debug -on + + if {$control == "NONE"} then { + puts "" + puts "
 
" + puts "
 " + } else { + puts "" + puts "
Filter
" + puts "
" + } + + puts "
" + + if {$control == "TEXTINPUT"} then { + + puts "
" + + } elseif {$control == "CHECKBOXES"} then { + + if {[llength $entrylist] > 0} then { + + puts "" + foreach entry $entrylist { + puts "" + puts "" + puts "" + puts "" + } + puts "
[cgi_quote_html $entry]
" + } else { + puts "Keine Einträge vorhanden." + } + + } elseif {$control == "RADIOBOXES"} then { + + foreach entry $entrylist { + puts "[cgi_quote_html $entry]
" + } + + # TODO Übersetzung + puts "Keine Auswahl
" + } + + puts "
" + puts " \${btnOk}" + puts "
" + + puts "
" + + puts "
" + puts "" } proc put_tablefooter {} { - #cgi_debug -on - - puts "" - - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "" - puts "
\${footerBtnResetFilter}
\${footerBtnVirtualChannelsShow}
 
" - puts "" - puts "" - - puts "" + #cgi_debug -on + + puts "" + + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "" + puts "
\${footerBtnResetFilter}
\${footerBtnVirtualChannelsShow}
 
" + puts "" + puts "" + + puts "" } #proc trim_dev_descr {p_dev_descr} { # - #upvar $p_dev_descr dev_descr - #foreach d [array names dev_descr] { - #trimright dev_descr($d) - #} + #upvar $p_dev_descr dev_descr + #foreach d [array names dev_descr] { + #trimright dev_descr($d) + #} #} # #proc trimright {p_var} { - #upvar $p_var var - #set var [string trimright $var " "] + #upvar $p_var var + #set var [string trimright $var " "] #} proc LinkExists {p_LINKLIST sender_address receiver_address} { - upvar $p_LINKLIST linklist - set match 0 - - foreach _link $linklist { + upvar $p_LINKLIST linklist + set match 0 + + foreach _link $linklist { - array set link $_link + array set link $_link - if {$link(SENDER) == $sender_address && $link(RECEIVER) == $receiver_address} then { - set match 1 - break - } - } + if {$link(SENDER) == $sender_address && $link(RECEIVER) == $receiver_address} then { + set match 1 + break + } + } - return $match + return $match } proc put_tablebody {p_realchannels p_virtualchannels} { - global DEV_DESCRIPTION - global iface_url ise_CHANNELNAMES ise_FUNCTIONS ise_ROOMS - global step dev_descr_sender dev_descr_receiver iface sender_address receiver_address sender_group - global SNNewDev TypeNewDev IDNewDev + global DEV_DESCRIPTION + global iface_url ise_CHANNELNAMES ise_FUNCTIONS ise_ROOMS + global step dev_descr_sender dev_descr_receiver iface sender_address receiver_address sender_group + global SNNewDev TypeNewDev IDNewDev #cgi_debug -on - upvar $p_realchannels realchannels - upvar $p_virtualchannels virtualchannels - - #Step 2===== - set ROLENAME2CHECK "" - set dev_roles "" - - if {$step == 2} then { - if {$receiver_address != ""} then { - set ROLENAME2CHECK LINK_SOURCE_ROLES - set dev_roles $dev_descr_receiver(LINK_TARGET_ROLES) - } else { - set ROLENAME2CHECK LINK_TARGET_ROLES - set dev_roles $dev_descr_sender(LINK_SOURCE_ROLES) - } - } - #========== - - set rowcount 0 - set virtualcount 0 - - puts "" + upvar $p_realchannels realchannels + upvar $p_virtualchannels virtualchannels - foreach iface_loop [array names iface_url] { + set HmIPIdentifier "HmIP-RF" - #Liste nur Geräte desselben Interfaces auf (iface = in der URL übergebenes Interface, iface_loop = alle bekannten Interfaces) - if {$iface != "" && $iface_loop != $iface} then { continue } + #Step 2===== + set ROLENAME2CHECK "" + set dev_roles "" + + if {$step == 2} then { + if {$receiver_address != ""} then { + set ROLENAME2CHECK LINK_SOURCE_ROLES + set dev_roles $dev_descr_receiver(LINK_TARGET_ROLES) + } else { + set ROLENAME2CHECK LINK_TARGET_ROLES + set dev_roles $dev_descr_sender(LINK_SOURCE_ROLES) + } + } + #========== - #if { [catch { set devlist [xmlrpc $iface_url($iface_loop) listDevices [list bool 0]] } ] } then - if { [catch { set devlist [xmlrpc $iface_url($iface_loop) listReplaceableDevices [list string $SNNewDev]] } ] } then { - if { [string first "faultCode=-2" $::errorInfo] == -1 } then { - puts "
Interface-Prozess '$iface_loop' communication error.
" - } - continue - } + set rowcount 0 + set virtualcount 0 - set devcount [llength $devlist] - for {set i 0} {$i < $devcount} {incr i} { + puts "" + foreach iface_loop [array names iface_url] { - array set dev_descr [lindex $devlist $i] + #Liste nur Geräte desselben Interfaces auf (iface = in der URL übergebenes Interface, iface_loop = alle bekannten Interfaces) + if {$iface != "" && $iface_loop != $iface} then { continue } + + # HmIP doesn't support device replacement + if {$iface_loop != $HmIPIdentifier } { + set error [catch { set devlist [xmlrpc $iface_url($iface_loop) listReplaceableDevices [list string $SNNewDev]] } ] + if { $error } then { + # Error code -2 happens when listReplaceableDevices tries to get a device with a serial number from another interface + # E. g. SN ABC0123456 belongs to a device of the interface BidCos-Wired and listReplaceDevices checks this SN for the interface BidCos-RF + if { ($error != -2) } { + puts "
Interface-Prozess '$iface_loop' communication error.
" + continue + } else { + continue + } + } + } + + set devcount [llength $devlist] + for {set i 0} {$i < $devcount} {incr i} { + + + array set dev_descr [lindex $devlist $i] #Nur Geräte, keine Kanäle if { $dev_descr(PARENT) != ""} then { @@ -622,36 +631,36 @@ proc put_tablebody {p_realchannels p_virtualchannels} { continue } - #Nur Geräte anzeigen, die schon vom Posteingang in die Geräteliste übertragen wurden - if { ![ metadata_getReadyConfig $iface_loop $dev_descr(ADDRESS) ] } then { - continue - } - - array set SENTRY "" - - if { [catch { set SENTRY(NAME) $ise_CHANNELNAMES($iface_loop;$dev_descr(ADDRESS))} ] } then { - set SENTRY(NAME) "$iface_loop" - append SENTRY(NAME) ".$dev_descr(ADDRESS)" - } - set SENTRY(TYPE) "$dev_descr(TYPE)" + #Nur Geräte anzeigen, die schon vom Posteingang in die Geräteliste übertragen wurden + if { ![ metadata_getReadyConfig $iface_loop $dev_descr(ADDRESS) ] } then { + continue + } - #Image=== - set senderimgpath_50 [DEV_getImagePath $dev_descr(TYPE) 50] + array set SENTRY "" + + if { [catch { set SENTRY(NAME) $ise_CHANNELNAMES($iface_loop;$dev_descr(ADDRESS))} ] } then { + set SENTRY(NAME) "$iface_loop" + append SENTRY(NAME) ".$dev_descr(ADDRESS)" + } + set SENTRY(TYPE) "$dev_descr(TYPE)" - if {$senderimgpath_50 == ""} { set senderimgpath_50 "#" } - set SENTRY(IMAGE) "
" - append SENTRY(IMAGE) "" - #=== - - if { [catch {set SENTRY(DESCRIPTION) "$DEV_DESCRIPTION($dev_descr(TYPE))" } ] } then { - set SENTRY(DESCRIPTION) "$dev_descr(TYPE)" - } + #Image=== + set senderimgpath_50 [DEV_getImagePath $dev_descr(TYPE) 50] + + if {$senderimgpath_50 == ""} { set senderimgpath_50 "#" } + set SENTRY(IMAGE) "
" + append SENTRY(IMAGE) "" + #=== + + if { [catch {set SENTRY(DESCRIPTION) "$DEV_DESCRIPTION($dev_descr(TYPE))" } ] } then { + set SENTRY(DESCRIPTION) "$dev_descr(TYPE)" + } - set SENTRY(ADDRESS) $dev_descr(ADDRESS) + set SENTRY(ADDRESS) $dev_descr(ADDRESS) cgi_debug -on @@ -664,122 +673,122 @@ proc put_tablebody {p_realchannels p_virtualchannels} { append args "}" set SENTRY(ACTION) "
\${btnSelect}
" - puts "" - - if { [test_space $SENTRY(NAME)] == 1 } then { puts "$SENTRY(NAME)" } else { puts "[cgi_quote_html $SENTRY(NAME)]" } - - puts "$SENTRY(TYPE)" - - puts "$SENTRY(IMAGE)" - - if { [test_space $SENTRY(DESCRIPTION)] == 1 } then { puts "$SENTRY(DESCRIPTION)" } else { puts "[cgi_quote_html $SENTRY(DESCRIPTION)]" } + puts "" - puts "$SENTRY(ADDRESS)" - puts "$SENTRY(ACTION)" - puts "" + if { [test_space $SENTRY(NAME)] == 1 } then { puts "$SENTRY(NAME)" } else { puts "[cgi_quote_html $SENTRY(NAME)]" } + + puts "$SENTRY(TYPE)" - incr rowcount - - if {$dev_descr(TYPE) == "VIRTUAL_KEY"} then { incr virtualcount } - - array_clear SENTRY - array_clear dev_descr - } - } + puts "$SENTRY(IMAGE)" - if {$rowcount == 0} then { - puts "" - puts "\${replaceDeviceNoDevAvailable}" - puts "" - } + if { [test_space $SENTRY(DESCRIPTION)] == 1 } then { puts "$SENTRY(DESCRIPTION)" } else { puts "[cgi_quote_html $SENTRY(DESCRIPTION)]" } - puts "" + puts "$SENTRY(ADDRESS)" + puts "$SENTRY(ACTION)" + puts "" - set realchannels [expr $rowcount - $virtualcount] - set virtualchannels $virtualcount - puts "" + incr rowcount + + if {$dev_descr(TYPE) == "VIRTUAL_KEY"} then { incr virtualcount } + + array_clear SENTRY + array_clear dev_descr + } + } + + if {$rowcount == 0} then { + puts "" + puts "\${replaceDeviceNoDevAvailable}" + puts "" + } + + puts "" + + set realchannels [expr $rowcount - $virtualcount] + set virtualchannels $virtualcount + puts "" } # TODO Viel überflüssiger Ballast, der entfernt werden sollte. cgi_eval { #cgi_debug -on - cgi_input - - if {[session_requestisvalid 0] > 0} then { - - #----------------------------------------- - #allg. globale Parameter - set step 1 - array set dev_descr_sender "" - array set dev_descr_receiver "" - array set dev_descr_sender_group "" - set sender_group "" - set receiver_links "" - - #URL-Parameter - set iface "" - set sender_address "" - set receiver_address "" - set name "" - set description "" - set group_name "" - set group_description "" - set SNNewDev "" - set TypeNewDev "" - set IDNewDev "" - - catch {import iface} - catch {import sender_address} - catch {import receiver_address} - catch {import name} - catch {import description} - catch {import group_name} - catch {import group_description} - catch {import SNNewDev} - catch {import TypeNewDev} - catch {import IDNewDev} - #----------------------------------------- + cgi_input + + if {[session_requestisvalid 0] > 0} then { + + #----------------------------------------- + #allg. globale Parameter + set step 1 + array set dev_descr_sender "" + array set dev_descr_receiver "" + array set dev_descr_sender_group "" + set sender_group "" + set receiver_links "" + + #URL-Parameter + set iface "" + set sender_address "" + set receiver_address "" + set name "" + set description "" + set group_name "" + set group_description "" + set SNNewDev "" + set TypeNewDev "" + set IDNewDev "" + + catch {import iface} + catch {import sender_address} + catch {import receiver_address} + catch {import name} + catch {import description} + catch {import group_name} + catch {import group_description} + catch {import SNNewDev} + catch {import TypeNewDev} + catch {import IDNewDev} + #----------------------------------------- http_head - if { $iface != "" && $sender_address != "" && $receiver_address != "" } then { - - set step 3 - set url $iface_url($iface) - array set dev_descr_sender [xmlrpc $url getDeviceDescription [list string $sender_address ]] - array set dev_descr_receiver [xmlrpc $url getDeviceDescription [list string $receiver_address]] - - catch { set sender_group $dev_descr_sender(GROUP) } - if {$sender_group != ""} then { - array set dev_descr_sender_group [xmlrpc $url getDeviceDescription [list string $sender_group]] - } - - #Für die Prüfung, ob es die Verknüpfung schon gibt. Schutz vorm Überschreiben der Verknüpfung--- - set flags 0 - set receiver_links [xmlrpc $url getLinks [list string $receiver_address] [list int $flags] ] - #----------------------------------------------------------------------------------------------- - - } elseif {$iface != "" && $sender_address != ""} then { - - set step 2 - set url $iface_url($iface) - array set dev_descr_sender [xmlrpc $url getDeviceDescription [list string $sender_address]] - - catch { set sender_group $dev_descr_sender(GROUP) } - if {$sender_group != ""} then { - array set dev_descr_sender_group [xmlrpc $url getDeviceDescription [list string $sender_group]] - } - - } elseif {$iface != "" && $receiver_address != ""} then { - - set step 2 - set url $iface_url($iface) - array set dev_descr_receiver [xmlrpc $url getDeviceDescription [list string $receiver_address]] - - } else { - #step 1 wird nun angezeigt. "set step 1" wurde schon gesetzt - } - put_page - } + if { $iface != "" && $sender_address != "" && $receiver_address != "" } then { + + set step 3 + set url $iface_url($iface) + array set dev_descr_sender [xmlrpc $url getDeviceDescription [list string $sender_address ]] + array set dev_descr_receiver [xmlrpc $url getDeviceDescription [list string $receiver_address]] + + catch { set sender_group $dev_descr_sender(GROUP) } + if {$sender_group != ""} then { + array set dev_descr_sender_group [xmlrpc $url getDeviceDescription [list string $sender_group]] + } + + #Für die Prüfung, ob es die Verknüpfung schon gibt. Schutz vorm Überschreiben der Verknüpfung--- + set flags 0 + set receiver_links [xmlrpc $url getLinks [list string $receiver_address] [list int $flags] ] + #----------------------------------------------------------------------------------------------- + + } elseif {$iface != "" && $sender_address != ""} then { + + set step 2 + set url $iface_url($iface) + array set dev_descr_sender [xmlrpc $url getDeviceDescription [list string $sender_address]] + + catch { set sender_group $dev_descr_sender(GROUP) } + if {$sender_group != ""} then { + array set dev_descr_sender_group [xmlrpc $url getDeviceDescription [list string $sender_group]] + } + + } elseif {$iface != "" && $receiver_address != ""} then { + + set step 2 + set url $iface_url($iface) + array set dev_descr_receiver [xmlrpc $url getDeviceDescription [list string $receiver_address]] + + } else { + #step 1 wird nun angezeigt. "set step 1" wurde schon gesetzt + } + put_page + } } diff --git a/WebUI/www/config/img/devices/250/117_hm-sec-sir-wm.png b/WebUI/www/config/img/devices/250/117_hm-sec-sir-wm.png new file mode 100755 index 00000000..5cd49504 Binary files /dev/null and b/WebUI/www/config/img/devices/250/117_hm-sec-sir-wm.png differ diff --git a/WebUI/www/config/img/devices/250/126_hm-sen-li-o.png b/WebUI/www/config/img/devices/250/126_hm-sen-li-o.png new file mode 100755 index 00000000..7d782438 Binary files /dev/null and b/WebUI/www/config/img/devices/250/126_hm-sen-li-o.png differ diff --git a/WebUI/www/config/img/devices/250/127_hm-wds30-ot2-sm-2.png b/WebUI/www/config/img/devices/250/127_hm-wds30-ot2-sm-2.png new file mode 100755 index 00000000..286d1be3 Binary files /dev/null and b/WebUI/www/config/img/devices/250/127_hm-wds30-ot2-sm-2.png differ diff --git a/WebUI/www/config/img/devices/50/117_hm-sec-sir-wm_thumb.png b/WebUI/www/config/img/devices/50/117_hm-sec-sir-wm_thumb.png new file mode 100755 index 00000000..23335e3c Binary files /dev/null and b/WebUI/www/config/img/devices/50/117_hm-sec-sir-wm_thumb.png differ diff --git a/WebUI/www/config/img/devices/50/126_hm-sen-li-o_thumb.png b/WebUI/www/config/img/devices/50/126_hm-sen-li-o_thumb.png new file mode 100755 index 00000000..b43f9298 Binary files /dev/null and b/WebUI/www/config/img/devices/50/126_hm-sen-li-o_thumb.png differ diff --git a/WebUI/www/config/img/devices/50/127_hm-wds30-ot2-sm-2_thumb.png b/WebUI/www/config/img/devices/50/127_hm-wds30-ot2-sm-2_thumb.png new file mode 100755 index 00000000..3d44b6f3 Binary files /dev/null and b/WebUI/www/config/img/devices/50/127_hm-wds30-ot2-sm-2_thumb.png differ diff --git a/WebUI/www/config/stringtable_de.txt b/WebUI/www/config/stringtable_de.txt index 8ccb58b4..c4421599 100755 --- a/WebUI/www/config/stringtable_de.txt +++ b/WebUI/www/config/stringtable_de.txt @@ -70,22 +70,27 @@ ALARMACTUATOR|ON_TIME ${stringTableAlarmActuatorOnTime} ALARMACTUATOR|SABOTAGE_MSG ${stringTableAlarmActuatorSabotageMsg} ALARMACTUATOR|STATE=FALSE ${stringTableAlarmActuatorStateFalse} ALARMACTUATOR|STATE=TRUE ${stringTableAlarmActuatorStateTrue} -ALL_LEDS ${stringTableAllLEDs} -ANALOG_INPUT ${stringTableAnalog} -ANALOG_OUTPUT ${stringTableAnalog} -BACKLIGHT_AT_CHARGE ${stringTableBackLightAtCharge} -BACKLIGHT_AT_KEYSTROKE ${stringTableBackLightAtKeystroke} -BACKLIGHT_AT_MOTION ${stringTableBackLightAtMotion} -BACKLIGHT_ON_TIME ${stringTableBackLightOnTime} -BAT_DEFECT_LIMIT ${stringTableBatDefectLimit} + +ARMING|ACOUSTIC_MULTI_DELAY_ARM ${stringTableAcousticMultiDelayArm} +ARMING|ACOUSTIC_ALLSENS_ARM ${stringTableAcousticAllSensArm} +ARMING|ACOUSTIC_ALLSENS_DELAY_ARM ${stringTableAcousticAllsensDelayArm} +ARMING|ACOUSTIC_EXTSENS_ARM ${stringTableAcousticExtsensArm} +ARMING|ACOUSTIC_EXTSENS_DELAY_ARM ${stringTableAcousticExtsensDelayArm} +ARMING|ACOUSTIC_DISARM ${stringTableAcousticDisarm} + +ARMING|OPTIC_MULTI_DELAY_ARM ${stringTableOpticMultiDelayArm} +ARMING|OPTIC_ALLSENS_ARM ${stringTableOpticAllSensArm} +ARMING|OPTIC_ALLSENS_DELAY_ARM ${stringTableOpticAllSensDelayArm} +ARMING|OPTIC_EXTSENS_ARM ${stringTableOpticExtsensArm} +ARMING|OPTIC_EXTSENS_DELAY_ARM ${stringTableOpticExtsensDelayArm} +ARMING|OPTIC_DISARM ${stringTableOpticDisarm} + BLIND ${stringTableBlindTitle} BLIND|CHANGE_OVER_DELAY ${stringTableBlindChangeOverDelay} BLIND|LEVEL ${stringTableBlindLevel} BLIND|REFERENCE_RUNNING_TIME_BOTTOM_TOP ${stringTableBlindRunnintTimeBottomTop} BLIND|REFERENCE_RUNNING_TIME_TOP_BOTTOM ${stringTableBlindRunningTimeTopBottom} BLIND|REFERENCE_RUN_COUNTER ${stringTableBlindRefRunCounter} -BLIND|STATUSINFO_MINDELAY ${stringTableStatusInfoMinDelay} -BLIND|STATUSINFO_RANDOM ${stringTableStatusInfoRandom} BLIND|STOP ${stringTableBlindStop} BURST_RX ${stringTableBurstRX} BUTTON_LOCK ${stringTableButtonLock} @@ -229,10 +234,8 @@ DIMMER|RAMP_TIME ${stringTableDimmerRampTime} DIMMER|RAMP_STOP ${stringTableDimmerRampStop} DIMMER|REDUCE_LEVEL ${stringTableDimmerReduceLevel} DIMMER|REDUCE_TEMP_LEVEL ${stringTableDimmerReduceTempLevel} -DIMMER|STATUSINFO_MINDELAY ${stringTableDimmerStatusInfoMinDelay} DIMMER|ERROR_OVERLOAD ${stringTableDimmerErrorOverload} DIMMER|ERROR_OVERHEAT ${stringTableDimmerErrorOverheat} -DIMMER|STATUSINFO_RANDOM ${stringTableStatusInfoRandom} DIMMER|ERROR_REDUCED ${stringTableDimmerErrorReduced} DISPLAY|ALARM_COUNT ${stringTableDisplayAlarmCount} DISPLAY|ARROW_DOWN ${stringTableDisplayArrowDown} @@ -536,6 +539,16 @@ POWERMETER_IGL|GAS_ENERGY_COUNTER ${stringTablePowerMeterEnergyCounterGas} POWERMETER_IGL|POWER ${stringTablePowerMeterPower} POWERMETER_IGL|GAS_POWER ${stringTableGasConsumption} +POWERMETER_IEC1|ENERGY_COUNTER ${stringTablePowerMeterEnergyCounter} +POWERMETER_IEC1|GAS_ENERGY_COUNTER ${stringTablePowerMeterEnergyCounterGas} +POWERMETER_IEC1|POWER ${stringTablePowerMeterPower} +POWERMETER_IEC1|GAS_POWER ${stringTableGasConsumption} +POWERMETER_IEC1|IEC_ENERGY_COUNTER ${stringTablePowerMeterIECEnergyCounter} +POWERMETER_IEC1|IEC_POWER ${stringTableIECPowerMeterPower} + +POWERMETER_IEC2|IEC_ENERGY_COUNTER ${stringTablePowerMeterIECEnergyCounter} +POWERMETER_IEC2|IEC_POWER ${stringTableIECPowerMeterPower} + POWERUP_OFF ${stringTablePowerUpOFF} POWERUP_ON ${stringTablePowerUpON} PRESS_LONG ${stringTableKeyPressLong} @@ -734,8 +747,6 @@ SWITCH|AES_ACTIVE ${stringTableSwitchAESActive} SWITCH|ON_TIME ${stringTableSwitchOnTime} SWITCH|STATE=FALSE ${stringTableSwitchStateFalse} SWITCH|STATE=TRUE ${stringTableSwitchStateTrue} -SWITCH|STATUSINFO_MINDELAY ${stringTableSwitchStatusInfoMinDelay} -SWITCH|STATUSINFO_RANDOM ${stringTableStatusInfoRandom} SWITCH|STATUSINFO_RANDOM_A ${stringTableStatusInfoRandomA} SWITCH_INTERFACE ${stringTableSwitchInterfaceTitle} SWITCH_INTERFACE|PRESS ${stringTableSwitchInterfacePress} @@ -772,6 +783,7 @@ TILT_SENSOR|STATE=FALSE ${stringTableTiltSensorStateFalse} TILT_SENSOR|STATE=TRUE ${stringTableTiltSensorStateTrue} TRANSMIT_TRY_MAX ${stringTableTransmitTryMax} TRANSMIT_DEV_TRY_MAX ${stringTableTransmitDevTryMax} +TX_THRESHOLD_POWER ${stringTablePowerMeterTxThresholdPower} USER_COLOR ${stringTableSubmit} USER_PROGRAM ${stringTableSubmit} VENT_CLOSED ${stringTableVentClosed} @@ -783,7 +795,6 @@ VIRTUAL_DIMMER|ERROR_OVERHEAT ${stringTableDimmerErrorOverheat} VIRTUAL_DIMMER|ERROR_REDUCED ${stringTableDimmerErrorReduced} VIRTUAL_DIMMER|LOGIC_COMBINATION ${stringTableLogicCombination} VIRTUAL_DIMMER|POWERUP_ACTION ${stringTableVirtualDimmerPowerUpAction} -VIRTUAL_DIMMER|STATUSINFO_MINDELAY ${stringTableVirtualDimmerStatusInfoMinDelay} VIRTUAL_DIMMER|STATUSINFO_RANDOM ${stringTableVirtualDimmerStatusInfoRandom} VIRTUAL_DIMMER|RAMP_STOP ${stringTableDimmerRampStop} VIRTUAL_KEY ${stringTableVirtualKeyTitle} @@ -864,9 +875,18 @@ WINMATIC|STOP ${stringTableWinMaticStop} WINMATIC|TILT_MAX ${stringTableWinMaticTiltMax} +ALL_LEDS ${stringTableAllLEDs} +ANALOG_INPUT ${stringTableAnalog} +ANALOG_OUTPUT ${stringTableAnalog} AUTO_MODE ${stringTableClimateControlRTTransceiverAutoMode} ACTUAL_HUMIDITY ${stringTableWeatherHumidity} ACTUAL_TEMPERATURE ${stringTableClimateControlRTTransceiverActualTemp} +ALARMTIME_MAX ${stringTableAlarmTimeMax} +BACKLIGHT_AT_CHARGE ${stringTableBackLightAtCharge} +BACKLIGHT_AT_KEYSTROKE ${stringTableBackLightAtKeystroke} +BACKLIGHT_AT_MOTION ${stringTableBackLightAtMotion} +BACKLIGHT_ON_TIME ${stringTableBackLightOnTime} +BAT_DEFECT_LIMIT ${stringTableBatDefectLimit} BATTERY_STATE ${stringTableClimateControlRTTransceiverBatteryState} BOOST_MODE ${stringTableClimateControlRTTransceiverBoostMode} BOOST_MODE=FALSE ${stringTableBoostModeFalse} @@ -913,7 +933,11 @@ LOGIC_COMBINATION ${stringTableLogicCombination} LOWBAT_REPORTING ${stringTableLowbatReporting} LOWBAT_REPORTING=FALSE ${stringTableLowbatReportingFalse} LOWBAT_REPORTING=TRUE ${stringTableLowbatReportingTrue} +LOWBAT_SIGNAL ${stringTableLowbatSignal} LOWERING_MODE ${stringTableClimateControlRTTransceiverLoweringMode} + +LUX ${stringTableLux} + MANU_MODE ${stringTableClimateControlRTTransceiverManuMode} NOT_USED ${stringTableNotUsed} OLD_LEVEL ${stringTableDimmerOldLevel} @@ -962,9 +986,15 @@ SET_TEMPERATURE ${stringTableClimateControlRTTransceiverSetTemperature} SECTION ${stringTableSection} +SOUND_ID ${stringTableSoundID} + STATE=FALSE ${stringTableStateFalse} STATE=TRUE ${stringTableStateTrue} +STATUSINFO_MINDELAY ${stringTableStatusInfoMinDelay} +STATUSINFO_RANDOM ${stringTableStatusInfoRandom} + +TX_MINDELAY ${stringTableTxMinDelay} TX_MINDELAY_UNIT ${stringTableTxMinDelayUnit} TX_MINDELAY_UNIT=100MS ${optionUnit100MS} TX_MINDELAY_UNIT=S ${optionUnitS} @@ -972,6 +1002,8 @@ TX_MINDELAY_UNIT=M ${optionUnitM} TX_MINDELAY_UNIT=H ${optionUnitH} TX_MINDELAY_VALUE ${stringTableTxMinDelayValue} +TX_THRESHOLD_PERCENT ${stringTableTxThresholdPercent} + UNREACH=FALSE ${stringTableUnreachFalse} UNREACH=TRUE ${stringTableUnreachTrue} diff --git a/WebUI/www/ise/img/lang/de/hm-sen-sir-wm_800.png b/WebUI/www/ise/img/lang/de/hm-sen-sir-wm_800.png new file mode 100755 index 00000000..2ccc34d3 Binary files /dev/null and b/WebUI/www/ise/img/lang/de/hm-sen-sir-wm_800.png differ diff --git a/WebUI/www/ise/img/lang/en/hm-sen-sir-wm_800.png b/WebUI/www/ise/img/lang/en/hm-sen-sir-wm_800.png new file mode 100755 index 00000000..1ca3cb22 Binary files /dev/null and b/WebUI/www/ise/img/lang/en/hm-sen-sir-wm_800.png differ diff --git a/WebUI/www/ise/img/lang/tr/hm-sen-sir-wm_800.png b/WebUI/www/ise/img/lang/tr/hm-sen-sir-wm_800.png new file mode 100755 index 00000000..1ca3cb22 Binary files /dev/null and b/WebUI/www/ise/img/lang/tr/hm-sen-sir-wm_800.png differ diff --git a/WebUI/www/rega/esp/controls/alarmsirene.fn b/WebUI/www/rega/esp/controls/alarmsirene.fn new file mode 100755 index 00000000..758b2109 --- /dev/null +++ b/WebUI/www/rega/esp/controls/alarmsirene.fn @@ -0,0 +1,69 @@ +function ::CreateAlarmArmingControl() +{ + object objState = cObj.DPByControl("ARMING.ARMSTATE"); + object oSabotage = cObj.DPByControl("DEVICE.SABOTAGE"); + object oLowBat = cObj.DPByControl("DEVICE.LOWBAT"); + string lblSabotage = "${lblSabotageUnknown}"; + string lblLowBat = "${stringTableAccuStateUnkown}"; + + if( oLowBat) { + boolean lowBat = oLowBat.Value(); + if(lowBat == true) { + lblLowBat = "${stringTableBatteryEmpty}"; + } else { + lblLowBat = "${stringTableBatteryOk}"; + } + } + if( oSabotage ) { + lblSabotage = "${lblSabotage_"#oSabotage.Value()#"}"; + } + + if( objState ) + { + WriteLine(""); + WriteLine(""); + + WriteLine(""); + WriteLine(""); + + WriteLine(""); + + WriteLine(""); + + WriteLine(""); + WriteLine(""); + + WriteLine(""); + + WriteLine(""); + + WriteLine(""); + + WriteLine(""); + WriteLine(""); + + WriteLine("
"); + !Alarm Aus"); + WriteLine("
${actionAlarmControlLblOff}
"); + WriteLine("
"); + !Extern scharf + WriteLine("
${actionAlarmControlLblExtern}
"); + WriteLine("
"); + !Intern scharf + WriteLine("
${actionAlarmControlLblIntern}
"); + WriteLine("
"); + !Alarm blocked + WriteLine("
${actionAlarmControlLblBlocked}
"); + WriteLine("

"); + WriteLine(lblLowBat); + WriteLine(""); + WriteLine(lblSabotage); + WriteLine("
"); + WriteLine(""); + + WriteLine(""); + } + return; +} \ No newline at end of file diff --git a/WebUI/www/rega/esp/controls/powermeter.fn b/WebUI/www/rega/esp/controls/powermeter.fn index 27c872d6..24f7d8c5 100755 --- a/WebUI/www/rega/esp/controls/powermeter.fn +++ b/WebUI/www/rega/esp/controls/powermeter.fn @@ -1,8 +1,7 @@ !POWERMETER function ::CreatePowermeterControl() { - object oDevice = dom.GetObject(cObj.Device()); - ! TODO Kanalnummer nach Kanaltype ermitteln und nicht fix 2 annehmen, auch wenn es im Moment passt - object oChannel = dom.GetObject(oDevice.Channels().GetAt(2)); + + object oChannel = dom.GetObject(chnId); string chAddress = oChannel.Address(); object oEnergyCounter = cObj.DPByControl("POWERMETER.ENERGY_COUNTER"); @@ -222,9 +221,8 @@ function ::CreatePowermeterControl() { !POWERMETER_IGL function ::CreatePowermeterIGLControl() { - object oDevice = dom.GetObject(cObj.Device()); - ! TODO Kanalnummer nach Kanaltype ermitteln und nicht fix 1 annehmen, auch wenn es im Moment passt - object oChannel = dom.GetObject(oDevice.Channels().GetAt(1)); + + object oChannel = dom.GetObject(chnId); string chAddress = oChannel.Address(); string chType = oChannel.ChannelType(); @@ -377,11 +375,10 @@ function ::CreatePowermeterIGLControl() { return; } -POWERMETER_PSM +! POWERMETER_PSM function ::CreatePowermeterPSMControl() { - object oDevice = dom.GetObject(cObj.Device()); - ! TODO Kanalnummer nach Kanaltype ermitteln und nicht fix 6 annehmen, auch wenn es im Moment passt - object oChannel = dom.GetObject(oDevice.Channels().GetAt(6)); + + object oChannel = dom.GetObject(chnId); string chAddress = oChannel.Address(); object oEnergyCounter = cObj.DPByControl("POWERMETER_PSM.ENERGY_COUNTER"); @@ -600,4 +597,216 @@ function ::CreatePowermeterPSMControl() { WriteLine("") return; -} \ No newline at end of file +} + +!CN_POWERMETER_IEC +function ::CreatePowermeterIECControl() { + + !# sLastControlName = POWERMETER_IEC1 or POWERMETER_IEC2 + + !object oDevice = dom.GetObject(cObj.Device()); + ! object oChannel = dom.GetObject(oDevice.Channels().GetAt(1)); + + object oChannel = dom.GetObject(chnId); + string chAddress = oChannel.Address(); + string chType = oChannel.ChannelType(); + + if (sLastControlName == "POWERMETER_IEC1.") { + object oEnergyCounter = cObj.DPByControl("POWERMETER_IEC1.ENERGY_COUNTER"); + object oEnergyCounterGas = cObj.DPByControl("POWERMETER_IEC1.GAS_ENERGY_COUNTER"); + object oPower = cObj.DPByControl("POWERMETER_IEC1.POWER"); + object oPowerGas = cObj.DPByControl("POWERMETER_IEC1.GAS_POWER"); + object oBoot = cObj.DPByControl("POWERMETER_IEC1.BOOT"); + + object oEnergyCounterIEC = cObj.DPByControl("POWERMETER_IEC1.IEC_ENERGY_COUNTER"); + object oPowerIEC = cObj.DPByControl("POWERMETER_IEC1.IEC_POWER"); + } + + if (sLastControlName == "POWERMETER_IEC2.") { + ! WriteLine( "" ); + object oEnergyCounterIEC = cObj.DPByControl("POWERMETER_IEC2.IEC_ENERGY_COUNTER"); + object oPowerIEC = cObj.DPByControl("POWERMETER_IEC2.IEC_POWER"); + } + + object sysVarEnergyCounter = dom.GetObject("svEnergyCounter_"#chnId#"_"#chAddress); + + ! Determine the name of the interface + integer iFaceID = cObj.Interface(); + object oIface = dom.GetObject(iFaceID); + string sInterface = oIface.Name(); + + var energyCounter = "unknown"; + + if (sysVarEnergyCounter) { + energyCounter = sysVarEnergyCounter.Value().ToString(2); + } + + + ! html + WriteLine(""); + WriteLine(""); + WriteLine(""); + if (sLastControlName == "POWERMETER_IEC1.") { + ! EnergyCounter + WriteLine(""); + WriteLine(""); + + ! Reset EnergyCounter + WriteLine(""); + WriteLine(""); + } + ! Energy counter of the device + WriteLine(""); + WriteLine(""); + WriteLine(""); + + ! Power + WriteLine(""); + WriteLine(""); + WriteLine(""); + + WriteLine("
"); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine("
"); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine("
"); + WriteLine("${lblInfoStatusControlEnergyCounter}"); + WriteLine("
"); + WriteLine(" 
"); + WriteLine("
"); + WriteLine("
"); + WriteLine("
"); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine("
"); + WriteLine("
Reset
"); + WriteLine("
"); + WriteLine("
"); + WriteLine(""); + WriteLine(""); + + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine(""); + WriteLine("
"); + WriteLine("
"); + WriteLine("${controlChannelHasNoFunction}"); + WriteLine("
"); + WriteLine("
"); + WriteLine(""); + WriteLine(""); + + ! end html + + + WriteLine("") + + return; +} diff --git a/WebUI/www/rega/esp/controls/smokedetector.fn b/WebUI/www/rega/esp/controls/smokedetector.fn new file mode 100755 index 00000000..433b33da --- /dev/null +++ b/WebUI/www/rega/esp/controls/smokedetector.fn @@ -0,0 +1,42 @@ +function ::CreateSmokeDetectorControl() +{ + object objDangerState = cObj.DPByControl("DANGER.STATE"); + + if (objDangerState) { + string sDangerState = objDangerState.Value(); + } else { + string sDangerState = "unknown"; + } + object objState = cObj.DPByControl("SMOKE_DETECTOR.COMMAND"); + + if( objState ) + { + + WriteLine(""); + WriteLine(""); + WriteLine("
"); + WriteLine("
${lblIntrusionAlarm}
"); + WriteLine(""); + WriteLine(""); + + WriteLine(""); + WriteLine(""); + WriteLine("
${actionStatusControlLblOff}
"); + WriteLine(""); + + WriteLine(""); + WriteLine("
${actionStatusControlLblOn}
"); + WriteLine(""); + WriteLine(""); + WriteLine(""); + + WriteLine(""); + } + return; +} \ No newline at end of file diff --git a/WebUI/www/rega/esp/datapointconfigurator.fn b/WebUI/www/rega/esp/datapointconfigurator.fn index 833b131f..472bcaf6 100755 --- a/WebUI/www/rega/esp/datapointconfigurator.fn +++ b/WebUI/www/rega/esp/datapointconfigurator.fn @@ -111,20 +111,23 @@ function ::dcCreate() var CN_DOOR_SENSOR = "DOOR_SENSOR."; var CN_RHS = "RHS."; var CN_THERMO = "TEMP."; - var CN_DIGITAL_ANALOG_OUTPUT = "DIGITAL_ANALOG_OUTPUT."; + var CN_DIGITAL_ANALOG_OUTPUT = "DIGITAL_ANALOG_OUTPUT."; var CN_CAPACITIVE_FILLING_SENSOR = "CAPACITIVE_FILLING_LEVEL_SENSOR."; var CN_DANGER = "DANGER."; var CN_WIN_SC = "WIN_SC."; - var CN_WIN_SC_SENSOR = "WIN_SC_SENSOR."; - var CN_WIN_SC_SECURE = "WIN_SC_SECURE."; - var CN_HEATING_CONTROL = "HEATING_CONTROL."; + var CN_WIN_SC_SENSOR = "WIN_SC_SENSOR."; + var CN_WIN_SC_SECURE = "WIN_SC_SECURE."; + var CN_HEATING_CONTROL = "HEATING_CONTROL."; var CN_HEATING_CONTROL_HMIP = "HEATING_CONTROL_HMIP."; - var CN_POWERMETER = "POWERMETER."; - var CN_POWERMETER_IGL = "POWERMETER_IGL."; - var CN_POWERMETER_PSM = "POWERMETER_PSM."; - var CN_RGBW_COLOR = "RGBW_COLOR."; - var CN_RGBW_AUTOMATIC = "RGBW_AUTOMATIC."; - var CN_SMOKE_DETECTOR = "SMOKE_DETECTOR."; + var CN_POWERMETER = "POWERMETER."; + var CN_POWERMETER_IGL = "POWERMETER_IGL."; + var CN_POWERMETER_PSM = "POWERMETER_PSM."; + var CN_POWERMETER_IEC1 = "POWERMETER_IEC1."; + var CN_POWERMETER_IEC2 = "POWERMETER_IEC2."; + var CN_RGBW_COLOR = "RGBW_COLOR."; + var CN_RGBW_AUTOMATIC = "RGBW_AUTOMATIC."; + var CN_SMOKE_DETECTOR = "SMOKE_DETECTOR."; + var CN_ARMING = "ARMING."; var CN_EVENT_INTERFACE = "EVENT_INTERFACE."; var CN_NOT_ACTIVE = "CHANNEL_NOT_ACTIVE"; @@ -313,7 +316,7 @@ function ::dcCreate() !# DANGER - bIsControl = ( sControlName.Find(CN_DANGER) > -1 ); !#### Attention: workaround!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + bIsControl = ( sControlName.Find(CN_DANGER) > -1 ); if( bIsControl && (sLastControlName!=CN_DANGER) ) { WriteLine( "" ); @@ -402,6 +405,26 @@ function ::dcCreate() Call("/esp/controls/powermeter.fn::CreatePowermeterPSMControl()"); } + !# POWERMETER_IEC1 + bIsControl = ( sControlName.Find(CN_POWERMETER_IEC1) > -1 ); + if( bIsControl && (sLastControlName != CN_POWERMETER_IEC1) ) + { + WriteLine( "" ); + isKnownControl = true; + sLastControlName = CN_POWERMETER_IEC1; + Call("/esp/controls/powermeter.fn::CreatePowermeterIECControl()"); + } + + !# POWERMETER_IEC2 + bIsControl = ( sControlName.Find(CN_POWERMETER_IEC2) > -1 ); + if( bIsControl && (sLastControlName != CN_POWERMETER_IEC2) ) + { + WriteLine( "" ); + isKnownControl = true; + sLastControlName = CN_POWERMETER_IEC2; + Call("/esp/controls/powermeter.fn::CreatePowermeterIECControl()"); + } + !# CN_RGBW_COLOR bIsControl = ( sControlName.Find(CN_RGBW_COLOR) > -1 ); if( bIsControl && (sLastControlName != CN_RGBW_COLOR) ) @@ -432,6 +455,17 @@ function ::dcCreate() Call("/esp/controls/smokedetector.fn::CreateSmokeDetectorControl()"); } + !# CN_ARMING + bIsControl = ( sControlName.Find(CN_ARMING) > -1 ); + if( bIsControl && (sLastControlName != CN_ARMING) ) + { + WriteLine( "" ); + isKnownControl = true; + sLastControlName = CN_ARMING; + Call("/esp/controls/alarmsirene.fn::CreateAlarmArmingControl()"); + } + + !# EVENT_INTERFACE bIsControl = ( sControlName.Find(CN_EVENT_INTERFACE) > -1 ); if( bIsControl && (sLastControlName!=CN_EVENT_INTERFACE) ) @@ -645,12 +679,16 @@ function ::CreateUnknown() string sShortKey = oDP.HSSID(); if( (oDP.ValueType() == ivtInteger) && (oDP.ValueSubType() == istEnum) ) { - ! TODO Current HmIP devices don`t work properly with web.webGetValueFromList - ! Therefore for testing reasons this is deactivated - !sLongKey = sLongKey#"="#web.webGetValueFromList( oDP.ValueList(), value ); - sLongKey = sLongKey#"="#value; - !sShortKey = sShortKey#"="#web.webGetValueFromList( oDP.ValueList(), value ); - sShortKey = sShortKey#"="#value; + ! Current HmIP devices don`t work properly with web.webGetValueFromList + ! Therefore this is deactivated + if ( (oEName.Find("HmIP-RF.") == -1) ) { + sLongKey = sLongKey#"="#web.webGetValueFromList( oDP.ValueList(), value ); + sShortKey = sShortKey#"="#web.webGetValueFromList( oDP.ValueList(), value ); + } else { + sLongKey = sLongKey#"="#value; + sShortKey = sShortKey#"="#value; + } + bHideValue = true; } if( (oDP.ValueType() == ivtBinary ) && ((oDP.ValueSubType() == istGeneric)||(oDP.ValueSubType() == istBool)||(oDP.ValueSubType() == istSwitch)) ) diff --git a/WebUI/www/rega/esp/system.fn b/WebUI/www/rega/esp/system.fn index 1cd0d42f..51d62f07 100755 --- a/WebUI/www/rega/esp/system.fn +++ b/WebUI/www/rega/esp/system.fn @@ -442,12 +442,6 @@ function ::UpdateUI() } } - !################### - !# PowerMeter # - !################### - - ! WriteLine("updateSysVarEnergyCounter();"); - string s; foreach(s,dom.TestReadyIDs().EnumIDs()) { @@ -568,15 +562,16 @@ function ::UpdateUI() { string sLastTime = ""; Call("/esp/system.fn::getLastTime()"); - if ( oTmp.IsTypeOf(OT_PROGRAM) ) { + if ( oTmp.IsTypeOf(OT_PROGRAM) ) { if ( ( sTM != sLastTime # oTmp.Active() ) ) { Write( 'recreateControl('#cId#',"'#sLastTime#'");' ); } } else { - if ( ( sTM != sLastTime ) ) { + if ( (sLastTime != "") && ( sTM != sLastTime ) ) { Write( 'recreateControl('#cId#',"'#sLastTime#'");' ); } - } Call("/esp/system.fn::writeWarnStateJS()"); + } + Call("/esp/system.fn::writeWarnStateJS()"); } } } @@ -1143,12 +1138,12 @@ function ::getLastTime() sLastTime = obj.ProgramLastExecuteTime(); iSeconds = obj.ProgramLastExecuteTimeSeconds(); } - if( iSeconds == 0 ) - { - sLastTime = ""; - } - else - { + if( iSeconds == 0 ) + { + sLastTime = ""; + } + else + { sLastTime = sLastTime.Format("%d.%m.%Y %H:%M:%S"); } } @@ -1200,7 +1195,7 @@ function ::writeProgCtrl() Write(""); } Write(""); - + Write(""); Write(""); Write("