<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ulm32b</id>
	<title>FHEMWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.fhem.de/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ulm32b"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/Ulm32b"/>
	<updated>2026-04-07T05:33:45Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Scale&amp;diff=39909</id>
		<title>FTUI Widget Scale</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Scale&amp;diff=39909"/>
		<updated>2025-02-03T18:26:41Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: &amp;quot;Needs editing&amp;quot; entfernt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Scale Widget]] ist ein Widget für [[FHEM Tablet UI V2]], mit dem eine horizontale oder vertikale Balkenanzeige erstellt werden kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:ftui-widget-scale.png&lt;br /&gt;
File:ftui-widget-scale-red.png&lt;br /&gt;
File:ftui-widget-scale-vertical.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut &lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading angezeigt werden soll|| ||Sysmon (= Device vom Typ SYSMON)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, das den Wert enthält||STATE|| cpu_temp&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-min&#039;&#039;&#039;||Minimaler Wert, der angezeigt werden soll||0|| 30&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-max&#039;&#039;&#039;||Maximaler Wert, der angezeigt werden soll, oder Name des Readings, das den Maximalwert enthält|| 100||90&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-orientation&#039;&#039;&#039;||Ausrichtung des Balkens||horizontal||data-orientation=&amp;quot;vertical&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-font-size&#039;&#039;&#039;||Schriftgröße||12||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-tick&#039;&#039;&#039;||Abstand der Skalenstriche||1||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-value-interval&#039;&#039;&#039;||Abstand der Skalenbeschriftung||50||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-extra-tick&#039;&#039;&#039;||Abstand hervorgehobener Skalenstriche||10||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-tick-color&#039;&#039;&#039;|| ||#eee||&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-limits-get&#039;&#039;&#039;||Herkunft dynamischer &#039;&#039;&#039;data-limits&#039;&#039;&#039;|| ||&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-limits&#039;&#039;&#039;||Array von Grenzen für &#039;&#039;&#039;data-colors&#039;&#039;&#039;|| || data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;80&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-color&#039;&#039;&#039;|| ||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-colors&#039;&#039;&#039;||Array von Farbwerten, welche die Anzeige entsprechend der Grenzwerte von &#039;&#039;&#039;data-limits&#039;&#039;&#039; einfärben|| ||data-colors=&#039;[&amp;quot;#dd3366&amp;quot;,&amp;quot;#ffcc00&amp;quot;,&amp;quot;#55aa44&amp;quot;]&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|notext}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
Anzeige der CPU-Temperatur, welche aus SYSMON ausgelesen wird.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-40&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;top-space-2x&amp;quot;&amp;gt;CPU-Temperatur&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;row top-space&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4 align-start rotate&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;darker&amp;quot;&amp;gt;Aktuell&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp&amp;quot; data-fix=&amp;quot;1&amp;quot; data-unit=&amp;quot;°C&amp;quot; class=&amp;quot;top-space&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4 align-start rotate&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;darker&amp;quot;&amp;gt;Min&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-part=&amp;quot;1&amp;quot; data-fix=&amp;quot;1&amp;quot; data-unit=&amp;quot;°C&amp;quot; class=&amp;quot;top-space&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4 align-start rotate&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;darker&amp;quot;&amp;gt;Mittel&amp;lt;br&amp;gt;(5 Min)&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-part=&amp;quot;3&amp;quot; data-fix=&amp;quot;1&amp;quot; data-unit=&amp;quot;°C&amp;quot; class=&amp;quot;top-space&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4 align-start rotate&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;darker&amp;quot;&amp;gt;Max&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-part=&amp;quot;2&amp;quot; data-fix=&amp;quot;1&amp;quot; data-unit=&amp;quot;°C&amp;quot; class=&amp;quot;top-space&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; data-part=&amp;quot;1&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco notext&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; data-part=&amp;quot;3&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco notext&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; data-part=&amp;quot;2&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco notext&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bsp_CPU_temp.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Weitere Informationen==&lt;br /&gt;
*Ankündigung des Widgets in einem [https://forum.fhem.de/index.php/topic,80326.0.html Forumsbeitrag]&lt;br /&gt;
*Beispiel auf [https://github.com/knowthelist/fhem-tablet-ui/blob/master/test/test_scale.html GitHub]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI V2|Scale]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Scale&amp;diff=39908</id>
		<title>FTUI Widget Scale</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Scale&amp;diff=39908"/>
		<updated>2025-02-03T18:22:57Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Beispiel vervollständigt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Todo|Vervollständigen}}&lt;br /&gt;
Das [[{{PAGENAME}}|Scale Widget]] ist ein Widget für [[FHEM Tablet UI V2]], mit dem eine horizontale oder vertikale Balkenanzeige erstellt werden kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:ftui-widget-scale.png&lt;br /&gt;
File:ftui-widget-scale-red.png&lt;br /&gt;
File:ftui-widget-scale-vertical.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading angezeigt werden soll||||Sysmon (= Device vom Typ SYSMON)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, das den Wert enthält||STATE||cpu_temp&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-min&#039;&#039;&#039;||Minimaler Wert, der angezeigt werden soll||0||30&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-max&#039;&#039;&#039;||Maximaler Wert, der angezeigt werden soll, oder Name des Readings, das den Maximalwert enthält||100||90&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-orientation&#039;&#039;&#039;||Ausrichtung des Balkens||horizontal||data-orientation=&amp;quot;vertical&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-font-size&#039;&#039;&#039;||Schriftgröße||12||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-tick&#039;&#039;&#039;||Abstand der Skalenstriche||1||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-value-interval&#039;&#039;&#039;||Abstand der Skalenbeschriftung||50||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-extra-tick&#039;&#039;&#039;||Abstand hervorgehobener Skalenstriche||10||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-tick-color&#039;&#039;&#039;||||#eee||&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-limits-get&#039;&#039;&#039;||Herkunft dynamischer &#039;&#039;&#039;data-limits&#039;&#039;&#039;||||&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-limits&#039;&#039;&#039;||Array von Grenzen für &#039;&#039;&#039;data-colors&#039;&#039;&#039;||||data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;80&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-color&#039;&#039;&#039;||||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-colors&#039;&#039;&#039;||Array von Farbwerten, welche die Anzeige entsprechend der Grenzwerte von &#039;&#039;&#039;data-limits&#039;&#039;&#039; einfärben||||data-colors=&#039;[&amp;quot;#dd3366&amp;quot;,&amp;quot;#ffcc00&amp;quot;,&amp;quot;#55aa44&amp;quot;]&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|notext}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
Anzeige der CPU-Temperatur, welche aus SYSMON ausgelesen wird.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;col-40&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;top-space-2x&amp;quot;&amp;gt;CPU-Temperatur&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;row top-space&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4 align-start rotate&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;darker&amp;quot;&amp;gt;Aktuell&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp&amp;quot; data-fix=&amp;quot;1&amp;quot; data-unit=&amp;quot;°C&amp;quot; class=&amp;quot;top-space&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4 align-start rotate&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;darker&amp;quot;&amp;gt;Min&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-part=&amp;quot;1&amp;quot; data-fix=&amp;quot;1&amp;quot; data-unit=&amp;quot;°C&amp;quot; class=&amp;quot;top-space&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4 align-start rotate&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;darker&amp;quot;&amp;gt;Mittel&amp;lt;br&amp;gt;(5 Min)&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-part=&amp;quot;3&amp;quot; data-fix=&amp;quot;1&amp;quot; data-unit=&amp;quot;°C&amp;quot; class=&amp;quot;top-space&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4 align-start rotate&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div class=&amp;quot;darker&amp;quot;&amp;gt;Max&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
			&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-part=&amp;quot;2&amp;quot; data-fix=&amp;quot;1&amp;quot; data-unit=&amp;quot;°C&amp;quot; class=&amp;quot;top-space&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; data-part=&amp;quot;1&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco notext&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; data-part=&amp;quot;3&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco notext&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; data-part=&amp;quot;2&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco notext&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Bsp_CPU_temp.png|600px]]&lt;br /&gt;
&lt;br /&gt;
==Weitere Informationen==&lt;br /&gt;
*Ankündigung des Widgets in einem [https://forum.fhem.de/index.php/topic,80326.0.html Forumsbeitrag]&lt;br /&gt;
*Beispiel auf [https://github.com/knowthelist/fhem-tablet-ui/blob/master/test/test_scale.html GitHub]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI V2|Scale]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:Bsp_CPU_temp.png&amp;diff=39907</id>
		<title>Datei:Bsp CPU temp.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:Bsp_CPU_temp.png&amp;diff=39907"/>
		<updated>2025-02-03T17:39:10Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: FTUI-Bsp. für Scale&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
FTUI-Bsp. für Scale&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Scale&amp;diff=39906</id>
		<title>FTUI Widget Scale</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Scale&amp;diff=39906"/>
		<updated>2025-02-03T17:36:33Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Eränzungen in Tabelle, Beispiel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Todo|Vervollständigen}}&lt;br /&gt;
Das [[{{PAGENAME}}|Scale Widget]] ist ein Widget für [[FHEM Tablet UI V2]], mit dem eine horizontale oder vertikale Balkenanzeige erstellt werden kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:ftui-widget-scale.png&lt;br /&gt;
File:ftui-widget-scale-red.png&lt;br /&gt;
File:ftui-widget-scale-vertical.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading angezeigt werden soll||||Sysmon (= Device vom Typ SYSMON)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, das den Wert enthält||STATE||cpu_temp&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-min&#039;&#039;&#039;||Minimaler Wert, der angezeigt werden soll||0||30&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-max&#039;&#039;&#039;||Maximaler Wert, der angezeigt werden soll, oder Name des Readings, das den Maximalwert enthält||100||90&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-orientation&#039;&#039;&#039;||Ausrichtung des Balkens||horizontal||data-orientation=&amp;quot;vertical&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-font-size&#039;&#039;&#039;||Schriftgröße||12||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-tick&#039;&#039;&#039;||Abstand der Skalenstriche||1||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-value-interval&#039;&#039;&#039;||Abstand der Skalenbeschriftung||50||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-extra-tick&#039;&#039;&#039;||Abstand hervorgehobener Skalenstriche||10||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-tick-color&#039;&#039;&#039;||||#eee||&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-limits-get&#039;&#039;&#039;||Herkunft dynamischer &#039;&#039;&#039;data-limits&#039;&#039;&#039;||||&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-limits&#039;&#039;&#039;||Array von Grenzen für &#039;&#039;&#039;data-colors&#039;&#039;&#039;||||data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;80&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-color&#039;&#039;&#039;||||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-colors&#039;&#039;&#039;||Array von Farbwerten, welche die Anzeige entsprechend der Grenzwerte von &#039;&#039;&#039;data-limits&#039;&#039;&#039; einfärben||||data-colors=&#039;[&amp;quot;#dd3366&amp;quot;,&amp;quot;#ffcc00&amp;quot;,&amp;quot;#55aa44&amp;quot;]&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|notext}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
Anzeige der CPU-Temperatur, welche aus SYSMON ausgelesen wird.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; data-part=&amp;quot;1&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco notext&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; data-part=&amp;quot;3&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco notext&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;col-1-4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;scale&amp;quot; data-value-interval=&amp;quot;10&amp;quot; data-orientation=&amp;quot;vertical&amp;quot; data-handle-diameter=&amp;quot;0&amp;quot; data-height=&amp;quot;120&amp;quot; data-width=&amp;quot;35&amp;quot; data-device=&amp;quot;Systemmonitor&amp;quot; data-get=&amp;quot;cpu_temp_stat&amp;quot; data-limits=&#039;[&amp;quot;30&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;70&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#22dd22&amp;quot;,&amp;quot;#dddd22&amp;quot;,&amp;quot;#dd2222&amp;quot;]&#039; data-min=&amp;quot;30&amp;quot; data-max=&amp;quot;80&amp;quot; data-part=&amp;quot;2&amp;quot; style=&amp;quot;margin-left: -20px !important;&amp;quot; class=&amp;quot;inline darker showdeco notext&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Weitere Informationen==&lt;br /&gt;
*Ankündigung des Widgets in einem [https://forum.fhem.de/index.php/topic,80326.0.html Forumsbeitrag]&lt;br /&gt;
*Beispiel auf [https://github.com/knowthelist/fhem-tablet-ui/blob/master/test/test_scale.html GitHub]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI V2|Scale]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Theme&amp;diff=37149</id>
		<title>FTUI Widget Theme</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Theme&amp;diff=37149"/>
		<updated>2022-01-21T23:49:26Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Typo, Datierung &amp;quot;Bekannte Probleme&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Theme Widget]] ist ein Widget für [[FHEM Tablet UI]], mit dem - gesteuert über ein Device - ein Stylesheet aktiviert und deaktiviert werden kann. Damit lassen sich kontextspezifische Designs realisieren, z.B. abhängig von [[FTUI Widget Homestatus|Homestatus]], Tageszeit, Jahreszeit, ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Theme_Tag.png&lt;br /&gt;
File:FTUI_Theme_Abend.png&lt;br /&gt;
File:FTUI_Theme_Nacht.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading ausgewertet werden soll||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, das den Wert enthält||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Wert, bei dem die css-Datei aktiviert wird||true,1,on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039;||Wert, bei dem die css-Datei deaktiviert wird||!on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;href&#039;&#039;&#039;||Pfad und Name der angepassten css-Datei||||href=&amp;quot;css/Layout_Tag.css&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das Widget muss im &#039;&#039;&amp;lt;Head&amp;gt;&#039;&#039; innerhalb eines &#039;&#039;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; ...&amp;gt;&#039;&#039; angeordnet werden, vgl. Beispiel.&lt;br /&gt;
==Hinweise==&lt;br /&gt;
*Man darf die &#039;&#039;css/fhem-tablet-ui.css&#039;&#039; nicht deaktivieren.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Vordefinierte Stylesheets===&lt;br /&gt;
Im Lieferumfang von FTUI sind bereits vordefinierte Stylesheets enthalten, welche direkt eingebunden werden können:&lt;br /&gt;
* fhem-blue-ui.css&lt;br /&gt;
* fhem-green-ui.css&lt;br /&gt;
* fhem-mobile-ui.css&lt;br /&gt;
* fhem-darkblue-ui.css&lt;br /&gt;
* fhem-darkgreen-ui.css&lt;br /&gt;
Zugehörige Beispielbilder siehe [[FHEM_Tablet_UI#Farben|Farben in FTUI]].&lt;br /&gt;
&lt;br /&gt;
===Hintergrundfarbe bei Tag===&lt;br /&gt;
Tagsüber soll die Hintergrundfarbe geändert werden. Ausgewertet wird hierzu das FHEM-Device &#039;&#039;Twilight&#039;&#039;. Bei Tageslicht nimmt dessen Reading &#039;&#039;light&#039;&#039; den Wert &#039;&#039;&amp;quot;6&amp;quot;&#039;&#039; an.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
defmod Daemmerung Twilight &amp;lt;latitude&amp;gt; &amp;lt;longitude&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&amp;quot;Layout_Tag.css&amp;quot;&#039;&#039; enthält die Farbdefinition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
    background-color: #3A374A !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In der HTML-Datei wird im &#039;&#039;&amp;lt;Head&amp;gt;&#039;&#039; das Widget platziert:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/Layout_Tag.css&amp;quot; data-type=&amp;quot;theme&amp;quot; data-device=&amp;quot;Daemmerung&amp;quot; data-get=&amp;quot;light&amp;quot;&lt;br /&gt;
          data-get-on=&amp;quot;6&amp;quot; data-get-off=&amp;quot;!6&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Umschaltung zwischen alternativen Stylesheets (hier day.css und night.css)===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/day.css&amp;quot; data-type=&amp;quot;theme&amp;quot;&lt;br /&gt;
          data-device=&amp;quot;ftui1&amp;quot; data-get=&amp;quot;theme&amp;quot; data-get-on=&amp;quot;day&amp;quot; data-get-off=&amp;quot;!day&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/night.css&amp;quot; data-type=&amp;quot;theme&amp;quot;&lt;br /&gt;
          data-device=&amp;quot;ftui1&amp;quot; data-get=&amp;quot;theme&amp;quot; data-get-on=&amp;quot;night&amp;quot; data-get-off=&amp;quot;!night&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Hintergrundbilder für die Dämmerung===&lt;br /&gt;
Das FHEM-Device &#039;&#039;Twilight&#039;&#039; unterscheidet zwischen astronomischer, nautischer und bürgerlicher Dämmerung. Auf dieser Basis können Tagesanfang und -ende einfach mit abgestuften Hintergrundbildern verknüpft werden.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Daemmerung_1.jpg&lt;br /&gt;
File:FTUI_Daemmerung_2.jpg&lt;br /&gt;
File:FTUI_Daemmerung_3.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bekannte Probleme==&lt;br /&gt;
Das Umschalten der Stylesheets kann unter Umständen bei diversen Browsern nicht funktionieren.&lt;br /&gt;
Aus diesem Grunde sei empfohlen, parallel andere Internet-Browser zu testen.&lt;br /&gt;
&lt;br /&gt;
Stand der getesteten Browser (9/2018)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser!! Version !! Funktion&lt;br /&gt;
|-&lt;br /&gt;
| Chrome || 69.0.3497.100 || OK&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Firefox || 62.0 || NOK&lt;br /&gt;
|-&lt;br /&gt;
| Internet Explorer || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| Microsoft Edge || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| UC/Browser || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| Opera || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| Safari || ? || ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Weitere Informationen==&lt;br /&gt;
*Ausrollung des Widgets in einem [https://forum.fhem.de/index.php/topic,69259.0.html Forumsbeitrag]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|theme]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Theme&amp;diff=37148</id>
		<title>FTUI Widget Theme</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Theme&amp;diff=37148"/>
		<updated>2022-01-21T23:46:32Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Bekannte Probleme */ Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Theme Widget]] ist ein Widget für [[FHEM Tablet UI]], mit dem - gesteuert über ein Device - ein Stylesheet aktiviert und deaktiviert werden kann. Damit lassen sich kontextspezifische Designs realisieren, z.B. abhängig von [[FTUI Widget Homestatus|Homestatus]], Tageszeit, Jahreszeit, ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Theme_Tag.png&lt;br /&gt;
File:FTUI_Theme_Abend.png&lt;br /&gt;
File:FTUI_Theme_Nacht.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading ausgewertet werden soll||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, das den Wert enthält||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Wert, bei dem die css-Datei aktiviert wird||true,1,on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039;||Wert, bei dem die css-Datei deaktiviert wird||!on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;href&#039;&#039;&#039;||Pfad und Name der angepassten css-Datei||||href=&amp;quot;css/Layout_Tag.css&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das Widget muss im &#039;&#039;&amp;lt;Head&amp;gt;&#039;&#039; innerhalb eines &#039;&#039;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; ...&amp;gt;&#039;&#039; angeordnet werden, vgl. Beispiel.&lt;br /&gt;
==Hinweise==&lt;br /&gt;
*Man darf die &#039;&#039;css/fhem-tablet-ui.css&#039;&#039; nicht deaktivieren.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Vordefinierte Stylesheets===&lt;br /&gt;
Im Lieferumfang von FTUI sind bereits vordefinierte Stylesheets enthalten, welche direkt eingebunden werden können:&lt;br /&gt;
* fhem-blue-ui.css&lt;br /&gt;
* fhem-green-ui.css&lt;br /&gt;
* fhem-mobile-ui.css&lt;br /&gt;
* fhem-darkblue-ui.css&lt;br /&gt;
* fhem-darkgreen-ui.css&lt;br /&gt;
Zugehörige Beispielbilder siehe [[FHEM_Tablet_UI#Farben|Farben in FTUI]].&lt;br /&gt;
&lt;br /&gt;
===Hintergrundfarbe bei Tag===&lt;br /&gt;
Tagsüber soll die Hintergrundfarbe geändert werden. Ausgewertet wird hierzu das FHEM-Device &#039;&#039;Twilight&#039;&#039;. Bei Tageslicht nimmt dessen Reading &#039;&#039;light&#039;&#039; den Wert &#039;&#039;&amp;quot;6&amp;quot;&#039;&#039; an.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
defmod Daemmerung Twilight &amp;lt;latitude&amp;gt; &amp;lt;longitude&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&amp;quot;Layout_Tag.css&amp;quot;&#039;&#039; enthält die Farbdefinition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
    background-color: #3A374A !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In der HTML-Datei wird im &#039;&#039;&amp;lt;Head&amp;gt;&#039;&#039; das Widget platziert:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/Layout_Tag.css&amp;quot; data-type=&amp;quot;theme&amp;quot; data-device=&amp;quot;Daemmerung&amp;quot; data-get=&amp;quot;light&amp;quot;&lt;br /&gt;
          data-get-on=&amp;quot;6&amp;quot; data-get-off=&amp;quot;!6&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Umschaltung zwischen alternativen Stylesheets (hier day.css und night.css)===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/day.css&amp;quot; data-type=&amp;quot;theme&amp;quot;&lt;br /&gt;
          data-device=&amp;quot;ftui1&amp;quot; data-get=&amp;quot;theme&amp;quot; data-get-on=&amp;quot;day&amp;quot; data-get-off=&amp;quot;!day&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/night.css&amp;quot; data-type=&amp;quot;theme&amp;quot;&lt;br /&gt;
          data-device=&amp;quot;ftui1&amp;quot; data-get=&amp;quot;theme&amp;quot; data-get-on=&amp;quot;night&amp;quot; data-get-off=&amp;quot;!night&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Hintergrundbilder für die Dämmerung===&lt;br /&gt;
Das FHEM-Device &#039;&#039;Twilight&#039;&#039; unterscheidet zwischen astronomischer, nautischer und bürgerlicher Dämmerung. Auf dieser Basis können Tagesanfang und -ende einfach mit abgestuften Hintergrundbildern verknüpft werden.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Daemmerung_1.jpg&lt;br /&gt;
File:FTUI_Daemmerung_2.jpg&lt;br /&gt;
File:FTUI_Daemmerung_3.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bekannte Probleme==&lt;br /&gt;
Das Umschalten der Stylesheets kann unter Umständen bei diversen Browsern nicht funktionieren.&lt;br /&gt;
Aus diesem Grunde sei empfohlen, parallel andere Internet-Browser zu testen.&lt;br /&gt;
&lt;br /&gt;
Gegenwärtiger Stand der getesteten Browser&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser!! Version !! Funktion&lt;br /&gt;
|-&lt;br /&gt;
| Chrome || 69.0.3497.100 || OK&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Firefox || 62.0 || NOK&lt;br /&gt;
|-&lt;br /&gt;
| Internet Explorer || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| Microsoft Edge || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| UC/Browser || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| Opera || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
| Safari || ? || ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Weitere Informationen==&lt;br /&gt;
*Ausrollung des Widgets in einem [https://forum.fhem.de/index.php/topic,69259.0.html Forumsbeitrag]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|theme]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=37147</id>
		<title>FTUI Widget Departure</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=37147"/>
		<updated>2022-01-21T21:04:49Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Aktualisierung bei der Datenquelle; diverse kleinere Ergänzungen.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Widget Departure]] ist ein Widget für [[FHEM Tablet UI]] zur Anzeige der Abfahrtszeiten von Bahn, Bus, Zug und Fähre. Der Entwickler orientierte sich beim Design an den Dresdner Verkehrsbetrieben bzw. am Verkehrsverbund Oberelbe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Departure_01.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||Name des FHEM-Devices||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, welches die Daten bereitstellt. Dieser Name sollte keine Umlaute und das ß enthalten, weil sonst der automatische Refresh beim Wechsel auf die Seite unterbleibt, vgl. &#039;&#039;data-interval&#039;&#039;||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-title&#039;&#039;&#039;||Überschrift, die in der Kopfzeile ausgegeben wird||data-get||data-title=&amp;quot;Schloßallee&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der an FHEM gesendet wird||&#039;get&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon-color&#039;&#039;&#039;||Farbe des Icons||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-text-color&#039;&#039;&#039;||Textfarbe der Verbindungsdaten||&#039;#ddd&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Hintergrundfarbe ||&#039;#C0C0C0&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Icon für die Kopfzeile||(Symbol Haltestelle)||data-icon=&amp;quot;fa-train&amp;quot;, data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-width&#039;&#039;&#039;||Feste Breite (in % or px)||&#039;200px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Feste Höhe (in % or px)||&#039;250px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-interval&#039;&#039;&#039;||Zeitintervall für den refresh in s, bei &#039;0&#039; kein auto refresh; zusätzlich wird beim Laden der Seite und in Pagebutton beim Wechsel auf die Seite ein refresh ausgelöst||&#039;120&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-refresh&#039;&#039;&#039;||wie data-interval||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DB&#039;&#039;&#039;||Design Bahn AG&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DVB&#039;&#039;&#039;||Design Dresdner Verkehrsbetriebe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;VVO&#039;&#039;&#039;||VVO Design Verkehrsverbund Oberelbe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;alternate&#039;&#039;&#039;||abwechselnd schattierte Zeilen&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;deptime&#039;&#039;&#039;||angezeigt wird die Abfahrtszeit anstelle der verbleibenden Zeit bis zur Abfahrt&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
==Datenquelle==&lt;br /&gt;
Die Daten stammen in FHEM aus einer HTTPMOD-Abfrage, hier dargestellt an einem Beispiel aus Dresden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define VVO HTTPMOD none 0&lt;br /&gt;
attr VVO get02Name Postplatz&lt;br /&gt;
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&amp;amp;hst=Postplatz&amp;amp;vz=0&amp;amp;lim=10&lt;br /&gt;
attr VVO get02Regex (\[\[.*\]\]).*&lt;br /&gt;
attr VVO timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch die Daten anderer Verkehrsträger können genutzt werden. Entweder greift man hierzu direkt auf die Schnittstelle des Verkehrsträgers zu, was idR eine spezifische RegEx ([[Regulärer_Ausdruck]]) bedingt.&lt;br /&gt;
&lt;br /&gt;
Oder man wählt folgenden allgemeineren Weg, welcher auf den Daten der App &#039;&#039;Öffi&#039;&#039; basiert: Zunächst ist der Provider für die Daten zu ermitteln. Die Liste der verfügbaren Provider erhält man mittels&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/provider&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Antwort lautet etwa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[{&amp;quot;aClass&amp;quot;:&amp;quot;AvvAugsburgProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;AvvAugsburg&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;VvsProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Vvs&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;WienProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Wien&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;OntarioProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ontario&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;VvoProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Vvo&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;ParisProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Paris&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;VrsProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Vrs&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;SbbProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sbb&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;QuebecProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Quebec&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;BvgProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Bvg&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;KvvProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Kvv&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;DbProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Db&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;BayernProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Bayern&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;VgsProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Vgs&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;DingProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ding&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;NvbwProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Nvbw&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;LinzProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Linz&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;FinlandProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Finland&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;SydneyProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sydney&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;PlProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Pl&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;GhanaProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ghana&amp;quot;},{&amp;quot;aClass&amp;quot;:&amp;quot;MvvProvider&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Mvv&amp;quot;} ... ]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevant ist die Bezeichnung hinter „name“, z.B. „Ding“. „Ding“ steht für „Donau-Iller-Nahverkehrsverbund“. Weil auch ländliche Gebiete meist in Verkehrsverbünde eingegliedert sind, besteht eine realistische Chance, einen Provider für den eigenen Standort zu finden. „Nvbw“ steht für „Nahverkehr Baden-Württemberg“. Bewährt hat sich auch „Db“. Der Wert „aClass“ ist hier nicht von Belang. &lt;br /&gt;
&lt;br /&gt;
Anschließend ist die StationId für die gewünschte Haltestelle zu ermitteln, in diesem Beispiel die Haltestelle &#039;&#039;Sonnenfeld&#039;&#039;. Hierzu dient folgende Abfrage:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Sonnenfeld&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Als Antwort erhält man die StationId &amp;quot;9001258&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Testweise können damit die aktuellen Abfahrten abgerufen werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einbindung in FHEM erfolgt wie nachfolgend beschrieben:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Departure_Sonnenfeld HTTPMOD none 0&lt;br /&gt;
attr Departure_Sonnenfeld get01Name Sonnenfeld&lt;br /&gt;
attr Departure_Sonnenfeld get01URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
attr Departure_Sonnenfeld get01Regex (\[\[.*\]\]).*&lt;br /&gt;
attr Departure_Sonnenfeld timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können mehrere Haltestellen in einem Device hinterlegt werden; hierzu einfach die drei Attribute &#039;&#039;get01Name, get01URL&#039;&#039; und &#039;&#039;get01Regex&#039;&#039; duplizieren und durchnummerieren. Dabei müssen natürlich Name und URL angepasst werden.&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Provider ändern bisweilen ihre Schnittstellendefinitionen. In diesem Fall sind Anpassungen vorzunehmen. Das Forum ist eine geeignete Plattform zur Problemlösung. Als sehr stabil hat sich die beschriebene verallgemeinerte Datenquelle erwiesen.&lt;br /&gt;
* Wie im Beispiel aus Dresden dargestellt, lässt sich die Anzahl der gelieferten Daten einstellen, z.B. &#039;&#039;...&amp;amp;lim=10&#039;&#039;&lt;br /&gt;
* Probleme mit Sonderzeichen in den Richtungsangaben lassen sich wie folgt lösen:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr xyz getDecode UTF-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==HTML==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
data-device=&amp;quot;Departure_Sonnenfeld&amp;quot;&lt;br /&gt;
data-get=&amp;quot;Sonnenfeld&amp;quot;&lt;br /&gt;
data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
data-interval=&amp;quot;60&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_02.png|150px]]&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Umschalten zwischen relativer und absoluter Abfahrtszeit===&lt;br /&gt;
Dieses Feature ist im Widget selbst nicht implementiert, lässt sich aber mittels [[FTUI Widget Classchanger]] und [[FTUI Widget Checkbox]] umsetzen. Hierbei wird die gewünschte Ansicht ein- und die andere ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Nahverkehr_Umschalter_Zeitangabe dummy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;on&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;off&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate deptime&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hbox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;on&amp;quot;, &amp;quot;off&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt in ... Min.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;checkbox&amp;quot; class=&amp;quot;big inline&amp;quot; data-on-background-color=&amp;quot;grey&amp;quot; data-off-background-color=&amp;quot;grey&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;off&amp;quot;, &amp;quot;on&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt um ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
FTUI Widget departure classchanger 1.png&lt;br /&gt;
FTUI Widget departure classchanger 2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Filtern von Zielen===&lt;br /&gt;
Die ausgegebenen Ergebnisse lassen sich direkt in der HTTPMOD-Abfrage filtern.&lt;br /&gt;
====Herausfiltern unerwünschter Relationen====&lt;br /&gt;
Hierzu nutzt man das Attribut &#039;&#039;get01Expr&#039;&#039; (ggf. auch &#039;&#039;get02Expr&#039;&#039; etc.) und füllt es mit&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{$val=~s/\[[^\[]*(&amp;quot;Parkstraße&amp;quot;,|&amp;quot;Schlossallee&amp;quot;,|&amp;quot;100&amp;quot;,)[^\]]*\],?//g; $val=~s/\],\]/]]/; return $val;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In diesem Beispiel werden alle Abfahrten entfernt, die &amp;quot;Parkstraße&amp;quot; oder &amp;quot;Schlossallee&amp;quot; oder die Linie &amp;quot;100&amp;quot; enthalten.&lt;br /&gt;
&lt;br /&gt;
====Auswahl erwünschter Relationen====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{$val=&amp;quot;[&amp;quot;.join(&#039;,&#039;,$val=~/(\[[^\[]*(?:&amp;quot;Parkstraße&amp;quot;,|&amp;quot;Schlossallee&amp;quot;,|&amp;quot;100&amp;quot;,)[^\]]*\])/g).&amp;quot;]&amp;quot;; return $val;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Hier werden nur die Abfahrten &amp;quot;Parkstraße&amp;quot; und &amp;quot;Schlossallee&amp;quot; und Linie &amp;quot;100&amp;quot; angegeben.&lt;br /&gt;
&lt;br /&gt;
Zu Fallstricken bei der Eingabe von Zielen vgl. [https://forum.fhem.de/index.php/topic,48255.msg1014192.html#msg1014192 FHEM-Forum]&lt;br /&gt;
&lt;br /&gt;
==Links== &lt;br /&gt;
FHEM Wiki [[Departure]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Departure]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=37146</id>
		<title>FTUI Widget Departure</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=37146"/>
		<updated>2022-01-21T20:01:01Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Bei den Filtern auch Liniennummern ermöglicht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Widget Departure]] ist ein Widget für [[FHEM Tablet UI]] zur Anzeige der Abfahrtszeiten von Bahn, Bus, Zug und Fähre. Der Entwickler orientierte sich beim Design an den Dresdner Verkehrsbetrieben bzw. am Verkehrsverbund Oberelbe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Departure_01.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||Name des FHEM-Devices||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, welches die Daten bereitstellt. Dieser Name sollte keine Umlaute und das ß enthalten, weil sonst der automatische Refresh beim Wechsel auf die Seite unterbleibt, vgl. &#039;&#039;data-interval&#039;&#039;||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-title&#039;&#039;&#039;||Überschrift, die in der Kopfzeile ausgegeben wird||data-get||data-title=&amp;quot;Schloßallee&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der an FHEM gesendet wird||&#039;get&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon-color&#039;&#039;&#039;||Farbe des Icons||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-text-color&#039;&#039;&#039;||Textfarbe der Verbindungsdaten||&#039;#ddd&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Hintergrundfarbe ||&#039;#C0C0C0&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Icon für die Kopfzeile||(Symbol Haltestelle)||data-icon=&amp;quot;fa-train&amp;quot;, data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-width&#039;&#039;&#039;||Feste Breite (in % or px)||&#039;200px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Feste Höhe (in % or px)||&#039;250px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-interval&#039;&#039;&#039;||Zeitintervall für den refresh in s, bei &#039;0&#039; kein auto refresh; zusätzlich wird beim Laden der Seite und in Pagebutton beim Wechsel auf die Seite ein refresh ausgelöst||&#039;120&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-refresh&#039;&#039;&#039;||wie data-interval||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DB&#039;&#039;&#039;||Design Bahn AG&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DVB&#039;&#039;&#039;||Design Dresdner Verkehrsbetriebe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;VVO&#039;&#039;&#039;||VVO Design Verkehrsverbund Oberelbe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;alternate&#039;&#039;&#039;||abwechselnd schattierte Zeilen&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;deptime&#039;&#039;&#039;||angezeigt wird die Abfahrtszeit anstelle der verbleibenden Zeit bis zur Abfahrt&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Provider ändern bisweilen ihre Schnittstellendefinitionen mit Auswirkungen auf den nachfolgend beschriebenen Informationsfluss. In diesem Fall sind Anpassungen vorzunehmen. Das Forum ist eine geeignete Plattform zur Klärung des Sachverhaltes.&lt;br /&gt;
* Probleme mit Sonderzeichen in den Richtungsangaben lassen sich gemäß {{Link2Forum|Topic=48255|Message=1135329|LinkText=dieses Hinweises im Forum}} wie folgt lösen:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr xyz getDecode UTF-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Datenquelle==&lt;br /&gt;
Die Daten stammen in FHEM aus einer HTTPMOD-Abfrage, hier dargestellt an einem Beispiel aus Dresden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define VVO HTTPMOD none 0&lt;br /&gt;
attr VVO get02Name Postplatz&lt;br /&gt;
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&amp;amp;hst=Postplatz&amp;amp;vz=0&amp;amp;lim=10&lt;br /&gt;
attr VVO get02Regex (\[\[.*\]\]).*&lt;br /&gt;
attr VVO timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch die Daten anderer Verkehrsträger können genutzt werden. Entweder greift man hierzu direkt auf die Schnittstelle des Verkehrsträgers zu, was idR eine spezifische RegEx ([[Regulärer_Ausdruck]]) bedingt.&lt;br /&gt;
&lt;br /&gt;
Oder man wählt folgenden allgemeineren Weg, welcher auf den Daten der App &#039;&#039;Öffi&#039;&#039; basiert: Zunächst ist der Provider für die Daten zu ermitteln. Die Liste der verfügbaren Provider erhält man mittels&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/provider&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Antwort lautet etwa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[{&amp;quot;name&amp;quot;:&amp;quot;Bahn&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;BahnProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Gvh&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;GvhProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vgn&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VgnProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Kvv&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;KvvProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vbl&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VblProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Dub&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;DubProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vms&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VmsProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Bsvag&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;BsvagProvider&amp;quot;}, [...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevant ist die Bezeichnung hinter „name“, z.B. „Ding“. „Ding“ steht für „Donau-Iller-Nahverkehrsverbund“. Weil auch ländliche Gebiete meist in Verkehrsverbünde eingegliedert sind, besteht eine realistische Chance, einen Provider für den eigenen Standort zu finden. In größeren Städten kann oft auch der Provider „Bahn“ genutzt werden. Der Wert „aClass“ ist hier nicht von Belang. &lt;br /&gt;
&lt;br /&gt;
Anschließend ist die StationId für die gewünschte Haltestelle zu ermitteln, in diesem Beispiel die Haltestelle &#039;&#039;Sonnenfeld&#039;&#039;. Hierzu dient folgende Abfrage:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Sonnenfeld&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Als Antwort erhält man die StationId &amp;quot;9001258&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Testweise können damit die aktuellen Abfahrten abgerufen werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einbindung in FHEM erfolgt wie nachfolgend beschrieben:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Departure_Sonnenfeld HTTPMOD none 0&lt;br /&gt;
attr Departure_Sonnenfeld get01Name Sonnenfeld&lt;br /&gt;
attr Departure_Sonnenfeld get01URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
attr Departure_Sonnenfeld get01Regex (\[\[.*\]\]).*&lt;br /&gt;
attr Departure_Sonnenfeld timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können mehrere Haltestellen in einem Device hinterlegt werden; hierzu einfach die drei Attribute &#039;&#039;get01Name, get01URL&#039;&#039; und &#039;&#039;get01Regex&#039;&#039; duplizieren und durchnummerieren. Dabei müssen natürlich Name und URL angepasst werden.&lt;br /&gt;
&lt;br /&gt;
==HTML==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
data-device=&amp;quot;Departure_Sonnenfeld&amp;quot;&lt;br /&gt;
data-get=&amp;quot;Sonnenfeld&amp;quot;&lt;br /&gt;
data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
data-interval=&amp;quot;60&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_02.png|150px]]&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Umschalten zwischen relativer und absoluter Abfahrtszeit===&lt;br /&gt;
Dieses Feature ist im Widget selbst nicht implementiert, lässt sich aber mittels [[FTUI Widget Classchanger]] und [[FTUI Widget Checkbox]] umsetzen. Hierbei wird die gewünschte Ansicht ein- und die andere ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Nahverkehr_Umschalter_Zeitangabe dummy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;on&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;off&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate deptime&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hbox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;on&amp;quot;, &amp;quot;off&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt in ... Min.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;checkbox&amp;quot; class=&amp;quot;big inline&amp;quot; data-on-background-color=&amp;quot;grey&amp;quot; data-off-background-color=&amp;quot;grey&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;off&amp;quot;, &amp;quot;on&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt um ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
FTUI Widget departure classchanger 1.png&lt;br /&gt;
FTUI Widget departure classchanger 2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Filtern von Zielen===&lt;br /&gt;
Die ausgegebenen Ergebnisse lassen sich direkt in der HTTPMOD-Abfrage filtern.&lt;br /&gt;
====Herausfiltern unerwünschter Relationen====&lt;br /&gt;
Hierzu nutzt man das Attribut &#039;&#039;get01Expr&#039;&#039; (ggf. auch &#039;&#039;get02Expr&#039;&#039; etc.) und füllt es mit&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{$val=~s/\[[^\[]*(&amp;quot;Parkstraße&amp;quot;,|&amp;quot;Schlossallee&amp;quot;,|&amp;quot;100&amp;quot;,)[^\]]*\],?//g; $val=~s/\],\]/]]/; return $val;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In diesem Beispiel werden alle Abfahrten entfernt, die &amp;quot;Parkstraße&amp;quot; oder &amp;quot;Schlossallee&amp;quot; oder die Linie &amp;quot;100&amp;quot; enthalten.&lt;br /&gt;
&lt;br /&gt;
====Auswahl erwünschter Relationen====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{$val=&amp;quot;[&amp;quot;.join(&#039;,&#039;,$val=~/(\[[^\[]*(?:&amp;quot;Parkstraße&amp;quot;,|&amp;quot;Schlossallee&amp;quot;,|&amp;quot;100&amp;quot;,)[^\]]*\])/g).&amp;quot;]&amp;quot;; return $val;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Hier werden nur die Abfahrten &amp;quot;Parkstraße&amp;quot; und &amp;quot;Schlossallee&amp;quot; und Linie &amp;quot;100&amp;quot; angegeben.&lt;br /&gt;
&lt;br /&gt;
Zu Fallstricken bei der Eingabe von Zielen vgl. [https://forum.fhem.de/index.php/topic,48255.msg1014192.html#msg1014192 FHEM-Forum]&lt;br /&gt;
&lt;br /&gt;
==Links== &lt;br /&gt;
FHEM Wiki [[Departure]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Departure]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=37145</id>
		<title>FTUI Widget Departure</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=37145"/>
		<updated>2022-01-21T19:47:21Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Auswahl erwünschter Relationen */ Leerzeichen in Formel entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Widget Departure]] ist ein Widget für [[FHEM Tablet UI]] zur Anzeige der Abfahrtszeiten von Bahn, Bus, Zug und Fähre. Der Entwickler orientierte sich beim Design an den Dresdner Verkehrsbetrieben bzw. am Verkehrsverbund Oberelbe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Departure_01.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||Name des FHEM-Devices||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, welches die Daten bereitstellt. Dieser Name sollte keine Umlaute und das ß enthalten, weil sonst der automatische Refresh beim Wechsel auf die Seite unterbleibt, vgl. &#039;&#039;data-interval&#039;&#039;||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-title&#039;&#039;&#039;||Überschrift, die in der Kopfzeile ausgegeben wird||data-get||data-title=&amp;quot;Schloßallee&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der an FHEM gesendet wird||&#039;get&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon-color&#039;&#039;&#039;||Farbe des Icons||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-text-color&#039;&#039;&#039;||Textfarbe der Verbindungsdaten||&#039;#ddd&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Hintergrundfarbe ||&#039;#C0C0C0&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Icon für die Kopfzeile||(Symbol Haltestelle)||data-icon=&amp;quot;fa-train&amp;quot;, data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-width&#039;&#039;&#039;||Feste Breite (in % or px)||&#039;200px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Feste Höhe (in % or px)||&#039;250px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-interval&#039;&#039;&#039;||Zeitintervall für den refresh in s, bei &#039;0&#039; kein auto refresh; zusätzlich wird beim Laden der Seite und in Pagebutton beim Wechsel auf die Seite ein refresh ausgelöst||&#039;120&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-refresh&#039;&#039;&#039;||wie data-interval||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DB&#039;&#039;&#039;||Design Bahn AG&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DVB&#039;&#039;&#039;||Design Dresdner Verkehrsbetriebe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;VVO&#039;&#039;&#039;||VVO Design Verkehrsverbund Oberelbe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;alternate&#039;&#039;&#039;||abwechselnd schattierte Zeilen&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;deptime&#039;&#039;&#039;||angezeigt wird die Abfahrtszeit anstelle der verbleibenden Zeit bis zur Abfahrt&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Provider ändern bisweilen ihre Schnittstellendefinitionen mit Auswirkungen auf den nachfolgend beschriebenen Informationsfluss. In diesem Fall sind Anpassungen vorzunehmen. Das Forum ist eine geeignete Plattform zur Klärung des Sachverhaltes.&lt;br /&gt;
* Probleme mit Sonderzeichen in den Richtungsangaben lassen sich gemäß {{Link2Forum|Topic=48255|Message=1135329|LinkText=dieses Hinweises im Forum}} wie folgt lösen:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr xyz getDecode UTF-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Datenquelle==&lt;br /&gt;
Die Daten stammen in FHEM aus einer HTTPMOD-Abfrage, hier dargestellt an einem Beispiel aus Dresden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define VVO HTTPMOD none 0&lt;br /&gt;
attr VVO get02Name Postplatz&lt;br /&gt;
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&amp;amp;hst=Postplatz&amp;amp;vz=0&amp;amp;lim=10&lt;br /&gt;
attr VVO get02Regex (\[\[.*\]\]).*&lt;br /&gt;
attr VVO timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch die Daten anderer Verkehrsträger können genutzt werden. Entweder greift man hierzu direkt auf die Schnittstelle des Verkehrsträgers zu, was idR eine spezifische RegEx ([[Regulärer_Ausdruck]]) bedingt.&lt;br /&gt;
&lt;br /&gt;
Oder man wählt folgenden allgemeineren Weg, welcher auf den Daten der App &#039;&#039;Öffi&#039;&#039; basiert: Zunächst ist der Provider für die Daten zu ermitteln. Die Liste der verfügbaren Provider erhält man mittels&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/provider&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Antwort lautet etwa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[{&amp;quot;name&amp;quot;:&amp;quot;Bahn&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;BahnProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Gvh&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;GvhProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vgn&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VgnProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Kvv&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;KvvProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vbl&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VblProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Dub&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;DubProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vms&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VmsProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Bsvag&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;BsvagProvider&amp;quot;}, [...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevant ist die Bezeichnung hinter „name“, z.B. „Ding“. „Ding“ steht für „Donau-Iller-Nahverkehrsverbund“. Weil auch ländliche Gebiete meist in Verkehrsverbünde eingegliedert sind, besteht eine realistische Chance, einen Provider für den eigenen Standort zu finden. In größeren Städten kann oft auch der Provider „Bahn“ genutzt werden. Der Wert „aClass“ ist hier nicht von Belang. &lt;br /&gt;
&lt;br /&gt;
Anschließend ist die StationId für die gewünschte Haltestelle zu ermitteln, in diesem Beispiel die Haltestelle &#039;&#039;Sonnenfeld&#039;&#039;. Hierzu dient folgende Abfrage:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Sonnenfeld&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Als Antwort erhält man die StationId &amp;quot;9001258&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Testweise können damit die aktuellen Abfahrten abgerufen werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einbindung in FHEM erfolgt wie nachfolgend beschrieben:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Departure_Sonnenfeld HTTPMOD none 0&lt;br /&gt;
attr Departure_Sonnenfeld get01Name Sonnenfeld&lt;br /&gt;
attr Departure_Sonnenfeld get01URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
attr Departure_Sonnenfeld get01Regex (\[\[.*\]\]).*&lt;br /&gt;
attr Departure_Sonnenfeld timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können mehrere Haltestellen in einem Device hinterlegt werden; hierzu einfach die drei Attribute &#039;&#039;get01Name, get01URL&#039;&#039; und &#039;&#039;get01Regex&#039;&#039; duplizieren und durchnummerieren. Dabei müssen natürlich Name und URL angepasst werden.&lt;br /&gt;
&lt;br /&gt;
==HTML==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
data-device=&amp;quot;Departure_Sonnenfeld&amp;quot;&lt;br /&gt;
data-get=&amp;quot;Sonnenfeld&amp;quot;&lt;br /&gt;
data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
data-interval=&amp;quot;60&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_02.png|150px]]&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Umschalten zwischen relativer und absoluter Abfahrtszeit===&lt;br /&gt;
Dieses Feature ist im Widget selbst nicht implementiert, lässt sich aber mittels [[FTUI Widget Classchanger]] und [[FTUI Widget Checkbox]] umsetzen. Hierbei wird die gewünschte Ansicht ein- und die andere ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Nahverkehr_Umschalter_Zeitangabe dummy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;on&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;off&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate deptime&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hbox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;on&amp;quot;, &amp;quot;off&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt in ... Min.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;checkbox&amp;quot; class=&amp;quot;big inline&amp;quot; data-on-background-color=&amp;quot;grey&amp;quot; data-off-background-color=&amp;quot;grey&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;off&amp;quot;, &amp;quot;on&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt um ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
FTUI Widget departure classchanger 1.png&lt;br /&gt;
FTUI Widget departure classchanger 2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Filtern von Zielen===&lt;br /&gt;
Die ausgegebenen Ergebnisse lassen sich direkt in der HTTPMOD-Abfrage filtern.&lt;br /&gt;
====Herausfiltern unerwünschter Relationen====&lt;br /&gt;
Hierzu nutzt man das Attribut &#039;&#039;get01Expr&#039;&#039; (ggf. auch &#039;&#039;get02Expr&#039;&#039; etc.) und füllt es mit&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{$val=~s/\[[^\[]*(&amp;quot;Parkstraße&amp;quot;,|&amp;quot;Schlossallee&amp;quot;,)[^\]]*\],?//g; $val=~s/\],\]/]]/; return $val;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In diesem Beispiel werden alle Ziele entfernt, die &amp;quot;Parkstraße&amp;quot; oder &amp;quot;Schlossallee&amp;quot; enthalten.&lt;br /&gt;
&lt;br /&gt;
====Auswahl erwünschter Relationen====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{$val=&amp;quot;[&amp;quot;.join(&#039;,&#039;,$val=~/(\[[^\[]*(?:&amp;quot;Parkstraße&amp;quot;|&amp;quot;Schlossallee&amp;quot;)[^\]]*\])/g).&amp;quot;]&amp;quot;; return $val;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Hier werden nur die Abfahrten mit den Zielen &amp;quot;Parkstraße&amp;quot; oder &amp;quot;Schlossallee&amp;quot; angegeben.&lt;br /&gt;
&lt;br /&gt;
Zu Fallstricken bei der Eingabe von Zielen vgl. [https://forum.fhem.de/index.php/topic,48255.msg1014192.html#msg1014192 FHEM-Forum]&lt;br /&gt;
&lt;br /&gt;
==Links== &lt;br /&gt;
FHEM Wiki [[Departure]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Departure]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=37144</id>
		<title>FTUI Widget Departure</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=37144"/>
		<updated>2022-01-21T19:46:15Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Herausfiltern unerwünschter Relationen */ Leerzeichen in Formel entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Widget Departure]] ist ein Widget für [[FHEM Tablet UI]] zur Anzeige der Abfahrtszeiten von Bahn, Bus, Zug und Fähre. Der Entwickler orientierte sich beim Design an den Dresdner Verkehrsbetrieben bzw. am Verkehrsverbund Oberelbe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Departure_01.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||Name des FHEM-Devices||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, welches die Daten bereitstellt. Dieser Name sollte keine Umlaute und das ß enthalten, weil sonst der automatische Refresh beim Wechsel auf die Seite unterbleibt, vgl. &#039;&#039;data-interval&#039;&#039;||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-title&#039;&#039;&#039;||Überschrift, die in der Kopfzeile ausgegeben wird||data-get||data-title=&amp;quot;Schloßallee&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der an FHEM gesendet wird||&#039;get&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon-color&#039;&#039;&#039;||Farbe des Icons||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-text-color&#039;&#039;&#039;||Textfarbe der Verbindungsdaten||&#039;#ddd&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Hintergrundfarbe ||&#039;#C0C0C0&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Icon für die Kopfzeile||(Symbol Haltestelle)||data-icon=&amp;quot;fa-train&amp;quot;, data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-width&#039;&#039;&#039;||Feste Breite (in % or px)||&#039;200px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Feste Höhe (in % or px)||&#039;250px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-interval&#039;&#039;&#039;||Zeitintervall für den refresh in s, bei &#039;0&#039; kein auto refresh; zusätzlich wird beim Laden der Seite und in Pagebutton beim Wechsel auf die Seite ein refresh ausgelöst||&#039;120&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-refresh&#039;&#039;&#039;||wie data-interval||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DB&#039;&#039;&#039;||Design Bahn AG&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DVB&#039;&#039;&#039;||Design Dresdner Verkehrsbetriebe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;VVO&#039;&#039;&#039;||VVO Design Verkehrsverbund Oberelbe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;alternate&#039;&#039;&#039;||abwechselnd schattierte Zeilen&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;deptime&#039;&#039;&#039;||angezeigt wird die Abfahrtszeit anstelle der verbleibenden Zeit bis zur Abfahrt&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Provider ändern bisweilen ihre Schnittstellendefinitionen mit Auswirkungen auf den nachfolgend beschriebenen Informationsfluss. In diesem Fall sind Anpassungen vorzunehmen. Das Forum ist eine geeignete Plattform zur Klärung des Sachverhaltes.&lt;br /&gt;
* Probleme mit Sonderzeichen in den Richtungsangaben lassen sich gemäß {{Link2Forum|Topic=48255|Message=1135329|LinkText=dieses Hinweises im Forum}} wie folgt lösen:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr xyz getDecode UTF-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Datenquelle==&lt;br /&gt;
Die Daten stammen in FHEM aus einer HTTPMOD-Abfrage, hier dargestellt an einem Beispiel aus Dresden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define VVO HTTPMOD none 0&lt;br /&gt;
attr VVO get02Name Postplatz&lt;br /&gt;
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&amp;amp;hst=Postplatz&amp;amp;vz=0&amp;amp;lim=10&lt;br /&gt;
attr VVO get02Regex (\[\[.*\]\]).*&lt;br /&gt;
attr VVO timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch die Daten anderer Verkehrsträger können genutzt werden. Entweder greift man hierzu direkt auf die Schnittstelle des Verkehrsträgers zu, was idR eine spezifische RegEx ([[Regulärer_Ausdruck]]) bedingt.&lt;br /&gt;
&lt;br /&gt;
Oder man wählt folgenden allgemeineren Weg, welcher auf den Daten der App &#039;&#039;Öffi&#039;&#039; basiert: Zunächst ist der Provider für die Daten zu ermitteln. Die Liste der verfügbaren Provider erhält man mittels&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/provider&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Antwort lautet etwa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[{&amp;quot;name&amp;quot;:&amp;quot;Bahn&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;BahnProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Gvh&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;GvhProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vgn&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VgnProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Kvv&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;KvvProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vbl&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VblProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Dub&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;DubProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vms&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VmsProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Bsvag&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;BsvagProvider&amp;quot;}, [...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevant ist die Bezeichnung hinter „name“, z.B. „Ding“. „Ding“ steht für „Donau-Iller-Nahverkehrsverbund“. Weil auch ländliche Gebiete meist in Verkehrsverbünde eingegliedert sind, besteht eine realistische Chance, einen Provider für den eigenen Standort zu finden. In größeren Städten kann oft auch der Provider „Bahn“ genutzt werden. Der Wert „aClass“ ist hier nicht von Belang. &lt;br /&gt;
&lt;br /&gt;
Anschließend ist die StationId für die gewünschte Haltestelle zu ermitteln, in diesem Beispiel die Haltestelle &#039;&#039;Sonnenfeld&#039;&#039;. Hierzu dient folgende Abfrage:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Sonnenfeld&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Als Antwort erhält man die StationId &amp;quot;9001258&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Testweise können damit die aktuellen Abfahrten abgerufen werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einbindung in FHEM erfolgt wie nachfolgend beschrieben:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Departure_Sonnenfeld HTTPMOD none 0&lt;br /&gt;
attr Departure_Sonnenfeld get01Name Sonnenfeld&lt;br /&gt;
attr Departure_Sonnenfeld get01URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
attr Departure_Sonnenfeld get01Regex (\[\[.*\]\]).*&lt;br /&gt;
attr Departure_Sonnenfeld timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können mehrere Haltestellen in einem Device hinterlegt werden; hierzu einfach die drei Attribute &#039;&#039;get01Name, get01URL&#039;&#039; und &#039;&#039;get01Regex&#039;&#039; duplizieren und durchnummerieren. Dabei müssen natürlich Name und URL angepasst werden.&lt;br /&gt;
&lt;br /&gt;
==HTML==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
data-device=&amp;quot;Departure_Sonnenfeld&amp;quot;&lt;br /&gt;
data-get=&amp;quot;Sonnenfeld&amp;quot;&lt;br /&gt;
data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
data-interval=&amp;quot;60&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_02.png|150px]]&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Umschalten zwischen relativer und absoluter Abfahrtszeit===&lt;br /&gt;
Dieses Feature ist im Widget selbst nicht implementiert, lässt sich aber mittels [[FTUI Widget Classchanger]] und [[FTUI Widget Checkbox]] umsetzen. Hierbei wird die gewünschte Ansicht ein- und die andere ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Nahverkehr_Umschalter_Zeitangabe dummy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;on&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;off&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate deptime&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hbox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;on&amp;quot;, &amp;quot;off&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt in ... Min.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;checkbox&amp;quot; class=&amp;quot;big inline&amp;quot; data-on-background-color=&amp;quot;grey&amp;quot; data-off-background-color=&amp;quot;grey&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;off&amp;quot;, &amp;quot;on&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt um ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
FTUI Widget departure classchanger 1.png&lt;br /&gt;
FTUI Widget departure classchanger 2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Filtern von Zielen===&lt;br /&gt;
Die ausgegebenen Ergebnisse lassen sich direkt in der HTTPMOD-Abfrage filtern.&lt;br /&gt;
====Herausfiltern unerwünschter Relationen====&lt;br /&gt;
Hierzu nutzt man das Attribut &#039;&#039;get01Expr&#039;&#039; (ggf. auch &#039;&#039;get02Expr&#039;&#039; etc.) und füllt es mit&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{$val=~s/\[[^\[]*(&amp;quot;Parkstraße&amp;quot;,|&amp;quot;Schlossallee&amp;quot;,)[^\]]*\],?//g; $val=~s/\],\]/]]/; return $val;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In diesem Beispiel werden alle Ziele entfernt, die &amp;quot;Parkstraße&amp;quot; oder &amp;quot;Schlossallee&amp;quot; enthalten.&lt;br /&gt;
&lt;br /&gt;
====Auswahl erwünschter Relationen====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{$val = &amp;quot;[&amp;quot;.join(&#039;,&#039;,$val = ~/(\[[^\[]*(?:&amp;quot;Parkstraße&amp;quot;|&amp;quot;Schlossallee&amp;quot;)[^\]]*\])/g).&amp;quot;]&amp;quot;; return $val;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Hier werden nur die Abfahrten mit den Zielen &amp;quot;Parkstraße&amp;quot; oder &amp;quot;Schlossallee&amp;quot; angegeben.&lt;br /&gt;
&lt;br /&gt;
Zu Fallstricken bei der Eingabe von Zielen vgl. [https://forum.fhem.de/index.php/topic,48255.msg1014192.html#msg1014192 FHEM-Forum]&lt;br /&gt;
&lt;br /&gt;
==Links== &lt;br /&gt;
FHEM Wiki [[Departure]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Departure]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=37136</id>
		<title>FTUI Widget Departure</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=37136"/>
		<updated>2022-01-20T23:29:10Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Filter hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Widget Departure]] ist ein Widget für [[FHEM Tablet UI]] zur Anzeige der Abfahrtszeiten von Bahn, Bus, Zug und Fähre. Der Entwickler orientierte sich beim Design an den Dresdner Verkehrsbetrieben bzw. am Verkehrsverbund Oberelbe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Departure_01.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||Name des FHEM-Devices||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, welches die Daten bereitstellt. Dieser Name sollte keine Umlaute und das ß enthalten, weil sonst der automatische Refresh beim Wechsel auf die Seite unterbleibt, vgl. &#039;&#039;data-interval&#039;&#039;||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-title&#039;&#039;&#039;||Überschrift, die in der Kopfzeile ausgegeben wird||data-get||data-title=&amp;quot;Schloßallee&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der an FHEM gesendet wird||&#039;get&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon-color&#039;&#039;&#039;||Farbe des Icons||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-text-color&#039;&#039;&#039;||Textfarbe der Verbindungsdaten||&#039;#ddd&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Hintergrundfarbe ||&#039;#C0C0C0&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Icon für die Kopfzeile||(Symbol Haltestelle)||data-icon=&amp;quot;fa-train&amp;quot;, data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-width&#039;&#039;&#039;||Feste Breite (in % or px)||&#039;200px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Feste Höhe (in % or px)||&#039;250px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-interval&#039;&#039;&#039;||Zeitintervall für den refresh in s, bei &#039;0&#039; kein auto refresh; zusätzlich wird beim Laden der Seite und in Pagebutton beim Wechsel auf die Seite ein refresh ausgelöst||&#039;120&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-refresh&#039;&#039;&#039;||wie data-interval||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DB&#039;&#039;&#039;||Design Bahn AG&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DVB&#039;&#039;&#039;||Design Dresdner Verkehrsbetriebe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;VVO&#039;&#039;&#039;||VVO Design Verkehrsverbund Oberelbe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;alternate&#039;&#039;&#039;||abwechselnd schattierte Zeilen&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;deptime&#039;&#039;&#039;||angezeigt wird die Abfahrtszeit anstelle der verbleibenden Zeit bis zur Abfahrt&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Provider ändern bisweilen ihre Schnittstellendefinitionen mit Auswirkungen auf den nachfolgend beschriebenen Informationsfluss. In diesem Fall sind Anpassungen vorzunehmen. Das Forum ist eine geeignete Plattform zur Klärung des Sachverhaltes.&lt;br /&gt;
* Probleme mit Sonderzeichen in den Richtungsangaben lassen sich gemäß {{Link2Forum|Topic=48255|Message=1135329|LinkText=dieses Hinweises im Forum}} wie folgt lösen:&lt;br /&gt;
:&amp;lt;code&amp;gt;attr xyz getDecode UTF-8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Datenquelle==&lt;br /&gt;
Die Daten stammen in FHEM aus einer HTTPMOD-Abfrage, hier dargestellt an einem Beispiel aus Dresden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define VVO HTTPMOD none 0&lt;br /&gt;
attr VVO get02Name Postplatz&lt;br /&gt;
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&amp;amp;hst=Postplatz&amp;amp;vz=0&amp;amp;lim=10&lt;br /&gt;
attr VVO get02Regex (\[\[.*\]\]).*&lt;br /&gt;
attr VVO timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch die Daten anderer Verkehrsträger können genutzt werden. Entweder greift man hierzu direkt auf die Schnittstelle des Verkehrsträgers zu, was idR eine spezifische RegEx ([[Regulärer_Ausdruck]]) bedingt.&lt;br /&gt;
&lt;br /&gt;
Oder man wählt folgenden allgemeineren Weg, welcher auf den Daten der App &#039;&#039;Öffi&#039;&#039; basiert: Zunächst ist der Provider für die Daten zu ermitteln. Die Liste der verfügbaren Provider erhält man mittels&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/provider&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Antwort lautet etwa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[{&amp;quot;name&amp;quot;:&amp;quot;Bahn&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;BahnProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Gvh&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;GvhProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vgn&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VgnProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Kvv&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;KvvProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vbl&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VblProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Dub&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;DubProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vms&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VmsProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Bsvag&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;BsvagProvider&amp;quot;}, [...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevant ist die Bezeichnung hinter „name“, z.B. „Ding“. „Ding“ steht für „Donau-Iller-Nahverkehrsverbund“. Weil auch ländliche Gebiete meist in Verkehrsverbünde eingegliedert sind, besteht eine realistische Chance, einen Provider für den eigenen Standort zu finden. In größeren Städten kann oft auch der Provider „Bahn“ genutzt werden. Der Wert „aClass“ ist hier nicht von Belang. &lt;br /&gt;
&lt;br /&gt;
Anschließend ist die StationId für die gewünschte Haltestelle zu ermitteln, in diesem Beispiel die Haltestelle &#039;&#039;Sonnenfeld&#039;&#039;. Hierzu dient folgende Abfrage:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Sonnenfeld&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Als Antwort erhält man die StationId &amp;quot;9001258&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Testweise können damit die aktuellen Abfahrten abgerufen werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einbindung in FHEM erfolgt wie nachfolgend beschrieben:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Departure_Sonnenfeld HTTPMOD none 0&lt;br /&gt;
attr Departure_Sonnenfeld get01Name Sonnenfeld&lt;br /&gt;
attr Departure_Sonnenfeld get01URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
attr Departure_Sonnenfeld get01Regex (\[\[.*\]\]).*&lt;br /&gt;
attr Departure_Sonnenfeld timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können mehrere Haltestellen in einem Device hinterlegt werden; hierzu einfach die drei Attribute &#039;&#039;get01Name, get01URL&#039;&#039; und &#039;&#039;get01Regex&#039;&#039; duplizieren und durchnummerieren. Dabei müssen natürlich Name und URL angepasst werden.&lt;br /&gt;
&lt;br /&gt;
==HTML==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
data-device=&amp;quot;Departure_Sonnenfeld&amp;quot;&lt;br /&gt;
data-get=&amp;quot;Sonnenfeld&amp;quot;&lt;br /&gt;
data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
data-interval=&amp;quot;60&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_02.png|150px]]&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Umschalten zwischen relativer und absoluter Abfahrtszeit===&lt;br /&gt;
Dieses Feature ist im Widget selbst nicht implementiert, lässt sich aber mittels [[FTUI Widget Classchanger]] und [[FTUI Widget Checkbox]] umsetzen. Hierbei wird die gewünschte Ansicht ein- und die andere ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Nahverkehr_Umschalter_Zeitangabe dummy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;on&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;off&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate deptime&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hbox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;on&amp;quot;, &amp;quot;off&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt in ... Min.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;checkbox&amp;quot; class=&amp;quot;big inline&amp;quot; data-on-background-color=&amp;quot;grey&amp;quot; data-off-background-color=&amp;quot;grey&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;off&amp;quot;, &amp;quot;on&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt um ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
FTUI Widget departure classchanger 1.png&lt;br /&gt;
FTUI Widget departure classchanger 2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Filtern von Zielen===&lt;br /&gt;
Die ausgegebenen Ergebnisse lassen sich direkt in der HTTPMOD-Abfrage filtern.&lt;br /&gt;
====Herausfiltern unerwünschter Relationen====&lt;br /&gt;
Hierzu nutzt man das Attribut &#039;&#039;get01Expr&#039;&#039; (ggf. auch &#039;&#039;get02Expr&#039;&#039; etc.) und füllt es mit&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{$val = ~s/\[[^\[]*(&amp;quot;Parkstraße&amp;quot;,|&amp;quot;Schlossallee&amp;quot;,)[^\]]*\],?//g; $val =~ s/\],\]/]]/; return $val;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In diesem Beispiel werden alle Ziele entfernt, die &amp;quot;Parkstraße&amp;quot; oder &amp;quot;Schlossallee&amp;quot; enthalten.&lt;br /&gt;
====Auswahl erwünschter Relationen====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
{$val = &amp;quot;[&amp;quot;.join(&#039;,&#039;,$val = ~/(\[[^\[]*(?:&amp;quot;Parkstraße&amp;quot;|&amp;quot;Schlossallee&amp;quot;)[^\]]*\])/g).&amp;quot;]&amp;quot;; return $val;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Hier werden nur die Abfahrten mit den Zielen &amp;quot;Parkstraße&amp;quot; oder &amp;quot;Schlossallee&amp;quot; angegeben.&lt;br /&gt;
&lt;br /&gt;
Zu Fallstricken bei der Eingabe von Zielen vgl. [https://forum.fhem.de/index.php/topic,48255.msg1014192.html#msg1014192 FHEM-Forum]&lt;br /&gt;
&lt;br /&gt;
==Links== &lt;br /&gt;
FHEM Wiki [[Departure]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Departure]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Volume&amp;diff=37127</id>
		<title>FTUI Widget Volume</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Volume&amp;diff=37127"/>
		<updated>2022-01-18T10:59:50Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ data-lock ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Volume Widget]] ist ein Widget für [[FHEM Tablet UI]], das eine Einstellscheibe zur Änderung eines einzelnen Wertes zur Verfügung stellt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Volume_01.png&lt;br /&gt;
File:FTUI_widget_volume-rgb.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
Für das Volume-Widget gelten alle Attribute des [[FTUI Widget Knob|Knob-Widgets]]. Und zusätzlich die folgenden:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, das den darzustellenden Wert enthält||STATE||data-get=&amp;quot;volume&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Name des Readings, dessen Wert geändert werden soll||||data-set=&amp;quot;volume&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Name des Befehls, mit dem das Reading geändert wird (z.B. setstate, set, setreading, trigger)||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-value&#039;&#039;&#039;||[[Regulärer Ausdruck|RegEx]] oder Position des Wertes in einer leerzeichen-getrennten Textzeile, mit der der Wert erhalten werden kann||-1 -&amp;gt; alles anzeigen||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-value&#039;&#039;&#039;||Format des Wertes, wie er an FHEM gesendet werden soll||$v (nur der Wert)||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-min&#039;&#039;&#039;||Mindestwert, der gesetzt werden kann||0||data-min=&amp;quot;10&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-max&#039;&#039;&#039;||Maximalwert, der gesetzt werden kann||70||data-max=&amp;quot;100&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-tickstep&#039;&#039;&#039;||Abstand zwischen den einzelnen Schritten||4/20||data-tickstep=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-unit&#039;&#039;&#039;||Einheit zum gewünschten Wert hinzufügen||||&amp;lt;nowiki&amp;gt;data-unit=&amp;quot;&amp;amp;deg&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Die Sperre greift, wenn das Reading den Wert &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; hat. Hiervon abweichend ist auch eine Definition mittels data-lock-on und data-lock-off möglich.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-on&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aktiviert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-off&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aufgehoben wird||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{FTUI Klasse|mini}}{{FTUI Klasse|small}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|hue-tick}}{{FTUI Klasse|hue-front}}{{FTUI Klasse|hue-back}}{{FTUI Klasse|dim-tick}}{{FTUI Klasse|dim-front}}{{FTUI Klasse|dim-back}}{{FTUI Klasse|readonly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Lautstärke===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;volume&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;AVReceiver&amp;quot;&lt;br /&gt;
     data-get=&amp;quot;volume&amp;quot;&lt;br /&gt;
     data-set=&amp;quot;volume&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI Widget Volume 01.png]]&lt;br /&gt;
&lt;br /&gt;
===Farbauswahl für Beleuchtung===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;volume&amp;quot;&lt;br /&gt;
	 data-device=&amp;quot;WZ.Deckenlampe&amp;quot;&lt;br /&gt;
	 data-get=&amp;quot;hue&amp;quot;&lt;br /&gt;
	 data-set=&amp;quot;hue&amp;quot;&lt;br /&gt;
	 data-min=&amp;quot;0&amp;quot;&lt;br /&gt;
	 data-max=&amp;quot;65535&amp;quot;&lt;br /&gt;
	 class=&amp;quot;hue-tick hue-front small top-space-2x&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI_widget_volume-rgb.png]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Volume]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Thermostat&amp;diff=37126</id>
		<title>FTUI Widget Thermostat</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Thermostat&amp;diff=37126"/>
		<updated>2022-01-18T10:58:02Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ data-lock ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Thermostat Widget]] ist ein Widget für [[FHEM Tablet UI]] welches ähnlich wie das [[FTUI Widget Knob|Knob-Widget]] ist, aber für Heizungsthermostate optimiert wurde. Es zeigt eine Skala, um die gewünschte Temperatur einzustellen, sowie die aktuelle Temperatur an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Thermostat_01.png&lt;br /&gt;
File:FTUI_Widget_Thermostat_02.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, welches die gewünschte Temperatur enthält||desired-temp||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Name des Readings, mit dem die gewünschte Temperatur gesetzt wird||desired-temp||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-temp&#039;&#039;&#039;||Name des Readings, welches die aktuelle Temperatur enthält||measured-temp||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-valve&#039;&#039;&#039;||Name des Readings, das die Ventilstellung des Thermostates anzeigt||||data-valve=&amp;quot;ValvePosition&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-value&#039;&#039;&#039;||[[Regulärer Ausdruck|RegEx]] oder Stelle der Ventilposition in einer leerstellen-getrennten Zeile||-1 -&amp;gt; alles anzeigen||data-get-value=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-mode&#039;&#039;&#039;||Name des Readings für die Modi (auto, manual, etc.) des Thermostates||||data-mode=&amp;quot;controlMode&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-min&#039;&#039;&#039;||Mindesttemperatur, die gesetzt werden kann||10||data-min=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-max&#039;&#039;&#039;||Höchsttemperatur, die gesetzt werden kann||30||data-max=&amp;quot;25&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-step&#039;&#039;&#039;||Abstufung, in der die Temperatur gesetzt werden kann||1||data-step=&amp;quot;0.5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off&#039;&#039;&#039;||Wert, der gesendet werden muss, um das Thermostat abzuschalten||||data-off=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-boost&#039;&#039;&#039;||Wert, der gesendet werden muss, um das Thermostat in den Boost-Modus zu bringen||||data-boost=&amp;quot;30.5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Höhe des Widgets||100||data-height=&amp;quot;80&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-width&#039;&#039;&#039;||Breite des Widgets||100||data-width=&amp;quot;120&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-touch-height&#039;&#039;&#039;||Höhe des Widgets während Änderungen||data-height||data-touch-height=&amp;quot;200&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-touch-width&#039;&#039;&#039;||Breite des Widgets während Änderungen||data-width||data-touch-width=&amp;quot;200&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-touch-position&#039;&#039;&#039;||Position des Wertes während Änderungen||left||data-touch-position=&amp;quot;left&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-inputcolor&#039;&#039;&#039;||Farbe des angezeigten Temperaturwertes || ||data-inputcolor=&amp;quot;white&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hdcolor&#039;&#039;&#039;||Farbe des Einstellhebels||#666||data-hdcolor=&amp;quot;green&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-fgcolor&#039;&#039;&#039;||Farbe des geriffelten Hintergrundes (Teilstriche)||#666||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-bgcolor&#039;&#039;&#039;||Farbe des geriffelten Hintergrundes (Flächen zwischen den Teilstrichen)||keine||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-mincolor&#039;&#039;&#039;||Farbe am unteren Ende des Einstellbereiches||#4477ff||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-maxcolor&#039;&#039;&#039;||Farbe am oberen Ende des Einstellbereiches||#ff0000||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-thickness&#039;&#039;&#039;||Dicke des Einstellbereiches||0.25||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-anglearc&#039;&#039;&#039;||Reichweite der Anzeige auf einem Kreis in Grad||240||data-anglearc=&amp;quot;360&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-angleoffset&#039;&#039;&#039;||Bestimmt die Position auf der Kreisform, auf dem die Statusanzeige beginnen soll||-120||data-angleoffset=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-font&#039;&#039;&#039;||Schriftart des Wertes||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-font-weight&#039;&#039;&#039;||Dicke der Schrift||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-unit&#039;&#039;&#039;||Einheit, die zum Wert hinzugefügt werden soll||||&amp;lt;nowiki&amp;gt;data-unit=&amp;quot;&amp;amp;deg;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Die Sperre greift, wenn das Reading den Wert &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; hat. Hiervon abweichend ist auch eine Definition mittels data-lock-on und data-lock-off möglich.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-on&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aktiviert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-off&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aufgehoben wird||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Wenn beim MAX! Wand-Thermostat der Wert &#039;&#039;auto&#039;&#039; für &#039;&#039;data-mode&#039;&#039; empfangen wird, wird folgender Befehl generiert: &amp;lt;code&amp;gt;set wz_WandThermostat desiredTemperature auto&amp;lt;/code&amp;gt;. Andere Werte erzeugen Befehle wie &amp;lt;code&amp;gt;set wz_WandThermostat desiredTemperature&amp;lt;/code&amp;gt;&lt;br /&gt;
* Als &#039;&#039;data-device&#039;&#039; muss das Device angegeben werden, welches gewünschte und aktuelle Temperatur liefert. Bei HomeMatic Thermostaten ist das z.B. HM_XXXXXX_Clima&lt;br /&gt;
* Das Widget zeigt die Ventilposition nur an, wenn &#039;&#039;data-valve&#039;&#039; explizit definiert wurde.&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|mini}}{{FTUI Klasse|small}}{{FTUI Klasse|large}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|readonly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===HomeMatic HM-CC-RT-DN===&lt;br /&gt;
Da die Standardwerte für &#039;&#039;data-get&#039;&#039;, &#039;&#039;data-temp&#039;&#039; und &#039;&#039;data-set&#039;&#039; schon den benötigten Werten für ein [[HM-CC-RT-DN Funk-Heizkörperthermostat]] entsprechen, reicht eine ganz einfache Code-Zeile.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;thermostat&amp;quot; data-device=&amp;quot;HM_302111_Clima&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das entspricht in diesem Fall der längeren Version:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;thermostat&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;HM_302111_Clima&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;desired-temp&amp;quot; &lt;br /&gt;
     data-temp=&amp;quot;measured-temp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Thermostat_01.png]]&lt;br /&gt;
&lt;br /&gt;
===MAX! Thermostat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;thermostat&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;HZ_Tuer&amp;quot; &lt;br /&gt;
     data-valve=&amp;quot;valveposition&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;desiredTemperature&amp;quot; &lt;br /&gt;
     data-temp=&amp;quot;temperature&amp;quot; &lt;br /&gt;
     data-set=&amp;quot;desiredTemperature&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Thermostat_01.png]]&lt;br /&gt;
&lt;br /&gt;
===Mit Off- und Boost-Funktion===&lt;br /&gt;
Hier ein Beispiel, mit dem das Thermostat aus-, oder die Boost-Funktion eingeschaltet werden kann. Um Auszuschalten muss der Zeiger auf die Mindestposition gezogen werden. Um die Boost-Funktion zu aktivieren, auf die Maxmimalposition.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;thermostat&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;HM_302111_Clima&amp;quot;&lt;br /&gt;
     data-valve=&amp;quot;ValvePosition&amp;quot;&lt;br /&gt;
     data-min=&amp;quot;5&amp;quot;&lt;br /&gt;
     data-off=&amp;quot;off&amp;quot; &lt;br /&gt;
     data-max=&amp;quot;31&amp;quot;&lt;br /&gt;
     data-boost=&amp;quot;31&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Thermostat_02.png]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Thermostat]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Switch&amp;diff=37125</id>
		<title>FTUI Widget Switch</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Switch&amp;diff=37125"/>
		<updated>2022-01-18T10:57:06Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Standard-Attribute */ data-lock ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Switch Widget]] ist ein Widget für [[FHEM Tablet UI]]. Dabei handelt es sich um einen Ein-/Ausschalter in Form eines runden Druckknopfes. Er dient zum Ausführen beliebiger Schaltbefehle und kann auch für FTUI-interne Steuerungen genutzt werden. Zusätzlich kann der Schalter in Abhängigkeit eines Readings sein Aussehen verändern und so zwei oder mehr Zustände optisch darstellen. Beispielsweise können Farbe und/oder das Symbol die Zustände an/aus anzeigen. Kann das Status-Reading mehr als zwei Zustände einnehmen, kann auch dies dargestellt werden. Dabei sind beliebige Kombinationen von Vorder-/Hintergrundfarben und Symbolen möglich.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Switch.png&lt;br /&gt;
File:Switch4.png&lt;br /&gt;
File:FTUI_Switch-Homestatus2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
===Standard-Attribute===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading gesetzt werden soll (&amp;lt;command&amp;gt; &#039;&#039;&#039;&amp;lt;device&amp;gt;&#039;&#039;&#039; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, dessen Inhalt den aktuellen Wert wiedergibt||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Reading, das gesetzt werden soll (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &#039;&#039;&#039;&amp;lt;reading&amp;gt;&#039;&#039;&#039; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der gesendet werden soll (&#039;&#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;&#039; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) (z.B. setstate, set, setreading, trigger)||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-doubleclick&#039;&#039;&#039;||Zeit [ms], in der ein zweiter Klick erfolgen muss, damit die Betätigung angenommen wird. &#039;0&#039; schaltet dieses Verhalten ab.||0||data-doubleclick=&amp;quot;800&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Die Sperre greift, wenn das Reading den Wert &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; hat. Hiervon abweichend ist auch eine Definition mittels data-lock-on und data-lock-off möglich.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-on&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aktiviert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-off&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aufgehoben wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Name des Icons im Vordergrund||&#039;fa-lightbulb-o&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039;||Name des Icons, das als Hintergrund verwendet werden soll||&#039;fa-circle&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-color&#039;&#039;&#039;||Farbe des Icon (RGB-Angabe oder Farbname)||#2A2A2A||data-color=&amp;quot;#c0c0c0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Hintergrundfarbe des Widgets||#505050||data-background-color=&amp;quot;none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn&#039;&#039;&#039;||Reading, dessen Inhalt als rotes Kennzeichen angezeigt wird. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-on&#039;&#039;&#039;||Werte von &#039;&#039;&#039;data-warn&#039;&#039;&#039;, bei denen das Kennzeichen angezeigt wird||&amp;lt;nowiki&amp;gt;&#039;true|on|[1-9]{1}[0-9]*&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-off&#039;&#039;&#039;||Werte von &#039;&#039;&#039;data-warn&#039;&#039;&#039;, bei denen das Kennzeichen versteckt wird||&amp;lt;nowiki&amp;gt;&#039;false|off|0&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-color&#039;&#039;&#039;||Textfarbe des Kennzeichens||&#039;#aaa&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-background-color&#039;&#039;&#039;||Hintergrundfarbe des Kennzeichens||&#039;#aa2200&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading zum Verstecken des Elementes. Das Element verschwindet, wenn der Wert mit &#039;&#039;&#039;data-hide-on&#039;&#039;&#039; übereinstimmt.||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Zeichenkette, bei der das Element versteckt wird||&amp;lt;nowiki&amp;gt;&#039;true|1|on&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-off&#039;&#039;&#039;||Zeichenkette, bei der das Element angezeigt wird||&#039;!on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hideparents&#039;&#039;&#039;||jQuery-Selector, um auch die Eltern-Elemente zu verstecken||||data-hideparents=&amp;quot;#Name&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-reachable&#039;&#039;&#039;||Reading, dessen Inhalt angibt, ob das Device erreichbar ist, oder nicht. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-timeout&#039;&#039;&#039;||Maximale Zeit, die der eingestellte Zustand nach einer Veränderung angezeigt wird, bis die echte Rückmeldung vom Device wieder angezeigt wird||2000ms||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute für zwei Zustände===&lt;br /&gt;
Zur Anzeige von zwei Zuständen können nachfolgende Attribute zusätzlich zu den Standard-Attributen genutzt werden.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Zeichenkette oder ein Array von Werten, die als Zustand ON interpretiert werden||&#039;on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039;||Zeichenkette oder ein Array von Werten, die als Zustand OFF interpretiert werden||&#039;off&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-on&#039;&#039;&#039;||Wert, der beim Einschalten gesendet werden soll ||Wert von &#039;&#039;&#039;data-get-on&#039;&#039;&#039;||data-set-on=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-off&#039;&#039;&#039;||Wert, der beim Ausschalten gesendet werden soll||Wert von &#039;&#039;&#039;data-get-off&#039;&#039;&#039;||data-set-off=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039;||Iconfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039;||Iconfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#505050&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039;||Hintergrundfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039;||Hintergrundfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#505050&#039;||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;data-get-on&#039;&#039;&#039; und &#039;&#039;&#039;data-get-off&#039;&#039;&#039; können auch RegEx enthalten:&lt;br /&gt;
&amp;lt;code&amp;gt;data-get-on=&amp;quot;[0-9]{1,3}|on&amp;quot;&amp;lt;/code&amp;gt; bedeutet, dass der Schalter AN ist, wenn das Reading eine Zahl zwischen 0 und 100 ist, oder den Wert &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; enthält.&lt;br /&gt;
&amp;lt;code&amp;gt;data-get-off=&amp;quot;!on&amp;quot;&amp;lt;/code&amp;gt; bedeutet, dass alle Werte, die nicht für &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; stehen, automatisch &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; bedeuten (Negation).&lt;br /&gt;
&amp;lt;code&amp;gt;data-set-off=&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; unterdrückt das Senden eines OFF-Befehls.&lt;br /&gt;
&#039;&#039;&#039;data-[on|off]-color&#039;&#039;&#039; erwartet einen RGB-Wert, wenn dieser aus einen Reading gelesen wird (&amp;lt;code&amp;gt;rgb(0, 0, 0)&amp;lt;/code&amp;gt; statt &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
===Attribute für mehrere Zustände===&lt;br /&gt;
Zur Anzeige von mehreren Zuständen können nachfolgende Attribute zusätzlich zu den Standard-Attributen genutzt werden.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-states&#039;&#039;&#039;||Array von Werten, die das Reading einnehmen kann||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-states&#039;&#039;&#039;||Array von Werten, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; geschaltet werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icons&#039;&#039;&#039;||Array von Icons, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; im Vordergrund angezeigt werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icons&#039;&#039;&#039;||Array von Icons, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; im Hintergrund angezeigt werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-colors&#039;&#039;&#039;||Array von Farben, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; das Vordergrund-Icon einfärben||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-colors&#039;&#039;&#039;||Array von Farben, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; das Hintergrund-Icon einfärben||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
{{FTUI Klasse|readonly}}{{FTUI Klasse|small}}{{FTUI Klasse|compressed}}{{FTUI Klasse|compressed-50}}{{FTUI Klasse|height-narrow}}{{FTUI Klasse|invert}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
*Das Attribut &#039;&#039;&#039;data-timeout&#039;&#039;&#039; dient dazu, ein &amp;quot;Flackern&amp;quot; der Anzeige zu verhindern. Manche Devices benötigen einige Zeit, bis der gewünschte und eben eingestellte Zustand erreicht wird. Zitat aus dem Forum: &amp;lt;cite&amp;gt;&amp;quot;data-timeout gilt nur für die on-off (toggle) Funktion von Switch und Dimmer, nicht fürs Dimmen. Das Problem: Am Switch wird eingeschaltet, der Knopf wird hell und ON an FHEM gesendet. Aber die Hardware reagiert nicht, geht nicht auf ON. Wenn sie das machen würde, käme auch eine Bestätigung per Longpoll. Mit &#039;&#039;&#039;data-timeout&#039;&#039;&#039; wird die eingestellte Zeit gewartet und bei Ausbleiben der Bestätigung fällt der Switch zum ursprünglichen Status zurück, geht also wieder aus. Nur wenn innerhalb der x Sekunden das Longpoll-Event kommt, wird der Fallbacktimer gestoppt.&amp;quot;&amp;lt;/cite&amp;gt;&lt;br /&gt;
*Die Attribute für Dual-State (zwei Zustände) und Multi-State (mehrere Zustände) können &#039;&#039;&#039;nicht gemeinsam&#039;&#039;&#039; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===An/Aus===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt.&lt;br /&gt;
&lt;br /&gt;
[[File:Switch.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;MyDevice&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===An/Aus (Farben invertiert)===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt. Die Farben sind hier im Gegensatz zum vorherigen Beispiel invertiert.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;MyDevice&amp;quot; class=&amp;quot;invert&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===1/0 als Befehl===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-icon=&amp;quot;fa-rss&amp;quot;&lt;br /&gt;
	data-device=&#039;MyDevice&#039;&lt;br /&gt;
	data-get-on=&amp;quot;1&amp;quot; &lt;br /&gt;
	data-get-off=&amp;quot;0&amp;quot; &lt;br /&gt;
	data-set-on=&amp;quot;1&amp;quot; &lt;br /&gt;
	data-set-off=&amp;quot;0&amp;quot;&lt;br /&gt;
	class=&amp;quot;green small invert&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MILIGHT-Switch===&lt;br /&gt;
Beispiel for einen MILIGHT-Schalter. Der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;-Zustand wird per RegEx ermittelt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;MILIGHT_Zone1_Wohnzimmer&amp;quot; &lt;br /&gt;
	data-get-on=&amp;quot;on.*&amp;quot;&lt;br /&gt;
	data-get-off=&amp;quot;off&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4-fach-Schalter===&lt;br /&gt;
Gruppe von 4 Schaltern, die den Status des selben Devices umschalten.&lt;br /&gt;
&lt;br /&gt;
[[File:Switch4.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-home&amp;quot; data-get-on=&amp;quot;Home&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Home&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-bed&amp;quot; data-get-on=&amp;quot;Sleep&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Sleep&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-car&amp;quot; data-get-on=&amp;quot;Away&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Away&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-suitcase&amp;quot; data-get-on=&amp;quot;Holiday&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Holiday&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Zwei Zustände umschalten===&lt;br /&gt;
Großer Homestatus-Button, der zwischen zwei Zuständen umschaltet.&lt;br /&gt;
&lt;br /&gt;
[[File:FTUI_Switch-Homestatus2.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;2&amp;quot; data-sizey=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;header&amp;gt;HOMESTATUS&amp;lt;/header&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
		data-device=&amp;quot;dummy3&amp;quot;&lt;br /&gt;
		data-set-states=&#039;[&amp;quot;Abwesend&amp;quot;,&amp;quot;Anwesend&amp;quot;]&#039;&lt;br /&gt;
		data-states=&#039;[&amp;quot;Anwesend&amp;quot;,&amp;quot;Abwesend&amp;quot;]&#039;&lt;br /&gt;
		data-icons=&#039;[&amp;quot;fa-home&amp;quot;, &amp;quot;fa-car&amp;quot;]&#039;&lt;br /&gt;
		data-colors=&#039;[&amp;quot;white&amp;quot;, &amp;quot;white&amp;quot;]&#039;&lt;br /&gt;
		data-background-colors=&#039;[&amp;quot;green&amp;quot;, &amp;quot;red&amp;quot;]&#039;&lt;br /&gt;
		class=&amp;quot;bigger top-space&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serienschaltung: Mehrere Zustände nacheinander===&lt;br /&gt;
Bei jeder Betätigung wird der nächste der hinterlegten Zustände eingenommen.&lt;br /&gt;
Man beachte die Reihenfolge in data-set-states und data-states.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;Test&amp;quot;&lt;br /&gt;
	data-set-states=&#039;[&amp;quot;on&amp;quot;,&amp;quot;off&amp;quot;,&amp;quot;auto&amp;quot;]&#039;&lt;br /&gt;
	data-states=&#039;[&amp;quot;auto&amp;quot;,&amp;quot;on&amp;quot;,&amp;quot;off&amp;quot;]&#039;&lt;br /&gt;
	data-icons=&#039;[&amp;quot;fa-tint&amp;quot;,&amp;quot;fa-tint&amp;quot;,&amp;quot;fa-tint&amp;quot;]&#039;&lt;br /&gt;
	data-colors=&#039;[&amp;quot;white&amp;quot;,&amp;quot;white&amp;quot;,&amp;quot;white&amp;quot;]&#039;&lt;br /&gt;
	data-background-colors=&#039;[&amp;quot;blue&amp;quot;,&amp;quot;green&amp;quot;,&amp;quot;red&amp;quot;]&#039;	&lt;br /&gt;
	class=&amp;quot;small&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Beschriftete Schaltflächen===&lt;br /&gt;
[[File:FTUI-Ein-Aus-Schalter.png|150px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Mit Hintergrund: --&amp;gt;&lt;br /&gt;
  &amp;lt;div data-type=&amp;quot;switch&amp;quot; &lt;br /&gt;
  data-icon=&amp;quot;&amp;quot; &lt;br /&gt;
  data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
  data-set-on=&amp;quot;Ein&amp;quot; &lt;br /&gt;
  data-set-off=&amp;quot;Aus&amp;quot; &lt;br /&gt;
  data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039; &lt;br /&gt;
  data-background-colors=&#039;[&amp;quot;#90D49A&amp;quot;,&amp;quot;#E37D7D&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
    data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
    data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039; &lt;br /&gt;
    data-colors=&#039;[&amp;quot;#5B8562&amp;quot;,&amp;quot;#854646&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ohne Hintergrund: --&amp;gt;&lt;br /&gt;
  &amp;lt;div data-type=&amp;quot;switch&amp;quot; &lt;br /&gt;
  data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
  data-icon=&amp;quot;&amp;quot; &lt;br /&gt;
  data-background-icon=&amp;quot;&amp;quot; &lt;br /&gt;
  data-set-on=&amp;quot;Ein&amp;quot; &lt;br /&gt;
  data-set-off=&amp;quot;Aus&amp;quot; &lt;br /&gt;
  data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
    data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
    data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039; &lt;br /&gt;
    data-colors=&#039;[&amp;quot;#5B8562&amp;quot;,&amp;quot;#854646&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Switch]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Spinner&amp;diff=37124</id>
		<title>FTUI Widget Spinner</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Spinner&amp;diff=37124"/>
		<updated>2022-01-18T10:56:00Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ data-lock ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Spinner Widget]] ist ein Widget für [[FHEM Tablet UI]], mit dem der Wert eines Device-Readings mit Hilfe von &amp;quot;up/down&amp;quot;- bzw. &amp;quot;+/-&amp;quot;-Buttons eingestellt werden kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:FTUI_Widget_Spinner_01.png&lt;br /&gt;
Datei:FTUI_Widget_Spinner_02.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||DeviceReading, das angezeigt werden soll||||data-get=&amp;quot;desired-temp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||DeviceReading, welches den &#039;&#039;set&#039;&#039;-Befehl empfangen soll||||data-set=&amp;quot;desired-temp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-value&#039;&#039;&#039;||[[Regulärer Ausdruck|RegEx]] oder Position des Wertes in einem leerzeichen-getrennten Text, nach dem der angezeigte Text gefiltert werden soll||-1 (alles)||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-color&#039;&#039;&#039;||RGB-Wert oder Farbzeichnung für den Wertebalken||orange||data-color=&amp;quot;#404040&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-text-color&#039;&#039;&#039;||Definierter Farbwert für die Textfarbe oder Name des Readings, aus dem dieser Wert gelesen werden kann||#ccc||data-text-color=&amp;quot;red&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Hintergrundfarbe des Widgets||||data-background-color=&amp;quot;none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-gradient-color&#039;&#039;&#039;||Array von Farbwerten für einen Verlauf des Wertebalkens||||data-gradient-color=&#039;[&amp;quot;blue&amp;quot;,&amp;quot;red&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon-left-color&#039;&#039;&#039;||RGB-Wert oder Farbbezeichnung für das linke Button-Symbol||#aaa||data-left-color=&amp;quot;green&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon-right-color&#039;&#039;&#039;||RGB-Wert oder Farbbezeichnung für das rechte Button-Symbol||#aaa||data-right-color=&amp;quot;red&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon-left&#039;&#039;&#039;||Name des linken Symbols||||data-icon-left=&amp;quot;fa-volume-down&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon-right&#039;&#039;&#039;||Name des rechten Symbols||||data-icon-left=&amp;quot;fa-volume-up&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-width&#039;&#039;&#039;||Feste Breite des Widgets in px oder %||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Feste Höhe des Widgets in px oder %||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-max&#039;&#039;&#039;||Maximalwert des Anzeigebereichs||100||data-max=&amp;quot;31&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-min&#039;&#039;&#039;||Minimalwert des Anzeigebereichs||0||data-min=&amp;quot;12&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-step&#039;&#039;&#039;||Numerischer Wert für das Intervall bei Klick auf Icon||1||data-step=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-unit&#039;&#039;&#039;||Einheit nach dem numerischen Text-Wert hinzufügen||||data-unit=&amp;quot;°&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-shortdelay&#039;&#039;&#039;||Verzögerungszeit (ms) für Befehlswiederholung bei Tastendruck||80||data-shortdelay=&amp;quot;120&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-longdelay&#039;&#039;&#039;||Zeitverzögerung (ms) für den Befehl nach Loslassen der Taste||500||data-shortdelay=&amp;quot;350&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off&#039;&#039;&#039;||Wert, der als &amp;quot;off&amp;quot; gilt||||data-off=&amp;quot;10&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on&#039;&#039;&#039;||Wert, der als &amp;quot;on&amp;quot; gilt||||data-off=&amp;quot;22&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Die Sperre greift, wenn das Reading den Wert &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; hat. Hiervon abweichend ist auch eine Definition mittels data-lock-on und data-lock-off möglich.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-on&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aktiviert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-off&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aufgehoben wird||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|valueonly}}{{FTUI Klasse|value}}{{FTUI Klasse|circulate}}{{FTUI Klasse|positiononly}}&lt;br /&gt;
|}&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Spinner für ein Thermostat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;spinner&amp;quot; &lt;br /&gt;
data-device=&amp;quot;HM_Thermostat&amp;quot;&lt;br /&gt;
data-get=&amp;quot;desired-temp&amp;quot;&lt;br /&gt;
data-set=&amp;quot;desired-temp&amp;quot;&lt;br /&gt;
data-icon-left-color=&amp;quot;blue&amp;quot;&lt;br /&gt;
data-icon-right-color=&amp;quot;red&amp;quot;&lt;br /&gt;
data-height=&amp;quot;40&amp;quot;&lt;br /&gt;
data-width=&amp;quot;140&amp;quot;&lt;br /&gt;
data-step=&amp;quot;0.5&amp;quot;&lt;br /&gt;
data-min=&amp;quot;10&amp;quot;&lt;br /&gt;
data-max=&amp;quot;30&amp;quot;&lt;br /&gt;
data-unit=&amp;quot;&amp;amp;deg;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI_Widget_Spinner_01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lautstärkeregelung===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;spinner&amp;quot;&lt;br /&gt;
	 data-device=&amp;quot;RXV777&amp;quot;&lt;br /&gt;
	 data-get=&amp;quot;volumeStraight&amp;quot;&lt;br /&gt;
	 data-set=&amp;quot;volumeStraight&amp;quot;&lt;br /&gt;
	 data-min=&amp;quot;-60&amp;quot;&lt;br /&gt;
	 data-max=&amp;quot;-24&amp;quot;&lt;br /&gt;
	 data-step=&amp;quot;0.5&amp;quot;&lt;br /&gt;
	 data-unit=&amp;quot;db&amp;quot;&lt;br /&gt;
	 data-longdelay=&amp;quot;800&amp;quot;&lt;br /&gt;
	 data-width=&amp;quot;300&amp;quot;&lt;br /&gt;
	 data-height=&amp;quot;60&amp;quot;&lt;br /&gt;
	 data-icon-left=&amp;quot;fa-volume-down&amp;quot;&lt;br /&gt;
	 data-icon-right=&amp;quot;fa-volume-up&amp;quot;&lt;br /&gt;
	 class=&amp;quot;valueonly&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI_Widget_Spinner_02.png]]&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[http://knowthelist.github.io/fhem/tablet/demo_spinner.html Weitere Beispiele]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Spinner]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Slider&amp;diff=37123</id>
		<title>FTUI Widget Slider</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Slider&amp;diff=37123"/>
		<updated>2022-01-18T10:54:49Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Steuer-Attribute */ data-lock ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Slider Widget]] ist ein Widget für [[FHEM Tablet UI]] in Form eines Schiebereglers, mit dem ein beliebiger Wert zwischen zwei festgelegten Grenzwerten auswählen lässt. Es eignet sich zum Beispiel zum Einstellen der Lautstärke eines Audio-Gerätes oder der Helligkeit einer Lampe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Slider_tabletUI.png&lt;br /&gt;
File:Slider_tabletUI2.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Steuer-Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading gesetzt werden soll (&amp;lt;command&amp;gt; &#039;&#039;&#039;&amp;lt;device&amp;gt;&#039;&#039;&#039; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, dessen Inhalt den aktuellen Wert wiedergibt||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Reading, das gesetzt werden soll (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &#039;&#039;&#039;&amp;lt;reading&amp;gt;&#039;&#039;&#039; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on&#039;&#039;&#039;||Wert, bei dem der Slider zum maximalen Ausschlag springt||&#039;on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off&#039;&#039;&#039;||Wert, bei dem der Slider minimalen Ausschlag springt||&#039;off&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-part&#039;&#039;&#039;||Wählt bei Werten, die durch Leerzeichen getrennt sind, den Teil aus, der angezeigt werden soll. Der Teil kann auch mit RegEx ermittelt werden.||&#039;-1&#039;: alles Anzeigen||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-value&#039;&#039;&#039;||Format, wie der eingestellte Wert an FHEM übergeben werden soll||&#039;$v&#039;: Nur den Wert||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der gesendet werden soll (&#039;&#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;&#039; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) (z.B. setstate, set, setreading, trigger)||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-min&#039;&#039;&#039;||Minimaler Wert, der eingestellt werden kann||0||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-max&#039;&#039;&#039;||Maximaler Wert, der eingestellt werden kann||100||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-step&#039;&#039;&#039;||Schrittweite beim Schieben des Sliders||1||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-width&#039;&#039;&#039;||Breite des Sliders, wenn er horizontal ausgerichtet ist||normal &#039;120px&#039;, mini &#039;60px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Höhe des Sliders, wenn er vertikal ausgerichtet ist||normal &#039;120px&#039;, mini &#039;60px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-color&#039;&#039;&#039;||Farbe des Sliders für den Bereich 0...&amp;lt;eingestellter Wert&amp;gt;||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Farbe des Sliders für den Bereich &amp;lt;eingestellter Wert&amp;gt;...&amp;lt;Maximaler Wert&amp;gt;||&#039;#404040&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-handle-diameter&#039;&#039;&#039;||Größe des Griffs||&#039;20&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-touch-diameter&#039;&#039;&#039;||Größe des Griffs, wenn er bewegt wird||wie &#039;&#039;&#039;data-handle-diameter&#039;&#039;&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-timer-state&#039;&#039;&#039;||Statusvariable mit der eine timergesteuerte Bewegung des Sliders ausgelöst werden kann||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-timer-state-on&#039;&#039;&#039;||Zustand der Statusvariablen der die Bewegung startet||&#039;on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-timer-state-off&#039;&#039;&#039;||Zustand der Statusvariablen der die Bewegung stoppt||&#039;off&#039;||!on (alles was nicht on ist stoppt den Timer)&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-timer-step&#039;&#039;&#039;||Erhöhung des Wertes pro Timer-Intervall||1||&lt;br /&gt;
|-&lt;br /&gt;
||&#039;&#039;&#039;data-timer-interval&#039;&#039;&#039;||Timer-Intervall in Millisekunden||1000||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Die Sperre greift, wenn das Reading den Wert &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; hat. Hiervon abweichend ist auch eine Definition mittels data-lock-on und data-lock-off möglich.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-on&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aktiviert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-off&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aufgehoben wird||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
{{FTUI Klasse|mini}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|large}}{{FTUI Klasse|horizontal}}{{FTUI Klasse|right}}{{FTUI Klasse|negated}}{{FTUI Klasse|value}}{{FTUI Klasse|FS20}}{{FTUI Klasse|tap}}{{FTUI Klasse|readonly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Der Slider unterstützt &#039;&#039;tap to target&#039;&#039;, also das Springen zum gewünschten Wert durch einfaches Antippen, nur, wenn die CSS-Klasse &#039;&#039;&#039;tap&#039;&#039;&#039; verwendet wird.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Vertikaler Schieberegler===&lt;br /&gt;
Einfacher Schieberegler mit dem Einstellbereich 10...90&lt;br /&gt;
&lt;br /&gt;
[[File:Slider_tabletUI.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;slider&amp;quot; &lt;br /&gt;
     data-device=&#039;Dummy1&#039; &lt;br /&gt;
     data-min=&amp;quot;10&amp;quot; &lt;br /&gt;
     data-max=&amp;quot;90&amp;quot; &lt;br /&gt;
     class=&amp;quot;cell&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cell&amp;quot;&amp;gt;Light1&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Horizontaler Schieberegler===&lt;br /&gt;
Einfacher Schieberegler mit dem Einstellbereich 0...100&lt;br /&gt;
&lt;br /&gt;
[[File:Slider_tabletUI2.jpg]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;slider&amp;quot;&lt;br /&gt;
     data-device=&#039;Dummy1&#039; &lt;br /&gt;
     data-min=&amp;quot;0&amp;quot; &lt;br /&gt;
     data-max=&amp;quot;100&amp;quot; &lt;br /&gt;
     class=&amp;quot;horizontal&amp;quot; &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Retro-Schieberegler mit Skala und rechteckigem Riffelknopf===&lt;br /&gt;
Kombination aus Slider- und Scale-Widget und Modifikation des Buttons in fhem-tablet-ui-user.css&lt;br /&gt;
&lt;br /&gt;
[[File:retroslider.jpg]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;doublebox-h&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;right-narrow&amp;quot;&lt;br /&gt;
		 data-type=&amp;quot;scale&amp;quot;&lt;br /&gt;
		 data-orientation=&amp;quot;vertical&amp;quot;&lt;br /&gt;
		 data-device=&amp;quot;amp&amp;quot;&lt;br /&gt;
		 data-get=&amp;quot;volume&amp;quot; &lt;br /&gt;
		 data-set=&amp;quot;volume&amp;quot;&lt;br /&gt;
		 data-height=&amp;quot;155&amp;quot;&lt;br /&gt;
		 data-width=&amp;quot;45&amp;quot;&lt;br /&gt;
		 data-value-interval=&amp;quot;50&amp;quot;&lt;br /&gt;
		 data-tick=&amp;quot;5&amp;quot;&lt;br /&gt;
		 data-extra-tick=&amp;quot;25&amp;quot;&lt;br /&gt;
		 data-font-size=&amp;quot;16&amp;quot;&lt;br /&gt;
		 data-colors=&#039;[&amp;quot;green&amp;quot;,&amp;quot;#FFBF00&amp;quot;,&amp;quot;#EF0002&amp;quot;]&#039;&lt;br /&gt;
		 data-limits=&#039;[&amp;quot;1&amp;quot;,&amp;quot;50&amp;quot;,&amp;quot;75&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class = &amp;quot;retro value left-narrow&amp;quot;&lt;br /&gt;
		 data-type=&amp;quot;slider&amp;quot;&lt;br /&gt;
		 data-height=&amp;quot;150&amp;quot;&lt;br /&gt;
		 data-device=&amp;quot;amp&amp;quot;&lt;br /&gt;
		 data-get=&amp;quot;volume&amp;quot; &lt;br /&gt;
		 data-set=&amp;quot;volume&amp;quot;&lt;br /&gt;
		 data-color=&amp;quot;grey&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Eintrag in fhem-tablet-ui-user.css:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
.retro .vertical .range-handle {&lt;br /&gt;
    left: -17px !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.retro .vertical .range-handle {&lt;br /&gt;
  width: 35px !important;&lt;br /&gt;
  height: 15px !important;&lt;br /&gt;
  border-radius: 3px !important;&lt;br /&gt;
  background-color: black;&lt;br /&gt;
  background-image: linear-gradient(180deg, white,black);&lt;br /&gt;
  background-size: 2px 2px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Darstellungsmöglichkeit bei Nutzung des Schiebereglers für Rolladen-/Jalousien-/Markisensteuerung===&lt;br /&gt;
&lt;br /&gt;
[[File:blindsslider.png|200px]] [[File:DarstellungSliderRolladenBunt.png|240px]]&lt;br /&gt;
&lt;br /&gt;
Folgende Anpasssungen sind zu machen:&lt;br /&gt;
&lt;br /&gt;
im file fhem-tablet-ui-user.css (falls das noch nicht verwendet wird, muss es natürlich noch in das html file, das aufgerufen wird, eingetragen werden) müssen zusätzliche Zeilen eingefügt werden. In älteren Versionen von FTUI (vor 2.7) müssen folgende Zeilen eingefügt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
/* Definition for styles to be used for extension of slider widget for display of blinds, awnings etc. */&lt;br /&gt;
/* normal lines */&lt;br /&gt;
&lt;br /&gt;
.blind .vertical.range-container {&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.blind&amp;gt; .vertical .range-bar {&lt;br /&gt;
    width: 70%;&lt;br /&gt;
	border-radius: 2px;&lt;br /&gt;
	background-image: url(../blinds.jpg);&lt;br /&gt;
	background-position: center bottom;&lt;br /&gt;
	background-blend-mode: multiply;&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-color: rgb(150,150,150) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.blind&amp;gt; .vertical .range-quantity {&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.blind&amp;gt; .vertical .range-handle {&lt;br /&gt;
	margin-left: 52% !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.blindview&amp;gt; .vertical .range-quantity {&lt;br /&gt;
	border-radius: 2px;&lt;br /&gt;
	background-image: url(../windowContentSimpleGrey.png);&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-position: center bottom;&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-blend-mode: difference;&lt;br /&gt;
	background-color: rgb(64,64,64) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.awning .vertical.range-container {&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.awning&amp;gt; .vertical .range-bar {&lt;br /&gt;
    width: 70%;&lt;br /&gt;
	border-radius: 2px;&lt;br /&gt;
	background-image: url(../awningContentSimpleGrey.png);&lt;br /&gt;
	background-position: center bottom;&lt;br /&gt;
	background-blend-mode: difference;&lt;br /&gt;
	background-size: 100% 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.awning&amp;gt; .vertical .range-quantity {&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.awning&amp;gt; .vertical .range-handle {&lt;br /&gt;
	margin-left: 52% !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ab FTUI 2.7 müssen folgende Zeilen eingefügt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
/* Definition for styles to be used for extension of slider widget for display of blinds, awnings etc. */&lt;br /&gt;
/* normal lines */&lt;br /&gt;
&lt;br /&gt;
.darker.showdeco &amp;gt; .vertical .range-bar .range-min,&lt;br /&gt;
.darker.showdeco &amp;gt; .vertical .range-bar .range-max {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
	margin-left: -12px;&lt;br /&gt;
	margin-bottom: 20px;&lt;br /&gt;
	margin-top: 20px;&lt;br /&gt;
	width: 200% !important;&lt;br /&gt;
	text-align: end;&lt;br /&gt;
	color: #8c8c8c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.showdeco &amp;gt; .vertical .range-bar .range-min,&lt;br /&gt;
.showdeco &amp;gt; .vertical .range-bar .range-max {&lt;br /&gt;
	visibility: visible;&lt;br /&gt;
	margin-left: -12px;&lt;br /&gt;
	margin-bottom: 20px;&lt;br /&gt;
	margin-top: 20px;&lt;br /&gt;
	width: 200% !important;&lt;br /&gt;
	text-align: end;&lt;br /&gt;
	color: #eeeeee;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.blind .vertical.range-container {&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.blind .vertical .range-bar {&lt;br /&gt;
    width: 70%;&lt;br /&gt;
	border-radius: 2px;&lt;br /&gt;
	background-image: url(../blinds.jpg);&lt;br /&gt;
	background-position: center bottom;&lt;br /&gt;
	background-blend-mode: multiply;&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-color: rgb(150,150,150) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.blind .vertical .range-quantity {&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.blind .vertical .range-handle {&lt;br /&gt;
	margin-left: 52% !important;&lt;br /&gt;
	z-index: 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.blindview .vertical .range-quantity {&lt;br /&gt;
	border-radius: 2px;&lt;br /&gt;
	background-image: url(../windowContentSimpleGrey.png);&lt;br /&gt;
	background-repeat: no-repeat;&lt;br /&gt;
	background-position: center bottom;&lt;br /&gt;
	background-size: cover;&lt;br /&gt;
	background-blend-mode: difference;&lt;br /&gt;
	background-color: rgb(64,64,64) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.awning .vertical.range-container {&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.awning .vertical .range-bar {&lt;br /&gt;
    width: 70%;&lt;br /&gt;
	border-radius: 2px;&lt;br /&gt;
	background-image: url(../awningContentSimpleGrey.png);&lt;br /&gt;
	background-position: center bottom;&lt;br /&gt;
	background-blend-mode: difference;&lt;br /&gt;
	background-size: 100% 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.awning .vertical .range-quantity {&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.awning .vertical .range-handle {&lt;br /&gt;
	margin-left: 52% !important;&lt;br /&gt;
	z-index: 1&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Grafiken müssen in das Verzeichnis oberhalb des css directories kopiert werden (zumindest die, die im css File auch referenziert werden. Es gibt eine Graustufenvariante und eine farbige, entsprechend müssen die Filenamen im css file ausgetauscht werden also jeweils das &amp;quot;Grey&amp;quot; im Filenamen weglassen wenn man bunte Fenster will. Wer will, kann sich natürlich auch eigene Fenster und Rolladenbildchen basteln, ein Beispiel für den &amp;quot;Fensterausblick&amp;quot; ist auch noch enthalten).&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:windowContentSimple.png&lt;br /&gt;
File:awningContentSimple.png&lt;br /&gt;
File:windowContentSimpleGrey.png&lt;br /&gt;
File:awningContentSimpleGrey.png&lt;br /&gt;
File:windowContentGrey.jpg&lt;br /&gt;
File:windowContent.jpg&lt;br /&gt;
File:blinds.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
im &amp;quot;class&amp;quot; parameter des Sliders müssen folgende Klassen hinzugefügt werden:&lt;br /&gt;
blind (dadurch wird die Darstellung eines verschiebbaren Rollladens bewirkt)&lt;br /&gt;
awning (dadurch wird die Darstellung einer Markise bewirkt)&lt;br /&gt;
blindview (dadurch wird im Hintergrund ein Fenster symbolisiert)&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für die Definition eines Sliders mit Rolladendarstellung und Fenster als Hintergrundbild wäre:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;slider&amp;quot;&lt;br /&gt;
    data-handle-diameter=&amp;quot;15&amp;quot;&lt;br /&gt;
    data-device=&amp;quot;&amp;quot;&lt;br /&gt;
    data-color=&amp;quot;#969696&amp;quot;&lt;br /&gt;
    data-height=&amp;quot;125&amp;quot;&lt;br /&gt;
    data-device=&amp;quot;dg_SZ_Rolladen&amp;quot;&lt;br /&gt;
    class=&amp;quot;blind blindview&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wird in der Klasse &amp;quot;awning&amp;quot; statt &amp;quot;blind&amp;quot; gesetzt, so wird eine Markisendarstellung erzeugt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Slider]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Push&amp;diff=37122</id>
		<title>FTUI Widget Push</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Push&amp;diff=37122"/>
		<updated>2022-01-18T10:53:18Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ data-lock ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Push Widget]] ist ein Widget für [[FHEM Tablet UI]] in Form eines Button-förmigen Knopfes, der, ähnlich einem Taster, einen einfachen Befehl an FHEM sendet (zum Beispiel hoch/runter, Play/Pause, Nächster/vorheriger Titel, usw.). Der Befehl kann beim Drücken, beim Loslassen, oder beide Male ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ftui_widget_push.PNG&lt;br /&gt;
File:Push1.png&lt;br /&gt;
File:Push2.png&lt;br /&gt;
File:Ftui_widget_push_on-for-timer.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading gesetzt werden soll (&amp;lt;command&amp;gt; &#039;&#039;&#039;&amp;lt;device&amp;gt;&#039;&#039;&#039; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Reading, das gesetzt werden soll (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &#039;&#039;&#039;&amp;lt;reading&amp;gt;&#039;&#039;&#039; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-on&#039;&#039;&#039;||Wert, der beim Drücken gesendet werden soll. Kann auch ein Array sein, um verschiedene Werte abwechselnd zu schalten||on||data-set-on=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-off&#039;&#039;&#039;||Wert, der nach dem Loslassen gesendet werden soll||||data-set-off=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der gesendet werden soll (&#039;&#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;&#039; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) (z.B. setstate, set, setreading, trigger)||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-fhem-cmd&#039;&#039;&#039;||Befehl, der bei einem Klick auf das Bild an FHEM gesendet werden soll||||data-fhem-cmd=&amp;quot;set Bulp01 off&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-doubleclick&#039;&#039;&#039;||Zeit [ms], in der ein zweiter Klick erfolgen muss, damit die Betätigung angenommen wird. &#039;0&#039; schaltet dieses Verhalten ab.||0||data-doubleclick=&amp;quot;800&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-countdown&#039;&#039;&#039;||Sekunden für Fortschrittsanzeige (progress control / &#039;on-for-timer&#039;)||Automatische Erkennung von &#039;on-for-timer&#039; bei &#039;&#039;&#039;data-set-on&#039;&#039;&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn&#039;&#039;&#039;||Reading, dessen Inhalt als rotes Kennzeichen angezeigt wird. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, dessen Inhalt zur Zustandsanzeige (ON/OFF) wird||keiner (muss explizit angegeben werden)||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Zeichenkette, die als Zustand ON interpretiert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039;||Zeichenkette, die als Zustand OFF interpretiert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading zum Verstecken des Push-Elementes. Das Element verschwindet, wenn der Wert mit &#039;&#039;&#039;data-hide-on&#039;&#039;&#039; übereinstimmt.||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Zeichenkette, bei der das Element versteckt wird||true,1,on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-off&#039;&#039;&#039;||Zeichenkette, bei der das Element angezeigt wird||!on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hideparents&#039;&#039;&#039;||jQuery-Selector, um auch die Eltern-Elemente zu verstecken||||data-hideparents=&amp;quot;#Name&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Die Sperre greift, wenn das Reading den Wert &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; hat. Hiervon abweichend ist auch eine Definition mittels data-lock-on und data-lock-off möglich.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-on&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aktiviert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-off&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aufgehoben wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-reachable&#039;&#039;&#039;||Reading, dessen Inhalt angibt, ob das Device erreichbar ist, oder nicht. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Name des Icons im Vordergrund||fa-power-off||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039;||Name des Icons, das als Hintergrund verwendet werden soll||fa-circle-thin||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039;||Feste Iconfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039;||Feste Hintergrundfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039;||Feste Iconfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||#505050||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039;||Feste Hintergrundfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;||#505050||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
{{FTUI Klasse|height-narrow}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Weitere Möglichkeiten==&lt;br /&gt;
Das Push-Widget kann auch dazu verwendet werden, Readings darzustellen. Über &#039;&#039;&#039;data-get&#039;&#039;&#039; und &#039;&#039;&#039;data-get-on&#039;&#039;&#039; wird beispielsweise der Kreis (Hintergrund-Icon) eingefärbt. Der Wert des Readings selbst wird dann per [[FTUI_Widget_Label|Label]] angezeigt, welches innerhalb des Push-Widgets platziert wird. Siehe hierzu auch den {{Link2Forum|Topic=66800|LinkText=Hinweis im Forum}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;push&amp;quot; ...&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;label&amp;quot; ...&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Alle Lampen einschalten===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;push&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;LightAll&amp;quot; &lt;br /&gt;
     data-cmd=&amp;quot;trigger&amp;quot; &lt;br /&gt;
     data-set-on=&amp;quot;on&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steuerung hoch/runter (horizontal)===&lt;br /&gt;
[[File:Push1.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;doublebox-h&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;Rollo&amp;quot; &lt;br /&gt;
             data-icon=&amp;quot;fa-angle-up&amp;quot; data-background-icon=&amp;quot;fa-square-o&amp;quot; &lt;br /&gt;
             data-set-on=&amp;quot;up&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;Rollo&amp;quot; &lt;br /&gt;
             data-icon=&amp;quot;fa-angle-down&amp;quot; data-background-icon=&amp;quot;fa-square-o&amp;quot; &lt;br /&gt;
             data-set-on=&amp;quot;down&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steuerung hoch/runter (vertikal)===&lt;br /&gt;
[[File:Push2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;doublebox-v&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;Rollo&amp;quot; &lt;br /&gt;
             data-icon=&amp;quot;fa-chevron-up&amp;quot; data-background-icon=&amp;quot;fa-square-o&amp;quot; &lt;br /&gt;
             data-set-on=&amp;quot;up&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;Rollo&amp;quot; &lt;br /&gt;
            data-icon=&amp;quot;fa-chevron-down&amp;quot; data-background-icon=&amp;quot;fa-square-o&amp;quot; &lt;br /&gt;
            data-set-on=&amp;quot;down&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Lampe für 5 Minuten einschalten===&lt;br /&gt;
Das Push-Widget zeigt einen abnehmenden Kreis, solange der Countdown läuft. Die Dauer wird automatisch aus dem &#039;&#039;&#039;on-for-timer&#039;&#039;&#039;-Befehl erkannt. Mit &#039;&#039;&#039;data-countdown&#039;&#039;&#039; kann jedoch auch auch ein eigener Wert angegeben werden.&lt;br /&gt;
Wenn das Device ein Dummy ist, muss in diesem das FHEM-Attribut &amp;lt;code&amp;gt;useSetExtensions 1&amp;lt;/code&amp;gt; gesetzt werden. Weitere Beispiele für Timer sind [[FTUI_Zeitschaltung|hier]] zu finden.&lt;br /&gt;
&lt;br /&gt;
[[File:Ftui_widget_push_on-for-timer.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;MyLamp&amp;quot; data-set-on=&amp;quot;on-for-timer 300&amp;quot; &amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Push-Widget verstecken===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hbox&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;ftuitest&amp;quot; data-set-on=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div&amp;gt;on&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;ftuitest&amp;quot; data-set-on=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div&amp;gt;off&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get=&amp;quot;STATE&amp;quot; data-get-on=&amp;quot;on&amp;quot; data-hide=&amp;quot;ftuitest:STATE&amp;quot; data-hide-on=&amp;quot;1&amp;quot; class=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Push]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Pagebutton&amp;diff=37121</id>
		<title>FTUI Widget Pagebutton</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Pagebutton&amp;diff=37121"/>
		<updated>2022-01-18T10:52:08Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ data-lock ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Pagebutton Widget]] ist ein Widget für [[FHEM Tablet UI]], das ein einfaches Element zur Verfügung stellt, um auf eine andere Seite zu navigieren. Auf der Zielseite wird das Widget als &amp;quot;ON&amp;quot; angezeigt. Das Pagebutton-Widget eignet sich zum Beispiel gut, um eine Navigation zu erstellen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Pagebutton_01.png&lt;br /&gt;
File:FTUI_Widget_Pagebutton_02.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
Für das Pagebutton-Widget gelten alle Attribute des [[FTUI Widget Switch]]. Und zusätzlich die folgenden:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-url&#039;&#039;&#039;||URL der Seite, die angezeigt werden soll||||data-url=&amp;quot;#content_main.html&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-load&#039;&#039;&#039;||DIV-Container, in den der Inhalt der Zielseite geladen werden soll||||data-load=&amp;quot;#main&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-active-pattern&#039;&#039;&#039;||[[Regulärer Ausdruck|RegEx]], die bestimmt, wann das Widget &amp;quot;ON&amp;quot; sein soll||||&amp;lt;nowiki&amp;gt;data-active-pattern=&amp;quot;(.*/||.*#content_main.html)&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-fade-duration&#039;&#039;&#039;||Zeit in Millisekunden oder &amp;quot;slow&amp;quot; bzw. &amp;quot;fast&amp;quot;, die verwendet werden soll, um die Zielseite einzublenden||slow||data-fade-duration=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Vordergrund-Icon des Widgets||fa-power-off||data-icon=&amp;quot;mi-home&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039;||Hintergrund-Icon des Widgets||fa-circle||data-background-icon=&amp;quot;fa-square&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt angezeigt wird||#222222||data-on-color=&amp;quot;yellow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039;||Farbe des Hintergrund-Icons, wenn der gewünschte Inhalt angezeigt wird||#606060||data-on-background-color=&amp;quot;gray&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt nicht angezeigt wird||#505050||data-off-color=&amp;quot;#000000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt nicht angezeigt wird||transparent||data-off-background-color=&amp;quot;#cccccc&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-return-time&#039;&#039;&#039;||Zeit in Sekunden, nach der die Standardseite (default) wieder aufgerufen wird||||data-return-time=&amp;quot;60&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-parent&#039;&#039;&#039;||&amp;quot;Eltern-Seite&amp;quot; - Angabe erforderlich, wenn in einer mehrstufigen Menüstruktur direkt auf eine Unterseite gesprungen werden soll und diese nicht mit &amp;quot;prefetch&amp;quot; vorgeladen ist||||data-parent=&amp;quot;main2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, über welches das Verhalten des Widgets gesteuert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, welches ausgewertet wird||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Wert, bei welchem das Widget ausgelöst wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-states&#039;&#039;&#039;||Vektor mit Zuständen von data-get||||data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icons&#039;&#039;&#039;||Vektor mit Symbolen, die auf data-states referenzieren||||data-icons=&#039;[&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading, welches Ein- und Ausblenden des Widgets steuert||||data-hide=&amp;quot;GelberSack_Anzeige&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Wert, bei dem das Widget ausgeblendet wird||||data-hide-on=&amp;quot;false&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn&#039;&#039;&#039;||&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt; für den Inhalt des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-background-color&#039;&#039;&#039;||Hintergrundfarbe des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-color&#039;&#039;&#039;||Schriftfarbe des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-fixed&#039;&#039;&#039;||Anzahl Nachkommastellen im Warnhinweis||0||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Die Sperre greift, wenn das Reading den Wert &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; hat. Hiervon abweichend ist auch eine Definition mittels data-lock-on und data-lock-off möglich.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-on&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aktiviert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-off&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aufgehoben wird||||&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{FTUI Klasse|blank}}{{FTUI Klasse|nocache}}{{FTUI Klasse|default}}{{FTUI Klasse|prefetch}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Für Sub-Pagebuttons kann eine eigene &#039;&#039;data-return-time&#039;&#039; festgelegt werden.&lt;br /&gt;
* &#039;&#039;data-return-time&#039;&#039; muss nicht am ersten Button hängen. Der erste, der dieses Attribut hat, wird ausgewertet.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Einfacher Link===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
     data-url=&amp;quot;index.html&amp;quot;&lt;br /&gt;
     data-icon=&amp;quot;mi-home&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Pagebutton_01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Navigationsleiste===&lt;br /&gt;
Für die Navigationsleiste braucht es zum einen die Leiste und zum anderen einen DIV-Container, in dem die zu ladenden Inhalte angezeigt werden. Die Container erhalten jeweils eine eindeutige ID, welche in der Navigationsleiste als Ziel referenziert wird.&lt;br /&gt;
&lt;br /&gt;
Als erstes wird das Menü aufgebaut.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werden noch die DIV-Container benötigt, in die der Inhalt der Zielseite geladen wird.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;2&amp;quot; data-sizex=&amp;quot;5&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Zielseite ist wichtig, dass ein DIV-Container erstellt wird, dem die Klasse &#039;&#039;page&#039;&#039; zugewiesen wird und eine ID, die der ID entsprechen muss, in der bei &#039;&#039;data-load&#039;&#039; verwiesen wird.&lt;br /&gt;
So eine Seite könnte wie folgt aussehen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot;&amp;gt;Page 1&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:FTUI_Widget_Pagebutton_02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Steuerung über ein Device===&lt;br /&gt;
Der Aufruf einzelner Seiten kann auch über ein Device erfolgen; dies eröffnet Automatisierungsmöglichkeiten. Das obige Beispiel wird hierzu erweitert:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nimmt das device &amp;quot;Seite&amp;quot; die STATES &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot; oder &amp;quot;3&amp;quot; an, wird die jeweilige Seite aufgerufen. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Variante zeigt das nachfolgende Beispiel: Hier wird über das device &amp;quot;Musik&amp;quot; bei &amp;quot;on&amp;quot; die Seite 2 aufgerufen und bei &amp;quot;off&amp;quot; zur Hauptseite zurückgewechselt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Musik&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;off&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Musik&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;on&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Querverweis auf eine Pagebutton-Seite===&lt;br /&gt;
Es ist zulässig, dass mehrere Pagebutton-Widgets auf dieselbe Seite verweisen. Neben der Verwendung in Menüleisten könnnen somit zusätzlich &amp;quot;Links&amp;quot; an beliebiger Stelle platziert werden, bei deren Betätigung die definierte Pagebutton-Seite bzw. -Unterseite aufgerufen wird. Das Aussehen des Pagebutton-Widgets kann mittels &#039;&#039;data-icons&#039;&#039; und &#039;&#039;data-colors&#039;&#039; wie beim Symbol-Widget beeinflusst werden. Folglich erweitert das Pagebutton-Widget die Funktionalität des Symbol-Widgets dergestalt, dass bei Betätigung eine Unterseite aufgerufen wird. Beispiel: Auf der Hauptseite signalisiert das Symbol, ob alle Fenster geschlossen sind oder mindestens eines geöffnet ist. Bei Betätigung des Widgets wird dann die Unterseite aufgerufen, welche eine detaillierte Übersicht über den Zustand aller Fenster enthält. Im nachfolgenden Beispiel wird der Abholtermin des Gelben Sacks am Vortag (normale Anzeige) und am Abholtag (blinkend) angezeigt. Das Reading &#039;&#039;GelberSack_Anzeige&#039;&#039; begrenzt das Zeitfenster der Anzeige auf den Nachmittag des Vortages bis zum Vormittag des Abholtages. Wenn das Symbol angezeigt wird, kann durch manuelle Betätigung die Unterseite &#039;&#039;&amp;quot;#page_content6_4.html&amp;quot;&#039;&#039; aufgerufen werden (welche z.B. weitere Informationen zu anstehenden Abholterminen bereithält).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vbox grow-0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;pagebutton&amp;quot; &lt;br /&gt;
data-url=&amp;quot;#page_content6_4.html&amp;quot; &lt;br /&gt;
data-load=&amp;quot;#content6_4&amp;quot; &lt;br /&gt;
data-off-background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
data-off-color=&amp;quot;#FFFF7A&amp;quot; &lt;br /&gt;
data-on-background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
data-on-color=&amp;quot;#FFFF7A&amp;quot; &lt;br /&gt;
data-active-pattern=&amp;quot;.*#page_content6_4.html&amp;quot; &lt;br /&gt;
class=&amp;quot;prefetch bigger compressed autohide&amp;quot; &lt;br /&gt;
data-device=&amp;quot;Entsorger&amp;quot; &lt;br /&gt;
data-get=&amp;quot;GelberSack_days&amp;quot; &lt;br /&gt;
data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;]&#039; &lt;br /&gt;
data-icons=&#039;[&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;]&#039; &lt;br /&gt;
data-hide=&amp;quot;GelberSack_Anzeige&amp;quot; &lt;br /&gt;
data-hide-on=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
data-device=&amp;quot;Entsorger&amp;quot; &lt;br /&gt;
data-hide=&amp;quot;GelberSack_Anzeige&amp;quot; &lt;br /&gt;
data-hide-on=&amp;quot;false&amp;quot; &lt;br /&gt;
data-get=&amp;quot;GelberSack_days&amp;quot; &lt;br /&gt;
data-substitution=&#039;[&amp;quot;0&amp;quot;,&amp;quot;Heute&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;Morgen&amp;quot;]&#039; &lt;br /&gt;
data-color=&amp;quot;#FFFF7A&amp;quot; class=&amp;quot;compressed autohide&amp;quot; &lt;br /&gt;
style=&amp;quot;position: relative; top: 5px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[https://github.com/knowthelist/fhem-tablet-ui/blob/master/examples/pagebutton/index_page_left_demo.html Beispiel für eine Navigation]&lt;br /&gt;
*{{Link2Forum|Topic=67141|LinkText=Fertiges Pagebutton Multi-Menü}}&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,82003.msg745677.html#msg745677 Sprung zu einer Unterseite (Anwendung von data-parent)]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Pagebutton]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Knob&amp;diff=37120</id>
		<title>FTUI Widget Knob</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Knob&amp;diff=37120"/>
		<updated>2022-01-18T10:50:26Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ data-lock ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Knob Widget]] ist ein Widget für [[FHEM Tablet UI]], das einen verschiebbaren Statusbalken auf einer Kreisbahn erstellt. Optisch wird ein „Drehknopf“ symbolisiert, mit dem man eine Einstellung vornimmt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Knob_01.png&lt;br /&gt;
File:FTUI_Widget_Knob_02.png&lt;br /&gt;
File:FTUI_Widget_Knob_03.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Readings gelesen/geändert werden sollen||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, das den darzustellenden Wert enthält||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Name des Reading, welches geändert werden soll||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Name des Befehls, mit dem das Reading geändert wird (z.B. setstate, set, setreading, trigger)||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-value&#039;&#039;&#039;||[[Regulärer Ausdruck|RegEx]] oder Position des Wertes in einer leerzeichen-getrennten Textzeile, mit der der Wert erhalten werden kann||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-value&#039;&#039;&#039;||Format des Wertes, wie er an FHEM gesendet werden soll||$v (nur der Wert)||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-min&#039;&#039;&#039;||Mindestwert, der gesetzt werden kann||0||data-min=&amp;quot;10&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-max&#039;&#039;&#039;||Maximalwert, der gesetzt werden kann||70||data-max=&amp;quot;100&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-initvalue&#039;&#039;&#039;||Startwert||10||data-initvalue=&amp;quot;20&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-step&#039;&#039;&#039;||Schrittgröße||1||data-step=&amp;quot;0.5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-angleoffset&#039;&#039;&#039;||Bestimmt die Position auf der Kreisform, auf dem die Statusanzeige beginnen soll||-120||data-angleoffset=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-anglearc&#039;&#039;&#039;||Reichweite der Anzeige auf einem Kreis in Grad||240||data-anglearc=&amp;quot;360&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;&amp;lt;s&amp;gt;data-width&amp;lt;/s&amp;gt;&#039;&#039;&#039;||&amp;lt;s&amp;gt;Breite des Widgets&amp;lt;/s&amp;gt;||&amp;lt;s&amp;gt;120&amp;lt;/s&amp;gt;||&amp;lt;s&amp;gt;&amp;lt;/s&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Höhe des Widgets||120||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-bgcolor&#039;&#039;&#039;||Hintergrundfarbe des Steuerungsbalkens||#505050||data-bgcolor=&amp;quot;white&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-fgcolor&#039;&#039;&#039;||Farbe der Statusanzeige||#666||data-fgcolor=&amp;quot;red&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-nomcolor&#039;&#039;&#039;||Textfarbe des Wertes||#ffffff||data-nomcolor=&amp;quot;#00ff00&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-displayNominal&#039;&#039;&#039;||Wert im Kreisring anzeigen||true||data-displayInput=&amp;quot;false&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-font&#039;&#039;&#039;||Schriftart des Wertes||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-font-weight&#039;&#039;&#039;||Dicke der Schrift||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-thickness&#039;&#039;&#039;||Dicke des Steuerungsbalkens||0.25||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-unit&#039;&#039;&#039;||Einheit, die zum Wert hinzugefügt werden soll||||&amp;lt;nowiki&amp;gt;data-unit=&amp;quot;&amp;amp;deg;&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Die Sperre greift, wenn das Reading den Wert &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; hat. Hiervon abweichend ist auch eine Definition mittels data-lock-on und data-lock-off möglich.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-on&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aktiviert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-off&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aufgehoben wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-reachable&#039;&#039;&#039;||Reading, dessen Inhalt angibt, ob das Device erreichbar ist, oder nicht||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{FTUI Klasse|mini}}{{FTUI Klasse|small}}{{FTUI Klasse|large}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|readonly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Einfache Lautstärkeregelung===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;knob&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;RXV777&amp;quot;&lt;br /&gt;
     data-get=&amp;quot;volumeStraight&amp;quot;&lt;br /&gt;
     data-set=&amp;quot;volumeStraight&amp;quot;&lt;br /&gt;
     data-min=&amp;quot;-60&amp;quot;&lt;br /&gt;
     data-max=&amp;quot;-24&amp;quot;&lt;br /&gt;
     data-step=&amp;quot;0.5&amp;quot;&lt;br /&gt;
     data-unit=&amp;quot;db&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Knob_01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Steuerung HUEDevice===&lt;br /&gt;
In diesem Beispiel ist das gewünschte HUEDevice nicht erreichbar und das Widget wird somit auf &#039;&#039;readonly&#039;&#039; gesetzt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;knob&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;HUEDevice12&amp;quot;&lt;br /&gt;
     data-get=&amp;quot;pct&amp;quot;&lt;br /&gt;
     data-set=&amp;quot;pct&amp;quot;&lt;br /&gt;
     data-min=&amp;quot;0&amp;quot;&lt;br /&gt;
     data-max=&amp;quot;100&amp;quot;&lt;br /&gt;
     data-step=&amp;quot;1&amp;quot;&lt;br /&gt;
     data-unit=&amp;quot;%&amp;quot;&lt;br /&gt;
     data-reachable=&amp;quot;reachable&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Knob_02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Verändertes Aussehen===&lt;br /&gt;
Um zu zeigen, wie das Aussehen verändert werden könnte, hier ein etwas übertriebenes Beispiel.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;knob&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;HUEDevice12&amp;quot;&lt;br /&gt;
     data-get=&amp;quot;pct&amp;quot;&lt;br /&gt;
     data-set=&amp;quot;pct&amp;quot;&lt;br /&gt;
     data-min=&amp;quot;0&amp;quot;&lt;br /&gt;
     data-max=&amp;quot;100&amp;quot;&lt;br /&gt;
     data-step=&amp;quot;5&amp;quot;&lt;br /&gt;
     data-unit=&amp;quot;%&amp;quot;&lt;br /&gt;
     data-bgcolor=&amp;quot;lightblue&amp;quot;&lt;br /&gt;
     data-fgcolor=&amp;quot;blue&amp;quot;&lt;br /&gt;
     data-nomcolor=&amp;quot;yellow&amp;quot;&lt;br /&gt;
     data-anglearc=&amp;quot;360&amp;quot;&lt;br /&gt;
     data-angleoffset=&amp;quot;0&amp;quot;&lt;br /&gt;
     data-height=&amp;quot;100&amp;quot;&lt;br /&gt;
     data-font=&amp;quot;courier&amp;quot;&lt;br /&gt;
     data-font-weight=&amp;quot;bold&amp;quot;&lt;br /&gt;
     data-reachable=&amp;quot;reachable&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Knob_03.png]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Knob]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Dimmer&amp;diff=37119</id>
		<title>FTUI Widget Dimmer</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Dimmer&amp;diff=37119"/>
		<updated>2022-01-18T10:49:15Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ data-lock ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Dimmer Widget]] ist ein Widget für [[FHEM Tablet UI]], das einen Ein-/Aus-Button mit inkludiertem Schieberegler erstellt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Dimmer_01.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Device-Reading, welches den Status-Wert enthält||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Wert für EIN||on||data-get-on=&amp;quot;An&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039;||Wert für AUS||off||data-get-off=&amp;quot;Aus&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-value&#039;&#039;&#039;||[[Regulärer Ausdruck|RegEx]] oder Position in einer leerzeichen-getrennten Auflistung, die den Wert repräsentiert||-1 (alles anzeigen)||data-get-value=&amp;quot;2&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Reading, welches geändert werden soll||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-on&#039;&#039;&#039;||Wert für EIN, der gesetzt werden soll||data-get-on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-off&#039;&#039;&#039;||Wert für AUS, der gesetzt werden soll||data-get-off||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-value&#039;&#039;&#039;||Wert für EIN, der gesetzt werden soll||$v - nur der Wert||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-cmd&#039;&#039;&#039;||Name des Befehls zum Ändern des EIN-/AUS-Wertes, der mittels Schieberegler geändert wird||set||data-set-cmd=&amp;quot;setreading&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd-value&#039;&#039;&#039;||Name des Befehls zum Ändern des Wertes, der mittels Schieberegler geändert wird||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-dim&#039;&#039;&#039;||Name des Readings, das für den DIM-Wert zuständig ist||||data-dim=&amp;quot;dim&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Name des Icons für den Schieberegler||fa-lightbulb-o||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-max&#039;&#039;&#039;||Maximalwert, der gesetzt werden kann||100||data-max=&amp;quot;25&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-min&#039;&#039;&#039;||Minimalwert, der gesetzt werden kann||0||data-min=&amp;quot;10&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-step&#039;&#039;&#039;||Größe der Änderungsschritte||1||data-step=&amp;quot;5&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Die Sperre greift, wenn das Reading den Wert &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; hat. Hiervon abweichend ist auch eine Definition mittels data-lock-on und data-lock-off möglich.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-on&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aktiviert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-off&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aufgehoben wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-timeout&#039;&#039;&#039;||Maximale Zeit, die der eingestellte Zustand nach einer Veränderung angezeigt wird, bis die echte Rückmeldung vom Device wieder angezeigt wird||2000ms||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{FTUI Klasse|FS20}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Um den Dim-Wert zu ändern, muss der Button gedrückt und nach unten oder oben verschoben werden.&lt;br /&gt;
* Im einfachen Modus (ohne &#039;&#039;data-dim&#039;&#039;-Parameter) schaltet das Widget zwischen OFF und dem DIM-Wert.&lt;br /&gt;
* Im erweiterten Modus (mit &#039;&#039;data-dim&#039;&#039;-Parameter) wird der DIM-Wert vom definierten Reading empfangen bzw. gesendet und der Button wird nur für EIN/AUS verwendet.&lt;br /&gt;
* &#039;&#039;$v&#039;&#039; ist ein Platzhalter für den numerischen Wert. Er wird zur Laufzeit durch den richtigen Wert ersetzt.&lt;br /&gt;
* data-lock: Das Widget wird gesperrt (readonly), wenn das definierte Reading den Wert &#039;&#039;1&#039;&#039;, &#039;&#039;on&#039;&#039; oder &#039;&#039;true&#039;&#039; hat.&lt;br /&gt;
&lt;br /&gt;
Das Attribut &#039;&#039;&#039;data-timeout&#039;&#039;&#039; dient dazu, ein &amp;quot;Flackern&amp;quot; der Anzeige zu verhindern. Manche Devices benötigen einige Zeit, bis der gewünschte und eben eingestellte Zustand erreicht wird.&lt;br /&gt;
Zitat aus dem Forum: &amp;quot;data-timeout gilt nur für die on-off (toggle) Funktion von Switch und Dimmer, nicht fürs Dimmen. Das Problem: Am Switch wird eingeschaltet, der Knopf wird hell und ON an FHEM gesendet. Aber die Hardware reagiert nicht, geht nicht auf ON.&lt;br /&gt;
Wenn sie das machen würde, käme auch eine Bestätigung per Longpoll. Mit &#039;&#039;&#039;data-timeout&#039;&#039;&#039; wird die eingestellte Zeit gewartet und bei Ausbleiben der Bestätigung fällt der Switch zum ursprünglichen Status zurück, geht also wieder aus. Nur wenn innerhalb der x Sekunden das Longpoll-Event kommt, wird der Fallbacktimer gestoppt.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===HUEDevice===&lt;br /&gt;
Einfaches Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;dimmer&amp;quot;&lt;br /&gt;
     data-device=&#039;HUEDevice1&#039;&lt;br /&gt;
     data-set=&amp;quot;pct&amp;quot;&lt;br /&gt;
     data-get-on=&amp;quot;!off&amp;quot;&lt;br /&gt;
     data-get-off=&amp;quot;off&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Dimmer_01.png]]&lt;br /&gt;
&lt;br /&gt;
Nun ein Beispiel mit einem eigenen Reading für den DIM-Wert. Es ist dasselbe HUEDevice wie oben, nur wird diesmal der pct-Wert getrennt von EIN/AUS geregelt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;dimmer&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;HUEDevice1&amp;quot;&lt;br /&gt;
     data-get=&amp;quot;onoff&amp;quot;&lt;br /&gt;
     data-get-on=&amp;quot;1&amp;quot;&lt;br /&gt;
     data-get-off=&amp;quot;0&amp;quot;&lt;br /&gt;
     data-set=&amp;quot;&amp;quot;&lt;br /&gt;
     data-set-on=&amp;quot;on&amp;quot;&lt;br /&gt;
     data-set-off=&amp;quot;off&amp;quot;&lt;br /&gt;
     data-dim=&amp;quot;pct&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Homematic-Dimmer===&lt;br /&gt;
So wird ein Homematic-Dimmer im erweiterten Modus eingebunden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;dimmer&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;HomematicDevice1&amp;quot; &lt;br /&gt;
     data-get-on=&amp;quot;on|^[1-9][0-9]?(?:\.5)?$&amp;quot; &lt;br /&gt;
     data-get-off=&amp;quot;off&amp;quot; &lt;br /&gt;
     data-set-on=&amp;quot;on&amp;quot; &lt;br /&gt;
     data-dim=&amp;quot;pct&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===RegEx für On-Werte===&lt;br /&gt;
Dieses Beispiel verwendet einen RegEx-Ausdruck, um alle möglichen Werte für &amp;quot;EIN&amp;quot; abzudecken.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;dimmer&amp;quot;&lt;br /&gt;
     data-device=&#039;Dimmer1&#039;&lt;br /&gt;
     data-set=&amp;quot;pct&amp;quot;&lt;br /&gt;
     data-get-on=&amp;quot;[0-9]{1,3}|on&amp;quot;&lt;br /&gt;
     data-get-off=&amp;quot;off&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Dimmer]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Controller&amp;diff=37118</id>
		<title>FTUI Widget Controller</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Controller&amp;diff=37118"/>
		<updated>2022-01-18T10:47:54Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */  data-lock ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Controller Widget]] ist ein Widget für [[FHEM Tablet UI]] in Form eines iOS-ähnlichen Schiebereglers, mit dem ein beliebiger Wert zwischen zwei festgelegten Grenzwerten auswählen lässt. Es eignet sich zum Beispiel zum Einstellen der Lautstärke eines Audio-Gerätes oder der Helligkeit einer Lampe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI controller1.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Widget kann sehr gut mit weiteren Widgets der Typen [[FTUI Widget Controlbutton|Controlbutton]] und [[FTUI Widget Switch|Switch]] kombiniert werden, um ein iOS-ähnliches Controlcenter zu erstellen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FTUI controlbutton controller.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading gesetzt werden soll (&amp;lt;command&amp;gt; &#039;&#039;&#039;&amp;lt;device&amp;gt;&#039;&#039;&#039; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, dessen Inhalt den aktuellen Wert wiedergibt||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Reading, das gesetzt werden soll (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &#039;&#039;&#039;&amp;lt;reading&amp;gt;&#039;&#039;&#039; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der gesendet werden soll (&#039;&#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;&#039; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) (z.B. setstate, set, setreading, trigger)||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-min&#039;&#039;&#039;||Minimaler Wert, der eingestellt werden kann||0||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-max&#039;&#039;&#039;||Maximaler Wert, der eingestellt werden kann||100||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-step&#039;&#039;&#039;||Schrittweite beim Schieben des Sliders||1||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on&#039;&#039;&#039;||Wert, bei dem der Slider zum maximalen Ausschlag springt||&#039;on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off&#039;&#039;&#039;||Wert, bei dem der Slider minimalen Ausschlag springt||&#039;off&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-width&#039;&#039;&#039;||Breite des Sliders, wenn er horizontal ausgerichtet ist||&#039;4em&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Höhe des Sliders, wenn er vertikal ausgerichtet ist||&#039;11em&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-color&#039;&#039;&#039;||Farbe des Sliders für den Bereich 0...&amp;lt;eingestellter Wert&amp;gt;||&#039;#fff&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Farbe des Sliders für den Bereich &amp;lt;eingestellter Wert&amp;gt;...&amp;lt;Maximaler Wert&amp;gt;||&#039;rgba(40,40,40,0.5)&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Name des Icons, das im Slider angezeigt werden soll||&#039;fa-lightbulb-o&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon-color&#039;&#039;&#039;||Farbe des Icons im Slider||&#039;#aaa&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Die Sperre greift, wenn das Reading den Wert &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; hat. Hiervon abweichend ist auch eine Definition mittels data-lock-on und data-lock-off möglich.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-on&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aktiviert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-off&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aufgehoben wird||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
=== Schieberegler ===&lt;br /&gt;
Schieberegler zur Änderung der Lautstärke im Bereich 0 bis 60 mit transparentem Hintergrund.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;controller&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;AvReceiver&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;volume&amp;quot; &lt;br /&gt;
     data-background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
     data-set=&amp;quot;volume&amp;quot; &lt;br /&gt;
     data-icon=&amp;quot;fa-volume-up&amp;quot; &lt;br /&gt;
     data-max=&amp;quot;60&amp;quot;&lt;br /&gt;
     class=&amp;quot;fullsize&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Controlcenter===&lt;br /&gt;
Dieses Beispiel zeigt den kompletten Code für die Kombination aus Controlbutton, Controller und Switch, um ein iOS-ähnliches Controlcenter zu erstellen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FTUI controlbutton controller.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
     /* FHEM tablet ui */&lt;br /&gt;
     /*&lt;br /&gt;
     * UI builder framework for FHEM&lt;br /&gt;
     *&lt;br /&gt;
     * Version: 2.6.*&lt;br /&gt;
     * URL: https://github.com/knowthelist/fhem-tablet-ui&lt;br /&gt;
     *&lt;br /&gt;
     * Copyright (c) 2015-2017 Mario Stephan &amp;lt;mstephan@shared-files.de&amp;gt;&lt;br /&gt;
     * Under MIT License (http://www.opensource.org/licenses/mit-license.php)&lt;br /&gt;
     */&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;icon&amp;quot; href=&amp;quot;favicon.ico&amp;quot; type=&amp;quot;image/x-icon&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;mobile-web-app-capable&amp;quot; content=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;apple-mobile-web-app-capable&amp;quot; content=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;gridster_base_width&amp;quot; content=&amp;quot;70&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;gridster_base_height&amp;quot; content=&amp;quot;70&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;gridster_margin&amp;quot; content=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;script src=&amp;quot;js/fhem-tablet-ui.js&amp;quot; defer&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;title&amp;gt;FTUI-Control&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body style=&amp;quot;background-image:url(bgimage-tablet.jpg)&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;gridster bg-transparent&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;!-- ROW 1-2 Left --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;2&amp;quot; data-sizex=&amp;quot;2&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-45&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-45 center&amp;quot; data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-color=&amp;quot;white&amp;quot; data-size=&amp;quot;130&amp;quot; data-on-background-color=&amp;quot;blue&amp;quot; data-icon=&amp;quot;fa-wifi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-45 center&amp;quot; data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy2&amp;quot; data-color=&amp;quot;white&amp;quot; data-size=&amp;quot;130&amp;quot; data-on-background-color=&amp;quot;green&amp;quot; data-icon=&amp;quot;fa-lock&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-45&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-45 center&amp;quot; data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-color=&amp;quot;white&amp;quot; data-size=&amp;quot;130&amp;quot; data-on-background-color=&amp;quot;blue&amp;quot; data-icon=&amp;quot;fa-bluetooth-b&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-45 center&amp;quot; data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy3&amp;quot; data-color=&amp;quot;white&amp;quot; data-size=&amp;quot;130&amp;quot; data-on-background-color=&amp;quot;blue&amp;quot; data-icon=&amp;quot;fa-podcast&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;!-- ROW 1-2 Right --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;3&amp;quot; data-sizey=&amp;quot;2&amp;quot; data-sizex=&amp;quot;2&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-10&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-20&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;bold center &amp;quot; data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;MPD1&amp;quot; data-get=&amp;quot;Artist&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-20&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;center&amp;quot; data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;MPD1&amp;quot; data-get=&amp;quot;Title&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-50&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col center&amp;quot; data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;MPD1&amp;quot; data-icon=&amp;quot;fa-step-backward&amp;quot; data-background-icon=&amp;quot;-&amp;quot; data-set-on=&amp;quot;previous&amp;quot; data-off-color=&amp;quot;#000&amp;quot; data-on-color=&amp;quot;white&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col center&amp;quot; data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;MPD1&amp;quot; data-states=&#039;[&amp;quot;play&amp;quot;,&amp;quot;pause&amp;quot;,&amp;quot;stop&amp;quot;]&#039; data-set-states=&#039;[&amp;quot;pause&amp;quot;,&amp;quot;play&amp;quot;,&amp;quot;play&amp;quot;]&#039; data-background-icon=&amp;quot;none&amp;quot; data-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#ddd&amp;quot;,&amp;quot;#ddd&amp;quot;]&#039; data-icons=&#039;[&amp;quot;fa-pause&amp;quot;,&amp;quot;fa-play&amp;quot;,&amp;quot;fa-play&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col center&amp;quot; data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;MPD1&amp;quot; data-icon=&amp;quot;fa-step-forward&amp;quot; data-background-icon=&amp;quot;-&amp;quot; data-set-on=&amp;quot;next&amp;quot; data-off-color=&amp;quot;#000&amp;quot; data-on-color=&amp;quot;white&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;!-- ROW 3--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;3&amp;quot; data-col=&amp;quot;3&amp;quot; data-sizey=&amp;quot;2&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-100&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controller&amp;quot; data-device=&amp;quot;EsstischLampe&amp;quot; data-background-color=&amp;quot;transparent&amp;quot; data-get=&amp;quot;state&amp;quot; data-set=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;3&amp;quot; data-col=&amp;quot;4&amp;quot; data-sizey=&amp;quot;2&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-100&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controller&amp;quot; data-device=&amp;quot;AvReceiver&amp;quot; data-get=&amp;quot;volume&amp;quot; data-background-color=&amp;quot;transparent&amp;quot; data-set=&amp;quot;volume&amp;quot; data-icon=&amp;quot;fa-volume-up&amp;quot; data-max=&amp;quot;60&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;3&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;SchrankLicht_Sw&amp;quot; data-icon=&amp;quot;fa-book&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;3&amp;quot; data-col=&amp;quot;2&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;KuechenArbeitsLicht&amp;quot; data-icon=&amp;quot;fa-beer&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;4&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;2&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-30 center fa fa-2x fa-sign-in&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-70 center&amp;quot; data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AvReceiver&amp;quot; data-get=&amp;quot;input&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;!-- ROW 5 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;5&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;BadWandlicht&amp;quot; data-icon=&amp;quot;fa-shower&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;5&amp;quot; data-col=&amp;quot;2&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;SchlafzimmerLicht&amp;quot; data-icon=&amp;quot;fa-bed&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;5&amp;quot; data-col=&amp;quot;3&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;WohnenDeckenLicht&amp;quot; data-icon=&amp;quot;fa-tv&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;5&amp;quot; data-col=&amp;quot;4&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;GartenLicht&amp;quot; data-icon=&amp;quot;fa-envira&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Controller]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Controlbutton&amp;diff=37117</id>
		<title>FTUI Widget Controlbutton</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Controlbutton&amp;diff=37117"/>
		<updated>2022-01-18T10:45:22Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: data-lock ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Controlbutton Widget]] ist ein Widget für [[FHEM Tablet UI]]. Dabei handelt es sich um einen Ein-/Ausschalter in Form eines Druckknopfes im Design von iOS (11). Er dient zum Ausführen beliebiger Schaltbefehle und kann auch für FTUI-interne Steuerungen genutzt werden. Zusätzlich kann der Schalter in Abhängigkeit eines Readings sein Aussehen verändern und so zwei oder mehr Zustände optisch darstellen. Beispielsweise können Farbe und/oder das Symbol die Zuständen an/aus anzeigen. Kann das Status-Reading mehr als zwei Zustände einnehmen, kann auch dies dargestellt werden. Dabei sind beliebige Kombinationen von Vorder-/Hintergrundfarben und Symbolen möglich.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI controlbutton1.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Widget kann sehr gut mit weiteren Widgets der Typen [[FTUI Widget Controller|Controller]] und [[FTUI Widget Switch|Switch]] kombiniert werden, um ein iOS-ähnliches Controlcenter zu erstellen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FTUI controlbutton controller.png|200px]]&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading gesetzt werden soll (&amp;lt;command&amp;gt; &#039;&#039;&#039;&amp;lt;device&amp;gt;&#039;&#039;&#039; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, dessen Inhalt den aktuellen Wert wiedergibt||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Reading, das gesetzt werden soll (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &#039;&#039;&#039;&amp;lt;reading&amp;gt;&#039;&#039;&#039; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der gesendet werden soll (&#039;&#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;&#039; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) (z.B. setstate, set, setreading, trigger)||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, dessen Inhalt zur Zustandsanzeige (ON/OFF) wird||keiner (muss explizit angegeben werden)||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Zeichenkette, die als Zustand ON interpretiert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039;||Zeichenkette, die als Zustand OFF interpretiert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-on&#039;&#039;&#039;||Zeichenkette, die zum Einschalten gesendet wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-off&#039;&#039;&#039;||Zeichenkette, die zum Ausschalten gesendet wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Name des Icons im Vordergrund||&#039;fa-lightbulb-o&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039;||Name des Icons, das als Hintergrund verwendet werden soll||&#039;fa-circle&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039;||Farbe des Widgets, wenn das Device eingeschaltet ist||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039;||Farbe des Widgets, wenn das Device ausgeschaltet ist||#505050||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039;||Hintergrundfarbe des Widgets, wenn das Device eingeschaltet ist||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039;||Hintergrundfarbe des Widgets, wenn das Device ausgeschaltet ist||#505050||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Die Sperre greift, wenn das Reading den Wert &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; hat. Hiervon abweichend ist auch eine Definition mittels data-lock-on und data-lock-off möglich.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-on&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aktiviert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock-off&#039;&#039;&#039;||Wert des Readings, bei dem die Sperre (vgl. data-lock) aufgehoben wird||||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===An/Aus===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;controlbutton&amp;quot;&lt;br /&gt;
	 data-device=&amp;quot;BadWandlicht&amp;quot;&lt;br /&gt;
	 data-icon=&amp;quot;fa-shower&amp;quot;&lt;br /&gt;
	 class=&amp;quot;fullsize&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Controlcenter===&lt;br /&gt;
Dieses Beispiel zeigt den kompletten Code für die Kombination aus Controlbutton, Controller und Switch, um ein iOS-ähnliches Controlcenter zu erstellen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FTUI controlbutton controller.png|200px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;!--&lt;br /&gt;
     /* FHEM tablet ui */&lt;br /&gt;
     /*&lt;br /&gt;
     * UI builder framework for FHEM&lt;br /&gt;
     *&lt;br /&gt;
     * Version: 2.6.*&lt;br /&gt;
     * URL: https://github.com/knowthelist/fhem-tablet-ui&lt;br /&gt;
     *&lt;br /&gt;
     * Copyright (c) 2015-2017 Mario Stephan &amp;lt;mstephan@shared-files.de&amp;gt;&lt;br /&gt;
     * Under MIT License (http://www.opensource.org/licenses/mit-license.php)&lt;br /&gt;
     */&lt;br /&gt;
    --&amp;gt;&lt;br /&gt;
    &amp;lt;link rel=&amp;quot;icon&amp;quot; href=&amp;quot;favicon.ico&amp;quot; type=&amp;quot;image/x-icon&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;mobile-web-app-capable&amp;quot; content=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;apple-mobile-web-app-capable&amp;quot; content=&amp;quot;yes&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;gridster_base_width&amp;quot; content=&amp;quot;70&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;gridster_base_height&amp;quot; content=&amp;quot;70&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;meta name=&amp;quot;gridster_margin&amp;quot; content=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;script src=&amp;quot;js/fhem-tablet-ui.js&amp;quot; defer&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;title&amp;gt;FTUI-Control&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;body style=&amp;quot;background-image:url(bgimage-tablet.jpg)&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;gridster bg-transparent&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;!-- ROW 1-2 Left --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;2&amp;quot; data-sizex=&amp;quot;2&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-45&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-45 center&amp;quot; data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-color=&amp;quot;white&amp;quot; data-size=&amp;quot;130&amp;quot; data-on-background-color=&amp;quot;blue&amp;quot; data-icon=&amp;quot;fa-wifi&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-45 center&amp;quot; data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy2&amp;quot; data-color=&amp;quot;white&amp;quot; data-size=&amp;quot;130&amp;quot; data-on-background-color=&amp;quot;green&amp;quot; data-icon=&amp;quot;fa-lock&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-45&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-45 center&amp;quot; data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-color=&amp;quot;white&amp;quot; data-size=&amp;quot;130&amp;quot; data-on-background-color=&amp;quot;blue&amp;quot; data-icon=&amp;quot;fa-bluetooth-b&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-45 center&amp;quot; data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy3&amp;quot; data-color=&amp;quot;white&amp;quot; data-size=&amp;quot;130&amp;quot; data-on-background-color=&amp;quot;blue&amp;quot; data-icon=&amp;quot;fa-podcast&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-5&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;!-- ROW 1-2 Right --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;3&amp;quot; data-sizey=&amp;quot;2&amp;quot; data-sizex=&amp;quot;2&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-10&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-20&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;bold center &amp;quot; data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;MPD1&amp;quot; data-get=&amp;quot;Artist&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-20&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;center&amp;quot; data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;MPD1&amp;quot; data-get=&amp;quot;Title&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-50&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col center&amp;quot; data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;MPD1&amp;quot; data-icon=&amp;quot;fa-step-backward&amp;quot; data-background-icon=&amp;quot;-&amp;quot; data-set-on=&amp;quot;previous&amp;quot; data-off-color=&amp;quot;#000&amp;quot; data-on-color=&amp;quot;white&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col center&amp;quot; data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;MPD1&amp;quot; data-states=&#039;[&amp;quot;play&amp;quot;,&amp;quot;pause&amp;quot;,&amp;quot;stop&amp;quot;]&#039; data-set-states=&#039;[&amp;quot;pause&amp;quot;,&amp;quot;play&amp;quot;,&amp;quot;play&amp;quot;]&#039; data-background-icon=&amp;quot;none&amp;quot; data-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#ddd&amp;quot;,&amp;quot;#ddd&amp;quot;]&#039; data-icons=&#039;[&amp;quot;fa-pause&amp;quot;,&amp;quot;fa-play&amp;quot;,&amp;quot;fa-play&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col center&amp;quot; data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;MPD1&amp;quot; data-icon=&amp;quot;fa-step-forward&amp;quot; data-background-icon=&amp;quot;-&amp;quot; data-set-on=&amp;quot;next&amp;quot; data-off-color=&amp;quot;#000&amp;quot; data-on-color=&amp;quot;white&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;!-- ROW 3--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;3&amp;quot; data-col=&amp;quot;3&amp;quot; data-sizey=&amp;quot;2&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-100&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controller&amp;quot; data-device=&amp;quot;EsstischLampe&amp;quot; data-background-color=&amp;quot;transparent&amp;quot; data-get=&amp;quot;state&amp;quot; data-set=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;3&amp;quot; data-col=&amp;quot;4&amp;quot; data-sizey=&amp;quot;2&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row-100&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controller&amp;quot; data-device=&amp;quot;AvReceiver&amp;quot; data-get=&amp;quot;volume&amp;quot; data-background-color=&amp;quot;transparent&amp;quot; data-set=&amp;quot;volume&amp;quot; data-icon=&amp;quot;fa-volume-up&amp;quot; data-max=&amp;quot;60&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;3&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;SchrankLicht_Sw&amp;quot; data-icon=&amp;quot;fa-book&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;3&amp;quot; data-col=&amp;quot;2&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;KuechenArbeitsLicht&amp;quot; data-icon=&amp;quot;fa-beer&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;4&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;2&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-30 center fa fa-2x fa-sign-in&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                    &amp;lt;div class=&amp;quot;col-70 center&amp;quot; data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AvReceiver&amp;quot; data-get=&amp;quot;input&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;!-- ROW 5 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;5&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;BadWandlicht&amp;quot; data-icon=&amp;quot;fa-shower&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;5&amp;quot; data-col=&amp;quot;2&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;SchlafzimmerLicht&amp;quot; data-icon=&amp;quot;fa-bed&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;5&amp;quot; data-col=&amp;quot;3&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;WohnenDeckenLicht&amp;quot; data-icon=&amp;quot;fa-tv&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
            &amp;lt;li data-row=&amp;quot;5&amp;quot; data-col=&amp;quot;4&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; class=&amp;quot;bg-gray-trans round&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div class=&amp;quot;fullsize&amp;quot; data-type=&amp;quot;controlbutton&amp;quot; data-device=&amp;quot;GartenLicht&amp;quot; data-icon=&amp;quot;fa-envira&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
            &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Controlbutton]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FHEM_Tablet_UI&amp;diff=37110</id>
		<title>FHEM Tablet UI</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FHEM_Tablet_UI&amp;diff=37110"/>
		<updated>2022-01-15T09:40:13Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Wording: Plural von &amp;quot;Status&amp;quot; ist nicht &amp;quot;Stati&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Oberfläche für FHEM&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=34233&lt;br /&gt;
|ModForumArea=TabletUI&lt;br /&gt;
|ModTechName=n.a.&lt;br /&gt;
|ModOwner=setstate ({{Link2FU|7023|Forum}})&lt;br /&gt;
}}&lt;br /&gt;
[[FHEM Tablet UI]] (FTUI) ist ein leichtgewichtiges aber funktionsreiches Frontend-Framework zum Steuern und Überwachen von in FHEM integrierten Geräten. Es basiert auf HTML/CSS/JavaScript und stellt somit keine zusätzlichen Anforderungen an den FHEM-Server.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe zahlreicher Widgets, die sehr leicht mit HTML Code konfiguriert werden können, ist es möglich, innerhalb kurzer Zeit ein den eigenen Wünschen entsprechendes User-Interface aufzubauen.&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb ist nur eine FHEM-Installation mit [[HTTPSRV|HTTPSRV-Modul]] sowie ein gängiger Webbrowser notwendig.&lt;br /&gt;
&lt;br /&gt;
Mit wenigen Anpassungen ist es auch möglich, das UI auf anderen Webservern (Apache, u.a.) zu betreiben. Somit können FHEM und FHEM Tablet UI auch auf getrennten Systemen ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
[[File:tablet_ui.png|thumb|500px|center|Beispiel für ein mit [[FHEM Tablet UI]] erstelltes User-Interface]]&lt;br /&gt;
&lt;br /&gt;
{{Todo|Design-Möglichkeiten erklären, Navigationsmethoden ausformulieren}} &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die Installation von FHEM Tablet UI erzeugt keinen großen Aufwand und besteht im Großen und Ganzen aus drei Schritten:&lt;br /&gt;
*Dateien aus dem GitHub-Repository herunterladen&lt;br /&gt;
*FHEM konfigurieren ([[HTTPSRV]]-Device erstellen, [[FHEMWEB]]-Attribut longpoll einstellen)&lt;br /&gt;
*Eine Beispieldatei anlegen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Diese Anleitung geht davon aus, dass FHEM unter Debian nach der Anleitung [https://debian.fhem.de Stable build using apt] installiert wurde.&lt;br /&gt;
Ist dies nicht der Fall, muss der Pfad &#039;&#039;&#039;/opt/fhem&#039;&#039;&#039; dementsprechend angepasst werden.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst müssen alle Dateien von FHEM Tablet UI in das FHEM-Verzeichnis &#039;&#039;&#039;/opt/fhem/www&#039;&#039;&#039; kopiert werden. Das geht mit folgendem &#039;&#039;&#039;update&#039;&#039;&#039;-Befehl über die FHEM-Befehlszeile.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_01.png|thumb|none|Schritt 1: Dateien kopieren]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend ist ein neues [[HTTPSRV]]-Device in FHEM anzulegen, welches auf den Ordner mit den gerade heruntergeladenen Dateien verweist.&lt;br /&gt;
:&amp;lt;code&amp;gt;define TABLETUI HTTPSRV ftui/ ./www/tablet/ Tablet-UI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_02.png|thumb|none|Schritt 2: HTTPSRV-Device anlegen]]&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Dieser Schritt kann ausgelassen werden, wenn die Funktionalitäten von [[FHEMWEB]] ausreichend sind. Dann muss FTUI aber in weiterer Folge unter der URL &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http(s)://&amp;lt;fhem-server&amp;gt;:8083/fhem/tablet/index.html&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; aufgerufen werden und es wird kein Link auf FTUI in der FHEM GUI erstellt. Vorteil ist aber, dass das FHEMWEB-Caching verwendet werden kann. Siehe dieser {{Link2Forum|Topic=86362|Message=788258}}.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Damit FHEM Tablet UI mit FHEM kommunizieren kann, ist noch die &#039;&#039;&#039;longpoll&#039;&#039;&#039;-Einstellung im [[FHEMWEB]] Device festzulegen.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;attr WEB longpoll websocket&amp;lt;/code&amp;gt;&lt;br /&gt;
:bzw. bei Problemen mit &#039;&#039;websocket&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr WEB longpoll 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_03.png|thumb|none|Schritt 3: longpoll einstellen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Weil FTUI noch nichts anzuzeigen hat, wird die Datei &#039;&#039;&#039;/opt/fhem/www/tablet/index-example.html&#039;&#039;&#039; nach &#039;&#039;&#039;/opt/fhem/www/tablet/index.html&#039;&#039;&#039; kopiert.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cp -a /opt/fhem/www/tablet/index-example.html /opt/fhem/www/tablet/index.html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_04.png|thumb|none|Schritt 4: index.html erstellen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Abschließend muss FHEM noch &#039;&#039;&#039;neu gestartet&#039;&#039;&#039; werden (&#039;&#039;shutdown restart&#039;&#039;) da das Attribut &#039;&#039;&#039;longpoll&#039;&#039;&#039; geändert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Somit ist FHEM Tablet UI bereit zur Verwendung und kann durch Aufruf der URL &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://&amp;lt;fhem-server&amp;gt;:8083/fhem/ftui/&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; oder den Link im FHEM-Menü geöffnet werden&lt;br /&gt;
&lt;br /&gt;
== Update ==&lt;br /&gt;
Ein Update von FTUI kann ebenfalls über die FHEM-Kommandozeile erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Prüfen der Änderungen seit dem letzten Download/Update durch Eingabe von:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update check https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Update der geänderten Dateien durch Eingabe von:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update all https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine weitere Option ist das Hinzufügen des FTUI-Git-Repositories zum allgemeinem Update-Vorgang von FHEM. Dabei wird dann bei einem FHEM-Update auch gleich FHEM Tablet UI aktualisiert, bzw. die Änderungen angezeigt.&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update add https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beachte: Das Ergebnis des o.g. Befehls wird in FHEM/controls.txt eingetragen, siehe auch [[Update#update_add]]&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
===DOCTYPE===&lt;br /&gt;
In allen HTML-Dateien, die im Browser geladen werden und das typische HTML-Gerüst besitzen (also alle Hauptseiten, jedoch keine Template-Dateien), sollte eine &#039;&#039;Document Type Declaration&#039;&#039; (DTDT) eingefügt werden. Mit ihr wird festgelegt, welche &#039;&#039;Document Type Definition&#039;&#039; hier verwendet wird (das kommt aus der Metasprache XML), konkret also, in welcher Version der nachfolgende HTML-Code vom Browser interpretiert werden soll. Lässt man die DTDT weg, oder definiert sie auf verschiedenen Seiten unterschiedlich, kann ein und der selbe HTML-Code zu unterschiedlichen Darstellungen führen. Die DTDT erfolgt immer auf der ersten Zeile, noch vor dem &amp;lt;code&amp;gt;&amp;lt;html&amp;gt;&amp;lt;/code&amp;gt;-Tag. Nachfolgend wird HTML5 verwendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;...&amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;...&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===META-Parameter===&lt;br /&gt;
Das Tablet UI lässt sich über die META-Parameter konfigurieren. Diese Parameter sind in jeder &#039;&#039;&#039;.html&#039;&#039;&#039; Datei (z.B. index.html) im Abschnitt &#039;&#039;&#039;&amp;lt;head&amp;gt;&#039;&#039;&#039; einzutragen. Ausgenommen davon sind Dateien, die als Template, Pagebutton-Zielseiten oder ähnliches eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
Die Parameter sind immer nach diesem Schema aufgebaut:&lt;br /&gt;
 &amp;lt;meta name=&amp;quot;[Parameter-Name]&amp;quot; content=&amp;quot;[Parameter-Wert]&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verbindung zu FHEM===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter-Name!!Standard-Wert!!Mögliche Werte!!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|web_device||WEB||String||FHEM-Device, welches für das Polling verwendet wird&lt;br /&gt;
|-&lt;br /&gt;
|longpoll||1||0, 1||&lt;br /&gt;
&#039;&#039;&#039;0&#039;&#039;&#039;: Longpoll deaktiviert; alle 30s ein Shortpoll (Neuladen der gesamten Statusänderungen)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1&#039;&#039;&#039;: Longpoll aktiv; geänderte Stati werden sofort aktualisiert, zusätzlich werden alle 15min die gesamten Statusänderungen geladen.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_type||websocket||websocket, ajax, 0||&lt;br /&gt;
&#039;&#039;&#039;websocket&#039;&#039;&#039;: Für die Aktualisierung der Daten wird das Websocket-Protokoll verwendet. Werden vom Browser keine Websockets unterstützt, gibt es einen automatischen Fallback auf Ajax.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ajax&#039;&#039;&#039;: Ajax wird für die Aktualisierung verwendet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;0&#039;&#039;&#039;: Longpoll deaktiviert, Shortpoll wird verwendet.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_filter||.*||RegEx||Event-Filter. Kann verwendet werden, wenn z.B. Devices, die in FTUI angezeigt werden, in einem eigenen FHEM-Room sind.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_maxage||240||Integer||Kommen in diesem Zeitraum (Sekunden) keine Longpoll-Events bei FTUI an, wird die Verbindung als &amp;quot;disconnected&amp;quot; angesehen und ein neuer Verbindungsversuch wird gestartet.&lt;br /&gt;
|-&lt;br /&gt;
|shortpoll_interval||900||Integer||Zeitraum in Sekunden, nach dem ein vollständiger Refresh stattfindet&lt;br /&gt;
|-&lt;br /&gt;
|shortpoll_only_interval||30||Integer||Zeitraum in Sekunden, nach dem ein vollständiger Refresh stattfindet, sollte Longpoll deaktiviert sein&lt;br /&gt;
|-&lt;br /&gt;
|fhemweb_url||/fhem/||Integer||URL zu FHEM. Wird benötigt wenn FTUI auf einem anderen als dem FHEM Server läuft oder nicht im Standard-Pfad installiert ist. &lt;br /&gt;
Hinweis: Wenn FHEM auf einem anderem Server/Domain läuft muss man das &amp;quot;CORS&amp;quot; Attribut im FHEMWEB Modul (s.o.) auf 1 setzen, sonst bekommt man Cross Origin Fehler. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Funktionalität===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter-Name!!Standard-Wert!!Mögliche Werte!!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|debug||0||0 - 5||Log-Level&lt;br /&gt;
|-&lt;br /&gt;
|toast||5||Integer||Anzahl an gleichzeitig angezeigten Toast-Nachrichten. Um keine anzuzeigen, ist der Wert auf 0 zu setzen.&lt;br /&gt;
|-&lt;br /&gt;
|toast_position||bottom-left||||Position im Browserfenster, wo die Toast-Nachrichten angezeigt werden.&lt;br /&gt;
|-&lt;br /&gt;
|lang||de||de||Sprache der Oberfläche (für z.B. Datums-/Zeitfunktionen)&lt;br /&gt;
|-&lt;br /&gt;
|username||||String||Benutzername für eine Basic-Authentifierung *&lt;br /&gt;
|-&lt;br /&gt;
|password||||String||Passwort für eine Basic-Authentifizierung *&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; Derzeit wird die Basic-Authentifizierung in Kombination mit WebSockets nicht unterstützt. Die Verwendung von &#039;&#039;&#039;longpoll=1&#039;&#039;&#039; (ajax) ist daher notwendig.&lt;br /&gt;
&lt;br /&gt;
===Toast-Nachrichten===&lt;br /&gt;
[[Datei:Ftui_toast.png|thumb|Toast-Nachrichten]]&lt;br /&gt;
Tablet-UI liefert Informationen darüber, was im Moment gerade passiert. Das geschieht über Toast-Nachrichten, die in der Standardeinstellung unten links im Browser auftauchen.&lt;br /&gt;
&lt;br /&gt;
Wird beispielsweise ein Gerät eingeschaltet, so erscheint eine kleine Nachricht mit dem abgesetzten Befehl. Auch Fehlermeldungen und Statusinformationen werden angezeigt. Ob überhaupt und was konkret angezeigt wird, richtet sich nach dem eingestellten Debug-Level (siehe oben). Beim Debug-Level 5 werden alle Nachrichten angezeigt, bei 0 keine.&lt;br /&gt;
&lt;br /&gt;
Die Position der Toast-Nachrichten kann über den Meta-Tag &amp;lt;code&amp;gt;meta name=&#039;toast_position&#039;&amp;lt;/code&amp;gt; festgelegt werden. Für oben-mittig müsste folgender Code eingefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;meta name=&#039;toast_position&#039; content=&#039;top-center&#039;&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Möglich sind folgende Positionen:&lt;br /&gt;
* &amp;lt;code&amp;gt;top-left&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-right&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-left&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-right&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-center&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-center&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mid-center&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die maximale Anzahl an Nachrichten, die gleichzeitig angezeigt werden können, lässt sich mit &amp;lt;code&amp;gt;meta name=&#039;toast&#039;&amp;lt;/code&amp;gt; Sind maximal 2 Nachrichten gewünscht, muss folgender Meta-Tag gesetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;meta name=&#039;toast&#039; content=&#039;2&#039;&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Navigationsmethoden==&lt;br /&gt;
{{Todo|Dieser Abschnitt dient derzeit lediglich als Sammlung von Stichpunkten und muss vollständig überarbeitet werden.}} &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unterschied zwischen Pagetab und Pagebutton:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pagetab:&#039;&#039;&#039; Ganze Seite austauschen -&amp;gt; Menü muss auf jede Seite&lt;br /&gt;
[[FTUI_Widget_Pagetab]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pagebutton:&#039;&#039;&#039; Teil der Seite austauschen -&amp;gt; Menü nur in erster Seite&lt;br /&gt;
[[FTUI_Widget_Pagebutton]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pagelink:&#039;&#039;&#039; damit kann man beliebige Widgets kapseln und vorhandene Pagebutton-Seiten ansteuern &lt;br /&gt;
[[FTUI Widget Link]]&lt;br /&gt;
&lt;br /&gt;
==Gestaltung==&lt;br /&gt;
===Layout-Optionen===&lt;br /&gt;
* [[FTUI Layout Gridster|Gridster]]&lt;br /&gt;
* [[FTUI Layout Flex|Flex]]&lt;br /&gt;
* [[FTUI Layout Sheet|Tabelle]]&lt;br /&gt;
* [[FTUI Layout Row|Reihen]]&lt;br /&gt;
&lt;br /&gt;
=== Farben ===&lt;br /&gt;
Es besteht die Möglichkeit, die Farbwerte in hexadezimaler Form, als RGB-Wert oder mit dem Farbnamen anzugeben. Zum Beispiel: &lt;br /&gt;
&lt;br /&gt;
*HEX: #ADD8E6&lt;br /&gt;
*RBG: rgb(173, 216, 230)&lt;br /&gt;
*Namen: lightblue&lt;br /&gt;
&lt;br /&gt;
Knallige Farben wie &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;#ff0000&amp;lt;/span&amp;gt;&#039;&#039;&#039; für Rot oder &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #00ff00;&amp;quot;&amp;gt;#00ff00&amp;lt;/span&amp;gt;&#039;&#039;&#039; für Grün sollten vermieden werden.&lt;br /&gt;
Es ist besser unterhalb von #D0 (208) für die Grundfarben zu bleiben.&lt;br /&gt;
&lt;br /&gt;
Empfohlene Farben sind z.B.:&lt;br /&gt;
&lt;br /&gt;
*Orange: &amp;lt;span style=&amp;quot;color: #aa6900;&amp;quot;&amp;gt;#aa6900&amp;lt;/span&amp;gt;&lt;br /&gt;
*Rot: &amp;lt;span style=&amp;quot;color: #ad3333;&amp;quot;&amp;gt;#ad3333&amp;lt;/span&amp;gt;&lt;br /&gt;
*Grün: &amp;lt;span style=&amp;quot;color: #32a054;&amp;quot;&amp;gt;#32a054&amp;lt;/span&amp;gt;&lt;br /&gt;
*Blau: &amp;lt;span style=&amp;quot;color: #6699FF;&amp;quot;&amp;gt;#6699FF&amp;lt;/span&amp;gt;&lt;br /&gt;
*Grau: &amp;lt;span style=&amp;quot;color: #8C8C8C;&amp;quot;&amp;gt;#8C8C8C&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfreich bei der Suche nach den Farbwerten ist zum Beispiel der Color-Picker auf dieser Seite: http://www.colorpicker.com. Für die Suche nach Farben, die einen guten Kontrast bilden, diese Webseite: http://vanisoft.pl/~lopuszanski/public/colors/&lt;br /&gt;
&lt;br /&gt;
Im Ordner &#039;&#039;css&#039;&#039; der FTUI Installation finden sich einige vorbereitete Farbschemata. Diese können mit einem zusätzlichen Eintrag im &amp;lt;nowiki&amp;gt;&amp;lt;head&amp;gt;&amp;lt;/nowiki&amp;gt;-Bereich der FTUI-Seite(n) aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Hier am Beispiel eines blauen Farbschemas:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
   [...]&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/fhem/tablet/css/fhem-blue-ui.css&amp;quot; /&amp;gt;&lt;br /&gt;
   [...]&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Schema-Dateien ändern alle Widgets. &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Theme_default.png|default&lt;br /&gt;
File:Theme_blue.png|fhem-blue-ui.css&lt;br /&gt;
File:Theme_green.png|fhem-green-ui.css&lt;br /&gt;
File:Theme_mobile.png|fhem-mobile-ui.css&lt;br /&gt;
File:Theme_darkblue.png|fhem-darkblue-ui.css&lt;br /&gt;
File:Theme_darkgreen.png|fhem-darkgreen-ui.css&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einzelne Widgets können durch Hinzufügen der jeweiligen [[#CSS-Klassen|CSS-Klasse]] geändert werden.&lt;br /&gt;
&lt;br /&gt;
===CSS-Styles===&lt;br /&gt;
Das Layout und das Aussehen des UI kann durch diverse vorgegebene CSS-Klassen beeinflusst werden. Die verfügbaren Klassen sind im Abschnitt [[#CSS-Klassen|CSS-Klassen]] aufgeführt.&lt;br /&gt;
&lt;br /&gt;
Soll das Aussehen des UI durch eigene CSS-Klassen oder durch Überschreiben der vorhandenen verändert werden, kann eine eigene CSS-Datei erstellt werden, die dann bei einem eventuellen Update von FTUI nicht überschrieben wird. Diese Datei muss den Dateinamen &#039;&#039;&#039;fhem-tablet-ui-user.css&#039;&#039;&#039; haben und im Ordner &#039;&#039;&#039;/fhem/tablet/css&#039;&#039;&#039; abgelegt werden. Sie wird dann beim Aufruf von FTUI automatisch mitgeladen.&lt;br /&gt;
&lt;br /&gt;
=== CSS-Klassen ===&lt;br /&gt;
Nicht alle Widgets unterstützen alle hier angegebenen Klassen. Welche genau unterstützt werden, kann auf der jeweiligen Widget-Seite nachgelesen werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot; |sheet/row/cell-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|sheet}}{{FTUI Klasse|row}}{{FTUI Klasse|cell}}{{FTUI Klasse|cell-1-x}}{{FTUI Klasse|cell-x}}{{FTUI Klasse|left-align}}{{FTUI Klasse|right-align}}{{FTUI Klasse|bottom-align}}{{FTUI Klasse|top-align}}{{FTUI Klasse|center-align}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot; |row/col-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|col}}{{FTUI Klasse|col-1-x}}{{FTUI Klasse|col-x}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot; |hbox/vbox-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|vbox}}{{FTUI Klasse|hbox}}{{FTUI Klasse|card}}{{FTUI Klasse|phone-width}}{{FTUI Klasse|full-height}}{{FTUI Klasse|full-width}}{{FTUI Klasse|grow-0}}{{FTUI Klasse|grow-1}}{{FTUI Klasse|grow-2}}{{FTUI Klasse|grow-x}}{{FTUI Klasse|items-top}}{{FTUI Klasse|items-center}}{{FTUI Klasse|items-bottom}}{{FTUI Klasse|items-space-between}}{{FTUI Klasse|items-space-around}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot; |Generelle Klassen für die Positionierung&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|inline}}{{FTUI Klasse|newline}}{{FTUI Klasse|top-space}}{{FTUI Klasse|top-space-2x}}{{FTUI Klasse|top-space-3x}}{{FTUI Klasse|left-space}}{{FTUI Klasse|left-space-2x}}{{FTUI Klasse|left-space-3x}}{{FTUI Klasse|right-space}}{{FTUI Klasse|right-space-2x}}{{FTUI Klasse|right-space-3x}}{{FTUI Klasse|top-narrow}}{{FTUI Klasse|top-narrow-2x}}{{FTUI Klasse|top-narrow-10}}{{FTUI Klasse|left-narrow}}{{FTUI Klasse|left-narrow-2x}}{{FTUI Klasse|left-narrow-3x}}{{FTUI Klasse|right-narrow}}{{FTUI Klasse|right-narrow-2x}}{{FTUI Klasse|right-narrow-3x}}{{FTUI Klasse|centered}}{{FTUI Klasse|wider}}{{FTUI Klasse|narrow}}{{FTUI Klasse|fullsize}}{{FTUI Klasse|compressed}}{{FTUI Klasse|height-narrow}}{{FTUI Klasse|w1x}}{{FTUI Klasse|w2x}}{{FTUI Klasse|w3x}}{{FTUI Klasse|maxw40}}{{FTUI Klasse|doublebox-v}}{{FTUI Klasse|doublebox-h}}{{FTUI Klasse|triplebox-v}}{{FTUI Klasse|right}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot; |Vordergrundfarben&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|red}}{{FTUI Klasse|green}}{{FTUI Klasse|blue}}{{FTUI Klasse|lightblue}}{{FTUI Klasse|orange}}{{FTUI Klasse|gray}}{{FTUI Klasse|lightgray}}{{FTUI Klasse|white}}{{FTUI Klasse|black}}{{FTUI Klasse|mint}}{{FTUI Klasse|yellow}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot; |Hintergrundfarben&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|bg-red}}{{FTUI Klasse|bg-green}}{{FTUI Klasse|bg-blue}}{{FTUI Klasse|bg-lightblue}}{{FTUI Klasse|bg-orange}}{{FTUI Klasse|bg-gray}}{{FTUI Klasse|bg-lightgray}}{{FTUI Klasse|bg-white}}{{FTUI Klasse|bg-black}}{{FTUI Klasse|bg-mint}}{{FTUI Klasse|bg-yellow}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot; |Rahmen&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|verticalLine}}{{FTUI Klasse|border-black}}{{FTUI Klasse|border-white}}{{FTUI Klasse|border-orange}}{{FTUI Klasse|border-red}}{{FTUI Klasse|border-green}}{{FTUI Klasse|border-mint}}{{FTUI Klasse|border-lightblue}}{{FTUI Klasse|border-blue}}{{FTUI Klasse|border-gray}}{{FTUI Klasse|border-yellow}}{{FTUI Klasse|border-lightgray}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot; |Größen&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|mini}}{{FTUI Klasse|tiny}}{{FTUI Klasse|small}}{{FTUI Klasse|normal}}{{FTUI Klasse|large}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|tall}}{{FTUI Klasse|great}}{{FTUI Klasse|grande}}{{FTUI Klasse|gigantic}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot; |Schriftstil&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|thin}}{{FTUI Klasse|bold}}{{FTUI Klasse|darker}}{{FTUI Klasse|truncate}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot; |Sonstiges&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|blank}}{{FTUI Klasse|transparent}}{{FTUI Klasse|half-transparent}}{{FTUI Klasse|blurry}}{{FTUI Klasse|shake}}{{FTUI Klasse|fail-shake}}{{FTUI Klasse|marquee}}{{FTUI Klasse|icon round}}{{FTUI Klasse|icon square}}{{FTUI Klasse|readonly}}{{FTUI Klasse|blink}}{{FTUI Klasse|rotate-90}}{{FTUI Klasse|horizontal}}{{FTUI Klasse|circleborder}}{{FTUI Klasse|autohide}}{{FTUI Klasse|notransmit}}{{FTUI Klasse|tap}}{{FTUI Klasse|FS20}}{{FTUI Klasse|value}}{{FTUI Klasse|novalue}}{{FTUI Klasse|timestamp}}{{FTUI Klasse|percent}}{{FTUI Klasse|nocache}}{{FTUI Klasse|fade}}{{FTUI Klasse|rotate}}{{FTUI Klasse|nolabels}}{{FTUI Klasse|default}}{{FTUI Klasse|prefetch}}{{FTUI Klasse|circulate}}{{FTUI Klasse|valueonly}}{{FTUI Klasse|positiononly}}{{FTUI Klasse|lineIndicator}}{{FTUI Klasse|barIndicator}}{{FTUI Klasse|roundIndicator}}{{FTUI Klasse|dim-tick}}{{FTUI Klasse|dim-front}}{{FTUI Klasse|dim-back}}{{FTUI Klasse|hue-tick}}{{FTUI Klasse|hue-front}}{{FTUI Klasse|hue-back}}{{FTUI Klasse|warn}}{{FTUI Klasse|activate}}{{FTUI Klasse|labelright}}{{FTUI Klasse|interlock}}{{FTUI Klasse|keepopen}}{{FTUI Klasse|noshade}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Überlagerung von Text und Bild ===&lt;br /&gt;
[[Datei:FTUI_Text_auf_Bild.png||thumb|right]]&lt;br /&gt;
Texte können auf Bildern positioniert werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;4&amp;quot; data-sizey=&amp;quot;4&amp;quot; data-sizex=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;display&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;image&amp;quot; data-url=&amp;quot;https://picsum.photos/200/125/?random&amp;quot; data-size=&amp;quot;100%&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-center bigger&amp;quot; data-type=&amp;quot;label&amp;quot;&amp;gt;Text1&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-topright bigger right-space top-space&amp;quot; data-type=&amp;quot;label&amp;quot;&amp;gt;Text2&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;ontop bigger&amp;quot; style=&amp;quot;left: 120px; top: 50px&amp;quot;&amp;gt;Text3&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Verfügung stehen folgende Grundpositionen:&lt;br /&gt;
* &amp;lt;code&amp;gt;display-topleft&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-topcenter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-topright&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-centerleft&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-left&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-centerright&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-right&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-bottomleft&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-bottomcenter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-bottomright&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Feinjustage ist möglich über&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;right-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;left-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;right-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;left-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;right-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;left-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:FTUI_Beispiel_Positionierung.png|200px|thumb|right]]&lt;br /&gt;
Verallgemeinert lassen sich auf diese Weise &#039;&#039;&#039;Objekte frei im Elternelement positionieren&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;display&amp;quot; data-type=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-topcenter top-space big&amp;quot;&amp;gt;Fenster&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-center fa fa-4x ftui-window&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-bottomleft bottom-space left-space&amp;quot; data-type=&amp;quot;label&amp;quot;&amp;gt;Text&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Icons ===&lt;br /&gt;
FTUI bringt einige Icons-&amp;quot;Schriftarten&amp;quot; mit, die für die Darstellung genützt werden können. Diese werden automatisch beim Start des UI eingebunden, sobald ein entsprechendes Icon-Präfix im Code der Seite vorkommt.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Icon-Schriftarten sind:&lt;br /&gt;
* Eingebaute Icons &#039;&#039;ftui-window&#039;&#039; und &#039;&#039;ftui-door&#039;&#039;. Präfix &#039;&#039;&#039;ftui-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;ftui-door&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [http://fontawesome.io/icons/ Font-Awesome]: Mehr als 500 Icons zur Auswahl. Präfix &#039;&#039;&#039;fa-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;fa-volume-up&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://material.io/icons/ Material Icons]: Mehr als 900 Icons zur Auswahl. Präfix &#039;&#039;&#039;mi-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;mi-local_gas_station&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* FHEM und OpenAutomation Icons: Präfix &#039;&#039;&#039;fs-&#039;&#039;&#039; und &#039;&#039;&#039;oa-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;oa-secur_locked&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://erikflowers.github.io/weather-icons/ Weather-Icons]: Präfix &#039;&#039;&#039;wi &#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;wi wi-day-rain-mix&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch Bilder Icons (bspw. png) über CSS verwendet werden. Bspw:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
  &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        .logo-fhem {&lt;br /&gt;
            background: url(https://wiki.fhem.de/fhemlogo.png) no-repeat;&lt;br /&gt;
            width: 120px;&lt;br /&gt;
            height: 132px;&lt;br /&gt;
            background-size: contain;&lt;br /&gt;
        }&lt;br /&gt;
  &amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-icon=&amp;quot;logo-fhem&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Widgets ==&lt;br /&gt;
===Allgemeine Attribute===&lt;br /&gt;
Jedes Widget kann über verschiedene Attribute konfiguriert werden. Folgende Attribute gelten für alle Widgets:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+allgemeine Attribute&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;right&amp;quot; |data-type&lt;br /&gt;
|Widget-Typ&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;right&amp;quot; |data-device&lt;br /&gt;
|FHEM-Name des Gerätes (mit dem Befehl &#039;list&#039; bekommt man im FHEM die kpl. Liste)&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|CSS-Klassen für Aussehen und Formatierung des Widgets&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Daten Empfangen&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|Reading Name&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;right&amp;quot; |data-get-on&lt;br /&gt;
|Wert für den Status on&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;right&amp;quot; |data-get-off&lt;br /&gt;
|Wert für den Status off&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Daten Senden&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;right&amp;quot; |data-set&lt;br /&gt;
|Reading Name&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;right&amp;quot; |data-set-on&lt;br /&gt;
|Wert für den Status on&lt;br /&gt;
|-&lt;br /&gt;
! align=&amp;quot;right&amp;quot; |data-set-off&lt;br /&gt;
|Wert für den Status off&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Widget-spezifische Attribute können auf der jeweiligen Widget-Seite nachgelesen werden.&lt;br /&gt;
&lt;br /&gt;
=== Integrierte Widgets ===&lt;br /&gt;
Folgende Widgets sind direkt in FHEM Tablet UI integriert und können &amp;quot;out of the box&amp;quot; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* [[FTUI Widget Button|button]]: Variante der push und switch Widgets, die entweder einen URL ansteuern oder einen FHEM-Befehl absetzen kann&lt;br /&gt;
* [[FTUI Widget Checkbox|checkbox]]: Umschalter zwischen zwei definierten Zuständen&lt;br /&gt;
* [[FTUI Widget Circlemenu|circlemenu]]: Mehrere Widgets hinter einem Widget verborgen, trotz des &#039;circle&#039; im Namen kann das Menue jetzt auch horizontal oder vertikal ausgeklappt werden &lt;br /&gt;
* [[FTUI Widget Clock|clock]]: Stellt eine einfache Uhr zur Verfügung&lt;br /&gt;
* [[FTUI Widget Colorwheel|colorwheel]]: Farbpalette zur Auswahl von Farben&lt;br /&gt;
* [[FTUI Widget Controlbutton|controlbutton]]: iOS-ähnlicher Button zum Schalten zwischen zwei Zuständen (z.B. on / off)&lt;br /&gt;
* [[FTUI Widget Controller|controller]]: iOS-ähnlicher vertikaler Schieberegler zum Einstellen eines Wertes&lt;br /&gt;
* [[FTUI Widget Datetimepicker|datetimepicker]]: Erstellt eine Auswahl für Datum/Uhrzeit&lt;br /&gt;
* [[FTUI Widget Departure|departure]]: Abfahrtszeiten öffentlicher Verkehrsmittel&lt;br /&gt;
* [[FTUI Widget Dimmer|dimmer]]: Ein-/Aus-Button mit integriertem Schieberegler für z.B. einen Dim-Wert&lt;br /&gt;
* [[FTUI Widget Eventmonitor|eventmonitor]]:&lt;br /&gt;
* [[FTUI Widget Homestatus|homestatus]]: Auswahl für vier oder fünf definierte Zustände eines Objects (z.B.: FHEM Residents)&lt;br /&gt;
* [[FTUI Widget Html|html]]:&lt;br /&gt;
* [[FTUI Widget Iframe|iframe]]: Widget zum Einbinden externer Inhalte in einem Iframe&lt;br /&gt;
* [[FTUI Widget Image|image]]: Zeigt ein Bild, dessen URL fest vorgegeben oder aus einem Device-Reading gelesen werden kann&lt;br /&gt;
* [[FTUI Widget Input|input]]: Erstellen eines Texteingabefeldes&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/joinedlabel joinedlabel]: verbindet mehrere Readings zu einem Feld&lt;br /&gt;
* [[FTUI Widget Klimatrend|klimatrend]]: wandelt Daten aus dem statistics-Modul in einen Pfeil um, der den aktuellen Trend anzeigt&lt;br /&gt;
* [[FTUI Widget Knob|knob]]: Erstellt einen Statusbalken auf einer Kreisbahn&lt;br /&gt;
* [[FTUI Widget Label|label]]: Reading als Text anzeigen&lt;br /&gt;
* [[FTUI Widget Level|level]]: Vertikale oder horizontale Leiste zur Anzeige von Werten zwischen einem Minimal- und einem Maximalwert&lt;br /&gt;
* [[FTUI Widget Link|link]]: Erstellt einen Link oder Button zum Aufrufen von URLs oder Senden von Befehlen an FHEM&lt;br /&gt;
* [[FTUI Widget Medialist|medialist]]:&lt;br /&gt;
* [[FTUI Widget Multistatebutton|multistatebutton]]: Variante des push-Widgets, welches den set-Befehl abhängig vom gelesenen Status ändert&lt;br /&gt;
* [[FTUI Widget Notify|notify]]: Blendet ein Hinweisfenster im Browser ein&lt;br /&gt;
* [[FTUI Widget Pagebutton|pagebutton]]: Button, mit dem auf andere Seiten gesprungen werden kann. Eignet sich gut für eine Navigation&lt;br /&gt;
* [[FTUI Widget Pagetab|pagetab]]: Tauscht den Inhalt einer Seite durch den einer anderen. Eignet sich gut für ein Navigationsmenü&lt;br /&gt;
* [[FTUI Widget Playstream|playstream]]: Abspielen eines Webradio-Streams per Button&lt;br /&gt;
* [[FTUI Widget Popup|popup]]: Öffnet ein Popup nach einem Klick auf ein Widget oder HTML-Element &lt;br /&gt;
* [[FTUI Widget Progress|progress]]: Zeigt einen Prozentwert in Form einer runden Fortschrittsleiste&lt;br /&gt;
* [[FTUI_Widget_Push|push]]: Button, mit dem ein Befehl an FHEM gesendet werden kann&lt;br /&gt;
* [[FTUI Widget Range|range]]: Erstellt vertikale Balken, die einen Wertebereich in unterschiedlichen Farben darstellen&lt;br /&gt;
* [[FTUI Widget Readingsgroup|readingsgroup]]: Zeigt eine Readingsgroup an, wie sie in FHEM definiert wurde&lt;br /&gt;
* [[FTUI Widget Rotor|rotor]]: Animiertes Umschalten von zwei oder mehr Widgets an einer Position&lt;br /&gt;
* [[FTUI Widget Scale|scale]]: Vertikale oder horizontale Leiste zur Anzeige von Werten zwischen einem Minimal- und einem Maximalwert&lt;br /&gt;
* [[FTUI_Widget_Select|select]]: Combobox, die eine Liste an Werten zur Auswahl anzeigt&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/settimer settimer]: Zum Anzeigen und Einstellen einer Uhrzeit&lt;br /&gt;
* [[FTUI Widget Simplechart|simplechart]]: Einfaches XY-Diagramm zur Anzeige eines Wertes, der direkt aus einem FHEM-Logfile gelesen wird&lt;br /&gt;
* [[FTUI Widget Slideout|slideout]]:&lt;br /&gt;
* [[FTUI Widget Slider|slider]]: Vertikaler Schieberegler zum Einstellen eines Wertes &lt;br /&gt;
* [[FTUI Widget Spinner|spinner]]: Element, um Werte durch Drücken auf Plus-/Minus- oder Höher-/Tiefer-Icons zu ändern&lt;br /&gt;
* [[FTUI Widget Swiper|swiper]]: Bietet die Möglichkeit, durch Wischen zwischen verschiedenen Seiten zu wechseln&lt;br /&gt;
* [[FTUI Widget Switch|switch]]: Button, um zwischen zwei Zuständen zu schalten (z.B. on / off)&lt;br /&gt;
* [[FTUI Widget Symbol|symbol]]: Status eines Devices als Symbol darstellen (z.B. Fenster offen)&lt;br /&gt;
* [[FTUI Widget Theme|theme]]: Kontextspezifisches Design&lt;br /&gt;
* [[FTUI Widget Thermostat|thermostat]]: Anzeige für Heizungsthermostate, mit der die gewünschte Temperatur eingestellt werden kann&lt;br /&gt;
* [[FTUI Widget Volume|volume]]: Einstellscheibe zur Änderung eines einzelnen Wertes&lt;br /&gt;
* [[FTUI Widget Weather|weather]]: Wettersymbol anzeigen&lt;br /&gt;
* [[FTUI Widget WindDirection|wind_direction]]: Anzeige der Windrichtung auf einer Windrose&lt;br /&gt;
&lt;br /&gt;
===3rd Party Widgets===&lt;br /&gt;
Für diese Widgets kann nicht sichergestellt werden, dass sie mit der jeweils aktuellen Version von FTUI funktionieren.&lt;br /&gt;
* [[FTUI Widget Agenda|agenda]]: Zeigt Kalendereinträge in einer Listenform an&lt;br /&gt;
* [[FTUI_Widget_Analogclock|analogclock]]: Analoguhr&lt;br /&gt;
* [[FTUI Widget Calview|calview]]: Zeigt Einträge aus einem [[CALVIEW]]-Device an&lt;br /&gt;
* [[FTUI Widget Chart|chart]]: Diagramm mit ähnlichen Möglichkeiten wie die FHEM-Plots&lt;br /&gt;
* [[FTUI Widget Classchanger|classchanger]]: Ändert seine CSS-Klassen je nach Status eines Devices&lt;br /&gt;
* [[FTUI Widget Clicksound|clicksound]]: Mit dem Widget &amp;quot;clicksound&amp;quot; können Sounds an Click-Events von Elementen gebunden werden.&lt;br /&gt;
* [[FTUI Widget Dwdweblink|dwdweblink]]: Grafische Anzeige DWD-Wetter-Weblink&lt;br /&gt;
* [[FTUI Widget Filelog|filelog]]: Teile aus einem FHEM Logfile anzeigen&lt;br /&gt;
* [[FTUI Widget Fullcalview|fullcalview]]:&lt;br /&gt;
* [[FTUI Widget Gds|gds]]:&lt;br /&gt;
* [[FTUI Widget Maps|maps]]: Kartendarstellung mit Google Maps API&lt;br /&gt;
* [[FTUI Widget Highchart|highchart]]:&lt;br /&gt;
* [[FTUI Widget Highchart3d|highchart3d]]:&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/itunes_artwork itunes_artwork]: itunes_artwork durchsucht die iTunes-Datenbank anhand eines Arrays von beliebigen Suchworten nach einem Cover-Artwork und zeigt dieses an. &lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/javascript javascript]: Ermöglicht die Ausführung beliebigen Javascript-Codes aus einem Reading.&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/kodinowplaying kodinowplaying]: zeigt Informationen zu grade in KODI gespielten Medien in Form eines Labels an.&lt;br /&gt;
* [[FTUI Widget Loading|loading]]:&lt;br /&gt;
* [[FTUI Widget Meteogram|meteogram]]:&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/mpdnowplaying mpdnowplaying]: Zeigt Titelinformationen eines per MPD-Modul angebundenen Music Player Daemon an.&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,79283.msg712855.html#msg712855 pinpad]: Pinpad für z.B. eine Alarmanlage&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,76643.msg685472.html#msg685472 postme]: Liste des PostMe-Devices anzeigen&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/reload reload]: auslösen eine Pagereloads&lt;br /&gt;
* [[FTUI Widget Screensaver|screensaver]]:&lt;br /&gt;
* [[FTUI Widget SMAPortalSPG|smaportalspg]]: Anzeige von SMAPortal-Daten im FHEM Tablet UI&lt;br /&gt;
* [[FTUI Widget für SSCam Streaming Devices (SSCamSTRM)|sscamstrm]]: Integration von SSCam Streaming-Devices (Synology Surveillance Station Kameras) im FHEM Tablet UI&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,73497.0.html scrolllabel]: Texte in Laufschrift darstellen&lt;br /&gt;
* [[FTUI Widget Svgplot|svgplot]]: Unveränderte Übernahme eine bestehenden SVG-Plots&lt;br /&gt;
* [https://forum.fhem.de/index.php?topic=82883.msg750237#msg750237 todoist]: einfaches widget für todoist&lt;br /&gt;
* [[FTUI Widget Tts|tts]]: Sprachausgabe eines Textes aus einem Reading auf dem Endgerät.&lt;br /&gt;
* [[FTUI Widget UWZ|uwz]]: Anzeige der Warnungen der Unwetterzentrale&lt;br /&gt;
* [[FTUI Widget Wakeup|wakeup]]:&lt;br /&gt;
* [https://github.com/svenson08/ftui-weekdaytimer-widget wdtimer]: Visualisierung des [[WeekdayTimer]] Modul&lt;br /&gt;
* [[FTUI Widget Weekprofile|weekprofile]]: Visualisierung des [[weekprofile]] Moduls&lt;br /&gt;
* [[FTUI Widget Weatherdetail|weatherdetail]]: Detaillierte Wettervorhersage über 4 Tage (Nutzt das Proplanta Modul)&lt;br /&gt;
* [[FTUI Widget Video|videodetail]]: Video Widget für die FTUI&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele===&lt;br /&gt;
Durch die Verbindung von Widgets mit dem FHEM-Umfeld entstehen Lösungen für typische Anwendungen.&lt;br /&gt;
* [[FTUI_Beispiel_Datetimepicker_für_Timer|Datetimepicker für Timer]]: Oberfläche für Timereinstellungen&lt;br /&gt;
* [[FTUI_Beispiel_Mondphase|Mondphase]]: Visuelle Darstellung der Mondphase&lt;br /&gt;
* [[FTUI_Beispiel_Webradio|Webradio]]&lt;br /&gt;
* [[FTUI Beispiel Zeitschaltung|Verschiedene Zeitschaltungen]]&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
Kommt ein bestimmtes &amp;quot;Code-Fragment&amp;quot; auf mehreren Seiten oder öfter pro Seite vor, bietet FTUI die Option, Templates zu erstellen. Diese werden einmal gebaut und können dann mit dem Attribut &#039;&#039;&#039;data-template&#039;&#039;&#039; nach Belieben in eine Seite eingefügt werden. Dabei besteht auch die Möglichkeit, Variablen zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Die Variablennamen sollten möglichst eindeutig und unverwechselbar gewählt werden, da bei der Verwendung von Templates im Prinzip Suchen &amp;amp; Ersetzen angewendet wird. Verwendet man beispielsweise die Variablen &#039;&#039;&#039;dev:Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;dev_temp:temperatue&#039;&#039;&#039;, so kann es passieren, dass die Ergebnisse im erzeugten Code dann &#039;&#039;&#039;Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;Thermostat_Kueche_temp&#039;&#039;&#039; lauten, statt wie gewünscht &#039;&#039;&#039;Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;temperature&#039;&#039;&#039;. Um dies zu vermeiden, sollten die Variablen besser &#039;&#039;&#039;device:Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;temp:temperature&#039;&#039;&#039; lauten.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden ein paar Beispiele, wie Templates verwendet werden können.&lt;br /&gt;
&lt;br /&gt;
===Einzelnes Widget===&lt;br /&gt;
Soll ein Widget an mehreren Stellen in exakt der selben Ausführung eingebunden werden, kann diese Widget in einer eigenen Datei erstellt und diese dann auf den Zielseiten automatisch mitgeladen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
Die Template-Seite soll in diesem Beispiel &#039;&#039;template_symbol.html&#039;&#039; genannt werden. Diese wird daher zuerst im FTUI-Verzeichnis erstellt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;dummy1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
Die oben erstellte Template-Seite kann nun in jeder gewünschten Seite eingebunden werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; highlight=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;gridster&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;div data-template=&amp;quot;template_symbol.html&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gridster-Element===&lt;br /&gt;
Natürlich kann auch ein ganzes Gridster-Element - in diesem Fall ein Menü - als Template eingebunden werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot; data-template=&amp;quot;menu.html&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Widget-Gruppen ===&lt;br /&gt;
Die Template-Datei des [[#Einzelnes Widget|ersten Beispiels]] kann natürlich auch mehrere Widgets auf einmal enthalten.&lt;br /&gt;
&lt;br /&gt;
=== Verwendung von Variablen ===&lt;br /&gt;
==== Einfaches Beispiel ====&lt;br /&gt;
Oft wird ein und dasselbe Widget für verschiedenen Devices verwendet. Um nicht für jedes Device das Widget neu kopieren zu müssen (bzw. bei Änderungen alle Seiten ausbessern zu müssen), kann ein Template verwendet werden, dem einfach per Parameter mitgeteilt wird, von welchem Device es gerade die Daten empfangen soll.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird ein Template erzeugt, dass nur die Temperatur verschiedenen Thermostate mittels eines [[FTUI Widget Label|Label-Widgets]] anzeigt.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
Die Template-Seite enthält nur ein einfaches Label-Widget und wird in diesem Beispiel &#039;&#039;template_label.html&#039;&#039; genannt. Um sie für mehrere Devices verwenden zu können, wird im Attribut &#039;&#039;&#039;data-device&#039;&#039;&#039; der Name des eigentlichen Devices durch den Parameter &#039;&#039;&#039;par01&#039;&#039;&#039; ersetzt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; highlight=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;par01&amp;quot;&lt;br /&gt;
     data-get=&amp;quot;measured-temp&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
Auf der Haupt-Seite wird die Template-Seite mit dem Attribut &#039;&#039;&#039;data-template&#039;&#039;&#039; eingebunden und ihr via Attribut &#039;&#039;&#039;data-parameter&#039;&#039;&#039; das jeweils gewünschte Device übergeben.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat1&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat2&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat3&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wetter-Slider mit Template ====&lt;br /&gt;
In diesem Beispiel wird ein [[FTUI Widget Slider|Slider-Widget]] erstellt, welches die verschiedenen Tage eines Wetterberichtes anzeigt. Dabei wird für den Wetterbericht des jeweiligen Tages immer dasselbe Template verwendet um nicht für jeden Tag ein eigenes Widget schreiben zu müssen.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par01&amp;quot; data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;inline&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par02&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;lt;div data-type=&amp;quot;weather&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par02&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
       min:&amp;amp;nbsp;&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par03&amp;quot; data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par04&amp;quot; data-substitution=&amp;quot;toDate().eeee()+&#039;,&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par04&amp;quot; data-substitution=&amp;quot;toDate().ddmm()&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
In der Haupt-Seite wird das Template dann für jede Slider-Seite eingebunden und das Reading für den jeweiligen Tag via Parameter übergeben.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;swiper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc0_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc0_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc0_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc0_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc1_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc1_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc1_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc1_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc2_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc2_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc2_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc2_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc3_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc3_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc3_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc3_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JavaScript-Funktionen ==&lt;br /&gt;
Neben den Widgets können auch einige JavaScript-Funktionen verwendet werden, um Befehle an FHEM zu senden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgende Zeile setzt einen direkten Befehl an FHEM ab (&amp;lt;code&amp;gt;set dummy1 off&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;div onclick=&amp;quot;ftui.setFhemStatus(&#039;set dummy1 off&#039;)&amp;quot;&amp;gt;Dummy1 aus&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Zeile veranlasst FHEM dazu, eine Funktion aus der 99_myUtils.pm auszuführen (&amp;lt;code&amp;gt;myUtils_HeizungUpDown(&amp;quot;WZ.Thermostat_Climate&amp;quot;,&amp;quot;up&amp;quot;)&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;div onclick=&amp;quot;ftui.setFhemStatus(&#039;{myUtils_HeizungUpDown(&amp;amp;quot;WZ.Thermostat_Climate&amp;amp;quot;,&amp;amp;quot;up&amp;amp;quot;)}&#039;)&amp;quot;&amp;gt;+&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel, wie ein Kommando an FHEM gesendet wird und gleichzeitig der Wert eines bereits in FTUI angezeigten Readings verwendet werden kann:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get=&amp;quot;temperature&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div onClick=&amp;quot;ftui.setFhemStatus(&#039;set dummy2 &#039;+ftui.getDeviceParameter(&#039;dummy1&#039;,&#039;temperature&#039;).val);&amp;quot;&amp;gt;Senden&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigene Widgets erstellen ==&lt;br /&gt;
Wie eigenen Widgets für FTUI erstellt werden können, ist auf der Seite [[FTUI eigene Widgets]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine Schritt für Schritt Anleitung für das erste eigene Widget gibts hier [[FTUI eigene Widgets - Beispiel]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Häufig gestellte Fragen zum FHEM Tablet UI sind in der [[FHEM Tablet UI FAQ]] zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/knowthelist/fhem-tablet-ui Projekt auf Github]&lt;br /&gt;
* {{Link2Forum|Topic=34233|LinkText=Forums-Beitrag}}&lt;br /&gt;
* [[FTUI_Snippets|Snippets]]&lt;br /&gt;
* [http://knowthelist.github.io/fhem/tablet/demo_widgets.html Live-Demos]&lt;br /&gt;
* [https://waschto.eu/fhem-und-tabletui-livedemo/ FHEM und TabletUI Live-Demo]&lt;br /&gt;
* {{Link2Forum|Topic=37378|LinkText=User-Demos}}&lt;br /&gt;
* [https://github.com/ovibox/fhem-ftui-user-demos Download der User-Demo-Dateien]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|!]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Homestatus&amp;diff=37109</id>
		<title>FTUI Widget Homestatus</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Homestatus&amp;diff=37109"/>
		<updated>2022-01-15T09:18:31Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Wording; der Plural von Status ist nicht Stati&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Homestatus Widget]] ist ein Widget für [[FHEM Tablet UI]], mit dem vier oder fünf Zustände (z.B.: FHEM Residents) dargestellt werden können.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Homestatus_01.png&lt;br /&gt;
File:FTUI_Widget_Homestatus_02.png&lt;br /&gt;
File:FTUI_Widget_Homestatus_03.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
Für das Homestatus-Widget gelten alle Attribute des [[FTUI Widget Knob|Knob-Widgets]] plus der folgenden.&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, welches den Status enthält||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Name des Readings, welches gesetzt werden soll||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Array mit verschiedenen Zuständen||[&#039;1&#039;,&#039;2&#039;,&#039;3&#039;,&#039;4&#039;]||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-on&#039;&#039;&#039;||Array mit verschiedenen Zuständen, die gesetzt werden sollen||data-get-on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-alias&#039;&#039;&#039;||Array mit Alias-Namen, die im UI angezeigt werden sollen||[&amp;quot;Home&amp;quot;,&amp;quot;Night&amp;quot;,&amp;quot;Away&amp;quot;,&amp;quot;Holiday&amp;quot;]||data-alias=&#039;[&amp;quot;Zuhause&amp;quot;,&amp;quot;Schlafen&amp;quot;,&amp;quot;Ausgeflogen&amp;quot;,&amp;quot;Urlaub&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icons&#039;&#039;&#039;||Array mit Icons, die das data-get-on-Array darstellen sollen||[&amp;quot;fa-home&amp;quot;,&amp;quot;fa-bed&amp;quot;,&amp;quot;fa-car&amp;quot;,&amp;quot;fa-suitcase&amp;quot;]||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-version&#039;&#039;&#039;||Name der Version, die verwendet werden soll (&#039;&#039;residents&#039;&#039;, &#039;&#039;roommate&#039;&#039; oder &#039;&#039;guest&#039;&#039;)||||data-version=&amp;quot;roommate&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|small}}{{FTUI Klasse|readonly}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Die Standardversion des Widgets hat vier Zustände: &#039;1&#039;,&#039;2&#039;,&#039;3&#039;,&#039;4&#039;. Die Aliase dafür sind &#039;&#039;&#039;Home&#039;&#039;&#039;,&#039;&#039;&#039;Night&#039;&#039;&#039;,&#039;&#039;&#039;Away&#039;&#039;&#039;,&#039;&#039;&#039;Holiday&#039;&#039;&#039;&lt;br /&gt;
* Wird &#039;&#039;data-version&#039;&#039; mit den Werten &#039;&#039;&#039;residents&#039;&#039;&#039;, &#039;&#039;&#039;roommate&#039;&#039;&#039; oder &#039;&#039;&#039;guest&#039;&#039;&#039; angegeben, gibt es fünf Zustände: &#039;&#039;home&#039;&#039;, &#039;&#039;asleep&#039;&#039;, &#039;&#039;absent&#039;&#039;, &#039;&#039;gone&#039;&#039; und &#039;&#039;gotosleep&#039;&#039;. Die Aliase dafür sind &#039;&#039;&#039;Home&#039;&#039;&#039;, &#039;&#039;&#039;Night&#039;&#039;&#039;, &#039;&#039;&#039;Away&#039;&#039;&#039;, &#039;&#039;&#039;Holiday&#039;&#039;&#039; und &#039;&#039;&#039;Retire&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Standard mit vier Zuständen===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;homestatus&amp;quot;&lt;br /&gt;
     data-device=&#039;dummy1&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Homestatus_01.png]]&lt;br /&gt;
&lt;br /&gt;
===Version mit fünf Zuständen===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;homestatus&amp;quot;&lt;br /&gt;
     data-device=&#039;dummy1&#039;&lt;br /&gt;
     data-version=&amp;quot;roommate&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Homestatus_02.png]]&lt;br /&gt;
&lt;br /&gt;
===Benutzerdefinierte Optionen===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;homestatus&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;dummy1&amp;quot;&lt;br /&gt;
     data-get-on=&#039;[&amp;quot;train&amp;quot;,&amp;quot;bicycle&amp;quot;,&amp;quot;ship&amp;quot;,&amp;quot;plane&amp;quot;,&amp;quot;subway&amp;quot;]&#039;&lt;br /&gt;
     data-alias=&#039;[&amp;quot;Zug&amp;quot;,&amp;quot;Fahrrad&amp;quot;,&amp;quot;Schiff&amp;quot;,&amp;quot;Flugzeug&amp;quot;,&amp;quot;U-Bahn&amp;quot;]&#039;&lt;br /&gt;
     data-icons=&#039;[&amp;quot;fa-train&amp;quot;,&amp;quot;fa-bicycle&amp;quot;,&amp;quot;fa-ship&amp;quot;,&amp;quot;fa-plane&amp;quot;,&amp;quot;fa-subway&amp;quot;]&#039;&lt;br /&gt;
     data-version=&amp;quot;roommate&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Homestatus_03.png]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Homestatus]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Beispiel_Webradio&amp;diff=36958</id>
		<title>FTUI Beispiel Webradio</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Beispiel_Webradio&amp;diff=36958"/>
		<updated>2022-01-04T22:26:20Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: B5aktuell ist jetzt BR24. Code geändert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In [[FHEM Tablet UI]] entsteht aus [[FTUI Widget Playstream]], [[FTUI Widget Switch]], [[FTUI Widget Select]] und [[FTUI Widget Spinner]] ein Webradio.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery height=&amp;quot;300&amp;quot; widths=&amp;quot;200&amp;quot;&amp;gt;&lt;br /&gt;
File:FTUI_Beispiel_Webradio_01.png&lt;br /&gt;
File:FTUI_Beispiel_Webradio_02.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FHEM-Devices==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
defmod Radiosender dummy&lt;br /&gt;
setstate Radiosender on&lt;br /&gt;
setstate Radiosender link http://radioeins.de/stream&lt;br /&gt;
&lt;br /&gt;
defmod Radio_volume dummy&lt;br /&gt;
setstate Radio_volume 50&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==HTML==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;playstream&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;Radiosender:STATE&amp;quot; &lt;br /&gt;
     data-url=&amp;quot;Radiosender:link&amp;quot; &lt;br /&gt;
     data-volume=&amp;quot;Radio_volume:STATE&amp;quot; &lt;br /&gt;
     class=&amp;quot;hide&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;Radiosender&amp;quot; &lt;br /&gt;
     data-icon=&amp;quot;mi-radio&amp;quot; &lt;br /&gt;
     class=&amp;quot;cell inline&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- mi-Icons im Header aktivieren:     &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;lib/material-icons.min.css&amp;quot; /&amp;gt;     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;cell inline&amp;quot;&lt;br /&gt;
     data-type=&amp;quot;select&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;Radiosender&amp;quot;&lt;br /&gt;
     data-list=&amp;quot;&amp;quot;&lt;br /&gt;
     data-items=&#039;[&amp;quot;http://radioeins.de/stream&amp;quot;,&amp;quot;http://wdr-1live-live.icecast.wdr.de/wdr/1live/live/mp3/128/stream.mp3&amp;quot;,&amp;quot;https://dispatcher.rndfnk.com/br/br24/live/mp3/low&amp;quot;]&#039;&lt;br /&gt;
     data-alias=&#039;[&amp;quot;Radio eins&amp;quot;,&amp;quot;einsLife&amp;quot;,&amp;quot;BR24&amp;quot;]&#039;&lt;br /&gt;
     data-get=&amp;quot;link&amp;quot;&lt;br /&gt;
     data-set=&amp;quot;link&amp;quot;&lt;br /&gt;
     data-cmd=&amp;quot;setreading&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;spinner&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;Radio_volume&amp;quot;&lt;br /&gt;
     data-max=&amp;quot;100&amp;quot;&lt;br /&gt;
     data-step=&amp;quot;5&amp;quot;&lt;br /&gt;
     data-icon-left=&amp;quot;fa-volume-down&amp;quot;&lt;br /&gt;
     data-icon-right=&amp;quot;fa-volume-up&amp;quot;&lt;br /&gt;
     class=&amp;quot;spinner value horizontal centered&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
Lauffähig ab FTUI 2.6.2&lt;br /&gt;
&lt;br /&gt;
1/2022: Das im Screenshot angezeigte B5aktuell heißt jetzt BR24; der im Code enthaltene Link zeigt auf den Stream von BR24.&lt;br /&gt;
&lt;br /&gt;
URL, Ein/Aus und Volume werden hier über eigene Devices verwaltet. Damit stehen die Schnittstellen zur Einbindung in komplexere Umfelder zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
[[FTUI Widget Playstream]]&lt;br /&gt;
&lt;br /&gt;
[[FTUI Widget Switch]]&lt;br /&gt;
&lt;br /&gt;
[[FTUI Widget Select]]&lt;br /&gt;
&lt;br /&gt;
[[FTUI Widget Spinner]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Webradio]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Maps&amp;diff=36734</id>
		<title>FTUI Widget Maps</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Maps&amp;diff=36734"/>
		<updated>2021-12-30T09:31:29Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Klarstellung, welches lib-Verzeichnis gemeint ist (in FHEM gibt es auch mindestens ein weiteres).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Map Widget]] ist ein Widget zur Darstellung von Karten mit Informationen aus FHEM oder auch anderern Quellen (z.B. GEOJSON Files). Das Modul wird aktuell (noch) nicht mit der normalen FTUI Installation verteilt und kann unter [https://forum.fhem.de/index.php/topic,91781.0.html] herunter geladen werden.&lt;br /&gt;
&lt;br /&gt;
Folgende Dinge werden berücksichtigt:&amp;lt;br&amp;gt;&lt;br /&gt;
FHEM Devices, welche eine Koordinate (longitude/latitude) als Reading/Attribut/Internal haben (z. B. Anwesenheiten auf Basis von ROOMMATE/RESIDENT/GUEST, oder das global Device als Standort von FHEM), werden als Punkt mit anpassbarem Aussehen an der entsprechenden Position auf der Karte dargestellt.&amp;lt;br&amp;gt;&lt;br /&gt;
Darüber hinaus ist es möglich, Fahrwege mit Fahrzeiten auf Basis des FHEM TRAFFIC Moduls als Pfade auf die Karte zu legen. Hierbei können die Routen eingefärbt als Linien dargestellt werden und entsprechend per InfoWindow dann Details (wie z.B. die normale Fahrzeit bzw. die Fahrzeit bei aktuellem Verkehr) dazu dargestellt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Existiert ein Reading &amp;quot;polygon&amp;quot; welches eine Liste von space separierten Koordinatenpaaren (X und Y Koordinaten jedes Paares durch &#039;,&#039; getrennt) als Wert enthält (z.B. mit &amp;quot;setreading &amp;lt;device&amp;gt; polygon 10.2488713,49.773172 10.2626042,49.7711765 10.278397,49.7682939 10.2986531,49.7671851&amp;quot; erzeugbar) so wird eine Linie auf der Karte mit den entsprechenden Koordinatenpunkten gezeichnet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die flexibelste Lösung ist die Verwendung von GEOJSON Files (müssen irgendwo per web erreichbar abgelegt werden). Diese Files können verschiedene geographische Objekte enthalten, die dann auf der Karte dargestellt werden. Das Aussehen und Verhalten der im GEOJSON File enthaltenen Objekte kann über den Parameter data-feature_style beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
Die Karte kann zusätzlich eine Darstellung der Verkehrslage als zuschaltbaren Layer enthalten (siehe unten).&lt;br /&gt;
&lt;br /&gt;
In der aktuellen Version (ab Oktober 2020) können auch Verkehrsüberwachungskameras des FHEM Moduls Blitzer (98_Blitzer.pm) dargestellt werden. Dazu muss das attribut data-blitzer auf ein gültiges Blitzer Device zeigen.&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Datei:2018-03-05_11h55_51.png|thumb|none|Beispiel 1 (mit Google)]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Datei:FTUI_Maps_2.png|thumb|none|Beispiel 2 (mit Google)]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Datei:FTUI_Maps_3.png|thumb|none|Beispiel 3 (mit OSM)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
Die Darstellung im Widget basiert entweder auf dem Google Maps API oder auf Leaflet und der Nutzung von OpenStreetMap als Kartenbasis. Wenn Google Maps verwendet wird, muss zunächst ein API Key von Google beschafft werden. Wie man diesen beschafft, kann z.B. unter [https://developers.google.com/maps/api-key-best-practices] oder [[TRAFFIC]] nachgelesen werden. Dieser Key muss dann im HTML File (am Besten im Header) als meta Tag eingetragen werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;GoogleMapsApiKey&amp;quot; content=&amp;quot;&amp;lt;Key&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Wird die Leaflet/OSM Variante verwendet (data-map_type=&amp;quot;OSM&amp;quot;), so ist zunächst kein Schlüssel für die Kartendarstellung notwendig. Will man allerdings eine Route oder die Verkehrslage darstellen, so wird ein Map API Key von TomTom benötigt (bekommt man für private Zwecke auch ohne Hinterlegung einer Kreditkarte). Hinweise wie man den besorgt, siehe unter [https://developer.tomtom.com]. Auch dieser Key muss als meta Tag in das HTML File.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;TomTomApiKey&amp;quot; content=&amp;quot;&amp;lt;Key&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss in diesem Fall auch noch ein Plugin von TomTom herunter geladen und in das lib/ Verzeichnis abgelegt werden. Dazu das zip File von [https://api.tomtom.com/maps-sdk-js/4.36.2/jssdk-4.36.2-distribution.zip] herunter laden und alle darin enthaltenen Dateien unter einem neuen Verzeichnis /opt/fhem/www/tablet/lib/tomtom/ ablegen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-type&#039;&#039;&#039;||Type des Widgets muss auf &amp;quot;maps&amp;quot; gesetzt werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-map_type&#039;&#039;&#039;||Datenquelle für die Kartendarstellung. Es gibt zwei Optionen: data-map_type=&amp;quot;Google&amp;quot; oder data-map_type=&amp;quot;OSM&amp;quot;. Erläuterungen s.o.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Readings dargestellt werden sollen||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-blitzer&#039;&#039;&#039;&lt;br /&gt;
|FHEM Blitzer Device, dessen Verkehrsüberwachungskamera Daten dargestellt werden sollen. Das Attribut createAllReadings muss hierzu im FHEM Blitzer device auf 1 gesetzt werden.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-alias&#039;&#039;&#039;||Legt fest, aus welchem Reading der Name für die Anzeige genommen werden soll||alias||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-latitude&#039;&#039;&#039;||Legt fest, aus welchem Reading die geograpfische Breite genommen werden soll||latitude||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-longitude&#039;&#039;&#039;||Legt fest, aus welchem Reading die geograpfische Länge genommen werden soll||longitude||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-language&#039;&#039;&#039;||Kann &#039;de&#039; oder &#039;en&#039; sein und stellt die Sprache für die Ausgabe in den Info Windows ein||de||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-size&#039;&#039;&#039;||Gibt die Größe des Kartenausschnittes an (als String mit &#039;&amp;lt;Breite&amp;gt;,&amp;lt;Höhe&amp;gt;&#039;), kann auch weggelassen werden, wenn das Device ein Reading GoogleMapsSize besitzt (z. B. TRAFFIC Device), dann wird der Wert aus dem GoogleMapsSize Reading genommen oder, falls das auch nicht vorhanden ist, wird die Größe aus der Ausdehnung der Route(n) ermittelt.||auto||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-center&#039;&#039;&#039;||Gibt das Zentrum der Karte an (als String mit &#039;&amp;lt;Latitude&amp;gt;,&amp;lt;Longitude&amp;gt;&#039;), kann auch weggelassen werden, wenn das Device ein Reading GoogleMapsCenter besitzt (z. B. TRAFFIC Device), dann wird der Wert aus GoogleMapsCenter Reading genommen oder, falls das auch nicht vorhanden ist, wird das Zentrum aus der Ausdehnung der Route(n) ermittelt.||auto||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-zoom&#039;&#039;&#039;||Gibt den Zoomwert der Karte an (als integer Wert, siehe Google Maps API), kann auch weggelassen werden, wenn das Device ein Reading GoogleMapsZoom besitzt (z. B. TRAFFIC Device), dann wird der Wert aus dem GoogleMapsZoom Reading genommen oder, falls das auch nicht vorhanden ist, wird der Zoom Wert aus der Ausdehnung der Route(n) ermittelt.||auto||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-mapgroup&#039;&#039;&#039;||Legt fest, ob jedes Widget in eine eigene Karte zeichnen soll oder ob mehrer Informationen in einer Karte landen. Alle Widgets vom Typ &#039;maps&#039; mit dem gleichen wert für data-mapgroup zeichnen in ein und die selbe Karte||0||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-scrollgroup&#039;&#039;&#039;&lt;br /&gt;
|Legt fest, ob mehrere Kartenfenster gekoppelt werden sollen. Werden verschiedene Fenster mit Karteninhalten definiert (mehrere divs mit unterschiedlichen Werten für data-mapgroup), so werden alle Karten mit dem gleichen data-scrollgroup Wert synchron gezoomt und verschoben.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-travel_mode&#039;&#039;&#039;||Gibt an, wie die Route berechnet werden soll. Es gibt die Möglichkeiten &#039;DRIVING&#039;, &#039;WALKING&#039;, &#039;BICYCLING&#039;, &#039;TRANSIT&#039; (Details siehe TRAFFIC Modul von FHEM oder Google Maps API für den &#039;Directions&#039; Service), kann auch weggelassen werden, wenn es sich um ein TRAFFIC Device handelt, dann wird der Wert aus dem trafficMode Reading genommen.||DRIVING||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-traffic&#039;&#039;&#039;||Gibt an, ob die Verkehrslage auf der Karte dargestellt werden soll||false||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-showdetails&#039;&#039;&#039;||Gibt an ob per Default die Info Windows eingeblendet werden sollen||false||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-stroke&#039;&#039;&#039;||Gibt an, wie die Fahrstrecken oder Symbole dargestellt werden sollen. Besteht aus maximal 6 Werten (Farbe Hinweg, Breite Hinweg, Durchsichtigkeit Hinweg, Farbe Rückweg, Breite Rückweg, Durchsichtigkeit Rückweg), die Farbe wird per #rrggbb angegeben, die Breite in Pixel und die Durchsichtigkeit als Prozentwert zwischen 0% und 100%, siehe auch Details zum Modul TRAFFIC. Die Symbole zur Route werden in der doppelten angegebenen Breite des Pfades dargestellt||#ffffff,7,50,#ffffff,7,50||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Hiermit kann ein Icon angegeben werden, welches statt des standardmäßigen Pfeils verwendet werden soll, um die Position zu markieren. Kann eine URL auf eine icon Datei, die relativ zum Verzeichnis www/images/ liegt sein||||&#039;default/HOME_Status.1.png&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-label&#039;&#039;&#039;||Will man statt eines Icons ein FontAwesome/Openautomation/fhemSVG Font-Icon (z.B. &#039;fa-home&#039;, &#039;oa-weather_winter&#039;, &#039;fs-usb_stick&#039;) verwenden, wird das hiermit angegeben (es kann auch icon und Font-Icon zusammen verwendet werden (z.B. ein Kreis als Icon und darin ein Font-Icon.||||fa-home&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-nightmode&#039;&#039;&#039;||legt fest, ob die Karte im Nachtmodus (dunkel) dargestellt werden soll (geht bisher noch nicht mit OSM)||false||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-style&#039;&#039;&#039;||Möglichkeit zum Setzen eines Styles entsprechend der Map API Options (siehe Dokumentation zu den Map APIs von Google und Leaflet)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-geojson&#039;&#039;&#039;||gibt den Namen eines Files auf dem Server an, in dem Daten zur Darstellung im GEOJSON Format (siehe [www.geojson.org]) abgelegt sind. Die Angabe ist relativ zum Verzeichnis /opt/fhem/ftui/tablet der Standardinstallation.||||&amp;quot;data/firedata.geojson&amp;quot; für das unten genannte Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-feature_style&#039;&#039;&#039;||Legt fest, wie die GEOJSON Daten dargestllt werden bzw. was passiert, wenn man auf einzelne Features klickt bzw. sie mit der Maus überstreicht (Details siehe unten unter &amp;lt;&amp;gt;||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Details zu GEOJSON Files==&lt;br /&gt;
Die Datei muss auf dem Server (FHEM) liegen (also typischerweise im www/tablet Verzeichnis). Ich habe z.B. unter www/tablet ein Unterverzeichnis data erstellt und geben data-geojson=&amp;quot;data/file.geojson&amp;quot; an. In dem geojson file können beliebige Objekte definiert werden, das Format ist unter [www.geojson.org] nachzulesen&lt;br /&gt;
Über den Parameter data-feature_style kann man recht flexibel festlegen, wie die Objekte dargestellt werden sollen. Das Ganze ist ein js Objekt, wird also in &#039;{}&#039; eingeschlossen. Innerhalb des Objektes legen 3 Objekteigenschaften fest, wie die Darstellung aussehen soll.&lt;br /&gt;
&lt;br /&gt;
Die Eigenschaft &amp;quot;popup_properties_click&amp;quot; hat als Wert eine Leerzeichen getrennte Liste von Expressions, welche, falls sie auf Properties der Objekte im geojson File zutreffen, dazu führen, dass beim Klick auf die angezeigten Objekte ein Info Window geöffnet wird, welches die entsprechenden geojson Objekteigenschaften anzeigt.&lt;br /&gt;
&lt;br /&gt;
Die Eigenschaft &amp;quot;popup_properties_move&amp;quot; macht genau das Gleiche, allerdings sorgen die dort angegebenen Expressions dafür dass die dazu passenden geojson Objekte per Popup bei Überfahren mit der Maus und nicht bei Klick angezeigt werden und beim Verlassen mit der Maus dann auch wieder automatisch verschwinden.&lt;br /&gt;
&lt;br /&gt;
Die Eigenschaft &amp;quot;display_styles&amp;quot; legt genau fest, wie die verschiedenen geojson Objekte dargestellt werden sollen. Der Wert dieser Eigenschaft ist wiederum ein Objekt. Als Eigenschaftsname wird ein Verweis auf ein bestimmtes Objekt im geojson File verwendet. Der Verweis kann entweder eine Eigenschaft eines Objekts im geojson File sein oder eine Kombination aus Eigenschaft und Wert (also nicht alle Objekte des gleichen Typs sondern nur die, die eine auch den passenden Wert haben). Dahinter wird dann der zu verwendete Stil als weiteres Objekt angegeben, welches aus einer Menge aus Property:Value pairs besteht, bei dem die Property die Displayeigenschaft (also z.B. Farbe) und der Wert dann den dazugehörigen Wert (also z.B. rot) festlegt. Alles was nicht explizit hier festgelegt wird, wird aus den &amp;quot;globalen&amp;quot; Einstellungen (z.B. data-stroke) übernommen. Die folgende Definition generiert, wenn man das Beispielfile firedata.geojson ({{Link2Forum|Topic=78379|Message=776472|LinkText=Anhang am Foren-Beitrag}}) als GEOJSON abspeichert und dann in data-geojson den Speicherort angibt, die darunter dargestellte Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
data-feature_style=&#039;{&lt;br /&gt;
	&amp;quot;popup_properties_click&amp;quot;:&amp;quot;name network operator fire.*&amp;quot;,&lt;br /&gt;
	&amp;quot;popup_properties_move&amp;quot;:&amp;quot;fire.*\\:diameter&amp;quot;,&lt;br /&gt;
	&amp;quot;display_styles&amp;quot;:{&lt;br /&gt;
		&amp;quot;emergency.fire_hydrant&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;fa-fire-extinguisher&amp;quot;,&amp;quot;strokeColor&amp;quot;:&amp;quot;red&amp;quot;},&lt;br /&gt;
		&amp;quot;public_transport.station&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;fa-train&amp;quot;,&amp;quot;strokeColor&amp;quot;:&amp;quot;black&amp;quot;}}&lt;br /&gt;
}&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:2018-03-05_11h55_51.png|thumb|none|Mit obigem Beispielfile und gezeigtem data-feature_style erstellte Karte]]&lt;br /&gt;
&lt;br /&gt;
Noch etwas zusätzliches: Eine gute Möglichkeit sich geojson Files zu holen (von der auch das Beispiel stammt), ist die webseite [http://overpass-turbo.eu/]. Dort kann man sich für beliebige Gebiete per Wizard eine Abfrage basteln, die dann bestimmte Infos aus Open Street Maps herausfiltert und als geojson exportieren kann.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
=== Verkehrskamera Darstellung aus FHEM Blitzer Devices ===&lt;br /&gt;
Wird &amp;quot;data-blitzer&amp;quot; mit dem Namen eines FHEM Blitzer Devices gesetzt, so werden die im FHEM Device gefundenen Verkehrskameras als Objekte auf der Karte dargestellt (ohne weitere Angabe als rotes Rechteck mit Ausrufezeichen). Voraussetzung hierbei ist, dass beim Blitzer Device in FHEM das Attribut createAllReadings  auf &amp;quot;1&amp;quot; gesetzt wird. Die Darstellung kann genauso wie bei GEOJSON Files über das Attribut data-feature_style eingestellt werden. Hier müssen dann als properties die entsprechenden Readings der Blitzer ohne die vorangestellten Nummern angegeben werden. Im folgenden Beispiel werden die Blitzer in Form eines runden Geschwindigkeits Verkehrsschildes dargestellt, der Wert, der an der jeweiligen Stelle als Maximalgeschwindigkeit gilt, wird in das Verkehrsschild als Zahl eingetragen (das Verkehrsschild Bild muss als Bilddatei im &amp;quot;images&amp;quot; Ordner unter www/ liegen.&lt;br /&gt;
[[Datei:Blitzer2.png|ohne|mini|100x100px|Bild das für die Darstellung verwendet wird (muss unter www/images liegen)]]&lt;br /&gt;
&lt;br /&gt;
Mit folgender Definition:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&lt;br /&gt;
	style=&amp;quot;height:100%; width:100%&amp;quot;&lt;br /&gt;
	data-type=&amp;quot;maps&amp;quot;&lt;br /&gt;
	data-map_type=&amp;quot;OSM&amp;quot;&lt;br /&gt;
	data-mapgroup=&amp;quot;1&amp;quot;&lt;br /&gt;
	data-center=&amp;quot;49,9&amp;quot;&lt;br /&gt;
	data-zoom=&amp;quot;10&amp;quot;&lt;br /&gt;
	data-stroke=&amp;quot;#FF0000,30,80&amp;quot;&lt;br /&gt;
	data-icon=&amp;quot;../images/blitzer2.png&amp;quot;&lt;br /&gt;
	data-blitzer=&amp;quot;blitztest&amp;quot;&lt;br /&gt;
	data-feature_style=&#039;{&lt;br /&gt;
		&amp;quot;popup_properties_click&amp;quot;:&amp;quot;display_name create_date&amp;quot;,&lt;br /&gt;
		&amp;quot;popup_properties_move&amp;quot;:&amp;quot;vmax street&amp;quot;,&lt;br /&gt;
		&amp;quot;display_styles&amp;quot;:{&lt;br /&gt;
			&amp;quot;vmax.10&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;10&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.20&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;20&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.30&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;30&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.40&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;40&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.50&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;50&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.60&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.70&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;70&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.80&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;80&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.90&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;90&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.100&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;100&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.110&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;110&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.120&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.130&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;130&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;}&lt;br /&gt;
		}&lt;br /&gt;
	}&#039;&lt;br /&gt;
&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Entsteht ein Bild ähnlich dem Folgenden:&lt;br /&gt;
[[Datei:2020-10-02.png|links|mini|Beispiel mit Verkehrskameras aus FHEM Blitzer Device]]&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Maps]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Maps&amp;diff=36730</id>
		<title>FTUI Widget Maps</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Maps&amp;diff=36730"/>
		<updated>2021-12-30T09:18:08Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: data-map_type bei Attributen ergänzt. Typo in Quellcode zu Blitzer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Map Widget]] ist ein Widget zur Darstellung von Karten mit Informationen aus FHEM oder auch anderern Quellen (z.B. GEOJSON Files). Das Modul wird aktuell (noch) nicht mit der normalen FTUI Installation verteilt und kann unter [https://forum.fhem.de/index.php/topic,91781.0.html] herunter geladen werden.&lt;br /&gt;
&lt;br /&gt;
Folgende Dinge werden berücksichtigt:&amp;lt;br&amp;gt;&lt;br /&gt;
FHEM Devices, welche eine Koordinate (longitude/latitude) als Reading/Attribut/Internal haben (z. B. Anwesenheiten auf Basis von ROOMMATE/RESIDENT/GUEST, oder das global Device als Standort von FHEM), werden als Punkt mit anpassbarem Aussehen an der entsprechenden Position auf der Karte dargestellt.&amp;lt;br&amp;gt;&lt;br /&gt;
Darüber hinaus ist es möglich, Fahrwege mit Fahrzeiten auf Basis des FHEM TRAFFIC Moduls als Pfade auf die Karte zu legen. Hierbei können die Routen eingefärbt als Linien dargestellt werden und entsprechend per InfoWindow dann Details (wie z.B. die normale Fahrzeit bzw. die Fahrzeit bei aktuellem Verkehr) dazu dargestellt werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Existiert ein Reading &amp;quot;polygon&amp;quot; welches eine Liste von space separierten Koordinatenpaaren (X und Y Koordinaten jedes Paares durch &#039;,&#039; getrennt) als Wert enthält (z.B. mit &amp;quot;setreading &amp;lt;device&amp;gt; polygon 10.2488713,49.773172 10.2626042,49.7711765 10.278397,49.7682939 10.2986531,49.7671851&amp;quot; erzeugbar) so wird eine Linie auf der Karte mit den entsprechenden Koordinatenpunkten gezeichnet.&amp;lt;br&amp;gt;&lt;br /&gt;
Die flexibelste Lösung ist die Verwendung von GEOJSON Files (müssen irgendwo per web erreichbar abgelegt werden). Diese Files können verschiedene geographische Objekte enthalten, die dann auf der Karte dargestellt werden. Das Aussehen und Verhalten der im GEOJSON File enthaltenen Objekte kann über den Parameter data-feature_style beeinflusst werden.&lt;br /&gt;
&lt;br /&gt;
Die Karte kann zusätzlich eine Darstellung der Verkehrslage als zuschaltbaren Layer enthalten (siehe unten).&lt;br /&gt;
&lt;br /&gt;
In der aktuellen Version (ab Oktober 2020) können auch Verkehrsüberwachungskameras des FHEM Moduls Blitzer (98_Blitzer.pm) dargestellt werden. Dazu muss das attribut data-blitzer auf ein gültiges Blitzer Device zeigen.&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Datei:2018-03-05_11h55_51.png|thumb|none|Beispiel 1 (mit Google)]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Datei:FTUI_Maps_2.png|thumb|none|Beispiel 2 (mit Google)]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[Datei:FTUI_Maps_3.png|thumb|none|Beispiel 3 (mit OSM)]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
Die Darstellung im Widget basiert entweder auf dem Google Maps API oder auf Leaflet und der Nutzung von OpenStreetMap als Kartenbasis. Wenn Google Maps verwendet wird, muss zunächst ein API Key von Google beschafft werden. Wie man diesen beschafft, kann z.B. unter [https://developers.google.com/maps/api-key-best-practices] oder [[TRAFFIC]] nachgelesen werden. Dieser Key muss dann im HTML File (am Besten im Header) als meta Tag eingetragen werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;GoogleMapsApiKey&amp;quot; content=&amp;quot;&amp;lt;Key&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Wird die Leaflet/OSM Variante verwendet (data-map_type=&amp;quot;OSM&amp;quot;), so ist zunächst kein Schlüssel für die Kartendarstellung notwendig. Will man allerdings eine Route oder die Verkehrslage darstellen, so wird ein Map API Key von TomTom benötigt (bekommt man für private Zwecke auch ohne Hinterlegung einer Kreditkarte). Hinweise wie man den besorgt, siehe unter [https://developer.tomtom.com]. Auch dieser Key muss als meta Tag in das HTML File.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;quot;TomTomApiKey&amp;quot; content=&amp;quot;&amp;lt;Key&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss in diesem Fall auch noch ein Plugin von TomTom herunter geladen und in das lib/ Verzeichnis abgelegt werden. Dazu das zip File von [https://api.tomtom.com/maps-sdk-js/4.36.2/jssdk-4.36.2-distribution.zip] herunter laden und alle darin enthaltenen Dateien unter einem neuen Verzeichnis lib/tomtom/ ablegen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-type&#039;&#039;&#039;||Type des Widgets muss auf &amp;quot;maps&amp;quot; gesetzt werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-map_type&#039;&#039;&#039;||Datenquelle für die Kartendarstellung. Es gibt zwei Optionen: data-map_type=&amp;quot;Google&amp;quot; oder data-map_type=&amp;quot;OSM&amp;quot;. Erläuterungen s.o.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Readings dargestellt werden sollen||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-blitzer&#039;&#039;&#039;&lt;br /&gt;
|FHEM Blitzer Device, dessen Verkehrsüberwachungskamera Daten dargestellt werden sollen. Das Attribut createAllReadings muss hierzu im FHEM Blitzer device auf 1 gesetzt werden.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-alias&#039;&#039;&#039;||Legt fest, aus welchem Reading der Name für die Anzeige genommen werden soll||alias||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-latitude&#039;&#039;&#039;||Legt fest, aus welchem Reading die geograpfische Breite genommen werden soll||latitude||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-longitude&#039;&#039;&#039;||Legt fest, aus welchem Reading die geograpfische Länge genommen werden soll||longitude||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-language&#039;&#039;&#039;||Kann &#039;de&#039; oder &#039;en&#039; sein und stellt die Sprache für die Ausgabe in den Info Windows ein||de||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-size&#039;&#039;&#039;||Gibt die Größe des Kartenausschnittes an (als String mit &#039;&amp;lt;Breite&amp;gt;,&amp;lt;Höhe&amp;gt;&#039;), kann auch weggelassen werden, wenn das Device ein Reading GoogleMapsSize besitzt (z. B. TRAFFIC Device), dann wird der Wert aus dem GoogleMapsSize Reading genommen oder, falls das auch nicht vorhanden ist, wird die Größe aus der Ausdehnung der Route(n) ermittelt.||auto||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-center&#039;&#039;&#039;||Gibt das Zentrum der Karte an (als String mit &#039;&amp;lt;Latitude&amp;gt;,&amp;lt;Longitude&amp;gt;&#039;), kann auch weggelassen werden, wenn das Device ein Reading GoogleMapsCenter besitzt (z. B. TRAFFIC Device), dann wird der Wert aus GoogleMapsCenter Reading genommen oder, falls das auch nicht vorhanden ist, wird das Zentrum aus der Ausdehnung der Route(n) ermittelt.||auto||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-zoom&#039;&#039;&#039;||Gibt den Zoomwert der Karte an (als integer Wert, siehe Google Maps API), kann auch weggelassen werden, wenn das Device ein Reading GoogleMapsZoom besitzt (z. B. TRAFFIC Device), dann wird der Wert aus dem GoogleMapsZoom Reading genommen oder, falls das auch nicht vorhanden ist, wird der Zoom Wert aus der Ausdehnung der Route(n) ermittelt.||auto||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-mapgroup&#039;&#039;&#039;||Legt fest, ob jedes Widget in eine eigene Karte zeichnen soll oder ob mehrer Informationen in einer Karte landen. Alle Widgets vom Typ &#039;maps&#039; mit dem gleichen wert für data-mapgroup zeichnen in ein und die selbe Karte||0||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-scrollgroup&#039;&#039;&#039;&lt;br /&gt;
|Legt fest, ob mehrere Kartenfenster gekoppelt werden sollen. Werden verschiedene Fenster mit Karteninhalten definiert (mehrere divs mit unterschiedlichen Werten für data-mapgroup), so werden alle Karten mit dem gleichen data-scrollgroup Wert synchron gezoomt und verschoben.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-travel_mode&#039;&#039;&#039;||Gibt an, wie die Route berechnet werden soll. Es gibt die Möglichkeiten &#039;DRIVING&#039;, &#039;WALKING&#039;, &#039;BICYCLING&#039;, &#039;TRANSIT&#039; (Details siehe TRAFFIC Modul von FHEM oder Google Maps API für den &#039;Directions&#039; Service), kann auch weggelassen werden, wenn es sich um ein TRAFFIC Device handelt, dann wird der Wert aus dem trafficMode Reading genommen.||DRIVING||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-traffic&#039;&#039;&#039;||Gibt an, ob die Verkehrslage auf der Karte dargestellt werden soll||false||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-showdetails&#039;&#039;&#039;||Gibt an ob per Default die Info Windows eingeblendet werden sollen||false||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-stroke&#039;&#039;&#039;||Gibt an, wie die Fahrstrecken oder Symbole dargestellt werden sollen. Besteht aus maximal 6 Werten (Farbe Hinweg, Breite Hinweg, Durchsichtigkeit Hinweg, Farbe Rückweg, Breite Rückweg, Durchsichtigkeit Rückweg), die Farbe wird per #rrggbb angegeben, die Breite in Pixel und die Durchsichtigkeit als Prozentwert zwischen 0% und 100%, siehe auch Details zum Modul TRAFFIC. Die Symbole zur Route werden in der doppelten angegebenen Breite des Pfades dargestellt||#ffffff,7,50,#ffffff,7,50||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Hiermit kann ein Icon angegeben werden, welches statt des standardmäßigen Pfeils verwendet werden soll, um die Position zu markieren. Kann eine URL auf eine icon Datei, die relativ zum Verzeichnis www/images/ liegt sein||||&#039;default/HOME_Status.1.png&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-label&#039;&#039;&#039;||Will man statt eines Icons ein FontAwesome/Openautomation/fhemSVG Font-Icon (z.B. &#039;fa-home&#039;, &#039;oa-weather_winter&#039;, &#039;fs-usb_stick&#039;) verwenden, wird das hiermit angegeben (es kann auch icon und Font-Icon zusammen verwendet werden (z.B. ein Kreis als Icon und darin ein Font-Icon.||||fa-home&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-nightmode&#039;&#039;&#039;||legt fest, ob die Karte im Nachtmodus (dunkel) dargestellt werden soll (geht bisher noch nicht mit OSM)||false||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-style&#039;&#039;&#039;||Möglichkeit zum Setzen eines Styles entsprechend der Map API Options (siehe Dokumentation zu den Map APIs von Google und Leaflet)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-geojson&#039;&#039;&#039;||gibt den Namen eines Files auf dem Server an, in dem Daten zur Darstellung im GEOJSON Format (siehe [www.geojson.org]) abgelegt sind. Die Angabe ist relativ zum Verzeichnis /opt/fhem/ftui/tablet der Standardinstallation.||||&amp;quot;data/firedata.geojson&amp;quot; für das unten genannte Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-feature_style&#039;&#039;&#039;||Legt fest, wie die GEOJSON Daten dargestllt werden bzw. was passiert, wenn man auf einzelne Features klickt bzw. sie mit der Maus überstreicht (Details siehe unten unter &amp;lt;&amp;gt;||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Details zu GEOJSON Files==&lt;br /&gt;
Die Datei muss auf dem Server (FHEM) liegen (also typischerweise im www/tablet Verzeichnis). Ich habe z.B. unter www/tablet ein Unterverzeichnis data erstellt und geben data-geojson=&amp;quot;data/file.geojson&amp;quot; an. In dem geojson file können beliebige Objekte definiert werden, das Format ist unter [www.geojson.org] nachzulesen&lt;br /&gt;
Über den Parameter data-feature_style kann man recht flexibel festlegen, wie die Objekte dargestellt werden sollen. Das Ganze ist ein js Objekt, wird also in &#039;{}&#039; eingeschlossen. Innerhalb des Objektes legen 3 Objekteigenschaften fest, wie die Darstellung aussehen soll.&lt;br /&gt;
&lt;br /&gt;
Die Eigenschaft &amp;quot;popup_properties_click&amp;quot; hat als Wert eine Leerzeichen getrennte Liste von Expressions, welche, falls sie auf Properties der Objekte im geojson File zutreffen, dazu führen, dass beim Klick auf die angezeigten Objekte ein Info Window geöffnet wird, welches die entsprechenden geojson Objekteigenschaften anzeigt.&lt;br /&gt;
&lt;br /&gt;
Die Eigenschaft &amp;quot;popup_properties_move&amp;quot; macht genau das Gleiche, allerdings sorgen die dort angegebenen Expressions dafür dass die dazu passenden geojson Objekte per Popup bei Überfahren mit der Maus und nicht bei Klick angezeigt werden und beim Verlassen mit der Maus dann auch wieder automatisch verschwinden.&lt;br /&gt;
&lt;br /&gt;
Die Eigenschaft &amp;quot;display_styles&amp;quot; legt genau fest, wie die verschiedenen geojson Objekte dargestellt werden sollen. Der Wert dieser Eigenschaft ist wiederum ein Objekt. Als Eigenschaftsname wird ein Verweis auf ein bestimmtes Objekt im geojson File verwendet. Der Verweis kann entweder eine Eigenschaft eines Objekts im geojson File sein oder eine Kombination aus Eigenschaft und Wert (also nicht alle Objekte des gleichen Typs sondern nur die, die eine auch den passenden Wert haben). Dahinter wird dann der zu verwendete Stil als weiteres Objekt angegeben, welches aus einer Menge aus Property:Value pairs besteht, bei dem die Property die Displayeigenschaft (also z.B. Farbe) und der Wert dann den dazugehörigen Wert (also z.B. rot) festlegt. Alles was nicht explizit hier festgelegt wird, wird aus den &amp;quot;globalen&amp;quot; Einstellungen (z.B. data-stroke) übernommen. Die folgende Definition generiert, wenn man das Beispielfile firedata.geojson ({{Link2Forum|Topic=78379|Message=776472|LinkText=Anhang am Foren-Beitrag}}) als GEOJSON abspeichert und dann in data-geojson den Speicherort angibt, die darunter dargestellte Karte.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
data-feature_style=&#039;{&lt;br /&gt;
	&amp;quot;popup_properties_click&amp;quot;:&amp;quot;name network operator fire.*&amp;quot;,&lt;br /&gt;
	&amp;quot;popup_properties_move&amp;quot;:&amp;quot;fire.*\\:diameter&amp;quot;,&lt;br /&gt;
	&amp;quot;display_styles&amp;quot;:{&lt;br /&gt;
		&amp;quot;emergency.fire_hydrant&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;fa-fire-extinguisher&amp;quot;,&amp;quot;strokeColor&amp;quot;:&amp;quot;red&amp;quot;},&lt;br /&gt;
		&amp;quot;public_transport.station&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;fa-train&amp;quot;,&amp;quot;strokeColor&amp;quot;:&amp;quot;black&amp;quot;}}&lt;br /&gt;
}&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:2018-03-05_11h55_51.png|thumb|none|Mit obigem Beispielfile und gezeigtem data-feature_style erstellte Karte]]&lt;br /&gt;
&lt;br /&gt;
Noch etwas zusätzliches: Eine gute Möglichkeit sich geojson Files zu holen (von der auch das Beispiel stammt), ist die webseite [http://overpass-turbo.eu/]. Dort kann man sich für beliebige Gebiete per Wizard eine Abfrage basteln, die dann bestimmte Infos aus Open Street Maps herausfiltert und als geojson exportieren kann.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&lt;br /&gt;
=== Verkehrskamera Darstellung aus FHEM Blitzer Devices ===&lt;br /&gt;
Wird &amp;quot;data-blitzer&amp;quot; mit dem Namen eines FHEM Blitzer Devices gesetzt, so werden die im FHEM Device gefundenen Verkehrskameras als Objekte auf der Karte dargestellt (ohne weitere Angabe als rotes Rechteck mit Ausrufezeichen). Voraussetzung hierbei ist, dass beim Blitzer Device in FHEM das Attribut createAllReadings  auf &amp;quot;1&amp;quot; gesetzt wird. Die Darstellung kann genauso wie bei GEOJSON Files über das Attribut data-feature_style eingestellt werden. Hier müssen dann als properties die entsprechenden Readings der Blitzer ohne die vorangestellten Nummern angegeben werden. Im folgenden Beispiel werden die Blitzer in Form eines runden Geschwindigkeits Verkehrsschildes dargestellt, der Wert, der an der jeweiligen Stelle als Maximalgeschwindigkeit gilt, wird in das Verkehrsschild als Zahl eingetragen (das Verkehrsschild Bild muss als Bilddatei im &amp;quot;images&amp;quot; Ordner unter www/ liegen.&lt;br /&gt;
[[Datei:Blitzer2.png|ohne|mini|100x100px|Bild das für die Darstellung verwendet wird (muss unter www/images liegen)]]&lt;br /&gt;
&lt;br /&gt;
Mit folgender Definition:&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&lt;br /&gt;
	style=&amp;quot;height:100%; width:100%&amp;quot;&lt;br /&gt;
	data-type=&amp;quot;maps&amp;quot;&lt;br /&gt;
	data-map_type=&amp;quot;OSM&amp;quot;&lt;br /&gt;
	data-mapgroup=&amp;quot;1&amp;quot;&lt;br /&gt;
	data-center=&amp;quot;49,9&amp;quot;&lt;br /&gt;
	data-zoom=&amp;quot;10&amp;quot;&lt;br /&gt;
	data-stroke=&amp;quot;#FF0000,30,80&amp;quot;&lt;br /&gt;
	data-icon=&amp;quot;../images/blitzer2.png&amp;quot;&lt;br /&gt;
	data-blitzer=&amp;quot;blitztest&amp;quot;&lt;br /&gt;
	data-feature_style=&#039;{&lt;br /&gt;
		&amp;quot;popup_properties_click&amp;quot;:&amp;quot;display_name create_date&amp;quot;,&lt;br /&gt;
		&amp;quot;popup_properties_move&amp;quot;:&amp;quot;vmax street&amp;quot;,&lt;br /&gt;
		&amp;quot;display_styles&amp;quot;:{&lt;br /&gt;
			&amp;quot;vmax.10&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;10&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.20&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;20&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.30&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;30&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.40&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;40&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.50&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;50&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.60&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;60&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.70&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;70&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.80&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;80&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.90&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;90&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.100&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;100&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.110&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;110&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.120&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;120&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;},&lt;br /&gt;
			&amp;quot;vmax.130&amp;quot;:{&amp;quot;label&amp;quot;:&amp;quot;130&amp;quot;,&amp;quot;fontSize&amp;quot;:&amp;quot;15px&amp;quot;}&lt;br /&gt;
		}&lt;br /&gt;
	}&#039;&lt;br /&gt;
&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Entsteht ein Bild ähnlich dem Folgenden:&lt;br /&gt;
[[Datei:2020-10-02.png|links|mini|Beispiel mit Verkehrskameras aus FHEM Blitzer Device]]&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Maps]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=35076</id>
		<title>FTUI Widget Departure</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Departure&amp;diff=35076"/>
		<updated>2021-02-24T21:45:02Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Hinweis zu UTF.8 eingefügt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Widget Departure]] ist ein Widget für [[FHEM Tablet UI]] zur Anzeige der Abfahrtszeiten von Bahn, Bus, Zug und Fähre. Der Entwickler orientierte sich beim Design an den Dresdner Verkehrsbetrieben bzw. am Verkehrsverbund Oberelbe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Departure_01.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||Name des FHEM-Devices||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, welches die Daten bereitstellt. Dieser Name sollte keine Umlaute und das ß enthalten, weil sonst der automatische Refresh beim Wechsel auf die Seite unterbleibt, vgl. &#039;&#039;data-interval&#039;&#039;||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-title&#039;&#039;&#039;||Überschrift, die in der Kopfzeile ausgegeben wird||data-get||data-title=&amp;quot;Schloßallee&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der an FHEM gesendet wird||&#039;get&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon-color&#039;&#039;&#039;||Farbe des Icons||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-text-color&#039;&#039;&#039;||Textfarbe der Verbindungsdaten||&#039;#ddd&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Hintergrundfarbe ||&#039;#C0C0C0&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Icon für die Kopfzeile||(Symbol Haltestelle)||data-icon=&amp;quot;fa-train&amp;quot;, data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-width&#039;&#039;&#039;||Feste Breite (in % or px)||&#039;200px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Feste Höhe (in % or px)||&#039;250px&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-interval&#039;&#039;&#039;||Zeitintervall für den refresh in s, bei &#039;0&#039; kein auto refresh; zusätzlich wird beim Laden der Seite und in Pagebutton beim Wechsel auf die Seite ein refresh ausgelöst||&#039;120&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-refresh&#039;&#039;&#039;||wie data-interval||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DB&#039;&#039;&#039;||Design Bahn AG&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DVB&#039;&#039;&#039;||Design Dresdner Verkehrsbetriebe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;VVO&#039;&#039;&#039;||VVO Design Verkehrsverbund Oberelbe; data-icon sollte leer sein&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;alternate&#039;&#039;&#039;||abwechselnd schattierte Zeilen&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;deptime&#039;&#039;&#039;||angezeigt wird die Abfahrtszeit anstelle der verbleibenden Zeit bis zur Abfahrt&lt;br /&gt;
|}&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_03.png|700px]]&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Provider ändern bisweilen ihre Schnittstellendefinitionen mit Auswirkungen auf den nachfolgend beschriebenen Informationsfluss. In diesem Fall sind Anpassungen vorzunehmen. Das Forum ist eine geeignete Plattform zur Klärung des Sachverhaltes.&lt;br /&gt;
* Probleme mit Sonderzeichen in den Richtungsangaben lassen sich gemäß eines Hinweises im Forum ([https://forum.fhem.de/index.php/topic,48255.msg1135329.html#msg1135329 FTUI-Forum - Departure]) wie folgt lösen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
attr xyz getDecode UTF-8&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Datenquelle==&lt;br /&gt;
Die Daten stammen in FHEM aus einer HTTPMOD-Abfrage, hier dargestellt an einem Beispiel aus Dresden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define VVO HTTPMOD none 0&lt;br /&gt;
attr VVO get02Name Postplatz&lt;br /&gt;
attr VVO get02URL http://widgets.vvo-online.de/abfahrtsmonitor/Abfahrten.do?ort=Dresden&amp;amp;hst=Postplatz&amp;amp;vz=0&amp;amp;lim=10&lt;br /&gt;
attr VVO get02Regex (\[\[.*\]\]).*&lt;br /&gt;
attr VVO timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch die Daten anderer Verkehrsträger können genutzt werden. Entweder greift man hierzu direkt auf die Schnittstelle des Verkehrsträgers zu, was idR eine spezifische RegEx ([[Regulärer_Ausdruck]]) bedingt.&lt;br /&gt;
&lt;br /&gt;
Oder man wählt folgenden allgemeineren Weg, welcher auf den Daten der App &#039;&#039;Öffi&#039;&#039; basiert: Zunächst ist der Provider für die Daten zu ermitteln. Die Liste der verfügbaren Provider erhält man mittels&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/provider&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Die Antwort lautet etwa:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[{&amp;quot;name&amp;quot;:&amp;quot;Bahn&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;BahnProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Gvh&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;GvhProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vgn&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VgnProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Kvv&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;KvvProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vbl&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VblProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Dub&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;DubProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Vms&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;VmsProvider&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Bsvag&amp;quot;,&amp;quot;aClass&amp;quot;:&amp;quot;BsvagProvider&amp;quot;}, [...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Relevant ist die Bezeichnung hinter „name“, z.B. „Ding“. „Ding“ steht für „Donau-Iller-Nahverkehrsverbund“. Weil auch ländliche Gebiete meist in Verkehrsverbünde eingegliedert sind, besteht eine realistische Chance, einen Provider für den eigenen Standort zu finden. In größeren Städten kann oft auch der Provider „Bahn“ genutzt werden. Der Wert „aClass“ ist hier nicht von Belang. &lt;br /&gt;
&lt;br /&gt;
Anschließend ist die StationId für die gewünschte Haltestelle zu ermitteln, in diesem Beispiel die Haltestelle &#039;&#039;Sonnenfeld&#039;&#039;. Hierzu dient folgende Abfrage:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/station/suggest?q=Sonnenfeld&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Als Antwort erhält man die StationId &amp;quot;9001258&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Testweise können damit die aktuellen Abfahrten abgerufen werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einbindung in FHEM erfolgt wie nachfolgend beschrieben:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Departure_Sonnenfeld HTTPMOD none 0&lt;br /&gt;
attr Departure_Sonnenfeld get01Name Sonnenfeld&lt;br /&gt;
attr Departure_Sonnenfeld get01URL https://transport.stefan-biermann.de/publictransportapi/rest/departure/FHEM?from=9001258&amp;amp;provider=Ding&lt;br /&gt;
attr Departure_Sonnenfeld get01Regex (\[\[.*\]\]).*&lt;br /&gt;
attr Departure_Sonnenfeld timeout 30&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es können mehrere Haltestellen in einem Device hinterlegt werden; hierzu einfach die drei Attribute &#039;&#039;get01Name, get01URL&#039;&#039; und &#039;&#039;get01Regex&#039;&#039; duplizieren und durchnummerieren. Dabei müssen natürlich Name und URL angepasst werden.&lt;br /&gt;
&lt;br /&gt;
==HTML==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
data-device=&amp;quot;Departure_Sonnenfeld&amp;quot;&lt;br /&gt;
data-get=&amp;quot;Sonnenfeld&amp;quot;&lt;br /&gt;
data-icon=&amp;quot;fa-bus&amp;quot;&lt;br /&gt;
data-interval=&amp;quot;60&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI_Widget_Departure_02.png|150px]]&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Umschalten zwischen relativer und absoluter Abfahrtszeit===&lt;br /&gt;
Dieses Feature ist im Widget selbst nicht implementiert, lässt sich aber mittels [[FTUI Widget Classchanger]] und [[FTUI Widget Checkbox]] umsetzen. Hierbei wird die gewünschte Ansicht ein- und die andere ausgeblendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
define Nahverkehr_Umschalter_Zeitangabe dummy&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;on&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;classchanger&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot; data-get-on=&amp;quot;off&amp;quot; data-on-class=&amp;quot;hide&amp;quot; data-off-class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;departure&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;...&amp;quot;&lt;br /&gt;
...&lt;br /&gt;
	class=&amp;quot;alternate deptime&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;hbox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;on&amp;quot;, &amp;quot;off&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt in ... Min.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;checkbox&amp;quot; class=&amp;quot;big inline&amp;quot; data-on-background-color=&amp;quot;grey&amp;quot; data-off-background-color=&amp;quot;grey&amp;quot; data-device=&amp;quot;Nahverkehr_Umschalter_Zeitangabe&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline top-space&amp;quot; data-limits-get=&amp;quot;Nahverkehr_Umschalter_Zeitangabe:STATE&amp;quot; data-limits=&#039;[&amp;quot;off&amp;quot;, &amp;quot;on&amp;quot;]&#039; data-colors=&#039;[&amp;quot;#8C8C8C&amp;quot;, &amp;quot;white&amp;quot;]&#039;&amp;gt;Abfahrt um ...&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;200&amp;quot; heights=&amp;quot;250&amp;quot;&amp;gt;&lt;br /&gt;
FTUI Widget departure classchanger 1.png&lt;br /&gt;
FTUI Widget departure classchanger 2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links== &lt;br /&gt;
FHEM Wiki [[Departure]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Departure]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Chart&amp;diff=31662</id>
		<title>FTUI Widget Chart</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Chart&amp;diff=31662"/>
		<updated>2019-11-09T11:09:54Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: data-margin ergänzt (vgl. Forum 8.11.2019)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Chart Widget]] ist ein Widget für [[FHEM Tablet UI]], mit dem sich verschiedenste Diagramme darstellen lassen. Die Aneinanderreihung mehrerer Werte eines Device-Readings zu einem zeitlichen Verlauf wird dabei als Graph bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Es können beliebige Werte dargestellt und entsprechend der Sinnhaftigkeit, oder persönlichem Geschmack, formatiert werden. Farbe und Form der Linien sind je Graph einstellbar, auch wenn mehrere gleichzeitig in einem Diagramm angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
Jedes Diagramm kann zwei Y-Achsen besitzen. Die primäre Y-Achse (primary) wird auf der linken Seite angezeigt, die sekundäre Y-Achse (secondary) auf der rechten Seite. Beide Achsen können unterschiedlich formatiert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Chart_tabletUI.png&lt;br /&gt;
Datei:FTUI Widget Chart Stacked.png&lt;br /&gt;
Datei:FTUI Widget Chart-fc-Proplanta.png&lt;br /&gt;
Datei:Wetterchart2.png&lt;br /&gt;
Datei:PieChart.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:150px&amp;quot;|Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||Name des FHEM-Device, das die Aktualisierung des Charts triggert||||data-device=&amp;quot;WohnzimmerHeizung&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, das das Update des Diagramms triggert||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-logdevice&#039;&#039;&#039;||Name des Log-Device, das dargestellt werden soll, oder ein Array, um mehrere Werte in einem Diagramm darzustellen||||data-logdevice=&amp;quot;FileLog_WohnzimmerHeizung&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-logfile&#039;&#039;&#039;|| Name des Log-Files, aus dem die Daten entnommen werden sollen (oder Array)||&#039;-&#039; = aktuelle Datei||data-logfile=&amp;quot;WohnzimmerHeizung-2015.log&amp;quot;&amp;lt;br&amp;gt;Beachte: Der Wert &amp;quot;CURRENT&amp;quot; ermöglicht die Navigation auch zu älterne Logfiles (Jahreswechsel)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-columnspec&#039;&#039;&#039;||Ermittelt den Wert aus dem Log-File, der angezeigt werden soll (oder Array)||||data-columnspec=&amp;quot;4:meas.*&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-style&#039;&#039;&#039;||Stil, wie die Graph-Linien dargestellt werden sollen (z.B. &#039;SVGplot l0&#039; oder &#039;ftui l0dash&#039;), oder ein Array, wenn mehrere Linien unterschiedlich dargestellt werden sollen (siehe [[#Aussehen_der_Linien|Hinweise]])||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-ptype&#039;&#039;&#039;||Form, wie die Graphen dargestellt werden sollen (z.B. &#039;lines&#039;, &#039;cubic&#039; oder &#039;fa-cog&#039;), oder ein Array (siehe [[#Form_der_Linien|Hinweise]])||&#039;lines&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-uaxis&#039;&#039;&#039;||Name der Achse, die verwendet werden soll (&#039;primary&#039; = links, oder &#039;secondary&#039; = rechts), oder ein Array||&#039;primary&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-legend&#039;&#039;&#039;||Bezeichnung des Graphen (wird in Legende und am Cursor angezeigt), oder ein Array||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-minvalue&#039;&#039;&#039;||Minimaler Wert, der auf der linken Y-Achse (&#039;primary&#039;) angezeigt werden soll. &#039;auto&#039; = automatische Berechnung||&#039;10&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-maxvalue&#039;&#039;&#039;||Maximaler Wert, der auf der linken Y-Achse (&#039;primary&#039;) angezeigt werden soll. &#039;auto&#039; = automatische Berechnung||&#039;30&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-minvalue_sec&#039;&#039;&#039;||Minimaler Wert, der auf der rechten Y-Achse (&#039;secondary&#039;) angezeigt werden soll. &#039;auto&#039; = automatische Berechnung||&#039;auto&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-maxvalue_sec&#039;&#039;&#039;||Maximaler Wert, der auf der rechten Y-Achse (&#039;secondary&#039;) angezeigt werden soll. &#039;auto&#039; = automatische Berechnung||&#039;auto&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-xticks&#039;&#039;&#039;||Abstand zwischen den vertikalen Hilfslinien (bezogen auf die X-Achse) in Minuten. &#039;auto&#039; = automatische Berechnung||&#039;auto&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-yticks&#039;&#039;&#039;||Abstand zwischen den horizontalen Hilfslinien (bezogen auf die linke Y-Achse). Kann auch ein Array mit Werte-Paaren enthalten, um die Linien mit Text zu beschriften.||&#039;auto&#039;||data-yticks=&#039;[[0,&amp;quot;open&amp;quot;],[1,&amp;quot;closed&amp;quot;]]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-yticks_format&#039;&#039;&#039;||Dient zur Formatierung der Ticks der Y-Achse. Die Formatierung geschieht über Platzhalter, Trenner und einen beliebigen durch &#039; &#039; getrennten Text. Als Platzhalter dient ein oder mehrere &#039;#&#039;, als Trenner können &#039;.&#039;, &#039;,&#039; und &#039;:&#039; verwendet werden. Ist ein Trenner enthalten (z.B. &#039;#.##&#039;) dann bedeutet das in dem Beispiel, dass der Ytick mit 2 Nachkommastellen versehen wird und vorne Platz für eine Stelle vor dem Komma vorgehalten wird (führende Nullen werden nicht dargestellt, aber de Platz wird reserviert so dass das ganze rechtsbündig immer passt). Ist kein Trenner vorhanden, dann wird der Ytick auf die Summe der Platzhalter mit einer festen Gesamtbreite gesetzt (#### würde also bedeuten, dass immer 4 Stellen (ohne Trenner) verwendet werden. aus 0.4 würde 0.400 aus 10.437 würde 10.44). Als Trenner kann man z.B. für Zeiten auch einen &#039;:&#039; verwenden und dadurch auch so etwas wie &amp;quot;12:00 Uhr&amp;quot; realisieren (in dem Beispiel wäre data-yticks_format=&amp;quot;##:## Uhr&amp;quot; und kein data-yunit oder data-yticks=&amp;quot;##:##&amp;quot; und data-yunit=&amp;quot;Uhr&amp;quot;).||||data-yticks_format=&amp;quot;#.##&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-yticks_sec&#039;&#039;&#039;||Abstand zwischen den horizontalen Hilfslinien (bezogen auf die rechte Y-Achse). Kann auch ein Array mit Werte-Paaren enthalten, um die Linien mit Text zu beschriften.||&#039;auto&#039;||data-yticks=&#039;[[0,&amp;quot;open&amp;quot;],[1,&amp;quot;closed&amp;quot;]]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-yticks_format_sec&#039;&#039;&#039;||Dient zur Formatierung der Ticks der Y-Achse. Die Formatierung geschieht über Platzhalter, Trenner und einen beliebigen durch &#039; &#039; getrennten Text. Als Platzhalter dient ein oder mehrere &#039;#&#039;, als Trenner können &#039;.&#039;, &#039;,&#039; und &#039;:&#039; verwendet werden. Ist ein Trenner enthalten (z.B. &#039;#.##&#039;) dann bedeutet das in dem Beispiel, dass der Ytick mit 2 Nachkommastellen versehen wird und vorne Platz für eine Stelle vor dem Komma vorgehalten wird (führende Nullen werden nicht dargestellt, aber de Platz wird reserviert so dass das ganze rechtsbündig immer passt). Ist kein Trenner vorhanden, dann wird der Ytick auf die Summe der Platzhalter mit einer festen Gesamtbreite gesetzt (#### würde also bedeuten, dass immer 4 Stellen (ohne Trenner) verwendet werden. aus 0.4 würde 0.400 aus 10.437 würde 10.44). Als Trenner kann man z.B. für Zeiten auch einen &#039;:&#039; verwenden und dadurch auch so etwas wie &amp;quot;12:00 Uhr&amp;quot; realisieren (in dem Beispiel wäre data-yticks_format=&amp;quot;##:## Uhr&amp;quot; und kein data-yunit oder data-yticks=&amp;quot;##:##&amp;quot; und data-yunit=&amp;quot;Uhr&amp;quot;).||||data-yticks_format_sec=&amp;quot;#.##&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-yticks_prio&#039;&#039;&#039;||Legt fest, ob die horizontalen Hilfslinien der linken (primary) oder der rechten (secondary) Y-Achse zugeordnet werden sollen||||data-yticks_prio=&#039;secondary&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-ytype&#039;&#039;&#039;||Legt fest, ob die primäre y Achse logarithmisch sein soll (wert &amp;quot;log&amp;quot;)||||data-ytype=&amp;quot;log&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-ytype_sec&#039;&#039;&#039;||Legt fest, ob die sekundäre y Achse logarithmisch sein soll (wert &amp;quot;log&amp;quot;)||||data-ytype_sec=&amp;quot;log&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-margin&#039;&#039;&#039;|||Abstand zwischen Buttons und Chart (Einheit Pixel). ||&amp;quot;0&amp;quot;|||data-margin=&amp;quot;10&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-y_margin&#039;&#039;&#039;|||Gibt die Möglichkeit, Abstände zwischen den Graphen und dem oberen Rand des Plots zu definieren (Einheit Pixel). Falls der Wert skalar ist, werden oben und unten die gleichen Abstände eingehalten. Falls ein 2D Array angegeben wird, können die Werte unten (erster Wert im Array) und oben (zweiter Wert im Array) getrennt festgelegt werden||&amp;quot;0&amp;quot;|||data-y_margin=&#039;[&amp;quot;10&amp;quot;,&amp;quot;20&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-y_margin_sec&#039;&#039;&#039;|||Gibt die Möglichkeit, Abstände zwischen den Graphen und dem oberen Rand des Plots zu definieren (Einheit Pixel). Falls der Wert skalar ist, werden oben und unten die gleichen Abstände eingehalten. Falls ein 2D Array angegeben wird, können die Werte unten (erster Wert im Array) und oben (zweiter Wert im Array) getrennt festgelegt werden||&amp;quot;0&amp;quot;|||data-y_margin=&#039;[&amp;quot;10&amp;quot;,&amp;quot;20&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-daysago_start&#039;&#039;&#039;||Anzahl der vergangenen Tage, wo das Diagramm beginnen soll. &#039;0&#039; = Beginn heute 0:00 Uhr. (siehe [[#Zeitstrahl_.2F_Start_.26_Ende_auf_der_X-Achse|Hinweise]])||&#039;0&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-daysago_end&#039;&#039;&#039;||Anzahl der vergangenen Tage, wo das Diagramm enden soll. &#039;-1&#039; = Ende heute 24:00 Uhr. (siehe [[#Zeitstrahl_.2F_Start_.26_Ende_auf_der_X-Achse|Hinweise]])||&#039;-1&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-xticks_round&#039;&#039;&#039;||Wenn vorhanden und entweder &#039;h&#039;, &#039;d&#039;, &#039;w&#039;, wird auf Stunde, Tag oder Woche bei den xticks gerundet (also die Tickmarks und die Gridlines bei den entsprechend gerundeten Zeiten gesetzt). Es kann auch &#039;auto&#039; angegeben werden, um eine autmoatische Rundung durchzuführen||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-nofulldays&#039;&#039;&#039;||Aktiviert/deaktiviert die Rundung der X-Achse auf ganze Tage. Binärwert (&#039;true&#039; oder &#039;false&#039;)||&#039;false&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-timeformat&#039;&#039;&#039;||Zeitformat für die Anzeige an der X-Achse (siehe [[#Zeitformat_der_X-Achse|Hinweise]])||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-timeranges&#039;&#039;&#039;||Hierdurch können vordefinierte Zeiträume für die X-Achse festgelegt werden, die dann durch eine pulldown menu (neuer Button oben neben dem &amp;quot;-&amp;quot; Button) direkt ausgewählt werden können. Der Parameter ist ein Array aus Array Einträgen, welche jeweils [&amp;lt;Name&amp;gt;,&amp;lt;daysago_start&amp;gt;,&amp;lt;daysago_end&amp;gt;] enthalten)||&lt;br /&gt;
||data-timeranges=&#039;[&amp;lt;br&amp;gt;&lt;br /&gt;
[&amp;quot;Actual Year&amp;quot;,&amp;quot;0Y&amp;quot;,&amp;quot;-1Y&amp;quot;],&amp;lt;br&amp;gt;&lt;br /&gt;
[&amp;quot;Last Year&amp;quot;,&amp;quot;1Y&amp;quot;,&amp;quot;0Y&amp;quot;],&amp;lt;br&amp;gt;&lt;br /&gt;
[&amp;quot;Actual Month&amp;quot;,&amp;quot;0M&amp;quot;,&amp;quot;-1M&amp;quot;],&amp;lt;br&amp;gt;&lt;br /&gt;
[&amp;quot;Last Month&amp;quot;,&amp;quot;1M&amp;quot;,&amp;quot;0M&amp;quot;],&amp;lt;br&amp;gt;&lt;br /&gt;
[&amp;quot;Actual Week&amp;quot;,&amp;quot;0W&amp;quot;,&amp;quot;-1W&amp;quot;],&amp;lt;br&amp;gt;&lt;br /&gt;
[&amp;quot;Last Week&amp;quot;,&amp;quot;1W&amp;quot;,&amp;quot;0W&amp;quot;],&amp;lt;br&amp;gt;&lt;br /&gt;
[&amp;quot;Today&amp;quot;,&amp;quot;0D&amp;quot;,&amp;quot;-1D&amp;quot;],&amp;lt;br&amp;gt;&lt;br /&gt;
[&amp;quot;Yesterday&amp;quot;,&amp;quot;1D&amp;quot;,&amp;quot;0D&amp;quot;]&amp;lt;br&amp;gt;&lt;br /&gt;
]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-ytext&#039;&#039;&#039;||Text, der neben der linken Y-Achse angezeigt wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-ytext_sec&#039;&#039;&#039;||Text, der neben der rechten Y-Achse angezeigt wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-yunit&#039;&#039;&#039;||Einheit, die an der linken Y-Achse angezeigt wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-yunit_sec&#039;&#039;&#039;||Einheit, die an der rechten Y-Achse angezeigt wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-show_both_axes&#039;&#039;&#039;||Legt fest ob beide Y-Achsen Linien gezeichnet werden sollen||false||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-crosshair&#039;&#039;&#039;||Aktiviert/deaktiviert den Fadenkreuz-Cursor. Binärwert (&#039;true&#039; oder &#039;false&#039;)||&#039;false&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cursorgroup&#039;&#039;&#039;||Zahl zur Gruppierung der Werte am Fadenkreuz-Cursor ([[#Fadenkreuz-Cursor|Hinweise]])||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-scrollgroup&#039;&#039;&#039;||Zahl zur Gruppierung der Graphen beim Bewegen und Zoomen. Alle Linien mit der selben Zahl werden miteinander gekoppelt und bewegen sich gemeinsam.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-showlegend&#039;&#039;&#039;||Aktiviert/deaktiviert die Anzeige der Legene. Binärwert (&#039;true&#039; oder &#039;false&#039;)||&#039;false&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-legendpos&#039;&#039;&#039;||Array von zwei Werten, die die horizontale und vertikale Position der Legende festlegen ([[#Legende|Hinweise]])||&#039;[&amp;quot;right&amp;quot;,&amp;quot;top&amp;quot;]&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-legend_horiz&#039;&#039;&#039;||legt fest, dass die Legendeneinträge horizontal angeordnet sind (anstatt vertikal wie im default Fall)||false||data-legend_horiz=&amp;quot;true&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-width&#039;&#039;&#039;||Breite des Diagramms (in % oder px)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-height&#039;&#039;&#039;||Höhe des Diagramms (in % oder px)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-graphsshown&#039;&#039;&#039;||Aktiviert/deaktiviert die initiale Anzeige von Graphen. Binärwert (&#039;true&#039; oder &#039;false&#039;). Array, wenn mehrere Linien angezeigt werden sollen.||||data-graphsshown=&#039;[true,false,true]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-ddd&#039;&#039;&#039;||Einstellung für die 3D-Drehung ([[#3-dimensionale_Drehung|Hinweise]])||||data-ddd=&#039;[&amp;quot;40&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;0&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-dddspace&#039;&#039;&#039;||Abstand zwischen zwei Graphen, wenn die 3D-Anzeige aktiviert wurde (px)||&#039;15&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-dddwidth&#039;&#039;&#039;||Breite, bzw. Tiefe der Graphen, wenn diese 3-dimensional angezeigt werden (px)||&#039;10&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-title&#039;&#039;&#039;||Titel, der über dem Diagramm angezeigt werden soll. Der Inhalt kann auch dynamisch erzeugt werden ([[#Diagrammtitel|Hinweise]])||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-title_class&#039;&#039;&#039;||Klassenname für die Formatierung des Titels. Die Eigenschaften müssen dann entsprechend in einem CSS File angegeben werden (z.B. in fhem-tablet-ui-user.css)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-prefetch&#039;&#039;&#039;||Legt fest, ob zusätzliche Daten rechts und links des Plots im Hintergrund vom Server geholt werden sollen||false||data-prefetch=&amp;quot;true&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
Einige Parameter (style, maxvalue, minvalue, maxvalue_sec, minvalue_sec) können auch aus Readings dynamisch gesetzt werden wenn &amp;quot;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&amp;quot; als Parameter gesetzt wird. Damit kann man z.B. in FHEM über notify etc. die Linientypen dynamisch anpassen (z.B. wenn der Wert eines Devices in einem bestimmten Bereich liegt, ändert sich die Farbe des Graphen).&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|fullsize}}{{FTUI Klasse|noticks}}{{FTUI Klasse|nobuttons}}{{FTUI Klasse|small}}{{FTUI Klasse|normal}}{{FTUI Klasse|big}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgende Widget-spezifsche Klassen können zusätzlich in einer eigenen CSS-Datei definiert werden:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;chart-background&#039;&#039;&#039;||Hintergrundfarbe des Diagramms&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;buttons&#039;&#039;&#039;||Größe und Farbe der Buttons&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;text.axes&#039;&#039;&#039;||Generelle Schriftart und Farbe der Achsen&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;gridlines&#039;&#039;&#039;||Generelle Farbe und Größe der Gitternetzlinien&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;xaxis&#039;&#039;&#039;||Schriftart, Größe und Farbe der X-Achse&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;yaxis&#039;&#039;&#039;||Schriftart, Größe und Farbe der Y-Achse&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;xticks&#039;&#039;&#039;||Schriftart, Größe und Farbe der X-Achse (Zwischenlinien)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;yticks&#039;&#039;&#039;||Schriftart, Größe und Farbe der Y-Achse (Zwischenlinien)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;crosshair&#039;&#039;&#039;||Schriftart, Größe und Vordergrund/Hintergrundfarbe der Momentanwerte am Fadenkreuzcursor&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;caption&#039;&#039;&#039;||Schriftart, Größe und Farbe der Text-Buttons für Legende und Cursor&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;legend&#039;&#039;&#039;||Schriftart, Größe und Farbe der Legende&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Standardwerte sind in der Datei &amp;lt;code&amp;gt;css/ftui_chart.css&amp;lt;/code&amp;gt; zu finden.&lt;br /&gt;
&lt;br /&gt;
==Datenquellen==&lt;br /&gt;
Beim Chart-Widget können die gleichen Datenquellen genutzt werden, die auch für SVG-Plots verwendet werden können:&lt;br /&gt;
# [[FileLog]]: Verlaufsdaten einer Textdatei entnehmen&lt;br /&gt;
# [[DbLog]]: Verlaufsdaten einer Datenbank entnehmen&lt;br /&gt;
# [[LogProxy]]: Daten dynamisch berechnet&lt;br /&gt;
&lt;br /&gt;
===FileLog===&lt;br /&gt;
Um [[FileLog]] zu nutzen, wird als &#039;&#039;&#039;data-logdevice&#039;&#039;&#039; das FHEM-Device für das FileLog angegeben. In der Regel entstehen hier im Laufe der Zeit mehrere Log-Dateien. Name und Anzahl sind von der Definition abhängig - meist wird jeden Monat oder jedes Jahr eine neue Datei angelegt. Die gewünschte Datei kann mit &#039;&#039;&#039;data-logfile&#039;&#039;&#039; ausgewählt werden. Möchte man stets die aktuelle Datei verwenden (macht vor allem dann Sinn, wenn man die neusten Daten anzeigen will), kann das Attribut weggelassen, oder explizit &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; eingetragen werden. Zuletzt wird &#039;&#039;&#039;data-columnspec&#039;&#039;&#039; benötigt, um die gewünschten Daten zu in der Logdatei zu identifizieren. Hier wird die Spalte, in der die Daten stehen, gefolgt von Doppelpunkt und Readingname angegeben.&lt;br /&gt;
&lt;br /&gt;
Für ein Heizungsthermostat von Homematic mit dem Namen &#039;&#039;DG.wz.HZ.Heizungsventil&#039;&#039; ergibt sich somit beispielhaft folgende Definition, um gemessene Temperatur, Sollwert und Ventilstellung im Diagramm darzustellen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;chart&amp;quot;&lt;br /&gt;
	 data-device=&amp;quot;DG.wz.HZ.Heizungsventil&amp;quot;&lt;br /&gt;
	 data-logdevice=&amp;quot;FileLog_DG.wz.HZ.Heizungsventil&amp;quot;&lt;br /&gt;
	 data-logfile=&amp;quot;-&amp;quot;&lt;br /&gt;
	 data-columnspec=&#039;[&amp;quot;4:measured-temp&amp;quot;,&amp;quot;4:desired-temp&amp;quot;,&amp;quot;4:actuator&amp;quot;]&#039;&lt;br /&gt;
	 ...&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sollen Daten von unterschiedlichen Geräten in einem Diagramm angezeigt werden, muss &#039;&#039;&#039;data-logdevice&#039;&#039;&#039; als Array nach dem Schema &amp;lt;code&amp;gt;data-logdevice=&#039;[&amp;quot;&amp;lt;Logdatei_1&amp;gt;&amp;quot;,&amp;quot;&amp;lt;Logdatei_2&amp;gt;&amp;quot;,&amp;quot;&amp;lt;Logdatei_3&amp;gt;&amp;quot;]&#039;&amp;lt;/code&amp;gt; definiert werden. Für jeden Eintrag in &#039;&#039;&#039;data-columnspec&#039;&#039;&#039; muss es auch den passenden Eintrag in &#039;&#039;&#039;data-logdevice&#039;&#039;&#039; geben (auch die Reihenfolge ist relevant).&lt;br /&gt;
&lt;br /&gt;
===DbLog===&lt;br /&gt;
Um die Daten aus [[DbLog]] anzeigen zu können, werden die gleichen Attribute verwendet und mit für die Datenbank angepassten Werten beschrieben. Bei &#039;&#039;&#039;data-logdevice&#039;&#039;&#039; das FHEM-Device für die Datenbank angegeben. Im nachfolgenden Beispiel heißt diese &amp;lt;code&amp;gt;logdb&amp;lt;/code&amp;gt; und besitzt wie üblich zwei Tabellen: &amp;lt;code&amp;gt;current&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;history&amp;lt;/code&amp;gt; (der zeitliche Verlauf liegt in letzterer). Der Tabellenname wird bei &#039;&#039;&#039;data-logfile&#039;&#039;&#039; eingetragen. Da die Daten in der Datenbank etwas anders abgelegt werden, muss auch &#039;&#039;&#039;data-columnspec&#039;&#039;&#039; entsprechend angepasst werden. Statt der Spalte wird hier das FHEM-Device, gefolgt von Doppelpunkt und Readingname angegeben.&lt;br /&gt;
&lt;br /&gt;
Für das oben beschriebene Homematic-Heizungsthermostat ergibt sich dann folgende Definition, um die gleichen Daten aus einer Datenbank, statt einem LogFile zu lesen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;chart&amp;quot;&lt;br /&gt;
	 data-device=&amp;quot;DG.wz.HZ.Heizungsventil&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;measured-temp&amp;quot;&lt;br /&gt;
         data-style=&#039;[&amp;quot;ftui l0&amp;quot;]&#039;&lt;br /&gt;
	 data-logdevice=&amp;quot;logdb&amp;quot;&lt;br /&gt;
	 data-logfile=&amp;quot;HISTORY&amp;quot;&lt;br /&gt;
	 data-columnspec=&#039;[&amp;quot;DG.wz.HZ.Heizungsventil:measured-temp&amp;quot;,&amp;quot;DG.wz.HZ.Heizungsventil:desired-temp&amp;quot;,&amp;quot;DG.wz.HZ.Heizungsventil:actuator&amp;quot;]&#039;&lt;br /&gt;
	 ...&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für die Anzeige von unterschiedlichen Geräten in einem Diagramm, muss nur &#039;&#039;&#039;data-columnspec&#039;&#039;&#039; entsprechend angepasst werden, solange sich alle Daten in der Datenbank befinden.&lt;br /&gt;
&lt;br /&gt;
===LogProxy===&lt;br /&gt;
Um die Daten mittels [[LogProxy]] berechnen und anzeigen zu können, muss in FHEM ein LogProxy-Device definiert sein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define myLogProxy logProxy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Einstellungen am LogProxy sind nicht nötig, die bloße Existenz reicht.&lt;br /&gt;
&lt;br /&gt;
Bei &#039;&#039;&#039;data-logdevice&#039;&#039;&#039; wird das FHEM-Device für den LogProxy angegeben. Im nachfolgenden Beispiel heißt dieses &amp;lt;code&amp;gt;myLogProxy&amp;lt;/code&amp;gt;. Das Attribut &#039;&#039;&#039;data-logfile&#039;&#039;&#039; wird für LogProxy nicht benötigt. Befinden sich nur LogProxy-Werte im Diagramm kann das Attribut komplett entfallen. Sollen weitere Werte angezeigt werden, bleibt die Definition im Array einfach leer.&lt;br /&gt;
&lt;br /&gt;
Im Attribut &#039;&#039;&#039;data-columnspec&#039;&#039;&#039; wird eine Formel angegeben, wie die Werte berechnet werden sollen. Hier können die Formeln 1:1 von einem eventuell vorhandenen SVG-Plot übernommen werden. &#039;&#039;&#039;Dabei gibt es jedoch folgendes zu beachten:&#039;&#039;&#039; Befindet sich die Formel in einem Array, dürfen die Formeln keine Anführungszeichen (&amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;) beinhalten. Stattdessen müssen sie als escapter Ascii-Code (&amp;lt;code&amp;gt;\\x22&amp;lt;/code&amp;gt;) eingefügt werden.&lt;br /&gt;
&lt;br /&gt;
Das nachfolgende Beispiel zeigt, wie Vorhersagewerte aus einem FHEM-Device vom Typ Proplanta (Name hier &amp;lt;code&amp;gt;AU.xx.WE.Proplanta&amp;lt;/code&amp;gt;) angezeigt werden können.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;chart&amp;quot;&lt;br /&gt;
	 data-device=&amp;quot;AU.xx.WE.Proplanta&amp;quot;&lt;br /&gt;
	 data-logdevice=&#039;[&lt;br /&gt;
						&amp;quot;myLogProxy&amp;quot;,&lt;br /&gt;
						&amp;quot;myLogProxy&amp;quot;,&lt;br /&gt;
						&amp;quot;myLogProxy&amp;quot;,&lt;br /&gt;
						&amp;quot;myLogProxy&amp;quot;&lt;br /&gt;
					]&#039;&lt;br /&gt;
	 data-columnspec=&#039;[&lt;br /&gt;
						&amp;quot;Func:logProxy_proplanta2Plot(\\x22AU.xx.WE.Proplanta\\x22,\\x22temp_\\x22,$from,$to,12,\\x22day\\x22)&amp;quot;,&lt;br /&gt;
						&amp;quot;Func:logProxy_proplanta2Plot(\\x22AU.xx.WE.Proplanta\\x22,\\x22rain_\\x22,$from,$to,12,\\x22day\\x22)&amp;quot;,&lt;br /&gt;
						&amp;quot;Func:logProxy_proplanta2Plot(\\x22AU.xx.WE.Proplanta\\x22,\\x22chOfRain_\\x22,$from,$to,12,\\x22day\\x22)&amp;quot;,&lt;br /&gt;
						&amp;quot;Func:logProxy_proplanta2Plot(\\x22AU.xx.WE.Proplanta\\x22,\\x22cloud_\\x22,$from,$to,12,\\x22day\\x22)&amp;quot;&lt;br /&gt;
					]&#039;&lt;br /&gt;
	 ...&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auch alle anderen Funktionen, die [[LogProxy]] bietet, können hier angewendet werden.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
===Aktualisierung des Charts===&lt;br /&gt;
Damit der Refresh des Charts funktioniert, muss auch ein Device angegeben werden, der das Refresh triggert. Das Diagramm wird immer dann aktualisiert, wenn sich der Inhalt von &#039;&#039;&#039;data-get&#039;&#039;&#039; ändert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;chart&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;WohnzimmerHeizung&amp;quot;&lt;br /&gt;
	data-logdevice=&amp;quot;FileLog_WohnzimmerHeizung&amp;quot;&lt;br /&gt;
	...&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Aussehen der Linien===&lt;br /&gt;
Mit dem Attribut &#039;&#039;&#039;data-style&#039;&#039;&#039; kann das Aussehen der Linien des jeweiligen Graphen verändert werden. Hierfür können die Standard-FHEM-Styles verwendet werden. Dazu wird das Attribut mit &amp;lt;code&amp;gt;SVGplot&amp;lt;/code&amp;gt;, gefolgt von einem Leerzeichen und der gewünschten Farbe/Stil befüllt. Es existieren jedoch auch noch weitere, an FTUI angepasste Styles, zu finden in der CSS-Datei &amp;lt;code&amp;gt;css/ftui_chart.css&amp;lt;/code&amp;gt;. Um diese zu verwenden, wird das Attribut mit &amp;lt;code&amp;gt;ftui&amp;lt;/code&amp;gt;, gefolgt von einem Leerzeichen und der gewünschten Farbe/Stil befüllt. Eigene Styles können zum Beispiel in der Datei &amp;lt;code&amp;gt;css/fhem-table-ui-user.css&amp;lt;/code&amp;gt; definiert werden.&lt;br /&gt;
&lt;br /&gt;
Folgende Übersicht zeigt die im Standard verfügbaren &#039;&#039;&#039;Farben&#039;&#039;&#039;, alle Abbildungen sind mit im FTUI-Style entstanden:&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Farbe-f0.png|thumb|none|150px|Farbe &amp;quot;l0&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Farbe-f1.png|thumb|none|150px|Farbe &amp;quot;l1&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Farbe-f2.png|thumb|none|150px|Farbe &amp;quot;l2&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Farbe-f3.png|thumb|none|150px|Farbe &amp;quot;l3&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Farbe-f4.png|thumb|none|150px|Farbe &amp;quot;l4&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Farbe-f5.png|thumb|none|150px|Farbe &amp;quot;l5&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Farbe-f6.png|thumb|none|150px|Farbe &amp;quot;l6&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Angabe zur Farbe kann dann mit der Linienart kombiniert werden. Dazu stehen folgende &#039;&#039;&#039;Stile&#039;&#039;&#039; zur Verfügung:&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Form-2D-normal.png|thumb|none|225px|Darstellung in 2D: Stil &amp;quot;normal&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Form-2D-dot.png|thumb|none|225px|Darstellung in 2D: Stil &amp;quot;dot&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Form-2D-dash.png|thumb|none|225px|Darstellung in 2D: Stil &amp;quot;dash&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Form-2D-fill.png|thumb|none|225px|Darstellung in 2D: Stil &amp;quot;fill&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Form-2D-sym.png|thumb|none|225px|Darstellung in 2D: Stil &amp;quot;sym&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Form-3D-normal.png|thumb|none|225px|Darstellung in 3D: Stil &amp;quot;normal&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Form-3D-dot.png|thumb|none|225px|Darstellung in 3D: Stil &amp;quot;dot&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Form-3D-dash.png|thumb|none|225px|Darstellung in 3D: Stil &amp;quot;dash&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Form-3D-fill.png|thumb|none|225px|Darstellung in 3D: Stil &amp;quot;fill&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:FTUI_Widget_Chart_Form-3D-sym.png|thumb|none|225px|Darstellung in 3D: Stil &amp;quot;sym&amp;quot;]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Farbe und Stil werden kombiniert (zusammengeschrieben) beim Attribut &#039;&#039;&#039;data-style&#039;&#039;&#039; angegeben, sodass sich beispielsweise für eine graue Punktlinie folgendes ergibt: &amp;lt;code&amp;gt;data-style=&amp;quot;ftui l1dot&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
Um die Darstellung als normale Linie zu erhalten, darf im Gegensatz zu den anderen Linienformen der Stil &amp;lt;code&amp;gt;normal&amp;lt;/code&amp;gt; nicht angegeben werden. Für eine einfache graue Linie ist also die Angabe &amp;lt;code&amp;gt;data-style=&amp;quot;ftui l1&amp;quot;&amp;lt;/code&amp;gt; korrekt, wohingegen &amp;lt;code&amp;gt;data-style=&amp;quot;ftui l1normal&amp;quot;&amp;lt;/code&amp;gt; zu einer fehlerhaften Anzeige führt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Der Stil &#039;&#039;sym&#039;&#039; ist speziell dafür geeignet, Symbole statt Linien zu zeichnen. Dazu kann beim Attribut &#039;&#039;&#039;data-ptype&#039;&#039;&#039; als Linienform ein beliebiges Font-Awsome-, oder Open Automation-Icon angegeben werden. Alle in diesem Abschnitt enthaltenen Abbildungen sind mit &amp;lt;code&amp;gt;data-ptype=&amp;quot;lines&amp;quot;&amp;lt;/code&amp;gt; entstanden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Übergänge mit datenabhängigen Grenzen:&#039;&#039;&#039; Plotstile (data-style) können auch direkt als Gradienten auf Basis von Plot-Datenwerten definiert werden. Dazu muss der Plotstil als Array angegeben werden. Der erste Wert des Arrays gibt an, ob nur die Linie gezeichnet werden soll (Zahl angeben, die die Dicke der Linie definiert) oder gefüllt (&amp;quot;fill&amp;quot; eintragen). Alle danach folgenden Array Elemente sind beliebig viele Stopp Punkte für die Farbübergänge, welche wiederum aus Arrays mit 3 Parametern bestehen. Für jeden Stopp Punkt werden der Datenwert, die Farbe und die Durchsichtigkeit gesetzt. Hierdurch lassen sich z.B. Einfärbungen setzen, die für Temperaturplots immer negative Werte blau einfärben und positive Werte rot. Zwischen den Stop Punkten wird die Farbe interpoliert, also ein weicher Übergang generiert. Will man harte Übergänge muss man Zwei Stopp Punkte mit unterschiedlichen Farbwerten aber dem gleichen Datenwert erzeugen.&amp;lt;br&amp;gt;&lt;br /&gt;
Beispiel 1 für einen weichen Gradienten, der bei 0 von blau nach rot übergeht, bei diesem Übergang durchsichtig ist und von dort nach negativen bzw. positiven Werden immer deckender wird:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;data-style=&#039;[&amp;quot;fill&amp;quot;,[&amp;quot;-20&amp;quot;,&amp;quot;#0000ff&amp;quot;,&amp;quot;0.7&amp;quot;],[&amp;quot;0&amp;quot;,&amp;quot;#0000ff&amp;quot;,&amp;quot;0&amp;quot;],[&amp;quot;0&amp;quot;,&amp;quot;#ff0000&amp;quot;,&amp;quot;0&amp;quot;],[&amp;quot;302&amp;quot;,&amp;quot;#ff0000&amp;quot;,&amp;quot;0.7&amp;quot;]]&#039;&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Beispiel 2 mit einem harten Übergang von blau nach rot bei 0:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;data-style=&#039;[&amp;quot;fill&amp;quot;,[&amp;quot;-20&amp;quot;,&amp;quot;#0000ff&amp;quot;,&amp;quot;0.7&amp;quot;],[&amp;quot;0&amp;quot;,&amp;quot;#0000ff&amp;quot;,&amp;quot;0.7&amp;quot;],[&amp;quot;0&amp;quot;,&amp;quot;#ff0000&amp;quot;,&amp;quot;0.7&amp;quot;],[&amp;quot;50&amp;quot;,&amp;quot;#ff0000&amp;quot;,&amp;quot;0.7&amp;quot;]]&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
Es gibt auch die Möglichkeit den Bereich zwischen zwei Graphen einzufärben. Dazu muss ein Wert in Columnspec als Array angegeben werden. Ist dies der Fall, dann wird der zweite Graph umgekehrt an den ersten angehängt.&amp;lt;br&amp;gt;&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
data-columnspec=&#039;[&lt;br /&gt;
    &amp;quot;Func:logProxy_proplanta2Plot(\\x22AgroWeather\\x22,\\x22weatherIcon\\x22,$from,$to,12)&amp;quot;,&lt;br /&gt;
    [&lt;br /&gt;
        &amp;quot;Func:logProxy_proplanta2Plot(\\x22AgroWeather\\x22,\\x22tempMax\\x22,$from,$to,12)&amp;quot;,&lt;br /&gt;
        &amp;quot;Func:logProxy_proplanta2Plot(\\x22AgroWeather\\x22,\\x22tempMin\\x22,$from,$to,12)&amp;quot;&lt;br /&gt;
    ],&lt;br /&gt;
    &amp;quot;Func:logProxy_proplanta2Plot(\\x22AgroWeather\\x22,\\x22rain\\x22,$from,$to,0,\\x22day\\x22)&amp;quot;&lt;br /&gt;
]&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI Widget Chart DynamicStyles.png|thumb|none|225px|dynamischer Übergang]]&lt;br /&gt;
&lt;br /&gt;
===Form der Linien===&lt;br /&gt;
Das Attribut &#039;&#039;&#039;data-ptype&#039;&#039;&#039; beeinflusst die Form der Linien. Hier sind folgende Werte möglich:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;lines&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;points&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;steps&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;fsteps&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;histeps&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bars&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;ibars&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cubic&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;quadratic&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;quadraticSmooth&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich ist es möglich, Symbole anzeigen zu lassen. Unterstützt werden Font-Awesome (&#039;fa-...&#039;), Open Automation (&#039;oa-...&#039;) und FHEM-Symbole (&#039;fs-...&#039;)). Damit die Symbole korrekt angezeigt werden, muss  im Attribut &#039;&#039;&#039;data-style&#039;&#039;&#039; der Stil &amp;lt;code&amp;gt;sym&amp;lt;/code&amp;gt; gewählt werden, da sonst nur Punkte, statt der Symbole gezeichnet werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;chart&amp;quot;&lt;br /&gt;
	 data-device=&amp;quot;DG.wz.HZ.Heizungsventil&amp;quot;&lt;br /&gt;
	 data-logdevice=&amp;quot;FileLog_DG.wz.HZ.Heizungsventil&amp;quot;&lt;br /&gt;
	 ...&lt;br /&gt;
	 data-style=&amp;quot;ftui l1sym&amp;quot;&lt;br /&gt;
	 data-ptype=&amp;quot;fa-cog&amp;quot;&lt;br /&gt;
	 ...&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Größe der Symbole ist in der Datei &amp;lt;code&amp;gt;css/ftui_chart.css&amp;lt;/code&amp;gt; auf 12px festgelegt. Dieser Wert kann in einer eigenen CSS-Datei durch Anpassung von &amp;lt;code&amp;gt;stroke-width&amp;lt;/code&amp;gt; überschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.ftui.l0sym		{ stroke:#DDA400; stroke-width:12px; fill:none; }&lt;br /&gt;
.ftui.l1sym		{ stroke:#BBBBBB; stroke-width:12px; fill:none; }&lt;br /&gt;
.ftui.l2sym		{ stroke:#CC0000; stroke-width:12px; fill:none; }&lt;br /&gt;
.ftui.l3sym		{ stroke:#CCCC00; stroke-width:12px; fill:none; }&lt;br /&gt;
.ftui.l4sym		{ stroke:#33CC33; stroke-width:12px; fill:none; }&lt;br /&gt;
.ftui.l5sym		{ stroke:#33CCCC; stroke-width:12px; fill:none; }&lt;br /&gt;
.ftui.l6sym		{ stroke:#3333CC; stroke-width:12px; fill:none; }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;data-ptype&#039;&#039;&#039; kann auch Inhalt im Format &amp;lt;code&amp;gt;&#039;icon:1&#039;&amp;lt;/code&amp;gt; verarbeiten. Dann muss der zugehörige Wert in &#039;&#039;&#039;data-columnspec&#039;&#039;&#039; den Pfad zu einem Icon (z.B. für Wettervorhersagen) beinhalten. Der Y-Wert wird dann vom ersten Graphen übernommen. Weitere Ausführungen hierzu im Beispiel [[#Darstellung der Wetter Icons im Diagramm]].&lt;br /&gt;
&lt;br /&gt;
===Stapeln von Linien===&lt;br /&gt;
Über &#039;&#039;&#039;data-ptype&#039;&#039;&#039; kann zusätzlich festgelegt werden, ob Graphen übereinander gestapelt werden sollen. &amp;lt;code&amp;gt;data-ptype=&#039;lines:1&#039;&amp;lt;/code&amp;gt; bedeutet, dass der zugehörige Graph auf den Graph mit der Nummer 1 gestapelt werden soll. So etwas kann z.B. Sinn machen, wenn man den Stromverbrauch einzelner Devices darstellen und zusätzlich sehen will, wie hoch die Summe ist. Beispiel siehe unten.&lt;br /&gt;
&lt;br /&gt;
[[Datei:FTUI Widget Chart Stacked.png]]&lt;br /&gt;
&lt;br /&gt;
===Zeitstrahl / Start &amp;amp; Ende auf der X-Achse===&lt;br /&gt;
Die Attribute &#039;&#039;&#039;data-daysago_start&#039;&#039;&#039; und &#039;&#039;&#039;data-daysago_end&#039;&#039;&#039; dienen der Definition von Anfang und Ende der X-Achse. Im einfachsten Fall wird eine Anzahl an Tagen eingegeben, die sich auf das aktuelle Datum beziehen. Dabei gilt es zu beachten, dass es sich um &#039;&#039;vergangene Tage&#039;&#039; handelt. Das bedeutet, dass Tage in der Vergangenheit als positive Zahl angegeben werden, Tage in der Zukunft hingegen als negative Zahl. Es kann jeweils  auch ein fixes Datum (z.B. &#039;2013-10-23&#039;) angegeben werden. Uhrzeitangaben werden nur berücksichtigt, wenn &#039;&#039;&#039;data-nofulldays=&#039;true&#039; &#039;&#039;&#039; verwendet wird.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Relative Zeitangabe in Stunden/Tagen/Wochen/Monaten/Jahren&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Zur Ausgabe einer Anzahl an zurückliegenden Stunden bis zum aktuellen Zeitpunkt wird als Startzeitpunkt die Anzahl der Stunden/Tage/Wochen/Monate/Jahre angegeben, die angezeigt werden sollen, gefolgt vom Kleinbuchstaben &#039;&#039;&#039;h&#039;&#039;&#039; für Stunden, &#039;&#039;&#039;d&#039;&#039;&#039; für Tage, &#039;&#039;&#039;w&#039;&#039;&#039; für Wochen, &#039;&#039;&#039;m&#039;&#039;&#039; für Monate, &#039;&#039;&#039;y&#039;&#039;&#039; für Jahre, . Als Endzeitpunkt wird &#039;&#039;&#039;now&#039;&#039;&#039; gewählt.&amp;lt;br /&amp;gt;&lt;br /&gt;
Das nachfolgende Beispiel zeigt die Werte der vergangenen 3 Stunden an:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
data-nofulldays=&amp;quot;true&amp;quot;&lt;br /&gt;
data-daysago_start=&amp;quot;3h&amp;quot;&lt;br /&gt;
data-daysago_end=&amp;quot;now&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fester Zeitbereich des heutigen Tages (Stunden/Tage/Wochen/Monate/Jahre)&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Um ein festes Stunden/Tages/Wochen/Monats/Jahresfenster anzuzeigen, werden die absoluten Stunden/Tages/Wochen/Monats/Jahreszahlen mit negativem Vorzeichen, gefolgt vom Großbuchstaben &#039;&#039;&#039;H&#039;&#039;&#039; (entsprechend D/W/M/Y für Tage/Wochen/Monate/Jahre) angegeben. Wird &#039;&#039;&#039;data-daysago_start&#039;&#039;&#039; als positiver Wert angegeben, wird die Anzahl der Stunden/Tage/Wochen/Monate/Jahre von heute 0:00 Uhr subtrahiert (siehe Rechenweg weiter unten).&amp;lt;br /&amp;gt;&lt;br /&gt;
Das Beispiel zeigt den Zeitbereich von heute 5:00 Uhr bis heute 22:00 Uhr:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
data-nofulldays=&amp;quot;true&amp;quot;&lt;br /&gt;
data-daysago_start=&amp;quot;-5H&amp;quot;&lt;br /&gt;
data-daysago_end=&amp;quot;-22H&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Fester Zeitbereich Tage-übergreifend&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Die Zeit in Tagen kann als Gleitkommazahl angegeben werden. Damit ist es möglich, Tage und Uhrzeiten zu kombinieren. Die Werte sind dann als Teil eines ganzen Tages, bezogen auf heute 0:00 Uhr zu errechnen und mit &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; als Teiler anzugeben.&amp;lt;br /&amp;gt;&lt;br /&gt;
Das nachfolgende Beispiel zeigt einen Zeitbereich von &#039;&#039;&#039;gestern 15:00 Uhr&#039;&#039;&#039; bis &#039;&#039;&#039;morgen 3:00 Uhr&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
data-nofulldays=&amp;quot;true&amp;quot;&lt;br /&gt;
data-daysago_start=&amp;quot;0.375&amp;quot;&lt;br /&gt;
data-daysago_end=&amp;quot;-1.125&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Für die nachfolgenden Rechenwege sind die Einheiten nur zur Verdeutlichung angegeben. Die Einheiten werden im Attribut nicht angegeben.&lt;br /&gt;
&lt;br /&gt;
Der Wert für &#039;&#039;&#039;GESTERN&#039;&#039;&#039; wird wie folgt ermittelt:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ausgangspunkt ist heute 0:00 Uhr, gestern 15:00 Uhr liegt also 9 Stunden davor. Diese 9 Stunden sind ein &amp;lt;code&amp;gt;9/24 Tag&amp;lt;/code&amp;gt; und errechnet sich so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1d / 24h = 0.0416666...d/h&lt;br /&gt;
0.0416d/h * 9h = 0.375d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Wert für &#039;&#039;&#039;MORGEN&#039;&#039;&#039; wird wie folgt ermittelt:&amp;lt;br /&amp;gt;&lt;br /&gt;
Ausgangspunkt ist wieder heute 0:00 Uhr, morgen 3:00 Uhr liegt dann 27 Stunden dahinter. Der Einfachheit halber werden hier nur die 3 Stunden errechnet und dann ein ganzer Tag addiert:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1d / 24h = 0.0416666...d/h&lt;br /&gt;
0.0416d/h * 3h = 0.125d&lt;br /&gt;
&lt;br /&gt;
0.125d + 1d = 1.125d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Da das Attribut Tage in der Vergangenheit erwartet, muss für einen Wert in der Zukunft wieder eine negative Zahl angegeben werden.&lt;br /&gt;
&lt;br /&gt;
===Zeitformat der X-Achse===&lt;br /&gt;
Die Zeitanzeige auf der X-Achse kann sehr flexibel eingestellt werden. Dafür stehen verschiedene Platzhalter zur Verfügung, die durch spezielle Zeichen (&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt; &amp;lt;/code&amp;gt; (Leerzeichen), &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;) getrennt werden. Alle Zeichen werden trotz Escape-Zeichen (&amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;) in der Ausgabe angezeigt.&lt;br /&gt;
&lt;br /&gt;
Folgende Platzhalter werden unterstützt:&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;mm&#039;&amp;lt;/code&amp;gt;: Minuten als zweistellige Zahl&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;hh&#039;&amp;lt;/code&amp;gt;: Stunden als zweistellige Zahl&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;dd&#039;&amp;lt;/code&amp;gt;: Tag als zweistellige Zahl (Kalenderdatum)&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;MM&#039;&amp;lt;/code&amp;gt;: Monat als zweistellige Zahl (z.B. 02 für Februar)&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;MMM&#039;&amp;lt;/code&amp;gt;: Monat als dreistellige Abkürzung (z.B. Dec für Dezember)&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;MMMM&#039;&amp;lt;/code&amp;gt;: Langname des Monats (z.B. March)&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;ee&#039;&amp;lt;/code&amp;gt;: Wochentag als zweistellige Zahl (z.B. 00 für Sonntag)&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;eee&#039;&amp;lt;/code&amp;gt;: Wochentag als dreistellige Abkürzung (z.B. Mon für Montag)&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;eeee&#039;&amp;lt;/code&amp;gt;: Langname des Wochentags (z.B. Tuesday)&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;yy&#039;&amp;lt;/code&amp;gt;: Jahr als zweistellige Zahl (z.B. 16 für 2016)&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;yyyy&#039;&amp;lt;/code&amp;gt;: Jahr als vierstellige Zahl (z.B. 2016)&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;LF&#039;&amp;lt;/code&amp;gt;: Fügt einen Zeilenumbruch hinzu&lt;br /&gt;
&lt;br /&gt;
Beispiel: Der String &amp;lt;code&amp;gt;&#039;MMM\LF\yyyy&#039;&amp;lt;/code&amp;gt; zeigt &amp;lt;code&amp;gt;&#039;Jan&#039;&amp;lt;/code&amp;gt; in der ersten, und &amp;lt;code&amp;gt;&#039;2016&#039;&amp;lt;/code&amp;gt; in der zweiten Zeile. &amp;lt;code&amp;gt;&#039;MM.dd 2016&#039;&amp;lt;/code&amp;gt; wird zu &amp;lt;code&amp;gt;&#039;03.05 2016&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fadenkreuz-Cursor===&lt;br /&gt;
Der Fadenkreuz-Cursor zeigt die Momentanwerte, indem man ihn über die Graphen bewegt. In Desktop-Browsern reicht einfaches Bewegen des Maus. Unter iOS und Android kann der Cursor wird der Cursor durch einfaches Tippen auf die neue Position bewegt.&lt;br /&gt;
&lt;br /&gt;
Mit dem Attribut &#039;&#039;&#039;data-cursorgroup&#039;&#039;&#039; können Graphen gruppiert werden. Am Cursor werden dann die Momentanwerte aller Graphen gleichzeitig angezeigt, die die selbe Zahl besitzen, sobald man die Maus über einen aus der Gruppe bewegt.&lt;br /&gt;
&lt;br /&gt;
===Legende===&lt;br /&gt;
Mit dem Attribut &#039;&#039;&#039;data-legendpos&#039;&#039;&#039; kann die Position der Legende innerhalb des Diagramms festgelegt werden. Die Position wird mit einem Array, bestehend aus zwei Werten im Format &amp;lt;code&amp;gt;&#039;[&amp;quot;&amp;lt;horizontal&amp;gt;&amp;quot;,&amp;quot;&amp;lt;vertikal&amp;gt;&amp;quot;]&#039;&amp;lt;/code&amp;gt; angegeben. Für die horizontale Positionierung sind &amp;lt;code&amp;gt;&#039;left&#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&#039;right&#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&#039;before&#039;&amp;lt;/code&amp;gt;, und &amp;lt;code&amp;gt;&#039;behind&#039;&amp;lt;/code&amp;gt;, die vertikale Positionierung &amp;lt;code&amp;gt;&#039;top&#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&#039;bottom&#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&#039;above&#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&#039;below&#039;&amp;lt;/code&amp;gt; erlaubt (der Unterschied zwischen &amp;lt;code&amp;gt;&#039;left&#039;&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;&#039;before&#039;&amp;lt;/code&amp;gt; liegt darin, dass im zweiten Fall die Legende nicht in den Zeichenbereich gesetzt wird sondern vor das ganze Chart (entsprechend für &amp;lt;code&amp;gt;&#039;after&#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&#039;above&#039;&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;&#039;below&#039;&amp;lt;/code&amp;gt;). Alternativ können auch Zahlen verwendet werden, die die Position in Prozent angeben. Durch verschieben mit der Maus oder durch verschieben mit dem Finger oder Stift auf Touch Devices kann die Legende auch an eine andere Position verschoben werden.&lt;br /&gt;
&lt;br /&gt;
Wenn die Legende eingeblendet ist, kann mittels Klick auf einen Legendeneintrag der zugehörige Graph ein- und ausgeblendet werden.&lt;br /&gt;
&lt;br /&gt;
===3-dimensionale Drehung===&lt;br /&gt;
&#039;&#039;&#039;data-ddd&#039;&#039;&#039; ermöglicht, den Graphen 3-dimensional zu drehen. Als Wert wird ein Array mit den 3 Winkeln für x, y und z erwartet, wobei z selbst bisher nicht unterstützt wird.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &amp;lt;code&amp;gt;data-ddd=&#039;[&amp;quot;40&amp;quot;,&amp;quot;60&amp;quot;,&amp;quot;0&amp;quot;]&#039;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Wenn der 3D Modus aktiv ist (&#039;&#039;&#039;data-ddd&#039;&#039;&#039; gesetzt) sind 2 zusätzliche Parameter verfügbar um das Aussehen der Graphen zu beeinflussen. &#039;&#039;&#039;data-dddspace&#039;&#039;&#039; gibt an, wie viele pixel der Raum zwischen den einzelnen in z-Richtung hintereinander angeordneten Graphen betragen soll.&lt;br /&gt;
&#039;&#039;&#039;data-dddwidth&#039;&#039;&#039; legt fest, wie viele pixel die einzelnen Graphen tief (oder dick) sein sollen.&lt;br /&gt;
&lt;br /&gt;
Wenn das Array angegeben wird, erscheinen zwei zusätzliche Buttons im Diagramm, mit denen die Drehung in X- und Y-Richtung verändert werden kann.&lt;br /&gt;
&lt;br /&gt;
===Diagrammtitel===&lt;br /&gt;
Mit dem Attribut &#039;&#039;&#039;data-title&#039;&#039;&#039; kann dem Diagramm, ähnlich wie in FHEM-SVG-Plots, ein Titel hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
Folgende Platzhalter werden unterstützt:&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;min1&#039;&amp;lt;/code&amp;gt;: Minimaler Y-Wert des ersten Graphs&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;max1&#039;&amp;lt;/code&amp;gt;: Maximaler Y-Wert des ersten Graphs&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;avg1&#039;&amp;lt;/code&amp;gt;: Mittlerer Y-Wert des ersten Graphs&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;cnt1&#039;&amp;lt;/code&amp;gt;: Anzahl der dargestellten Einzelwerte im ersten Graph&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;currval1&#039;&amp;lt;/code&amp;gt;: Letzter, bzw. aktuellster Y-Wert des ersten Graphs&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;mindate1&#039;&amp;lt;/code&amp;gt;: Niedrigster Wert auf der X-Achse des ersten Graphs&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;maxdate1&#039;&amp;lt;/code&amp;gt;: Höchster Wert auf der X-Achse vom ersten Graphs&lt;br /&gt;
*&amp;lt;code&amp;gt;&#039;currdate1&#039;&amp;lt;/code&amp;gt;: Letzter, bzw. aktuellster Wert auf der X-Achse des ersten Graphs&lt;br /&gt;
&lt;br /&gt;
Durch Einsetzen einer anderen Zahl statt &#039;1&#039; können auch die Werte der anderen Graphen angezeigt werden. Das Weglassen der Zahl bewirkt, dass der jeweils zutreffende Wert automatisch ermittelt wird. Bedeutet: &amp;lt;code&amp;gt;max&amp;lt;/code&amp;gt; führt dazu, dass der höchste Wert aller angezeigter Graphen verwendet wird.&lt;br /&gt;
Zusätzlich ist es möglich durch &amp;quot;$eval(&amp;lt;regexp&amp;gt;)&amp;quot; regular Expressions auszuwerten (also z.B. Berechnungen durchzuführen). In &amp;lt;regexp&amp;gt; können auch &amp;quot;$data()&amp;quot; vorkommen.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &amp;lt;code&amp;gt;data-title=&amp;quot;Klima Wohnzimmer Average: $eval(parseInt($data{avg1}*10)/10)°C / Max: $eval(parseInt($data{max1}*10)/10)°C&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Buttons im Diagramm===&lt;br /&gt;
Es gibt mehrere Buttons, mit denen sich die Anzeige des Diagramms verändern lässt. &amp;lt;code&amp;gt;&amp;lt;-&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;-&amp;gt;&amp;lt;/code&amp;gt; bewegen die Graphen nach links und rechts. &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; zoomen die Anzeige. &amp;lt;code&amp;gt;legend&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;cursor&amp;lt;/code&amp;gt; schalten die zugehörigen Anzeigen ein und aus. Falls der 3D Modus eingeschaltet ist, gibt es Buttons zum Drehen der Darstellung um die X- und Y-Achse. Falls &amp;lt;code&amp;gt;data-timeranges&amp;lt;/code&amp;gt; gesetzt ist, wird ein Pulldown Menü dargestellt, welches die Auswahl von dort definierten Zeiträumen für die X-Achse erlaubt.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Einfaches Diagramm===&lt;br /&gt;
Das Beispiel zeigt ein einfaches Diagramm mit 4 unterschiedlich formatierten Graphen, Legende und Momentanwerten am Fadenkreuz-Cursor.&lt;br /&gt;
&lt;br /&gt;
[[File:Chart_tabletUI.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;chart&amp;quot;&lt;br /&gt;
	data-logdevice=&#039;[&amp;quot;Log.Garden&amp;quot;,&amp;quot;Log.Garden&amp;quot;,&amp;quot;Log.Garden&amp;quot;,&amp;quot;Log.Predicted&amp;quot;]&#039;&lt;br /&gt;
	data-columnspec=&#039;[&amp;quot;4:Garden.T:15:&amp;quot;,&amp;quot;10:Garden.T:0:delta-h&amp;quot;,&amp;quot;10:Garden.T:0:delta-d&amp;quot;,&amp;quot;4:predicted.*:15:&amp;quot;]&#039;&lt;br /&gt;
	data-style=&#039;[&amp;quot;ftui l0fill&amp;quot;,&amp;quot;ftui l1fill&amp;quot;,&amp;quot;ftui l2&amp;quot;,&amp;quot;ftui l3dot&amp;quot;]&#039;&lt;br /&gt;
	data-ptype=&#039;[&amp;quot;lines&amp;quot;,&amp;quot;histeps&amp;quot;,&amp;quot;histeps&amp;quot;,&amp;quot;cubic&amp;quot;]&#039;&lt;br /&gt;
	data-uaxis=&#039;[&amp;quot;primary&amp;quot;,&amp;quot;secondary&amp;quot;,&amp;quot;secondary&amp;quot;,&amp;quot;primary&amp;quot;]&#039;&lt;br /&gt;
	data-legend=&#039;[&amp;quot;Temperature&amp;quot;,&amp;quot;Rain/hour&amp;quot;,&amp;quot;Rain/day&amp;quot;,&amp;quot;Predicted Temp.&amp;quot;]&#039;&lt;br /&gt;
	data-yunit=&amp;quot;°C&amp;quot;&lt;br /&gt;
	data-ytext=&amp;quot;Temperature&amp;quot;&lt;br /&gt;
	data-minvalue=&amp;quot;auto&amp;quot;&lt;br /&gt;
	data-maxvalue=&amp;quot;auto&amp;quot;&lt;br /&gt;
	data-yunit_sec=&amp;quot;mm&amp;quot;&lt;br /&gt;
	data-ytext_sec=&amp;quot;Rain (mm)&amp;quot;&lt;br /&gt;
	data-height=&amp;quot;250&amp;quot;&lt;br /&gt;
	data-yticks=&amp;quot;auto&amp;quot;&lt;br /&gt;
	data-minvalue_sec=&amp;quot;auto&amp;quot;&lt;br /&gt;
	data-maxvalue_sec=&amp;quot;auto&amp;quot;&lt;br /&gt;
	data-nofulldays=&amp;quot;true&amp;quot;&lt;br /&gt;
	data-daysago_start=&amp;quot;2013-08-13T00:00:00&amp;quot;&lt;br /&gt;
	data-daysago_end=&amp;quot;2013-08-14T00:00:00&amp;quot;&lt;br /&gt;
	data-cursorgroup=&amp;quot;1&amp;quot;&lt;br /&gt;
	data-scrollgroup=&amp;quot;1&amp;quot;&lt;br /&gt;
	data-xticks=&amp;quot;auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===7-Tage-Wettervorhersage mit Proplanta===&lt;br /&gt;
In diesem Beispiel wird gezeigt, wie die Vorhersagewerte von [[PROPLANTA]] in einem Diagramm dargestellt werden können. Da die Werte nicht in einer Datenbank oder einem FileLog vorliegen, müssen sie über [[LogProxy]] verarbeitet werden. Dafür sind einige Vorbereitungen in FHEM nötig.&lt;br /&gt;
&lt;br /&gt;
[[File:FTUI_Widget_Chart-fc-Proplanta.png|941px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Ein LogProxy-Device muss vorhanden sein:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
define myLogProxy logProxy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; In der Datei &amp;lt;code&amp;gt;99_myUtils.pm&amp;lt;/code&amp;gt; muss folgende Routine hinzugefügt werden, die die Daten bereitstellt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
#---------------------------------------&lt;br /&gt;
# Proplanta LogProxy-Funktion&lt;br /&gt;
#---------------------------------------&lt;br /&gt;
sub logProxy_proplanta2Plot($$$$;$$) {&lt;br /&gt;
	my ($device, $fcValue, $from, $to, $fcHour, $expMode) = @_;&lt;br /&gt;
    my $regex;&lt;br /&gt;
    my @rl;&lt;br /&gt;
    &lt;br /&gt;
	return undef if(!$device);&lt;br /&gt;
    &lt;br /&gt;
    if($fcValue =~ s/_$//) {&lt;br /&gt;
        $regex = &amp;quot;^fc[\\d]+_&amp;quot;.$fcValue.&amp;quot;[\\d]{2}\$&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        $regex = &amp;quot;^fc[\\d]+_&amp;quot;.$fcValue.&amp;quot;\$&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    $fcHour = 12 if(!defined $fcHour);&lt;br /&gt;
    $expMode = &amp;quot;point&amp;quot; if(!defined $expMode);&lt;br /&gt;
&lt;br /&gt;
	if( defined($defs{$device}) ) {&lt;br /&gt;
		if( $defs{$device}{TYPE} eq &amp;quot;PROPLANTA&amp;quot; ) {&lt;br /&gt;
            @rl = sort{&lt;br /&gt;
                my ($an) = ($a =~ m/fc(\d+)_.*/);&lt;br /&gt;
                my ($bn) = ($b =~ m/fc(\d+)_.*/);&lt;br /&gt;
                $an &amp;lt;=&amp;gt; $bn or $a cmp $b;&lt;br /&gt;
                }( grep /${regex}/,keys %{$defs{$device}{READINGS}} );&lt;br /&gt;
			return undef if( !@rl );&lt;br /&gt;
		} else {&lt;br /&gt;
			Log3 undef, 2, &amp;quot;logProxy_proplanta2Plot: $device is not a PROPLANTA device&amp;quot;;&lt;br /&gt;
			return undef;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	my $fromsec = SVG_time_to_sec($from);&lt;br /&gt;
	my $tosec   = SVG_time_to_sec($to);&lt;br /&gt;
	my $sec = $fromsec;&lt;br /&gt;
	my ($h,$fcDay,$mday,$mon,$year);&lt;br /&gt;
	my $timestamp;&lt;br /&gt;
    &lt;br /&gt;
	my $reading;&lt;br /&gt;
	my $value;&lt;br /&gt;
	my $prev_value;&lt;br /&gt;
	my $min = 999999;&lt;br /&gt;
	my $max = -999999;&lt;br /&gt;
	my $ret = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	# while not end of plot range reached&lt;br /&gt;
	while(($sec &amp;lt; $tosec) &amp;amp;&amp;amp; @rl) {&lt;br /&gt;
		#remember previous value for start of plot range&lt;br /&gt;
		$prev_value = $value;&lt;br /&gt;
&lt;br /&gt;
		$reading = shift @rl;&lt;br /&gt;
        ($fcDay) = $reading =~ m/^fc(\d+).*/;&lt;br /&gt;
   		$h = ($reading =~ m/.*(\d\d)$/)?$1:$fcHour;&lt;br /&gt;
		$value = ReadingsVal($device,$reading,undef);&lt;br /&gt;
        &lt;br /&gt;
		($mday,$mon,$year) = split(&#039;\.&#039;,ReadingsVal($device,&amp;quot;fc&amp;quot;.$fcDay.&amp;quot;_date&amp;quot;,undef));&lt;br /&gt;
		$timestamp = sprintf(&amp;quot;%04d-%02d-%02d_%02d:%02d:%02d&amp;quot;, $year, $mon, $mday, $h, 0, 0);&lt;br /&gt;
		$sec = SVG_time_to_sec($timestamp);&lt;br /&gt;
        &lt;br /&gt;
		# skip all values before start of plot range&lt;br /&gt;
		next if( SVG_time_to_sec($timestamp) &amp;lt; $fromsec );&lt;br /&gt;
&lt;br /&gt;
		# add first value at start of plot range&lt;br /&gt;
		if( !$ret &amp;amp;&amp;amp; $prev_value ) {&lt;br /&gt;
		  $min = $prev_value if( (looks_like_number($prev_value) &amp;amp;&amp;amp; ($prev_value &amp;lt; $min)) || ($prev_value lt $min) );&lt;br /&gt;
		  $max = $prev_value if( (looks_like_number($prev_value) &amp;amp;&amp;amp; ($prev_value &amp;gt; $max)) || ($prev_value gt $max) );&lt;br /&gt;
		  $ret .= &amp;quot;$from $prev_value\n&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		# done if after end of plot range&lt;br /&gt;
		last if($sec &amp;gt; $tosec);&lt;br /&gt;
&lt;br /&gt;
		$min = $value if( (looks_like_number($value) &amp;amp;&amp;amp; ($value &amp;lt; $min )) || ($value lt $min) );&lt;br /&gt;
		$max = $value if( (looks_like_number($value) &amp;amp;&amp;amp; ($value &amp;gt; $max )) || ($value gt $max) );&lt;br /&gt;
&lt;br /&gt;
		# add actual controll point&lt;br /&gt;
		$ret .= &amp;quot;$timestamp $value\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
#		Log 1, &amp;quot;$timestamp $value -0- $reading&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
    if(($sec &amp;lt; $tosec) &amp;amp;&amp;amp; !@rl &amp;amp;&amp;amp; ($expMode eq &amp;quot;day&amp;quot;)) {&lt;br /&gt;
    	$timestamp = sprintf(&amp;quot;%04d-%02d-%02d_%02d:%02d:%02d&amp;quot;, $year, $mon, $mday, 23, 59, 59);&lt;br /&gt;
    	if(SVG_time_to_sec($timestamp) &amp;lt; $tosec) {&lt;br /&gt;
        	$ret .= &amp;quot;$timestamp $value\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
			$ret .= &amp;quot;$to $value\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    elsif(($sec &amp;gt; $tosec) &amp;amp;&amp;amp; ($expMode eq &amp;quot;day&amp;quot;)) {&lt;br /&gt;
       	$value = $prev_value + ($value - $prev_value)*(86400 + ($tosec - $sec))/86400;&lt;br /&gt;
       	$ret .= &amp;quot;$to $value\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
	return ($ret,$min,$max,$prev_value);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend können die Daten im Chart-Widget angezeigt werden. Der Device-Name von Proplanta heißt hier im Beispiel &amp;lt;code&amp;gt;AU.xx.WE.Proplanta&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;chart&amp;quot;&lt;br /&gt;
	 data-device=&amp;quot;AU.xx.WE.Proplanta&amp;quot;&lt;br /&gt;
	 data-logdevice=&#039;[&lt;br /&gt;
	 					&amp;quot;myLogProxy&amp;quot;,&lt;br /&gt;
	 					&amp;quot;myLogProxy&amp;quot;,&lt;br /&gt;
	 					&amp;quot;myLogProxy&amp;quot;&lt;br /&gt;
	 				]&#039;&lt;br /&gt;
	 data-columnspec=&#039;[&lt;br /&gt;
	 					&amp;quot;Func:logProxy_proplanta2Plot(\\x22AU.xx.WE.Proplanta\\x22,\\x22rain_\\x22,$from,$to,12,\\x22day\\x22)&amp;quot;,&lt;br /&gt;
	 					&amp;quot;Func:logProxy_proplanta2Plot(\\x22AU.xx.WE.Proplanta\\x22,\\x22chOfRain_\\x22,$from,$to,12,\\x22day\\x22)&amp;quot;,&lt;br /&gt;
	 					&amp;quot;Func:logProxy_proplanta2Plot(\\x22AU.xx.WE.Proplanta\\x22,\\x22cloud_\\x22,$from,$to,12,\\x22day\\x22)&amp;quot;&lt;br /&gt;
	 				]&#039;&lt;br /&gt;
	 data-style=&#039;[&lt;br /&gt;
	 					&amp;quot;ftui l6fill&amp;quot;,&lt;br /&gt;
	 					&amp;quot;ftui l5fill&amp;quot;,&lt;br /&gt;
	 					&amp;quot;ftui l1fill&amp;quot;&lt;br /&gt;
	 			]&#039;&lt;br /&gt;
	 data-ptype=&#039;[&lt;br /&gt;
	 					&amp;quot;steps&amp;quot;,&lt;br /&gt;
	 					&amp;quot;quadraticSmooth&amp;quot;,&lt;br /&gt;
	 					&amp;quot;quadraticSmooth&amp;quot;&lt;br /&gt;
	 			]&#039;&lt;br /&gt;
	 data-uaxis=&#039;[&lt;br /&gt;
	 					&amp;quot;primary&amp;quot;,&lt;br /&gt;
	 					&amp;quot;secondary&amp;quot;,&lt;br /&gt;
	 					&amp;quot;secondary&amp;quot;&lt;br /&gt;
	 			]&#039;&lt;br /&gt;
	 data-legend=&#039;[&lt;br /&gt;
	 					&amp;quot;Regen&amp;quot;,&lt;br /&gt;
	 					&amp;quot;Regenwahrscheinlichkeit&amp;quot;,&lt;br /&gt;
	 					&amp;quot;Wolken&amp;quot;&lt;br /&gt;
	 			]&#039;&lt;br /&gt;
	 data-yunit=&amp;quot;mm&amp;quot;&lt;br /&gt;
	 data-ytext=&amp;quot;Regen&amp;quot;&lt;br /&gt;
	 data-yunit_sec=&amp;quot;%&amp;quot;&lt;br /&gt;
	 data-ytext_sec=&amp;quot;Chance auf Regen / Wolken&amp;quot;&lt;br /&gt;
	 data-timeformat=&amp;quot;eeee&amp;quot;&lt;br /&gt;
	 data-minvalue=&amp;quot;auto&amp;quot;&lt;br /&gt;
	 data-maxvalue=&amp;quot;auto&amp;quot;&lt;br /&gt;
	 data-minvalue_sec=&amp;quot;auto&amp;quot;&lt;br /&gt;
	 data-maxvalue_sec=&amp;quot;auto&amp;quot;&lt;br /&gt;
	 data-daysago_start = &amp;quot;0&amp;quot;&lt;br /&gt;
	 data-daysago_end = &amp;quot;-7&amp;quot;&lt;br /&gt;
	 data-xticks=&amp;quot;1440&amp;quot;&lt;br /&gt;
	 data-yticks=&amp;quot;auto&amp;quot;&lt;br /&gt;
	 data-title=&amp;quot;7-Tage-Wettervorhersage&amp;quot;&lt;br /&gt;
	 data-showlegend=&amp;quot;true&amp;quot;&lt;br /&gt;
	 class=&amp;quot;nobuttons fullsize&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hilfreiche Links und Quellen zu diesem Beispiel:&#039;&#039;&#039;&lt;br /&gt;
*[[LogProxy|LogProxy im FHEM-Wiki]]&lt;br /&gt;
*{{Link2Forum|Topic=22967|Message=246973|LinkText=Stundengenaue Wettervorhersage (#1) im FHEM-Forum}}&lt;br /&gt;
*{{Link2Forum|Topic=22967|Message=334713|LinkText=Stundengenaue Wettervorhersage (#2) im FHEM-Forum}}&lt;br /&gt;
&lt;br /&gt;
===Darstellung der Wetter Icons im Diagramm===&lt;br /&gt;
&lt;br /&gt;
[[File:Wetterchart2.png]]&lt;br /&gt;
&lt;br /&gt;
Wie oben bereits beschrieben, gibt es beim Chart grundsätzlich die Möglichkeit, Icons, welche in Form von URLs in den Logs abgelegt sind oder welche per logProxy generiert werden, darzustellen. Die Icons werden auf genau dem gleichen Weg von FHEM gelesen, wie alle anderen Datenpunkte. Im Folgenden wird ein Beispiel gezeigt, mit dem die im Proplanta Modul als Readings abgelegten Icons per logProxy Funktion gelesen und in ein Chart eingebaut werden könnnen.&lt;br /&gt;
Da es beim Proplanta Modul für die ersten 7 Tage nicht das Reading &amp;lt;code&amp;gt;fc#_weatherIcon&amp;lt;/code&amp;gt; gibt, sondern mehrere Readings für unterschiedliche Tageszeiten wogegen für die zweiten 7 Tage ausschließlich das Reading &amp;lt;code&amp;gt;fc#_weatherIcon&amp;lt;/code&amp;gt; vorhanden ist, sollte per &amp;lt;code&amp;gt;attr device userReading&amp;lt;/code&amp;gt; mit folgendem Eintrag dafür gesorgt werden, dass für alle Tage ein Reading &amp;lt;code&amp;gt;fc#_weatherIcon&amp;lt;/code&amp;gt; vorhanden ist (alternativ könnten auch 2 Graphen gezeichnet werden, wobei der erste dann nur die ersten 7 Tage enthält und der zweite die letzen 7 Tage, will man nur die ersten 7 Tage darstellen braucht man das userReading nicht unbedingt).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
fc0_weatherIcon {ReadingsVal(&amp;quot;AU.xx.WE.Proplanta&amp;quot;,&amp;quot;fc0_weatherDayIcon&amp;quot;,&amp;quot;&amp;quot;);},&lt;br /&gt;
fc1_weatherIcon {ReadingsVal(&amp;quot;AU.xx.WE.Proplanta&amp;quot;,&amp;quot;fc1_weatherDayIcon&amp;quot;,&amp;quot;&amp;quot;);},&lt;br /&gt;
fc2_weatherIcon {ReadingsVal(&amp;quot;AU.xx.WE.Proplanta&amp;quot;,&amp;quot;fc2_weatherDayIcon&amp;quot;,&amp;quot;&amp;quot;);},&lt;br /&gt;
fc3_weatherIcon {ReadingsVal(&amp;quot;AU.xx.WE.Proplanta&amp;quot;,&amp;quot;fc3_weatherDayIcon&amp;quot;,&amp;quot;&amp;quot;);},&lt;br /&gt;
fc4_weatherIcon {ReadingsVal(&amp;quot;AU.xx.WE.Proplanta&amp;quot;,&amp;quot;fc4_weatherDayIcon&amp;quot;,&amp;quot;&amp;quot;);},&lt;br /&gt;
fc5_weatherIcon {ReadingsVal(&amp;quot;AU.xx.WE.Proplanta&amp;quot;,&amp;quot;fc5_weatherDayIcon&amp;quot;,&amp;quot;&amp;quot;);},&lt;br /&gt;
fc6_weatherIcon {ReadingsVal(&amp;quot;AU.xx.WE.Proplanta&amp;quot;,&amp;quot;fc6_weatherDayIcon&amp;quot;,&amp;quot;&amp;quot;);}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Um die Icons darzustellen muss ein zusätzlicher Graph definiert werden. Dieser nutzt neben der Columnspec, die die URLs abruft den Parameter &amp;lt;code&amp;gt;data-ptype=&amp;quot;icons:#&amp;quot;&amp;lt;/code&amp;gt; (# ist eine Zahl und steht für die Nummer, beginnend bei 0 des Graphen, welcher für die y-Position der Icons verwendet werden soll) und den Stil &amp;lt;code&amp;gt;sym&amp;lt;/code&amp;gt;. Der Wert für die Symbolgröße sollte z.B. durch eine zusätzliche Definition im File fhem-tablet-ui-user.css in der Form:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
/* icon lines */&lt;br /&gt;
.ftui.l99icon	{ stroke:#DDA400; stroke-width:48px; fill:none; }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
angepasst werden.&lt;br /&gt;
&lt;br /&gt;
Im folgenden ein Beispiel, welches eine Linie für die Maximale Tagestemperatur zeichnet und auf dieser Linie die Wetter Icons darstellt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;chart&amp;quot;&lt;br /&gt;
	 data-device=&amp;quot;AU.xx.WE.Proplanta&amp;quot;&lt;br /&gt;
	 data-logdevice=&#039;[&lt;br /&gt;
	 					&amp;quot;myLogProxy&amp;quot;,&lt;br /&gt;
	 					&amp;quot;myLogProxy&amp;quot;&lt;br /&gt;
	 				]&#039;&lt;br /&gt;
	 data-columnspec=&#039;[&lt;br /&gt;
	 					&amp;quot;Func:logProxy_proplanta2Plot(\\x22AU.xx.WE.Proplanta\\x22,\\x22weatherIcon\\x22,$from,$to,12,\\x22day\\x22)&amp;quot;,&lt;br /&gt;
	 					&amp;quot;Func:logProxy_proplanta2Plot(\\x22AU.xx.WE.Proplanta\\x22,\\x22tempMax\\x22,$from,$to,12,\\x22day\\x22)&amp;quot;&lt;br /&gt;
	 				]&#039;&lt;br /&gt;
	 data-style=&#039;[&lt;br /&gt;
	 					&amp;quot;ftui l99icon&amp;quot;,&lt;br /&gt;
	 					&amp;quot;ftui l1fill&amp;quot;&lt;br /&gt;
	 			]&#039;&lt;br /&gt;
	 data-ptype=&#039;[&lt;br /&gt;
	 					&amp;quot;icons:1&amp;quot;,&lt;br /&gt;
	 					&amp;quot;quadraticSmooth&amp;quot;&lt;br /&gt;
	 			]&#039;&lt;br /&gt;
	 data-uaxis=&#039;[&lt;br /&gt;
	 					&amp;quot;primary&amp;quot;,&lt;br /&gt;
	 					&amp;quot;primary&amp;quot;&lt;br /&gt;
	 			]&#039;&lt;br /&gt;
	 data-legend=&#039;[&lt;br /&gt;
	 					&amp;quot;Wetterbedingung&amp;quot;,&lt;br /&gt;
	 					&amp;quot;Max. Temperature&amp;quot;&lt;br /&gt;
	 			]&#039;&lt;br /&gt;
	 data-yunit=&amp;quot;°C&amp;quot;&lt;br /&gt;
	 data-ytext=&amp;quot;Temperature (°C)&amp;quot;&lt;br /&gt;
	 data-timeformat=&amp;quot;ee\LF\dd.MM&amp;quot;&lt;br /&gt;
	 data-minvalue=&amp;quot;auto&amp;quot;&lt;br /&gt;
	 data-maxvalue=&amp;quot;auto&amp;quot;&lt;br /&gt;
	 data-minvalue_sec=&amp;quot;auto&amp;quot;&lt;br /&gt;
	 data-maxvalue_sec=&amp;quot;auto&amp;quot;&lt;br /&gt;
	 data-daysago_start=&amp;quot;-1w&amp;quot;&lt;br /&gt;
	 data-y_margin=&amp;quot;20&amp;quot;&lt;br /&gt;
	 data-daysago_end=&amp;quot;-3w&amp;quot;&lt;br /&gt;
	 data-xticks=&amp;quot;1440&amp;quot;&lt;br /&gt;
	 data-yticks=&amp;quot;auto&amp;quot;&lt;br /&gt;
	 data-title=&amp;quot;14-Tage-Wettervorhersage&amp;quot;&lt;br /&gt;
	 data-showlegend=&amp;quot;true&amp;quot;&lt;br /&gt;
	 class=&amp;quot;nobuttons fullsize&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Kuchendiagramme===&lt;br /&gt;
In folgendem Beispiel wird gezeigt, wie man ein &amp;quot;Kuchendiagramm&amp;quot; darstellen kann.&lt;br /&gt;
&lt;br /&gt;
[[File:PieChart.png]]&lt;br /&gt;
&lt;br /&gt;
Ähnlich wie bei den Beispielen für die Wetter Darstellungen wird hierzu auch wieder logProxy benötigt. Zunächst muss die folgende zusätzliche Funktion in &amp;lt;code&amp;gt;99_myUtils.pm&amp;lt;/code&amp;gt; einfügen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
#---------------------------------------&lt;br /&gt;
# Funktion zum Erzeugen der Inputs für Kuchendiagramme&lt;br /&gt;
#---------------------------------------&lt;br /&gt;
sub logProxy_values2PieChart($$$$;$$) {&lt;br /&gt;
	my ($device, $reading, $angle_start, $angle_dif, $inner_rad, $show_text) = @_;&lt;br /&gt;
	Log3 undef, 1, &amp;quot;$device, $reading, $angle_start, $angle_dif, $inner_rad, $show_text\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	use constant PI =&amp;gt; 4 * atan2(1,1);&lt;br /&gt;
	&lt;br /&gt;
	my $value=ReadingsVal($device,$reading,0);&lt;br /&gt;
&lt;br /&gt;
	my $angle_delta = $value/100*360;&lt;br /&gt;
	$angle_start = $angle_start/100*360;&lt;br /&gt;
	&lt;br /&gt;
	my $rad=10;&lt;br /&gt;
	my $irad=0;&lt;br /&gt;
	if ($inner_rad) {&lt;br /&gt;
		$irad = $rad*$inner_rad;&lt;br /&gt;
	}&lt;br /&gt;
	my $angle=$angle_start/360*2.0*PI;&lt;br /&gt;
	my $x=$irad*sin($angle);&lt;br /&gt;
	my $y=$irad*cos($angle);&lt;br /&gt;
	my $ret .= &amp;quot;;p &amp;quot;.$x.&amp;quot; &amp;quot;.$y.&amp;quot;\n&amp;quot;; # add segment at angle $angle&lt;br /&gt;
	&lt;br /&gt;
	for (my $i=$angle_start; $i&amp;lt;=$angle_start+$angle_delta; $i+=$angle_dif) {&lt;br /&gt;
		$angle = $i/360*2.0*PI;&lt;br /&gt;
		$x = $rad*sin($angle);&lt;br /&gt;
		$y = $rad*cos($angle);&lt;br /&gt;
		$ret .= &amp;quot;;p &amp;quot;.$x.&amp;quot; &amp;quot;.$y.&amp;quot;\n&amp;quot;; # add segment at angle $angle&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$angle = ($angle_start+$angle_delta)/360*2.0*PI; # add last segment &lt;br /&gt;
	$ret .= &amp;quot;;p &amp;quot;.$rad*sin($angle).&amp;quot; &amp;quot;.$rad*cos($angle).&amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	if ($inner_rad) {&lt;br /&gt;
		for (my $i=$angle_start; $i&amp;lt;$angle_start+$angle_delta; $i+=$angle_dif) {&lt;br /&gt;
			$angle = ($angle_start+$angle_start+$angle_delta-$i)/360*2.0*PI;&lt;br /&gt;
			$x = $irad*sin($angle);&lt;br /&gt;
			$y = $irad*cos($angle);&lt;br /&gt;
			$ret .= &amp;quot;;p &amp;quot;.$x.&amp;quot; &amp;quot;.$y.&amp;quot;\n&amp;quot;; # add segment at angle $angle&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$angle = ($angle_start)/360*2.0*PI; # add last segment &lt;br /&gt;
	$ret .= &amp;quot;;p &amp;quot;.$irad*sin($angle).&amp;quot; &amp;quot;.$irad*cos($angle).&amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	if ($show_text) { # show text values&lt;br /&gt;
		$x = ($rad+$irad)/2*sin((2*$angle_start+$angle_delta)/2/360*2.0*PI);&lt;br /&gt;
		$y = ($rad+$irad)/2*cos((2*$angle_start+$angle_delta)/2/360*2.0*PI);&lt;br /&gt;
&lt;br /&gt;
		$ret .= &amp;quot;;t &amp;quot;.$x.&amp;quot; &amp;quot;.$y.&amp;quot; middle &amp;quot;.$show_text.&amp;quot;:&amp;quot;.$value.&amp;quot;%\n&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return($ret);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In FHEM braucht man Readings, welche eine Zahl enthalten, die als Prozentwert interpretiert wird. Für jeden Prozentwert (also für jedes Reading) generiert die o.a. Funktion nun den Chart Input für ein Kuchenstück und liefert diesen als Antwort auf das GET, welches das Chart Widget auslöst. Dazu braucht die Funktion folgende Parameter: (Name des FHEM Devices, Name des Readings, Start Winkel des Kuchenstücks (Mathematisch gegen den Uhrzeigersinn in Grad), Delta Winkel zum Zeichnen (legt fest in welchen Schritten der Teilkreis des Kuchenstücks gezeichnet wird), Skalierungsfaktor für inneren Ring wenn ein Ring gezeichtnet werden soll (0 bedeutet komplette Kuchenstücke), optionaler Text der ins Kuchenstück vor die Prozentzahl geschrieben wird).&lt;br /&gt;
Im Folgenden eine Beispielkonfiguration für die Darstellung als Kuchendiagramm, die Readings heißen hier dPer1 bis dPer4. Der Startwinkel wird duch Aufsummierung der jeweils vorher schon gezeichneten Kuchenstücke gebildet, dadurch entstehen aneinander hängende Stücke.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[[Datei:[[Datei:Beispiel.jpg]]]]&amp;lt;div class=&amp;quot;normal noaxes nobuttons&amp;quot;&lt;br /&gt;
        data-type=&amp;quot;chart&amp;quot;&lt;br /&gt;
        data-logdevice=&#039;[&amp;quot;lp&amp;quot;]&#039;&lt;br /&gt;
		data-logfile=&amp;quot;CURRENT&amp;quot;&lt;br /&gt;
        data-columnspec=&#039;[&lt;br /&gt;
			&amp;quot;Func:logProxy_values2PieChart(\&amp;quot;dPer1\&amp;quot;,\&amp;quot;state\&amp;quot;,ReadingsVal(\&amp;quot;dPer4\&amp;quot;,\&amp;quot;state\&amp;quot;,0)+ReadingsVal(\&amp;quot;dPer3\&amp;quot;,\&amp;quot;state\&amp;quot;,0),5,0,\&amp;quot;first\&amp;quot;)&amp;quot;,&lt;br /&gt;
			&amp;quot;Func:logProxy_values2PieChart(\&amp;quot;dPer2\&amp;quot;,\&amp;quot;state\&amp;quot;,ReadingsVal(\&amp;quot;dPer4\&amp;quot;,\&amp;quot;state\&amp;quot;,0)+ReadingsVal(\&amp;quot;dPer3\&amp;quot;,\&amp;quot;state\&amp;quot;,0)+ReadingsVal(\&amp;quot;dPer1\&amp;quot;,\&amp;quot;state\&amp;quot;,0),5,0,\&amp;quot;second\&amp;quot;)&amp;quot;,&lt;br /&gt;
			&amp;quot;Func:logProxy_values2PieChart(\&amp;quot;dPer3\&amp;quot;,\&amp;quot;state\&amp;quot;,ReadingsVal(\&amp;quot;dPer4\&amp;quot;,\&amp;quot;state\&amp;quot;,0),5,0,\&amp;quot;third\&amp;quot;)&amp;quot;,&lt;br /&gt;
			&amp;quot;Func:logProxy_values2PieChart(\&amp;quot;dPer4\&amp;quot;,\&amp;quot;state\&amp;quot;,0,5,0,\&amp;quot;fourth\&amp;quot;)&amp;quot;&lt;br /&gt;
		]&#039;&lt;br /&gt;
        data-style=&#039;[&amp;quot;ftui l0fill&amp;quot;,&amp;quot;ftui l1fill&amp;quot;,&amp;quot;ftui l2fill&amp;quot;,&amp;quot;ftui l3fill&amp;quot;]&#039;&lt;br /&gt;
        data-ptype=&#039;[&amp;quot;lines&amp;quot;]&#039;&lt;br /&gt;
        data-uaxis=&#039;[&amp;quot;primary&amp;quot;]&#039;&lt;br /&gt;
        data-legend=&#039;[&amp;quot;First&amp;quot;,&amp;quot;Second&amp;quot;,&amp;quot;Third&amp;quot;,&amp;quot;Fourth&amp;quot;]&#039;&lt;br /&gt;
		data-legendpos=&#039;[&amp;quot;left&amp;quot;,&amp;quot;top&amp;quot;]&#039;&lt;br /&gt;
        data-yunit=&amp;quot;&amp;quot;&lt;br /&gt;
        data-height=&amp;quot;300&amp;quot;&lt;br /&gt;
        data-width=&amp;quot;300&amp;quot;&lt;br /&gt;
		data-ddd=&#039;[&amp;quot;-40&amp;quot;,&amp;quot;0&amp;quot;,&amp;quot;0&amp;quot;]&#039;&lt;br /&gt;
		data-dddspace=&#039;[&amp;quot;-10&amp;quot;]&#039;&lt;br /&gt;
		data-dddwidth=&#039;[&amp;quot;10&amp;quot;]&#039;&lt;br /&gt;
		data-showlegend=&amp;quot;true&amp;quot;&lt;br /&gt;
		data-legend_horiz=&amp;quot;true&amp;quot;&lt;br /&gt;
        data-xticks=&amp;quot;auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Fensterstatus offen/geschlossen===&lt;br /&gt;
Dieses Beispiel zeigt, wie ein Fensterkontakt, dessen Reading die Werte &amp;lt;code&amp;gt;closed&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;open&amp;lt;/code&amp;gt; einnimmt, als Graph gezeichnet werden kann. Technisch gesehen werden hier die Werte &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; gezeichnet, indem über das Attribut &#039;&#039;&#039;data-columnspec&#039;&#039;&#039; dem Zustand &amp;lt;code&amp;gt;open&amp;lt;/code&amp;gt; der Wert &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; und allen anderen Zuständen der Wert &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; zugeordnet wird. Über das Attribut &#039;&#039;&#039;data-yticks&#039;&#039;&#039; wird die Beschriftung an der Y-Achse (&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;) gegen einen frei definierbaren Text ausgetauscht.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;chart&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;wz_fensterstatus&amp;quot;&lt;br /&gt;
	data-logdevice=&#039;[&amp;quot;myDbLog&amp;quot;]&#039;&lt;br /&gt;
	data-logfile=&#039;[&amp;quot;HISTORY&amp;quot;]&#039;&lt;br /&gt;
	data-columnspec=&#039;[&amp;quot;wz_fensterstatus:state:0::$val=($val=~\\x22open\\x22?1:0)&amp;quot;]&#039;&lt;br /&gt;
	data-style=&#039;[&amp;quot;ftui l4fill&amp;quot;]&#039;&lt;br /&gt;
	data-ptype=&#039;[&amp;quot;steps&amp;quot;]&#039;&lt;br /&gt;
	data-height=&amp;quot;290&amp;quot;&lt;br /&gt;
	data-yticks=&#039;[[0,&amp;quot;geschlossen&amp;quot;],[1,&amp;quot;offen&amp;quot;]]&#039;&lt;br /&gt;
	data-minvalue=&amp;quot;0&amp;quot;&lt;br /&gt;
	data-maxvalue=&amp;quot;1.1&amp;quot;&lt;br /&gt;
	data-nofulldays=&amp;quot;true&amp;quot;&lt;br /&gt;
	data-daysago_start=&amp;quot;1&amp;quot;&lt;br /&gt;
	data-daysago_end=&amp;quot;-1&amp;quot;&lt;br /&gt;
	data-cursorgroup=&amp;quot;1&amp;quot;&lt;br /&gt;
	data-scrollgroup=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hinweis:&#039;&#039;&#039; Das Beispiel funktioniert nur mit DbLog. Falls Logfiles verwendet werden muss statt &#039;$val&#039; &#039;$fld[&#039;&#039;num&#039;&#039;]&#039; verwendet werden. Hierbei steht &#039;&#039;num&#039;&#039; für die Spalte (beginnend bei 0) in der die Daten stehen.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
{{Link2Forum|Topic= 48450 |Message=401006|LinkText=Thread im FHEM-Forum}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Chart]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Switch&amp;diff=28647</id>
		<title>FTUI Widget Switch</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Switch&amp;diff=28647"/>
		<updated>2018-12-08T20:03:30Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Switch Widget]] ist ein Widget für [[FHEM Tablet UI]]. Dabei handelt es sich um einen Ein-/Ausschalter in Form eines runden Druckknopfes. Er dient zum Ausführen beliebiger Schaltbefehle und kann auch für FTUI-interne Steuerungen genutzt werden. Zusätzlich kann der Schalter in Abhängigkeit eines Readings sein Aussehen verändern und so zwei oder mehr Zustände optisch darstellen. Beispielsweise können Farbe und/oder das Symbol die Zustände an/aus anzeigen. Kann das Status-Reading mehr als zwei Zustände einnehmen, kann auch dies dargestellt werden. Dabei sind beliebige Kombinationen von Vorder-/Hintergrundfarben und Symbolen möglich.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Switch.png&lt;br /&gt;
File:Switch4.png&lt;br /&gt;
File:FTUI_Switch-Homestatus2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
===Standard-Attribute===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading gesetzt werden soll (&amp;lt;command&amp;gt; &#039;&#039;&#039;&amp;lt;device&amp;gt;&#039;&#039;&#039; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, dessen Inhalt den aktuellen Wert wiedergibt||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Reading, das gesetzt werden soll (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &#039;&#039;&#039;&amp;lt;reading&amp;gt;&#039;&#039;&#039; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der gesendet werden soll (&#039;&#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;&#039; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) (z.B. setstate, set, setreading, trigger)||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-doubleclick&#039;&#039;&#039;||Zeit [ms], in der ein zweiter Klick erfolgen muss, damit die Betätigung angenommen wird. &#039;0&#039; schaltet dieses Verhalten ab.||0||data-doubleclick=&amp;quot;800&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Gütige Werte sind &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Name des Icons im Vordergrund||&#039;fa-lightbulb-o&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039;||Name des Icons, das als Hintergrund verwendet werden soll||&#039;fa-circle&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-color&#039;&#039;&#039;||Farbe des Icon (RGB-Angabe oder Farbname)||#2A2A2A||data-color=&amp;quot;#c0c0c0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Hintergrundfarbe des Widgets||#505050||data-background-color=&amp;quot;none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn&#039;&#039;&#039;||Reading, dessen Inhalt als rotes Kennzeichen angezeigt wird. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-on&#039;&#039;&#039;||Werte von &#039;&#039;&#039;data-warn&#039;&#039;&#039;, bei denen das Kennzeichen angezeigt wird||&amp;lt;nowiki&amp;gt;&#039;true|on|[1-9]{1}[0-9]*&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-off&#039;&#039;&#039;||Werte von &#039;&#039;&#039;data-warn&#039;&#039;&#039;, bei denen das Kennzeichen versteckt wird||&amp;lt;nowiki&amp;gt;&#039;false|off|0&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-color&#039;&#039;&#039;||Textfarbe des Kennzeichens||&#039;#aaa&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-background-color&#039;&#039;&#039;||Hintergrundfarbe des Kennzeichens||&#039;#aa2200&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading zum Verstecken des Elementes. Das Element verschwindet, wenn der Wert mit &#039;&#039;&#039;data-hide-on&#039;&#039;&#039; übereinstimmt.||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Zeichenkette, bei der das Element versteckt wird||&amp;lt;nowiki&amp;gt;&#039;true|1|on&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-off&#039;&#039;&#039;||Zeichenkette, bei der das Element angezeigt wird||&#039;!on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hideparents&#039;&#039;&#039;||jQuery-Selector, um auch die Eltern-Elemente zu verstecken||||data-hideparents=&amp;quot;#Name&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-reachable&#039;&#039;&#039;||Reading, dessen Inhalt angibt, ob das Device erreichbar ist, oder nicht. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-timeout&#039;&#039;&#039;||Maximale Zeit, die der eingestellte Zustand nach einer Veränderung angezeigt wird, bis die echte Rückmeldung vom Device wieder angezeigt wird||2000ms||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute für zwei Zustände===&lt;br /&gt;
Zur Anzeige von zwei Zuständen können nachfolgende Attribute zusätzlich zu den Standard-Attributen genutzt werden.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Zeichenkette oder ein Array von Werten, die als Zustand ON interpretiert werden||&#039;on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039;||Zeichenkette oder ein Array von Werten, die als Zustand OFF interpretiert werden||&#039;off&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-on&#039;&#039;&#039;||Wert, der beim Einschalten gesendet werden soll ||Wert von &#039;&#039;&#039;data-get-on&#039;&#039;&#039;||data-set-on=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-off&#039;&#039;&#039;||Wert, der beim Ausschalten gesendet werden soll||Wert von &#039;&#039;&#039;data-get-off&#039;&#039;&#039;||data-set-off=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039;||Iconfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039;||Iconfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#505050&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039;||Hintergrundfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039;||Hintergrundfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#505050&#039;||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;data-get-on&#039;&#039;&#039; und &#039;&#039;&#039;data-get-off&#039;&#039;&#039; können auch RegEx enthalten:&lt;br /&gt;
&amp;lt;code&amp;gt;data-get-on=&amp;quot;[0-9]{1,3}|on&amp;quot;&amp;lt;/code&amp;gt; bedeutet, dass der Schalter AN ist, wenn das Reading eine Zahl zwischen 0 und 100 ist, oder den Wert &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; enthält.&lt;br /&gt;
&amp;lt;code&amp;gt;data-get-off=&amp;quot;!on&amp;quot;&amp;lt;/code&amp;gt; bedeutet, dass alle Werte, die nicht für &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; stehen, automatisch &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; bedeuten (Negation).&lt;br /&gt;
&amp;lt;code&amp;gt;data-set-off=&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; unterdrückt das Senden eines OFF-Befehls.&lt;br /&gt;
&#039;&#039;&#039;data-[on|off]-color&#039;&#039;&#039; erwartet einen RGB-Wert, wenn dieser aus einen Reading gelesen wird (&amp;lt;code&amp;gt;rgb(0, 0, 0)&amp;lt;/code&amp;gt; statt &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
===Attribute für mehrere Zustände===&lt;br /&gt;
Zur Anzeige von mehreren Zuständen können nachfolgende Attribute zusätzlich zu den Standard-Attributen genutzt werden.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-states&#039;&#039;&#039;||Array von Werten, die das Reading einnehmen kann||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-states&#039;&#039;&#039;||Array von Werten, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; geschaltet werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icons&#039;&#039;&#039;||Array von Icons, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; im Vordergrund angezeigt werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icons&#039;&#039;&#039;||Array von Icons, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; im Hintergrund angezeigt werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-colors&#039;&#039;&#039;||Array von Farben, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; das Vordergrund-Icon einfärben||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-colors&#039;&#039;&#039;||Array von Farben, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; das Hintergrund-Icon einfärben||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
{{FTUI Klasse|readonly}}{{FTUI Klasse|small}}{{FTUI Klasse|compressed}}{{FTUI Klasse|compressed-50}}{{FTUI Klasse|height-narrow}}{{FTUI Klasse|invert}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
*Das Attribut &#039;&#039;&#039;data-timeout&#039;&#039;&#039; dient dazu, ein &amp;quot;Flackern&amp;quot; der Anzeige zu verhindern. Manche Devices benötigen einige Zeit, bis der gewünschte und eben eingestellte Zustand erreicht wird. Zitat aus dem Forum: &amp;lt;cite&amp;gt;&amp;quot;data-timeout gilt nur für die on-off (toggle) Funktion von Switch und Dimmer, nicht fürs Dimmen. Das Problem: Am Switch wird eingeschaltet, der Knopf wird hell und ON an FHEM gesendet. Aber die Hardware reagiert nicht, geht nicht auf ON. Wenn sie das machen würde, käme auch eine Bestätigung per Longpoll. Mit &#039;&#039;&#039;data-timeout&#039;&#039;&#039; wird die eingestellte Zeit gewartet und bei Ausbleiben der Bestätigung fällt der Switch zum ursprünglichen Status zurück, geht also wieder aus. Nur wenn innerhalb der x Sekunden das Longpoll-Event kommt, wird der Fallbacktimer gestoppt.&amp;quot;&amp;lt;/cite&amp;gt;&lt;br /&gt;
*Die Attribute für Dual-State (zwei Zustände) und Multi-State (mehrere Zustände) können &#039;&#039;&#039;nicht gemeinsam&#039;&#039;&#039; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===An/Aus===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt.&lt;br /&gt;
&lt;br /&gt;
[[File:Switch.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;MyDevice&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===An/Aus (Farben invertiert)===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt. Die Farben sind hier im Gegensatz zum vorherigen Beispiel invertiert.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;MyDevice&amp;quot; class=&amp;quot;invert&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===1/0 als Befehl===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-icon=&amp;quot;fa-rss&amp;quot;&lt;br /&gt;
	data-device=&#039;MyDevice&#039;&lt;br /&gt;
	data-get-on=&amp;quot;1&amp;quot; &lt;br /&gt;
	data-get-off=&amp;quot;0&amp;quot; &lt;br /&gt;
	data-set-on=&amp;quot;1&amp;quot; &lt;br /&gt;
	data-set-off=&amp;quot;0&amp;quot;&lt;br /&gt;
	class=&amp;quot;green small invert&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MILIGHT-Switch===&lt;br /&gt;
Beispiel for einen MILIGHT-Schalter. Der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;-Zustand wird per RegEx ermittelt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;MILIGHT_Zone1_Wohnzimmer&amp;quot; &lt;br /&gt;
	data-get-on=&amp;quot;on.*&amp;quot;&lt;br /&gt;
	data-get-off=&amp;quot;off&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4-fach-Schalter===&lt;br /&gt;
Gruppe von 4 Schaltern, die den Status des selben Devices umschalten.&lt;br /&gt;
&lt;br /&gt;
[[File:Switch4.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-home&amp;quot; data-get-on=&amp;quot;Home&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Home&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-bed&amp;quot; data-get-on=&amp;quot;Sleep&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Sleep&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-car&amp;quot; data-get-on=&amp;quot;Away&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Away&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-suitcase&amp;quot; data-get-on=&amp;quot;Holiday&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Holiday&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Zwei Zustände umschalten===&lt;br /&gt;
Großer Homestatus-Button, der zwischen zwei Zuständen umschaltet.&lt;br /&gt;
&lt;br /&gt;
[[File:FTUI_Switch-Homestatus2.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;2&amp;quot; data-sizey=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;header&amp;gt;HOMESTATUS&amp;lt;/header&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
		data-device=&amp;quot;dummy3&amp;quot;&lt;br /&gt;
		data-set-states=&#039;[&amp;quot;Abwesend&amp;quot;,&amp;quot;Anwesend&amp;quot;]&#039;&lt;br /&gt;
		data-states=&#039;[&amp;quot;Anwesend&amp;quot;,&amp;quot;Abwesend&amp;quot;]&#039;&lt;br /&gt;
		data-icons=&#039;[&amp;quot;fa-home&amp;quot;, &amp;quot;fa-car&amp;quot;]&#039;&lt;br /&gt;
		data-colors=&#039;[&amp;quot;white&amp;quot;, &amp;quot;white&amp;quot;]&#039;&lt;br /&gt;
		data-background-colors=&#039;[&amp;quot;green&amp;quot;, &amp;quot;red&amp;quot;]&#039;&lt;br /&gt;
		class=&amp;quot;bigger top-space&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serienschaltung: Mehrere Zustände nacheinander===&lt;br /&gt;
Bei jeder Betätigung wird der nächste der hinterlegten Zustände eingenommen.&lt;br /&gt;
Man beachte die Reihenfolge in data-set-states und data-states.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;Test&amp;quot;&lt;br /&gt;
	data-set-states=&#039;[&amp;quot;on&amp;quot;,&amp;quot;off&amp;quot;,&amp;quot;auto&amp;quot;]&#039;&lt;br /&gt;
	data-states=&#039;[&amp;quot;auto&amp;quot;,&amp;quot;on&amp;quot;,&amp;quot;off&amp;quot;]&#039;&lt;br /&gt;
	data-icons=&#039;[&amp;quot;fa-tint&amp;quot;,&amp;quot;fa-tint&amp;quot;,&amp;quot;fa-tint&amp;quot;]&#039;&lt;br /&gt;
	data-colors=&#039;[&amp;quot;white&amp;quot;,&amp;quot;white&amp;quot;,&amp;quot;white&amp;quot;]&#039;&lt;br /&gt;
	data-background-colors=&#039;[&amp;quot;blue&amp;quot;,&amp;quot;green&amp;quot;,&amp;quot;red&amp;quot;]&#039;	&lt;br /&gt;
	class=&amp;quot;small&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Beschriftete Schaltflächen===&lt;br /&gt;
[[File:FTUI-Ein-Aus-Schalter.png|150px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Mit Hintergrund: --&amp;gt;&lt;br /&gt;
  &amp;lt;div data-type=&amp;quot;switch&amp;quot; &lt;br /&gt;
  data-icon=&amp;quot;&amp;quot; &lt;br /&gt;
  data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
  data-set-on=&amp;quot;Ein&amp;quot; &lt;br /&gt;
  data-set-off=&amp;quot;Aus&amp;quot; &lt;br /&gt;
  data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039; &lt;br /&gt;
  data-background-colors=&#039;[&amp;quot;#90D49A&amp;quot;,&amp;quot;#E37D7D&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
    data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
    data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039; &lt;br /&gt;
    data-colors=&#039;[&amp;quot;#5B8562&amp;quot;,&amp;quot;#854646&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ohne Hintergrund: --&amp;gt;&lt;br /&gt;
  &amp;lt;div data-type=&amp;quot;switch&amp;quot; &lt;br /&gt;
  data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
  data-icon=&amp;quot;&amp;quot; &lt;br /&gt;
  data-background-icon=&amp;quot;&amp;quot; &lt;br /&gt;
  data-set-on=&amp;quot;Ein&amp;quot; &lt;br /&gt;
  data-set-off=&amp;quot;Aus&amp;quot; &lt;br /&gt;
  data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
    data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
    data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039; &lt;br /&gt;
    data-colors=&#039;[&amp;quot;#5B8562&amp;quot;,&amp;quot;#854646&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Switch]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Switch&amp;diff=28646</id>
		<title>FTUI Widget Switch</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Switch&amp;diff=28646"/>
		<updated>2018-12-08T19:57:51Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Beispiele */ Beschriftete Schaltflächen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Switch Widget]] ist ein Widget für [[FHEM Tablet UI]]. Dabei handelt es sich um einen Ein-/Ausschalter in Form eines runden Druckknopfes. Er dient zum Ausführen beliebiger Schaltbefehle und kann auch für FTUI-interne Steuerungen genutzt werden. Zusätzlich kann der Schalter in Abhängigkeit eines Readings sein Aussehen verändern und so zwei oder mehr Zustände optisch darstellen. Beispielsweise können Farbe und/oder das Symbol die Zuständen an/aus anzeigen. Kann das Status-Reading mehr als zwei Zustände einnehmen, kann auch dies dargestellt werden. Dabei sind beliebige Kombinationen von Vorder-/Hintergrundfarben und Symbolen möglich.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Switch.png&lt;br /&gt;
File:Switch4.png&lt;br /&gt;
File:FTUI_Switch-Homestatus2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
===Standard-Attribute===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading gesetzt werden soll (&amp;lt;command&amp;gt; &#039;&#039;&#039;&amp;lt;device&amp;gt;&#039;&#039;&#039; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, dessen Inhalt den aktuellen Wert wiedergibt||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Reading, das gesetzt werden soll (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &#039;&#039;&#039;&amp;lt;reading&amp;gt;&#039;&#039;&#039; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der gesendet werden soll (&#039;&#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;&#039; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) (z.B. setstate, set, setreading, trigger)||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-doubleclick&#039;&#039;&#039;||Zeit [ms], in der ein zweiter Klick erfolgen muss, damit die Betätigung angenommen wird. &#039;0&#039; schaltet dieses Verhalten ab.||0||data-doubleclick=&amp;quot;800&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Gütige Werte sind &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Name des Icons im Vordergrund||&#039;fa-lightbulb-o&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039;||Name des Icons, das als Hintergrund verwendet werden soll||&#039;fa-circle&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-color&#039;&#039;&#039;||Farbe des Icon (RGB-Angabe oder Farbname)||#2A2A2A||data-color=&amp;quot;#c0c0c0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Hintergrundfarbe des Widgets||#505050||data-background-color=&amp;quot;none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn&#039;&#039;&#039;||Reading, dessen Inhalt als rotes Kennzeichen angezeigt wird. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-on&#039;&#039;&#039;||Werte von &#039;&#039;&#039;data-warn&#039;&#039;&#039;, bei denen das Kennzeichen angezeigt wird||&amp;lt;nowiki&amp;gt;&#039;true|on|[1-9]{1}[0-9]*&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-off&#039;&#039;&#039;||Werte von &#039;&#039;&#039;data-warn&#039;&#039;&#039;, bei denen das Kennzeichen versteckt wird||&amp;lt;nowiki&amp;gt;&#039;false|off|0&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-color&#039;&#039;&#039;||Textfarbe des Kennzeichens||&#039;#aaa&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-background-color&#039;&#039;&#039;||Hintergrundfarbe des Kennzeichens||&#039;#aa2200&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading zum Verstecken des Elementes. Das Element verschwindet, wenn der Wert mit &#039;&#039;&#039;data-hide-on&#039;&#039;&#039; übereinstimmt.||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Zeichenkette, bei der das Element versteckt wird||&amp;lt;nowiki&amp;gt;&#039;true|1|on&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-off&#039;&#039;&#039;||Zeichenkette, bei der das Element angezeigt wird||&#039;!on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hideparents&#039;&#039;&#039;||jQuery-Selector, um auch die Eltern-Elemente zu verstecken||||data-hideparents=&amp;quot;#Name&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-reachable&#039;&#039;&#039;||Reading, dessen Inhalt angibt, ob das Device erreichbar ist, oder nicht. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-timeout&#039;&#039;&#039;||Maximale Zeit, die der eingestellte Zustand nach einer Veränderung angezeigt wird, bis die echte Rückmeldung vom Device wieder angezeigt wird||2000ms||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute für zwei Zustände===&lt;br /&gt;
Zur Anzeige von zwei Zuständen können nachfolgende Attribute zusätzlich zu den Standard-Attributen genutzt werden.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Zeichenkette oder ein Array von Werten, die als Zustand ON interpretiert werden||&#039;on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039;||Zeichenkette oder ein Array von Werten, die als Zustand OFF interpretiert werden||&#039;off&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-on&#039;&#039;&#039;||Wert, der beim Einschalten gesendet werden soll ||Wert von &#039;&#039;&#039;data-get-on&#039;&#039;&#039;||data-set-on=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-off&#039;&#039;&#039;||Wert, der beim Ausschalten gesendet werden soll||Wert von &#039;&#039;&#039;data-get-off&#039;&#039;&#039;||data-set-off=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039;||Iconfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039;||Iconfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#505050&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039;||Hintergrundfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039;||Hintergrundfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#505050&#039;||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;data-get-on&#039;&#039;&#039; und &#039;&#039;&#039;data-get-off&#039;&#039;&#039; können auch RegEx enthalten:&lt;br /&gt;
&amp;lt;code&amp;gt;data-get-on=&amp;quot;[0-9]{1,3}|on&amp;quot;&amp;lt;/code&amp;gt; bedeutet, dass der Schalter AN ist, wenn das Reading eine Zahl zwischen 0 und 100 ist, oder den Wert &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; enthält.&lt;br /&gt;
&amp;lt;code&amp;gt;data-get-off=&amp;quot;!on&amp;quot;&amp;lt;/code&amp;gt; bedeutet, dass alle Werte, die nicht für &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; stehen, automatisch &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; bedeuten (Negation).&lt;br /&gt;
&amp;lt;code&amp;gt;data-set-off=&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; unterdrückt das Senden eines OFF-Befehls.&lt;br /&gt;
&#039;&#039;&#039;data-[on|off]-color&#039;&#039;&#039; erwartet einen RGB-Wert, wenn dieser aus einen Reading gelesen wird (&amp;lt;code&amp;gt;rgb(0, 0, 0)&amp;lt;/code&amp;gt; statt &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
===Attribute für mehrere Zustände===&lt;br /&gt;
Zur Anzeige von mehreren Zuständen können nachfolgende Attribute zusätzlich zu den Standard-Attributen genutzt werden.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-states&#039;&#039;&#039;||Array von Werten, die das Reading einnehmen kann||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-states&#039;&#039;&#039;||Array von Werten, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; geschaltet werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icons&#039;&#039;&#039;||Array von Icons, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; im Vordergrund angezeigt werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icons&#039;&#039;&#039;||Array von Icons, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; im Hintergrund angezeigt werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-colors&#039;&#039;&#039;||Array von Farben, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; das Vordergrund-Icon einfärben||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-colors&#039;&#039;&#039;||Array von Farben, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; das Hintergrund-Icon einfärben||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
{{FTUI Klasse|readonly}}{{FTUI Klasse|small}}{{FTUI Klasse|compressed}}{{FTUI Klasse|compressed-50}}{{FTUI Klasse|height-narrow}}{{FTUI Klasse|invert}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
*Das Attribut &#039;&#039;&#039;data-timeout&#039;&#039;&#039; dient dazu, ein &amp;quot;Flackern&amp;quot; der Anzeige zu verhindern. Manche Devices benötigen einige Zeit, bis der gewünschte und eben eingestellte Zustand erreicht wird. Zitat aus dem Forum: &amp;lt;cite&amp;gt;&amp;quot;data-timeout gilt nur für die on-off (toggle) Funktion von Switch und Dimmer, nicht fürs Dimmen. Das Problem: Am Switch wird eingeschaltet, der Knopf wird hell und ON an FHEM gesendet. Aber die Hardware reagiert nicht, geht nicht auf ON. Wenn sie das machen würde, käme auch eine Bestätigung per Longpoll. Mit &#039;&#039;&#039;data-timeout&#039;&#039;&#039; wird die eingestellte Zeit gewartet und bei Ausbleiben der Bestätigung fällt der Switch zum ursprünglichen Status zurück, geht also wieder aus. Nur wenn innerhalb der x Sekunden das Longpoll-Event kommt, wird der Fallbacktimer gestoppt.&amp;quot;&amp;lt;/cite&amp;gt;&lt;br /&gt;
*Die Attribute für Dual-State (zwei Zustände) und Multi-State (mehrere Zustände) können &#039;&#039;&#039;nicht gemeinsam&#039;&#039;&#039; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===An/Aus===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt.&lt;br /&gt;
&lt;br /&gt;
[[File:Switch.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;MyDevice&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===An/Aus (Farben invertiert)===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt. Die Farben sind hier im Gegensatz zum vorherigen Beispiel invertiert.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;MyDevice&amp;quot; class=&amp;quot;invert&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===1/0 als Befehl===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-icon=&amp;quot;fa-rss&amp;quot;&lt;br /&gt;
	data-device=&#039;MyDevice&#039;&lt;br /&gt;
	data-get-on=&amp;quot;1&amp;quot; &lt;br /&gt;
	data-get-off=&amp;quot;0&amp;quot; &lt;br /&gt;
	data-set-on=&amp;quot;1&amp;quot; &lt;br /&gt;
	data-set-off=&amp;quot;0&amp;quot;&lt;br /&gt;
	class=&amp;quot;green small invert&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MILIGHT-Switch===&lt;br /&gt;
Beispiel for einen MILIGHT-Schalter. Der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;-Zustand wird per RegEx ermittelt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;MILIGHT_Zone1_Wohnzimmer&amp;quot; &lt;br /&gt;
	data-get-on=&amp;quot;on.*&amp;quot;&lt;br /&gt;
	data-get-off=&amp;quot;off&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4-fach-Schalter===&lt;br /&gt;
Gruppe von 4 Schaltern, die den Status des selben Devices umschalten.&lt;br /&gt;
&lt;br /&gt;
[[File:Switch4.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-home&amp;quot; data-get-on=&amp;quot;Home&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Home&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-bed&amp;quot; data-get-on=&amp;quot;Sleep&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Sleep&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-car&amp;quot; data-get-on=&amp;quot;Away&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Away&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-suitcase&amp;quot; data-get-on=&amp;quot;Holiday&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Holiday&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Zwei Zustände umschalten===&lt;br /&gt;
Großer Homestatus-Button, der zwischen zwei Zuständen umschaltet.&lt;br /&gt;
&lt;br /&gt;
[[File:FTUI_Switch-Homestatus2.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;2&amp;quot; data-sizey=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;header&amp;gt;HOMESTATUS&amp;lt;/header&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
		data-device=&amp;quot;dummy3&amp;quot;&lt;br /&gt;
		data-set-states=&#039;[&amp;quot;Abwesend&amp;quot;,&amp;quot;Anwesend&amp;quot;]&#039;&lt;br /&gt;
		data-states=&#039;[&amp;quot;Anwesend&amp;quot;,&amp;quot;Abwesend&amp;quot;]&#039;&lt;br /&gt;
		data-icons=&#039;[&amp;quot;fa-home&amp;quot;, &amp;quot;fa-car&amp;quot;]&#039;&lt;br /&gt;
		data-colors=&#039;[&amp;quot;white&amp;quot;, &amp;quot;white&amp;quot;]&#039;&lt;br /&gt;
		data-background-colors=&#039;[&amp;quot;green&amp;quot;, &amp;quot;red&amp;quot;]&#039;&lt;br /&gt;
		class=&amp;quot;bigger top-space&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serienschaltung: Mehrere Zustände nacheinander===&lt;br /&gt;
Bei jeder Betätigung wird der nächste der hinterlegten Zustände eingenommen.&lt;br /&gt;
Man beachte die Reihenfolge in data-set-states und data-states.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;Test&amp;quot;&lt;br /&gt;
	data-set-states=&#039;[&amp;quot;on&amp;quot;,&amp;quot;off&amp;quot;,&amp;quot;auto&amp;quot;]&#039;&lt;br /&gt;
	data-states=&#039;[&amp;quot;auto&amp;quot;,&amp;quot;on&amp;quot;,&amp;quot;off&amp;quot;]&#039;&lt;br /&gt;
	data-icons=&#039;[&amp;quot;fa-tint&amp;quot;,&amp;quot;fa-tint&amp;quot;,&amp;quot;fa-tint&amp;quot;]&#039;&lt;br /&gt;
	data-colors=&#039;[&amp;quot;white&amp;quot;,&amp;quot;white&amp;quot;,&amp;quot;white&amp;quot;]&#039;&lt;br /&gt;
	data-background-colors=&#039;[&amp;quot;blue&amp;quot;,&amp;quot;green&amp;quot;,&amp;quot;red&amp;quot;]&#039;	&lt;br /&gt;
	class=&amp;quot;small&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Beschriftete Schaltflächen===&lt;br /&gt;
[[File:FTUI-Ein-Aus-Schalter.png|150px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Mit Hintergrund: --&amp;gt;&lt;br /&gt;
  &amp;lt;div data-type=&amp;quot;switch&amp;quot; &lt;br /&gt;
  data-icon=&amp;quot;&amp;quot; &lt;br /&gt;
  data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
  data-set-on=&amp;quot;Ein&amp;quot; &lt;br /&gt;
  data-set-off=&amp;quot;Aus&amp;quot; &lt;br /&gt;
  data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039; &lt;br /&gt;
  data-background-colors=&#039;[&amp;quot;#90D49A&amp;quot;,&amp;quot;#E37D7D&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
    data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
    data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039; &lt;br /&gt;
    data-colors=&#039;[&amp;quot;#5B8562&amp;quot;,&amp;quot;#854646&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Ohne Hintergrund: --&amp;gt;&lt;br /&gt;
  &amp;lt;div data-type=&amp;quot;switch&amp;quot; &lt;br /&gt;
  data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
  data-icon=&amp;quot;&amp;quot; &lt;br /&gt;
  data-background-icon=&amp;quot;&amp;quot; &lt;br /&gt;
  data-set-on=&amp;quot;Ein&amp;quot; &lt;br /&gt;
  data-set-off=&amp;quot;Aus&amp;quot; &lt;br /&gt;
  data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
    data-device=&amp;quot;Schalter&amp;quot; &lt;br /&gt;
    data-states=&#039;[&amp;quot;Ein&amp;quot;,&amp;quot;Aus&amp;quot;]&#039; &lt;br /&gt;
    data-colors=&#039;[&amp;quot;#5B8562&amp;quot;,&amp;quot;#854646&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;	&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Switch]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:FTUI-Ein-Aus-Schalter.png&amp;diff=28645</id>
		<title>Datei:FTUI-Ein-Aus-Schalter.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:FTUI-Ein-Aus-Schalter.png&amp;diff=28645"/>
		<updated>2018-12-08T19:32:28Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Für FTUI-Wiki &amp;quot;Switch&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
Für FTUI-Wiki &amp;quot;Switch&amp;quot;&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Switch&amp;diff=28632</id>
		<title>FTUI Widget Switch</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Switch&amp;diff=28632"/>
		<updated>2018-12-04T23:25:26Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ data-doubleclick korrigiert, vgl. Forum 5.12.2018&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Switch Widget]] ist ein Widget für [[FHEM Tablet UI]]. Dabei handelt es sich um einen Ein-/Ausschalter in Form eines runden Druckknopfes. Er dient zum Ausführen beliebiger Schaltbefehle und kann auch für FTUI-interne Steuerungen genutzt werden. Zusätzlich kann der Schalter in Abhängigkeit eines Readings sein Aussehen verändern und so zwei oder mehr Zustände optisch darstellen. Beispielsweise können Farbe und/oder das Symbol die Zuständen an/aus anzeigen. Kann das Status-Reading mehr als zwei Zustände einnehmen, kann auch dies dargestellt werden. Dabei sind beliebige Kombinationen von Vorder-/Hintergrundfarben und Symbolen möglich.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Switch.png&lt;br /&gt;
File:Switch4.png&lt;br /&gt;
File:FTUI_Switch-Homestatus2.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
===Standard-Attribute===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading gesetzt werden soll (&amp;lt;command&amp;gt; &#039;&#039;&#039;&amp;lt;device&amp;gt;&#039;&#039;&#039; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, dessen Inhalt den aktuellen Wert wiedergibt||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Reading, das gesetzt werden soll (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &#039;&#039;&#039;&amp;lt;reading&amp;gt;&#039;&#039;&#039; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der gesendet werden soll (&#039;&#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;&#039; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) (z.B. setstate, set, setreading, trigger)||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-doubleclick&#039;&#039;&#039;||Zeit [ms], in der ein zweiter Klick erfolgen muss, damit die Betätigung angenommen wird. &#039;0&#039; schaltet dieses Verhalten ab.||0||data-doubleclick=&amp;quot;800&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Gütige Werte sind &#039;true&#039;, &#039;1&#039; oder &#039;on&#039; ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Name des Icons im Vordergrund||&#039;fa-lightbulb-o&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039;||Name des Icons, das als Hintergrund verwendet werden soll||&#039;fa-circle&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-color&#039;&#039;&#039;||Farbe des Icon (RGB-Angabe oder Farbname)||#2A2A2A||data-color=&amp;quot;#c0c0c0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-color&#039;&#039;&#039;||Hintergrundfarbe des Widgets||#505050||data-background-color=&amp;quot;none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn&#039;&#039;&#039;||Reading, dessen Inhalt als rotes Kennzeichen angezeigt wird. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-on&#039;&#039;&#039;||Werte von &#039;&#039;&#039;data-warn&#039;&#039;&#039;, bei denen das Kennzeichen angezeigt wird||&amp;lt;nowiki&amp;gt;&#039;true|on|[1-9]{1}[0-9]*&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-off&#039;&#039;&#039;||Werte von &#039;&#039;&#039;data-warn&#039;&#039;&#039;, bei denen das Kennzeichen versteckt wird||&amp;lt;nowiki&amp;gt;&#039;false|off|0&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-color&#039;&#039;&#039;||Textfarbe des Kennzeichens||&#039;#aaa&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-background-color&#039;&#039;&#039;||Hintergrundfarbe des Kennzeichens||&#039;#aa2200&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading zum Verstecken des Elementes. Das Element verschwindet, wenn der Wert mit &#039;&#039;&#039;data-hide-on&#039;&#039;&#039; übereinstimmt.||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Zeichenkette, bei der das Element versteckt wird||&amp;lt;nowiki&amp;gt;&#039;true|1|on&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-off&#039;&#039;&#039;||Zeichenkette, bei der das Element angezeigt wird||&#039;!on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hideparents&#039;&#039;&#039;||jQuery-Selector, um auch die Eltern-Elemente zu verstecken||||data-hideparents=&amp;quot;#Name&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-reachable&#039;&#039;&#039;||Reading, dessen Inhalt angibt, ob das Device erreichbar ist, oder nicht. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-timeout&#039;&#039;&#039;||Maximale Zeit, die der eingestellte Zustand nach einer Veränderung angezeigt wird, bis die echte Rückmeldung vom Device wieder angezeigt wird||2000ms||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Attribute für zwei Zustände===&lt;br /&gt;
Zur Anzeige von zwei Zuständen können nachfolgende Attribute zusätzlich zu den Standard-Attributen genutzt werden.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Zeichenkette oder ein Array von Werten, die als Zustand ON interpretiert werden||&#039;on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039;||Zeichenkette oder ein Array von Werten, die als Zustand OFF interpretiert werden||&#039;off&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-on&#039;&#039;&#039;||Wert, der beim Einschalten gesendet werden soll ||Wert von &#039;&#039;&#039;data-get-on&#039;&#039;&#039;||data-set-on=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-off&#039;&#039;&#039;||Wert, der beim Ausschalten gesendet werden soll||Wert von &#039;&#039;&#039;data-get-off&#039;&#039;&#039;||data-set-off=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039;||Iconfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039;||Iconfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#505050&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039;||Hintergrundfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#aa6900&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039;||Hintergrundfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||&#039;#505050&#039;||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;data-get-on&#039;&#039;&#039; und &#039;&#039;&#039;data-get-off&#039;&#039;&#039; können auch RegEx enthalten:&lt;br /&gt;
&amp;lt;code&amp;gt;data-get-on=&amp;quot;[0-9]{1,3}|on&amp;quot;&amp;lt;/code&amp;gt; bedeutet, dass der Schalter AN ist, wenn das Reading eine Zahl zwischen 0 und 100 ist, oder den Wert &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; enthält.&lt;br /&gt;
&amp;lt;code&amp;gt;data-get-off=&amp;quot;!on&amp;quot;&amp;lt;/code&amp;gt; bedeutet, dass alle Werte, die nicht für &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; stehen, automatisch &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; bedeuten (Negation).&lt;br /&gt;
&amp;lt;code&amp;gt;data-set-off=&amp;quot;&amp;quot;&amp;lt;/code&amp;gt; unterdrückt das Senden eines OFF-Befehls.&lt;br /&gt;
&#039;&#039;&#039;data-[on|off]-color&#039;&#039;&#039; erwartet einen RGB-Wert, wenn dieser aus einen Reading gelesen wird (&amp;lt;code&amp;gt;rgb(0, 0, 0)&amp;lt;/code&amp;gt; statt &amp;lt;code&amp;gt;#000000&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
===Attribute für mehrere Zustände===&lt;br /&gt;
Zur Anzeige von mehreren Zuständen können nachfolgende Attribute zusätzlich zu den Standard-Attributen genutzt werden.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-states&#039;&#039;&#039;||Array von Werten, die das Reading einnehmen kann||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-states&#039;&#039;&#039;||Array von Werten, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; geschaltet werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icons&#039;&#039;&#039;||Array von Icons, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; im Vordergrund angezeigt werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icons&#039;&#039;&#039;||Array von Icons, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; im Hintergrund angezeigt werden||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-colors&#039;&#039;&#039;||Array von Farben, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; das Vordergrund-Icon einfärben||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-colors&#039;&#039;&#039;||Array von Farben, die in Abhängigkeit des Arrays von &#039;&#039;&#039;data-states&#039;&#039;&#039; das Hintergrund-Icon einfärben||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse&lt;br /&gt;
!Beschreibung&lt;br /&gt;
{{FTUI Klasse|readonly}}{{FTUI Klasse|small}}{{FTUI Klasse|compressed}}{{FTUI Klasse|compressed-50}}{{FTUI Klasse|height-narrow}}{{FTUI Klasse|invert}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
*Das Attribut &#039;&#039;&#039;data-timeout&#039;&#039;&#039; dient dazu, ein &amp;quot;Flackern&amp;quot; der Anzeige zu verhindern. Manche Devices benötigen einige Zeit, bis der gewünschte und eben eingestellte Zustand erreicht wird. Zitat aus dem Forum: &amp;lt;cite&amp;gt;&amp;quot;data-timeout gilt nur für die on-off (toggle) Funktion von Switch und Dimmer, nicht fürs Dimmen. Das Problem: Am Switch wird eingeschaltet, der Knopf wird hell und ON an FHEM gesendet. Aber die Hardware reagiert nicht, geht nicht auf ON. Wenn sie das machen würde, käme auch eine Bestätigung per Longpoll. Mit &#039;&#039;&#039;data-timeout&#039;&#039;&#039; wird die eingestellte Zeit gewartet und bei Ausbleiben der Bestätigung fällt der Switch zum ursprünglichen Status zurück, geht also wieder aus. Nur wenn innerhalb der x Sekunden das Longpoll-Event kommt, wird der Fallbacktimer gestoppt.&amp;quot;&amp;lt;/cite&amp;gt;&lt;br /&gt;
*Die Attribute für Dual-State (zwei Zustände) und Multi-State (mehrere Zustände) können &#039;&#039;&#039;nicht gemeinsam&#039;&#039;&#039; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===An/Aus===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt.&lt;br /&gt;
&lt;br /&gt;
[[File:Switch.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;MyDevice&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===An/Aus (Farben invertiert)===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt. Die Farben sind hier im Gegensatz zum vorherigen Beispiel invertiert.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;MyDevice&amp;quot; class=&amp;quot;invert&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===1/0 als Befehl===&lt;br /&gt;
Einfacher Schalter, der &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; sendet und diesen Status durch Farbumschlag anzeigt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-icon=&amp;quot;fa-rss&amp;quot;&lt;br /&gt;
	data-device=&#039;MyDevice&#039;&lt;br /&gt;
	data-get-on=&amp;quot;1&amp;quot; &lt;br /&gt;
	data-get-off=&amp;quot;0&amp;quot; &lt;br /&gt;
	data-set-on=&amp;quot;1&amp;quot; &lt;br /&gt;
	data-set-off=&amp;quot;0&amp;quot;&lt;br /&gt;
	class=&amp;quot;green small invert&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MILIGHT-Switch===&lt;br /&gt;
Beispiel for einen MILIGHT-Schalter. Der &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt;-Zustand wird per RegEx ermittelt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;MILIGHT_Zone1_Wohnzimmer&amp;quot; &lt;br /&gt;
	data-get-on=&amp;quot;on.*&amp;quot;&lt;br /&gt;
	data-get-off=&amp;quot;off&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===4-fach-Schalter===&lt;br /&gt;
Gruppe von 4 Schaltern, die den Status des selben Devices umschalten.&lt;br /&gt;
&lt;br /&gt;
[[File:Switch4.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-home&amp;quot; data-get-on=&amp;quot;Home&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Home&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-bed&amp;quot; data-get-on=&amp;quot;Sleep&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Sleep&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-car&amp;quot; data-get-on=&amp;quot;Away&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Away&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get-off=&amp;quot;!on&amp;quot; data-set-off=&amp;quot;&amp;quot; data-icon=&amp;quot;fa-suitcase&amp;quot; data-get-on=&amp;quot;Holiday&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div&amp;gt;Holiday&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Zwei Zustände umschalten===&lt;br /&gt;
Großer Homestatus-Button, der zwischen zwei Zuständen umschaltet.&lt;br /&gt;
&lt;br /&gt;
[[File:FTUI_Switch-Homestatus2.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;2&amp;quot; data-sizey=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;header&amp;gt;HOMESTATUS&amp;lt;/header&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
		data-device=&amp;quot;dummy3&amp;quot;&lt;br /&gt;
		data-set-states=&#039;[&amp;quot;Abwesend&amp;quot;,&amp;quot;Anwesend&amp;quot;]&#039;&lt;br /&gt;
		data-states=&#039;[&amp;quot;Anwesend&amp;quot;,&amp;quot;Abwesend&amp;quot;]&#039;&lt;br /&gt;
		data-icons=&#039;[&amp;quot;fa-home&amp;quot;, &amp;quot;fa-car&amp;quot;]&#039;&lt;br /&gt;
		data-colors=&#039;[&amp;quot;white&amp;quot;, &amp;quot;white&amp;quot;]&#039;&lt;br /&gt;
		data-background-colors=&#039;[&amp;quot;green&amp;quot;, &amp;quot;red&amp;quot;]&#039;&lt;br /&gt;
		class=&amp;quot;bigger top-space&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Serienschaltung: Mehrere Zustände nacheinander===&lt;br /&gt;
Bei jeder Betätigung wird der nächste der hinterlegten Zustände eingenommen.&lt;br /&gt;
Man beachte die Reihenfolge in data-set-states und data-states.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot;&lt;br /&gt;
	data-device=&amp;quot;Test&amp;quot;&lt;br /&gt;
	data-set-states=&#039;[&amp;quot;on&amp;quot;,&amp;quot;off&amp;quot;,&amp;quot;auto&amp;quot;]&#039;&lt;br /&gt;
	data-states=&#039;[&amp;quot;auto&amp;quot;,&amp;quot;on&amp;quot;,&amp;quot;off&amp;quot;]&#039;&lt;br /&gt;
	data-icons=&#039;[&amp;quot;fa-tint&amp;quot;,&amp;quot;fa-tint&amp;quot;,&amp;quot;fa-tint&amp;quot;]&#039;&lt;br /&gt;
	data-colors=&#039;[&amp;quot;white&amp;quot;,&amp;quot;white&amp;quot;,&amp;quot;white&amp;quot;]&#039;&lt;br /&gt;
	data-background-colors=&#039;[&amp;quot;blue&amp;quot;,&amp;quot;green&amp;quot;,&amp;quot;red&amp;quot;]&#039;	&lt;br /&gt;
	class=&amp;quot;small&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Switch]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Push&amp;diff=28631</id>
		<title>FTUI Widget Push</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Push&amp;diff=28631"/>
		<updated>2018-12-04T23:15:21Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ Beschreibung doubleclick korrigiert, vgl. Forum 5.12.2018&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Push Widget]] ist ein Widget für [[FHEM Tablet UI]] in Form eines Button-förmigen Knopfes, der, ähnlich einem Taster, einen einfachen Befehl an FHEM sendet (zum Beispiel hoch/runter, Play/Pause, Nächster/vorheriger Titel, usw.). Der Befehl kann beim Drücken, beim Loslassen, oder beide Male ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Ftui_widget_push.PNG&lt;br /&gt;
File:Push1.png&lt;br /&gt;
File:Push2.png&lt;br /&gt;
File:Ftui_widget_push_on-for-timer.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading gesetzt werden soll (&amp;lt;command&amp;gt; &#039;&#039;&#039;&amp;lt;device&amp;gt;&#039;&#039;&#039; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set&#039;&#039;&#039;||Reading, das gesetzt werden soll (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &#039;&#039;&#039;&amp;lt;reading&amp;gt;&#039;&#039;&#039; &amp;lt;value&amp;gt;)||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-on&#039;&#039;&#039;||Wert, der beim Drücken gesendet werden soll. Kann auch ein Array sein, um verschiedene Werte abwechselnd zu schalten||on||data-set-on=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-off&#039;&#039;&#039;||Wert, der nach dem Loslassen gesendet werden soll||||data-set-off=&amp;quot;0&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-cmd&#039;&#039;&#039;||Befehl, der gesendet werden soll (&#039;&#039;&#039;&amp;lt;command&amp;gt;&#039;&#039;&#039; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) (z.B. setstate, set, setreading, trigger)||set||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-fhem-cmd&#039;&#039;&#039;||Befehl, der bei einem Klick auf das Bild an FHEM gesendet werden soll||||data-fhem-cmd=&amp;quot;set Bulp01 off&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-doubleclick&#039;&#039;&#039;||Zeit [ms], in der ein zweiter Klick erfolgen muss, damit die Betätigung angenommen wird. &#039;0&#039; schaltet dieses Verhalten ab.||0||data-doubleclick=&amp;quot;800&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-countdown&#039;&#039;&#039;||Sekunden für Fortschrittsanzeige (progress control / &#039;on-for-timer&#039;)||Automatische Erkennung von &#039;on-for-timer&#039; bei &#039;&#039;&#039;data-set-on&#039;&#039;&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn&#039;&#039;&#039;||Reading, dessen Inhalt als rotes Kennzeichen angezeigt wird. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, dessen Inhalt zur Zustandsanzeige (ON/OFF) wird||keiner (muss explizit angegeben werden)||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Zeichenkette, die als Zustand ON interpretiert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039;||Zeichenkette, die als Zustand OFF interpretiert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading zum Verstecken des Push-Elementes. Das Element verschwindet, wenn der Wert mit &#039;&#039;&#039;data-hide-on&#039;&#039;&#039; übereinstimmt.||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Zeichenkette, bei der das Element versteckt wird||true,1,on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-off&#039;&#039;&#039;||Zeichenkette, bei der das Element angezeigt wird||!on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hideparents&#039;&#039;&#039;||jQuery-Selector, um auch die Eltern-Elemente zu verstecken||||data-hideparents=&amp;quot;#Name&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-lock&#039;&#039;&#039;||Reading, mit dem das Element für eine Bedienung gesperrt wird. Gültige Werte sind &#039;&#039;true&#039;&#039;, &#039;&#039;1&#039;&#039; oder &#039;&#039;on&#039;&#039;||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-reachable&#039;&#039;&#039;||Reading, dessen Inhalt angibt, ob das Device erreichbar ist, oder nicht. Der Inhalt des Readings muss eine Ganzzahl (Integer) sein.||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Name des Icons im Vordergrund||fa-power-off||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039;||Name des Icons, das als Hintergrund verwendet werden soll||fa-circle-thin||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039;||Feste Iconfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039;||Feste Hintergrundfarbe für den Zustand ON, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039;||Feste Iconfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;, um einen entsprechenden Wert dynamisch aus FHEM abzurufen.||#505050||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039;||Feste Hintergrundfarbe für den Zustand OFF, oder &#039;&#039;&#039;&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt;&#039;&#039;&#039;||#505050||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
{{FTUI Klasse|height-narrow}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Weitere Möglichkeiten==&lt;br /&gt;
Das Push-Widget kann auch dazu verwendet werden, Readings darzustellen. Über &#039;&#039;&#039;data-get&#039;&#039;&#039; und &#039;&#039;&#039;data-get-on&#039;&#039;&#039; wird beispielsweise der Kreis (Hintergrund-Icon) eingefärbt. Der Wert des Readings selbst wird dann per [[FTUI_Widget_Label|Label]] angezeigt, welches innerhalb des Push-Widgets platziert wird. Siehe hierzu auch den {{Link2Forum|Topic=66800|LinkText=Hinweis im Forum}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;push&amp;quot; ...&amp;gt;&lt;br /&gt;
	&amp;lt;div data-type=&amp;quot;label&amp;quot; ...&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Alle Lampen einschalten===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;push&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;LightAll&amp;quot; &lt;br /&gt;
     data-cmd=&amp;quot;trigger&amp;quot; &lt;br /&gt;
     data-set-on=&amp;quot;on&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steuerung hoch/runter (horizontal)===&lt;br /&gt;
[[File:Push1.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;doublebox-h&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;Rollo&amp;quot; &lt;br /&gt;
             data-icon=&amp;quot;fa-angle-up&amp;quot; data-background-icon=&amp;quot;fa-square-o&amp;quot; &lt;br /&gt;
             data-set-on=&amp;quot;up&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;Rollo&amp;quot; &lt;br /&gt;
             data-icon=&amp;quot;fa-angle-down&amp;quot; data-background-icon=&amp;quot;fa-square-o&amp;quot; &lt;br /&gt;
             data-set-on=&amp;quot;down&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Steuerung hoch/runter (vertikal)===&lt;br /&gt;
[[File:Push2.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;doublebox-v&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;Rollo&amp;quot; &lt;br /&gt;
             data-icon=&amp;quot;fa-chevron-up&amp;quot; data-background-icon=&amp;quot;fa-square-o&amp;quot; &lt;br /&gt;
             data-set-on=&amp;quot;up&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;Rollo&amp;quot; &lt;br /&gt;
            data-icon=&amp;quot;fa-chevron-down&amp;quot; data-background-icon=&amp;quot;fa-square-o&amp;quot; &lt;br /&gt;
            data-set-on=&amp;quot;down&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Lampe für 5 Minuten einschalten===&lt;br /&gt;
Das Push-Widget zeigt einen abnehmenden Kreis, solange der Countdown läuft. Die Dauer wird automatisch aus dem &#039;&#039;&#039;on-for-timer&#039;&#039;&#039;-Befehl erkannt. Mit &#039;&#039;&#039;data-countdown&#039;&#039;&#039; kann jedoch auch auch ein eigener Wert angegeben werden.&lt;br /&gt;
Wenn das Device ein Dummy ist, muss in diesem das FHEM-Attribut &amp;lt;code&amp;gt;useSetExtensions 1&amp;lt;/code&amp;gt; gesetzt werden. Weitere Beispiele für Timer sind [[FTUI_Zeitschaltung|hier]] zu finden.&lt;br /&gt;
&lt;br /&gt;
[[File:Ftui_widget_push_on-for-timer.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;MyLamp&amp;quot; data-set-on=&amp;quot;on-for-timer 300&amp;quot; &amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Push-Widget verstecken===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;hbox&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;ftuitest&amp;quot; data-set-on=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div&amp;gt;on&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;ftuitest&amp;quot; data-set-on=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div&amp;gt;off&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;vbox&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get=&amp;quot;STATE&amp;quot; data-get-on=&amp;quot;on&amp;quot; data-hide=&amp;quot;ftuitest:STATE&amp;quot; data-hide-on=&amp;quot;1&amp;quot; class=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Push]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Pagebutton&amp;diff=28180</id>
		<title>FTUI Widget Pagebutton</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Pagebutton&amp;diff=28180"/>
		<updated>2018-10-28T17:53:49Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ &amp;quot;data-warn-fixed&amp;quot; ergänzt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Pagebutton Widget]] ist ein Widget für [[FHEM Tablet UI]], das ein einfaches Element zur Verfügung stellt, um auf eine andere Seite zu navigieren. Auf der Zielseite wird das Widget als &amp;quot;ON&amp;quot; angezeigt. Das Pagebutton-Widget eignet sich zum Beispiel gut, um eine Navigation zu erstellen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Pagebutton_01.png&lt;br /&gt;
File:FTUI_Widget_Pagebutton_02.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
Für das Pagebutton-Widget gelten alle Attribute des [[FTUI Widget Switch]]. Und zusätzlich die folgenden:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-url&#039;&#039;&#039;||URL der Seite, die angezeigt werden soll||||data-url=&amp;quot;#content_main.html&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-load&#039;&#039;&#039;||DIV-Container, in den der Inhalt der Zielseite geladen werden soll||||data-load=&amp;quot;#main&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-active-pattern&#039;&#039;&#039;||[[Regulärer Ausdruck|RegEx]], die bestimmt, wann das Widget &amp;quot;ON&amp;quot; sein soll||||&amp;lt;nowiki&amp;gt;data-active-pattern=&amp;quot;(.*/||.*#content_main.html)&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-fade-duration&#039;&#039;&#039;||Zeit in Millisekunden oder &amp;quot;slow&amp;quot; bzw. &amp;quot;fast&amp;quot;, die verwendet werden soll, um die Zielseite einzublenden||slow||data-fade-duration=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Vordergrund-Icon des Widgets||fa-power-off||data-icon=&amp;quot;mi-home&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039;||Hintergrund-Icon des Widgets||fa-circle||data-background-icon=&amp;quot;fa-square&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt angezeigt wird||#222222||data-on-color=&amp;quot;yellow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039;||Farbe des Hintergrund-Icons, wenn der gewünschte Inhalt angezeigt wird||#606060||data-on-background-color=&amp;quot;gray&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt nicht angezeigt wird||#505050||data-off-color=&amp;quot;#000000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt nicht angezeigt wird||transparent||data-off-background-color=&amp;quot;#cccccc&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-return-time&#039;&#039;&#039;||Zeit in Sekunden, nach der die Standardseite (default) wieder aufgerufen wird||||data-return-time=&amp;quot;60&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-parent&#039;&#039;&#039;||&amp;quot;Eltern-Seite&amp;quot; - Angabe erforderlich, wenn in einer mehrstufigen Menüstruktur direkt auf eine Unterseite gesprungen werden soll und diese nicht mit &amp;quot;prefetch&amp;quot; vorgeladen ist||||data-parent=&amp;quot;main2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, über welches das Verhalten des Widgets gesteuert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, welches ausgewertet wird||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Wert, bei welchem das Widget ausgelöst wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-states&#039;&#039;&#039;||Vektor mit Zuständen von data-get||||data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icons&#039;&#039;&#039;||Vektor mit Symbolen, die auf data-states referenzieren||||data-icons=&#039;[&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading, welches Ein- und Ausblenden des Widgets steuert||||data-hide=&amp;quot;GelberSack_Anzeige&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Wert, bei dem das Widget ausgeblendet wird||||data-hide-on=&amp;quot;false&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn&#039;&#039;&#039;||&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt; für den Inhalt des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-background-color&#039;&#039;&#039;||Hintergrundfarbe des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-color&#039;&#039;&#039;||Schriftfarbe des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-fixed&#039;&#039;&#039;||Anzahl Nachkommastellen im Warnhinweis||0||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{FTUI Klasse|blank}}{{FTUI Klasse|nocache}}{{FTUI Klasse|default}}{{FTUI Klasse|prefetch}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Für Sub-Pagebuttons kann eine eigene &#039;&#039;data-return-time&#039;&#039; festgelegt werden.&lt;br /&gt;
* &#039;&#039;data-return-time&#039;&#039; muss nicht am ersten Button hängen. Der erste, der dieses Attribut hat, wird ausgewertet.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Einfacher Link===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
     data-url=&amp;quot;index.html&amp;quot;&lt;br /&gt;
     data-icon=&amp;quot;mi-home&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Pagebutton_01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Navigationsleiste===&lt;br /&gt;
Für die Navigationsleiste braucht es zum einen die Leiste und zum anderen einen DIV-Container, in dem die zu ladenden Inhalte angezeigt werden. Die Container erhalten jeweils eine eindeutige ID, welche in der Navigationsleiste als Ziel referenziert wird.&lt;br /&gt;
&lt;br /&gt;
Als erstes wird das Menü aufgebaut.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werden noch die DIV-Container benötigt, in die der Inhalt der Zielseite geladen wird.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;2&amp;quot; data-sizex=&amp;quot;5&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Zielseite ist wichtig, dass ein DIV-Container erstellt wird, dem die Klasse &#039;&#039;page&#039;&#039; zugewiesen wird und eine ID, die der ID entsprechen muss, in der bei &#039;&#039;data-load&#039;&#039; verwiesen wird.&lt;br /&gt;
So eine Seite könnte wie folgt aussehen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot;&amp;gt;Page 1&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:FTUI_Widget_Pagebutton_02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Steuerung über ein Device===&lt;br /&gt;
Der Aufruf einzelner Seiten kann auch über ein Device erfolgen; dies eröffnet Automatisierungsmöglichkeiten. Das obige Beispiel wird hierzu erweitert:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nimmt das device &amp;quot;Seite&amp;quot; die STATES &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot; oder &amp;quot;3&amp;quot; an, wird die jeweilige Seite aufgerufen. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Variante zeigt das nachfolgende Beispiel: Hier wird über das device &amp;quot;Musik&amp;quot; bei &amp;quot;on&amp;quot; die Seite 2 aufgerufen und bei &amp;quot;off&amp;quot; zur Hauptseite zurückgewechselt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Musik&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;off&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Musik&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;on&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Querverweis auf eine Pagebutton-Seite===&lt;br /&gt;
Es ist zulässig, dass mehrere Pagebutton-Widgets auf dieselbe Seite verweisen. Neben der Verwendung in Menüleisten könnnen somit zusätzlich &amp;quot;Links&amp;quot; an beliebiger Stelle platziert werden, bei deren Betätigung die definierte Pagebutton-Seite bzw. -Unterseite aufgerufen wird. Das Aussehen des Pagebutton-Widgets kann mittels &#039;&#039;data-icons&#039;&#039; und &#039;&#039;data-colors&#039;&#039; wie beim Symbol-Widget beeinflusst werden. Folglich erweitert das Pagebutton-Widget die Funktionalität des Symbol-Widgets dergestalt, dass bei Betätigung eine Unterseite aufgerufen wird. Beispiel: Auf der Hauptseite signalisiert das Symbol, ob alle Fenster geschlossen sind oder mindestens eines geöffnet ist. Bei Betätigung des Widgets wird dann die Unterseite aufgerufen, welche eine detaillierte Übersicht über den Zustand aller Fenster enthält. Im nachfolgenden Beispiel wird der Abholtermin des Gelben Sacks am Vortag (normale Anzeige) und am Abholtag (blinkend) angezeigt. Das Reading &#039;&#039;GelberSack_Anzeige&#039;&#039; begrenzt das Zeitfenster der Anzeige auf den Nachmittag des Vortages bis zum Vormittag des Abholtages. Wenn das Symbol angezeigt wird, kann durch manuelle Betätigung die Unterseite &#039;&#039;&amp;quot;#page_content6_4.html&amp;quot;&#039;&#039; aufgerufen werden (welche z.B. weitere Informationen zu anstehenden Abholterminen bereithält).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vbox grow-0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;pagebutton&amp;quot; &lt;br /&gt;
data-url=&amp;quot;#page_content6_4.html&amp;quot; &lt;br /&gt;
data-load=&amp;quot;#content6_4&amp;quot; &lt;br /&gt;
data-off-background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
data-off-color=&amp;quot;#FFFF7A&amp;quot; &lt;br /&gt;
data-on-background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
data-on-color=&amp;quot;#FFFF7A&amp;quot; &lt;br /&gt;
data-active-pattern=&amp;quot;.*#page_content6_4.html&amp;quot; &lt;br /&gt;
class=&amp;quot;prefetch bigger compressed autohide&amp;quot; &lt;br /&gt;
data-device=&amp;quot;Entsorger&amp;quot; &lt;br /&gt;
data-get=&amp;quot;GelberSack_days&amp;quot; &lt;br /&gt;
data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;]&#039; &lt;br /&gt;
data-icons=&#039;[&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;]&#039; &lt;br /&gt;
data-hide=&amp;quot;GelberSack_Anzeige&amp;quot; &lt;br /&gt;
data-hide-on=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
data-device=&amp;quot;Entsorger&amp;quot; &lt;br /&gt;
data-hide=&amp;quot;GelberSack_Anzeige&amp;quot; &lt;br /&gt;
data-hide-on=&amp;quot;false&amp;quot; &lt;br /&gt;
data-get=&amp;quot;GelberSack_days&amp;quot; &lt;br /&gt;
data-substitution=&#039;[&amp;quot;0&amp;quot;,&amp;quot;Heute&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;Morgen&amp;quot;]&#039; &lt;br /&gt;
data-color=&amp;quot;#FFFF7A&amp;quot; class=&amp;quot;compressed autohide&amp;quot; &lt;br /&gt;
style=&amp;quot;position: relative; top: 5px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[https://github.com/knowthelist/fhem-tablet-ui/blob/master/examples/pagebutton/index_page_left_demo.html Beispiel für eine Navigation]&lt;br /&gt;
*{{Link2Forum|Topic=67141|LinkText=Fertiges Pagebutton Multi-Menü}}&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,82003.msg745677.html#msg745677 Sprung zu einer Unterseite (Anwendung von data-parent)]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Pagebutton]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Label&amp;diff=28179</id>
		<title>FTUI Widget Label</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Label&amp;diff=28179"/>
		<updated>2018-10-28T16:42:28Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Hinweise */ data-subst. Sekunden --&amp;gt; Stunden&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Label Widget]] ist ein Widget für [[FHEM Tablet UI]], mit dem ein Reading eines FHEM-Devices in Textform angezeigt werden kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Label_01.png&lt;br /&gt;
File:FTUI_Widget_Label_02.png&lt;br /&gt;
File:FTUI_Widget_Label_03.png&lt;br /&gt;
File:FTUI_Widget_Label_04.png&lt;br /&gt;
File:FTUI_Widget_Label_05.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, dessen Wert angezeigt werden soll||||data-get=&amp;quot;measured-temp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-part&#039;&#039;&#039;||[[Regulärer Ausdruck|RegEx]] oder Nummer des Wortes, nach welcher der angezeigte Text gefiltert werden soll||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-fix&#039;&#039;&#039;||Angegebene Anzahl an Dezimalstellen einhalten||(-1 -&amp;gt; nicht numerisch)||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-color&#039;&#039;&#039;||Fester Wert oder &#039;&#039;&#039;Device:Reading&#039;&#039;&#039; eines Devices für die Label-Farbe||||data-color=&amp;quot;red&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-colors&#039;&#039;&#039;||Ein Array von Farben. Welche Farbe für das Label verwendet wird, wird durch das &#039;&#039;data-limits&#039;&#039;-Attribut bestimmt||||data-colors=&#039;[&amp;quot;red&amp;quot;,&amp;quot;yellow&amp;quot;,&amp;quot;green&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-classes&#039;&#039;&#039;||Ein Array von CSS-Klassen. Welche Klasse verwendet wird, hängt vom zutreffenden Wert im &#039;&#039;data-limits&#039;&#039;-Attribut ab||||data-classes=&#039;[&amp;quot;bg-red&amp;quot;,&amp;quot;bg-yellow&amp;quot;,&amp;quot;bg-green&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-limits&#039;&#039;&#039;||Ein Array numerischer oder RegEx Werte für den Vergleich mit dem aktuellen Wert||||data-limits=&#039;[1,15,30]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-limits-get&#039;&#039;&#039;||Name des Readings, von dem die Werte für den Vergleich mit dem data-limits-Array geholt werden||data-get||data-limit-get=&amp;quot;Dummy01:Limits&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-limits-part&#039;&#039;&#039;||Filtern nach Wert, Position eines Wertes in einer Leerzeichen-getrennte Liste oder RegEx||&#039;-1&#039; -&amp;gt; alle||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-unit&#039;&#039;&#039;||Einheit nach Zahl hinzufügen||||data-unit=&amp;quot;%B0C%0A&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-substitution&#039;&#039;&#039;||Verschiedene Funktionen, um den empfangenen Wert durch etwas anderes zu ersetzen||||siehe [[#Hinweise]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-pre-text&#039;&#039;&#039;||Text, der vor dem empfangenen Wert stehen soll||||data-pre-text=&amp;quot;Es ist &amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-post-text&#039;&#039;&#039;||Text, der nach dem empfangenen Wert sehen soll||||data-post-text=&amp;quot; Grad warm&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Name des Readings, nach dessen Wert das Widget angezeigt werden soll oder nicht||STATE||data-hide=&amp;quot;power-on&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Wert, bei dem das Widget versteckt wird||true,1,on||data-hide-on=&amp;quot;on&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-off&#039;&#039;&#039;||Wert, bei dem das Widget angezeigt wird||!on||data-hide-off=&amp;quot;!on&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hideparents&#039;&#039;&#039;||jQuery-Selector, um auch die Eltern-Elemente zu verstecken||||data-hideparents=&amp;quot;#Name&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-refresh&#039;&#039;&#039;||Anzahl Sekunden, nach denen das Widget aktualisiert werden soll||0 -&amp;gt; kein Auto-Refresh||data-refresh=&amp;quot;10&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|small}}{{FTUI Klasse|large}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|thin}}{{FTUI Klasse|bold}}{{FTUI Klasse|red}}{{FTUI Klasse|green}}{{FTUI Klasse|blue}}{{FTUI Klasse|orange}}{{FTUI Klasse|darker}}{{FTUI Klasse|timestamp}}{{FTUI Klasse|w1x}}{{FTUI Klasse|w2x}}{{FTUI Klasse|w3x}}{{FTUI Klasse|circleborder}}{{FTUI Klasse|squareborder}}{{FTUI Klasse|bg-limit}}{{FTUI Klasse|icon square}}{{FTUI Klasse|icon round}}{{FTUI Klasse|truncate}}{{FTUI Klasse|fixedlabel}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Es kann nur entweder &#039;&#039;data-color&#039;&#039; verwendet werden, oder &#039;&#039;data-colors&#039;&#039; + &#039;&#039;data-limits&#039;&#039;, nicht beides gleichzeitig&lt;br /&gt;
* Mit der Klasse &#039;&#039;bg-limit&#039;&#039; wird die Hintergrund- statt der Vordergrundfarbe abhängig von den Werten in &#039;&#039;data-limits&#039;&#039; geändert&lt;br /&gt;
* Die Klassen &#039;&#039;icon square&#039;&#039; und &#039;&#039;icon round&#039;&#039; formatieren das Label mit einer fixen Breite und Höhe im Icon-Stil&lt;br /&gt;
* Wird die Klasse &#039;&#039;timestamp&#039;&#039; zusammen mit &#039;&#039;data-substitution=&amp;quot;toDate().ago()&amp;quot;&#039;&#039; verwendet, sollte eine automatische Aktualisierung (&#039;&#039;data-refresh=&amp;quot;xx&amp;quot;&#039;&#039;) eingestellt werden für den Fall, dass die Aktualisierungsrate des Readings zu gering ist.&lt;br /&gt;
* Ein benutzerdefiniertes Layout kann durch Hinzufügen der folgenden Klassen in die fhem-tablet-ui-user.css erreicht werden:&lt;br /&gt;
** .label-precomma&lt;br /&gt;
** .label-comma&lt;br /&gt;
** .label-aftercomma&lt;br /&gt;
** .label-unit&lt;br /&gt;
** z.B.: &amp;lt;code&amp;gt;.label-aftercomma{ font-size:40%; left: 4px; top: -25px; position: relative; }&amp;lt;/code&amp;gt;&lt;br /&gt;
* Bis zur Version 2.6.2 wurde data-unit mit 50% Schriftgröße auf der Baseline des Wertes positioniert, danach wird die Unit auf superscript angehoben. Dies kann mit einem Eintrag in fhem-tablet-ui-user.css wieder überschrieben werden.&lt;br /&gt;
** &amp;lt;Code&amp;gt;.label-unit{ font-size: 50%; vertical-align: baseline; }&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klasse &#039;&#039;fixedlabel&#039;&#039;: Vgl. [https://forum.fhem.de/index.php/topic,84158.msg764301.html#msg764301]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Statische Texte:&lt;br /&gt;
* Diese können ressourcenschonend direkt definiert werden; das Widget Label wird hierzu nicht benötigt. Vgl. auch das Beispiel &#039;&#039;Statisches Label mit Symbol&#039;&#039; (s.u.).&lt;br /&gt;
* &amp;lt;Code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;Text&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Funktionsweise(n) von &#039;&#039;data-substitution&#039;&#039;:&lt;br /&gt;
* Ein Array an Ersetzungen: &amp;lt;code&amp;gt;data-substitution=&#039;[&amp;quot;on&amp;quot;,&amp;quot;Lampe ist an&amp;quot;,&amp;quot;off&amp;quot;,&amp;quot;Lampe ist aus&amp;quot;]&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Regulärer Ausdruck|RegEx]], die auf dem Wert angewandt werden soll. Standard RegEx-Schreibweise wird erwartet (s/regex/subst/modifier): &amp;lt;code&amp;gt;data-substitution=&amp;quot;s/no soundplayer active//g&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;data-substitution=&amp;quot;weekdayshort&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Datums-/Zeitumwandlungen:&lt;br /&gt;
** Tag:Monat: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().ddmm()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Stunden:Minuten: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().hhmm()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Stunden:Minuten:Sekunden: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().hhmmss()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Minuten --&amp;gt; Stunden: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toString().toHoursFromMin()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Sekunden --&amp;gt; Stunden: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toString().toHoursFromSec()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** den Namen des Wochentages:&lt;br /&gt;
*** Montag, Dienstag, etc.: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().eeee()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Mon, Die, etc.: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().eee()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Mo, Di, etc.: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().ee()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** einen Zeitraum (langes Format): &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().ago()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** einen Zeitraum (kurzes Format):&amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().ago(&#039;hh:mm:ss&#039;)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** einen Zeitraum (Minuten ohne führende Nullen):&amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().ago(&#039;m&#039;)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** 20:15 statt 20:15:00: &amp;lt;code&amp;gt;data-substitution=&amp;quot;s/(:00)$//g&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Einfaches Auslesen des STATE eines Devices===&lt;br /&gt;
Ein ganz einfaches Beispiel, welches den &#039;&#039;STATE&#039;&#039; eines FHEM-Devices (in diesem Fall ein Heizkörperthermostat) ausliest und anzeigt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;HM_367B39_Climate&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_01.png]]&lt;br /&gt;
&lt;br /&gt;
===Anzeige bestimmter Werte eines Devices===&lt;br /&gt;
In diesem Beispiel werden Temperatur und Luftfeuchtigkeit eines Heizkörperthermostates ausgelesen und untereinander angezeigt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;Temperatur&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;HM_367B21_Climate&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;measured-temp&amp;quot;&lt;br /&gt;
     data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;Luftfeuchte&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;HM_367B21_Climate&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;humidity&amp;quot;&lt;br /&gt;
     data-unit=&amp;quot;%&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_02.png]]&lt;br /&gt;
&lt;br /&gt;
===Textfarbe bei bestimmten Grenzwerten ändern===&lt;br /&gt;
Mit dem Label-Widget kann die Textfarbe je nach bestimmten Grenzwerten geändert werden. In diesem Beispiel ist die Farbe blau, sobald die Temperatur gleich oder kleiner 18° ist, grün ab 20° und rot ab 23°.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;dDummy&amp;quot;&lt;br /&gt;
     data-limits=&#039;[18,20,23]&#039; &lt;br /&gt;
     data-colors=&#039;[&amp;quot;blue&amp;quot;,&amp;quot;green&amp;quot;,&amp;quot;#FF0000&amp;quot;]&#039; &lt;br /&gt;
     data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_03.png]]&lt;br /&gt;
[[Kategorie:FHEM Tablet UI]]&lt;br /&gt;
&lt;br /&gt;
===Zwei Labels in einer Textzeile===&lt;br /&gt;
Mit der Klasse &#039;&#039;inline&#039;&#039; (kein Zeilenumbruch) können mehrere Label-Widgets in der selben Textzeile platziert werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;dDummy&amp;quot; class=&amp;quot;inline&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; bis&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;dDummy2&amp;quot; class=&amp;quot;inline&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_04.png]]&lt;br /&gt;
&lt;br /&gt;
===Kombination von Label- mit anderen Widgets===&lt;br /&gt;
Das Label-Widget kann sehr gut verwendet werden, um einen Beschreibungstext für andere Widgets bereitzustellen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;EnO_0193F070&amp;quot; data-icon=&amp;quot;mi-power_settings_new&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot;&amp;gt;Nexus7&amp;lt;/div&amp;gt;&lt;br /&gt;
(&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;Nexus7&amp;quot; data-get=&amp;quot;powerLevel&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;%)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_05.png]]&lt;br /&gt;
&lt;br /&gt;
===Statisches Label mit Symbol===&lt;br /&gt;
Möchte man einen statischen Text darstellen, muss hierfür nicht unbedingt das Label-Widget verwendet werden. Das nachfolgende Beispiel zeigt genau dies und fügt links noch ein Symbol ein. Der Teil für das Symbol kann auch für richtige Labels verwendet werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;i class=&amp;quot;fa fa-cloud fa-2x inline&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;div class=&amp;quot;inline big&amp;quot;&amp;gt;WETTER&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_label_symbol.png]]&lt;br /&gt;
&lt;br /&gt;
===Label- und Symbol-Widget kombiniert===&lt;br /&gt;
Dieses Beispiel zeigt, wie man ein Label- innerhalb eines [[FTUI Widget Symbol|Symbol]]-Widgets anzeigen kann. Dazu wird einfach das Label-Widget im &amp;amp;lt;DIV&amp;amp;gt;-Container des Symbols platziert.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;dDummy3&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;none&amp;quot;&lt;br /&gt;
         data-color=&#039;none&#039;&lt;br /&gt;
         data-background-icon=&amp;quot;fa-circle&amp;quot;&lt;br /&gt;
         data-background-colors=&#039;[&amp;quot;red&amp;quot;,&amp;quot;blue&amp;quot;]&#039;&lt;br /&gt;
         data-limits=&#039;[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
         &amp;lt;div data-type=&amp;quot;label&amp;quot;&lt;br /&gt;
              data-device=&amp;quot;dDummy3&amp;quot;&lt;br /&gt;
              data-color=&amp;quot;white&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_06.png]]&lt;br /&gt;
&lt;br /&gt;
===Unterdrücken der Anzeige===&lt;br /&gt;
Die Argumente für &#039;&#039;data-hide-on&#039;&#039; und &#039;&#039;data-hide-off&#039;&#039; sind reguläre Ausdrücke. Um die Anzeige zu aktivieren, wenn eine Bedingung nicht zutrifft, ist für &#039;&#039;data-hide-off&#039;&#039; ein Schema &amp;lt;code&amp;gt;(?!.*MUSTER).*&amp;lt;/code&amp;gt; zu verwenden, resp. &amp;lt;code&amp;gt;(?!.*MUSTER1|MUSTER2).*&amp;lt;/code&amp;gt;, wenn mehrere Bedinungen zutreffen können; für &#039;&#039;data-hide-on&#039;&#039; entsprechend &amp;lt;code&amp;gt;MUSTER&amp;lt;/code&amp;gt; resp. &amp;lt;code&amp;gt;MUSTER1|MUSTER2&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel wird ein Eintrag eines [[CALVIEW|CALVIEW-Objekts]] &#039;&#039;Abfalldaten&#039;&#039; nur dann angezeigt, wenn er heute oder morgen aktuell ist, ausgeblendet wird die ganze Gruppe von Widgets über die ID des Elternelements:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;Abfall1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;inline&amp;quot; &lt;br /&gt;
             data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
             data-device=&amp;quot;Abfalldaten&amp;quot; &lt;br /&gt;
             data-get=&amp;quot;t_001_bdate&amp;quot; &lt;br /&gt;
             data-hide=&amp;quot;t_001_daysleftLong&amp;quot; &lt;br /&gt;
             data-hide-on=&amp;quot;(?!.*heute|morgen).*&amp;quot; &lt;br /&gt;
             data-hide-off=&amp;quot;heute|morgen&amp;quot; &lt;br /&gt;
             data-hideparents=&amp;quot;#Abfall1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;inline&amp;quot; &lt;br /&gt;
             data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
             data-device=&amp;quot;Abfalldaten&amp;quot; &lt;br /&gt;
             data-get=&amp;quot;t_001_summary&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Label]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FHEM_Tablet_UI&amp;diff=28178</id>
		<title>FHEM Tablet UI</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FHEM_Tablet_UI&amp;diff=28178"/>
		<updated>2018-10-28T14:21:14Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Integrierte Widgets */ Link auf Iframe&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Oberfläche für FHEM&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=34233&lt;br /&gt;
|ModForumArea=TabletUI&lt;br /&gt;
|ModTechName=n.a.&lt;br /&gt;
|ModOwner=setstate ({{Link2FU|7023|Forum}})&lt;br /&gt;
}}&lt;br /&gt;
[[FHEM Tablet UI]] (FTUI) ist ein leichtgewichtiges aber funktionsreiches Frontend-Framework zum Steuern und Überwachen von in FHEM integrierten Geräten. Es basiert auf HTML/CSS/JavaScript und stellt somit keine zusätzlichen Anforderungen an den FHEM-Server.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe zahlreicher Widgets, die sehr leicht mit HTML Code konfiguriert werden können, ist es möglich, innerhalb kurzer Zeit ein den eigenen Wünschen entsprechendes User-Interface aufzubauen.&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb ist nur eine FHEM-Installation mit [[HTTPSRV|HTTPSRV-Modul]] sowie ein gängiger Webbrowser notwendig.&lt;br /&gt;
&lt;br /&gt;
Mit wenigen Anpassungen ist es auch möglich, das UI auf anderen Webservern (Apache, u.a.) zu betreiben. Somit können FHEM und FHEM Tablet UI auch auf getrennten Systemen ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
[[File:tablet_ui.png|thumb|500px|center|Beispiel für ein mit [[FHEM Tablet UI]] erstelltes User-Interface]]&lt;br /&gt;
&lt;br /&gt;
{{Todo|Design-Möglichkeiten erklären, Navigationsmethoden ausformulieren}} &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die Installation von FHEM Tablet UI erzeugt keinen großen Aufwand und besteht im Großen und Ganzen aus drei Schritten:&lt;br /&gt;
*Dateien aus dem GitHub-Repository herunterladen&lt;br /&gt;
*FHEM konfigurieren ([[HTTPSRV]]-Device erstellen, [[FHEMWEB]]-Attribut longpoll einstellen)&lt;br /&gt;
*Eine Beispieldatei anlegen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Diese Anleitung geht davon aus, dass FHEM unter Debian nach der Anleitung [https://debian.fhem.de Stable build using apt] installiert wurde.&lt;br /&gt;
Ist dies nicht der Fall, muss der Pfad &#039;&#039;&#039;/opt/fhem&#039;&#039;&#039; dementsprechend angepasst werden.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst müssen alle Dateien von FHEM Tablet UI in das FHEM-Verzeichnis &#039;&#039;&#039;/opt/fhem/www&#039;&#039;&#039; kopiert werden. Das geht mit folgendem &#039;&#039;&#039;update&#039;&#039;&#039;-Befehl über die FHEM-Befehlszeile.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_01.png|thumb|none|Schritt 1: Dateien kopieren]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend ist ein neues [[HTTPSRV]]-Device in FHEM anzulegen, welches auf den Ordner mit den gerade heruntergeladenen Dateien verweist.&lt;br /&gt;
:&amp;lt;code&amp;gt;define TABLETUI HTTPSRV ftui/ ./www/tablet/ Tablet-UI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_02.png|thumb|none|Schritt 2: HTTPSRV-Device anlegen]]&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Dieser Schritt kann ausgelassen werden, wenn die Funktionalitäten von [[FHEMWEB]] ausreichend sind. Dann muss FTUI aber in weiterer Folge unter der URL &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http(s)://&amp;lt;fhem-server&amp;gt;:8083/fhem/tablet/index.html&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; aufgerufen werden und es wird kein Link auf FTUI in der FHEM GUI erstellt. Vorteil ist aber, dass das FHEMWEB-Caching verwendet werden kann. Siehe dieser {{Link2Forum|Topic=86362|Message=788258}}.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Damit FHEM Tablet UI mit FHEM kommunizieren kann, ist noch die &#039;&#039;&#039;longpoll&#039;&#039;&#039;-Einstellung im [[FHEMWEB]] Device festzulegen.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;attr WEB longpoll websocket&amp;lt;/code&amp;gt;&lt;br /&gt;
:bzw. bei Problemen mit &#039;&#039;websocket&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr WEB longpoll 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_03.png|thumb|none|Schritt 3: longpoll einstellen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Weil FTUI noch nichts anzuzeigen hat, wird die Datei &#039;&#039;&#039;/opt/fhem/www/tablet/index-example.html&#039;&#039;&#039; nach &#039;&#039;&#039;/opt/fhem/www/tablet/index.html&#039;&#039;&#039; kopiert.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cp -a /opt/fhem/www/tablet/index-example.html /opt/fhem/www/tablet/index.html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_04.png|thumb|none|Schritt 4: index.html erstellen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Abschließend muss FHEM noch &#039;&#039;&#039;neu gestartet&#039;&#039;&#039; werden (&#039;&#039;shutdown restart&#039;&#039;) da das Attribut &#039;&#039;&#039;longpoll&#039;&#039;&#039; geändert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Somit ist FHEM Tablet UI bereit zur Verwendung und kann durch Aufruf der URL &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://&amp;lt;fhem-server&amp;gt;:8083/fhem/ftui/&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; oder den Link im FHEM-Menü geöffnet werden&lt;br /&gt;
&lt;br /&gt;
== Update ==&lt;br /&gt;
Ein Update von FTUI kann ebenfalls über die FHEM-Kommandozeile erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Prüfen der Änderungen seit dem letzten Download/Update durch Eingabe von:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update check https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Update der geänderten Dateien durch Eingabe von:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update all https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine weitere Option ist das Hinzufügen des FTUI-Git-Repositories zum allgemeinem Update-Vorgang von FHEM. Dabei wird dann bei einem FHEM-Update auch gleich FHEM Tablet UI aktualisiert, bzw. die Änderungen angezeigt.&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update add https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beachte: Das Ergebnis des o.g. Befehls wird in FHEM/controls.txt eingetragen, siehe auch [[Update#update_add]]&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
===DOCTYPE===&lt;br /&gt;
In allen HTML-Dateien, die im Browser geladen werden und das typische HTML-Gerüst besitzen (also alle Hauptseiten, jedoch keine Template-Dateien), sollte eine &#039;&#039;Document Type Declaration&#039;&#039; (DTDT) eingefügt werden. Mit ihr wird festgelegt, welche &#039;&#039;Document Type Definition&#039;&#039; hier verwendet wird (das kommt aus der Metasprache XML), konkret also, in welcher Version der nachfolgende HTML-Code vom Browser interpretiert werden soll. Lässt man die DTDT weg, oder definiert sie auf verschiedenen Seiten unterschiedlich, kann ein und der selbe HTML-Code zu unterschiedlichen Darstellungen führen. Die DTDT erfolgt immer auf der ersten Zeile, noch vor dem &amp;lt;code&amp;gt;&amp;lt;html&amp;gt;&amp;lt;/code&amp;gt;-Tag. Nachfolgend wird HTML5 verwendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;...&amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;...&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===META-Parameter===&lt;br /&gt;
Das Tablet UI lässt sich über die META-Parameter konfigurieren. Diese Parameter sind in jeder &#039;&#039;&#039;.html&#039;&#039;&#039; Datei (z.B. index.html) im Abschnitt &#039;&#039;&#039;&amp;lt;head&amp;gt;&#039;&#039;&#039; einzutragen. Ausgenommen davon sind Dateien, die als Template, Pagebutton-Zielseiten oder ähnliches eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
Die Parameter sind immer nach diesem Schema aufgebaut:&lt;br /&gt;
 &amp;lt;meta name=&amp;quot;[Parameter-Name]&amp;quot; content=&amp;quot;[Parameter-Wert]&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verbindung zu FHEM===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter-Name!!Standard-Wert!!Mögliche Werte!!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|web_device||WEB||String||FHEM-Device, welches für das Polling verwendet wird&lt;br /&gt;
|-&lt;br /&gt;
|longpoll||1||0, 1||&lt;br /&gt;
&#039;&#039;&#039;0&#039;&#039;&#039;: Longpoll deaktiviert; alle 30s ein Shortpoll (Neuladen der gesamten Statusänderungen)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1&#039;&#039;&#039;: Longpoll aktiv; geänderte Stati werden sofort aktualisiert, zusätzlich werden alle 15min die gesamten Statusänderungen geladen.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_type||websocket||websocket, ajax, 0||&lt;br /&gt;
&#039;&#039;&#039;websocket&#039;&#039;&#039;: Für die Aktualisierung der Daten wird das Websocket-Protokoll verwendet. Werden vom Browser keine Websockets unterstützt, gibt es einen automatischen Fallback auf Ajax.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ajax&#039;&#039;&#039;: Ajax wird für die Aktualisierung verwendet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;0&#039;&#039;&#039;: Longpoll deaktiviert, Shortpoll wird verwendet.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_filter||.*||RegEx||Event-Filter. Kann verwendet werden, wenn z.B. Devices, die in FTUI angezeigt werden, in einem eigenen FHEM-Room sind.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_maxage||240||Integer||Kommen in diesem Zeitraum (Sekunden) keine Longpoll-Events bei FTUI an, wird die Verbindung als &amp;quot;disconnected&amp;quot; angesehen und ein neuer Verbindungsversuch wird gestartet.&lt;br /&gt;
|-&lt;br /&gt;
|shortpoll_interval||900||Integer||Zeitraum in Sekunden, nach dem ein vollständiger Refresh stattfindet&lt;br /&gt;
|-&lt;br /&gt;
|shortpoll_only_interval||30||Integer||Zeitraum in Sekunden, nach dem ein vollständiger Refresh stattfindet, sollte Longpoll deaktiviert sein&lt;br /&gt;
|-&lt;br /&gt;
|fhemweb_url||/fhem/||Integer||URL zu FHEM. Wird benötigt wenn FTUI auf einem anderen als dem FHEM Server läuft oder nicht im Standard-Pfad installiert ist. &lt;br /&gt;
Hinweis: Wenn FHEM auf einem anderem Server/Domain läuft muss man das &amp;quot;CORS&amp;quot; Attribut im FHEMWEB Modul (s.o.) auf 1 setzen, sonst bekommt man Cross Origin Fehler. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Funktionalität===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter-Name!!Standard-Wert!!Mögliche Werte!!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|debug||0||0 - 5||Log-Level&lt;br /&gt;
|-&lt;br /&gt;
|toast||5||Integer||Anzahl an gleichzeitig angezeigten Toast-Nachrichten. Um keine anzuzeigen, ist der Wert auf 0 zu setzen.&lt;br /&gt;
|-&lt;br /&gt;
|toast_position||bottom-left||||Position im Browserfenster, wo die Toast-Nachrichten angezeigt werden.&lt;br /&gt;
|-&lt;br /&gt;
|lang||de||de||Sprache der Oberfläche (für z.B. Datums-/Zeitfunktionen)&lt;br /&gt;
|-&lt;br /&gt;
|username||||String||Benutzername für eine Basic-Authentifierung *&lt;br /&gt;
|-&lt;br /&gt;
|password||||String||Passwort für eine Basic-Authentifizierung *&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; Derzeit wird die Basic-Authentifizierung in Kombination mit WebSockets nicht unterstützt. Die Verwendung von &#039;&#039;&#039;longpoll=1&#039;&#039;&#039; (ajax) ist daher notwendig.&lt;br /&gt;
&lt;br /&gt;
===Toast-Nachrichten===&lt;br /&gt;
[[Datei:Ftui_toast.png|thumb|Toast-Nachrichten]]&lt;br /&gt;
Tablet-UI liefert Informationen darüber, was im Moment gerade passiert. Das geschieht über Toast-Nachrichten, die in der Standardeinstellung unten links im Browser auftauchen.&lt;br /&gt;
&lt;br /&gt;
Wird beispielsweise ein Gerät eingeschaltet, so erscheint eine kleine Nachricht mit dem abgesetzten Befehl. Auch Fehlermeldungen und Statusinformationen werden angezeigt. Ob überhaupt und was konkret angezeigt wird, richtet sich nach dem eingestellten Debug-Level (siehe oben). Beim Debug-Level 5 werden alle Nachrichten angezeigt, bei 0 keine.&lt;br /&gt;
&lt;br /&gt;
Die Position der Toast-Nachrichten kann über den Meta-Tag &amp;lt;code&amp;gt;meta name=&#039;toast_position&#039;&amp;lt;/code&amp;gt; festgelegt werden. Für oben-mittig müsste folgender Code eingefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;meta name=&#039;toast_position&#039; content=&#039;top-center&#039;&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Möglich sind folgende Positionen:&lt;br /&gt;
* &amp;lt;code&amp;gt;top-left&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-right&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-left&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-right&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-center&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-center&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mid-center&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die maximale Anzahl an Nachrichten, die gleichzeitig angezeigt werden können, lässt sich mit &amp;lt;code&amp;gt;meta name=&#039;toast&#039;&amp;lt;/code&amp;gt; Sind maximal 2 Nachrichten gewünscht, muss folgender Meta-Tag gesetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;meta name=&#039;toast&#039; content=&#039;2&#039;&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Navigationsmethoden==&lt;br /&gt;
{{Todo|Dieser Abschnitt dient derzeit lediglich als Sammlung von Stichpunkten und muss vollständig überarbeitet werden.}} &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unterschied zwischen Pagetab und Pagebutton:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pagetab:&#039;&#039;&#039; Ganze Seite austauschen -&amp;gt; Menü muss auf jede Seite&lt;br /&gt;
[[FTUI_Widget_Pagetab]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pagebutton:&#039;&#039;&#039; Teil der Seite austauschen -&amp;gt; Menü nur in erster Seite&lt;br /&gt;
[[FTUI_Widget_Pagebutton]]&lt;br /&gt;
&lt;br /&gt;
==Gestaltung==&lt;br /&gt;
===Layout-Optionen===&lt;br /&gt;
* [[FTUI Layout Gridster|Gridster]]&lt;br /&gt;
* [[FTUI Layout Flex|Flex]]&lt;br /&gt;
* [[FTUI Layout Sheet|Tabelle]]&lt;br /&gt;
* [[FTUI Layout Row|Reihen]]&lt;br /&gt;
&lt;br /&gt;
=== Farben ===&lt;br /&gt;
Es besteht die Möglichkeit, die Farbwerte in hexadezimaler Form, als RGB-Wert oder mit dem Farbnamen anzugeben. Zum Beispiel: &lt;br /&gt;
&lt;br /&gt;
*HEX: #ADD8E6&lt;br /&gt;
*RBG: rgb(173, 216, 230)&lt;br /&gt;
*Namen: lightblue&lt;br /&gt;
&lt;br /&gt;
Knallige Farben wie &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;#ff0000&amp;lt;/span&amp;gt;&#039;&#039;&#039; für Rot oder &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #00ff00;&amp;quot;&amp;gt;#00ff00&amp;lt;/span&amp;gt;&#039;&#039;&#039; für Grün sollten vermieden werden.&lt;br /&gt;
Es ist besser unterhalb von #D0 (208) für die Grundfarben zu bleiben.&lt;br /&gt;
&lt;br /&gt;
Empfohlene Farben sind z.B.:&lt;br /&gt;
&lt;br /&gt;
*Orange: &amp;lt;span style=&amp;quot;color: #aa6900;&amp;quot;&amp;gt;#aa6900&amp;lt;/span&amp;gt;&lt;br /&gt;
*Rot: &amp;lt;span style=&amp;quot;color: #ad3333;&amp;quot;&amp;gt;#ad3333&amp;lt;/span&amp;gt;&lt;br /&gt;
*Grün: &amp;lt;span style=&amp;quot;color: #32a054;&amp;quot;&amp;gt;#32a054&amp;lt;/span&amp;gt;&lt;br /&gt;
*Blau: &amp;lt;span style=&amp;quot;color: #6699FF;&amp;quot;&amp;gt;#6699FF&amp;lt;/span&amp;gt;&lt;br /&gt;
*Grau: &amp;lt;span style=&amp;quot;color: #8C8C8C;&amp;quot;&amp;gt;#8C8C8C&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfreich bei der Suche nach den Farbwerten ist zum Beispiel der Color-Picker auf dieser Seite: http://www.colorpicker.com. Für die Suche nach Farben, die einen guten Kontrast bilden, diese Webseite: http://vanisoft.pl/~lopuszanski/public/colors/&lt;br /&gt;
&lt;br /&gt;
Im Ordner &#039;&#039;css&#039;&#039; der FTUI Installation finden sich einige vorbereitete Farbschemata. Diese können mit einem zusätzlichen Eintrag im &amp;lt;nowiki&amp;gt;&amp;lt;head&amp;gt;&amp;lt;/nowiki&amp;gt;-Bereich der FTUI-Seite(n) aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Hier am Beispiel eines blauen Farbschemas:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
   [...]&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/fhem/tablet/css/fhem-blue-ui.css&amp;quot; /&amp;gt;&lt;br /&gt;
   [...]&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Schema-Dateien ändern alle Widgets. &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Theme_default.png|default&lt;br /&gt;
File:Theme_blue.png|fhem-blue-ui.css&lt;br /&gt;
File:Theme_green.png|fhem-green-ui.css&lt;br /&gt;
File:Theme_mobile.png|fhem-mobile-ui.css&lt;br /&gt;
File:Theme_darkblue.png|fhem-darkblue-ui.css&lt;br /&gt;
File:Theme_darkgreen.png|fhem-darkgreen-ui.css&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einzelne Widgets können durch Hinzufügen der jeweiligen [[#CSS-Klassen|CSS-Klasse]] geändert werden.&lt;br /&gt;
&lt;br /&gt;
===CSS-Styles===&lt;br /&gt;
Das Layout und das Aussehen des UI kann durch diverse vorgegebene CSS-Klassen beeinflusst werden. Die verfügbaren Klassen sind im Abschnitt [[#CSS-Klassen|CSS-Klassen]] aufgeführt.&lt;br /&gt;
&lt;br /&gt;
Soll das Aussehen des UI durch eigene CSS-Klassen oder durch Überschreiben der vorhandenen verändert werden, kann eine eigene CSS-Datei erstellt werden, die dann bei einem eventuellen Update von FTUI nicht überschrieben wird. Diese Datei muss den Dateinamen &#039;&#039;&#039;fhem-tablet-ui-user.css&#039;&#039;&#039; haben und im Ordner &#039;&#039;&#039;/fhem/tablet/css&#039;&#039;&#039; abgelegt werden. Sie wird dann beim Aufruf von FTUI automatisch mitgeladen.&lt;br /&gt;
&lt;br /&gt;
=== CSS-Klassen ===&lt;br /&gt;
Nicht alle Widgets unterstützen alle hier angegebenen Klassen. Welche genau unterstützt werden, kann auf der jeweiligen Widget-Seite nachgelesen werden.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|sheet/row/cell-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|sheet}}{{FTUI Klasse|row}}{{FTUI Klasse|cell}}{{FTUI Klasse|cell-1-x}}{{FTUI Klasse|cell-x}}{{FTUI Klasse|left-align}}{{FTUI Klasse|right-align}}{{FTUI Klasse|bottom-align}}{{FTUI Klasse|top-align}}{{FTUI Klasse|center-align}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|row/col-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|col}}{{FTUI Klasse|col-1-x}}{{FTUI Klasse|col-x}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|hbox/vbox-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|vbox}}{{FTUI Klasse|hbox}}{{FTUI Klasse|card}}{{FTUI Klasse|phone-width}}{{FTUI Klasse|full-height}}{{FTUI Klasse|full-width}}{{FTUI Klasse|grow-0}}{{FTUI Klasse|grow-1}}{{FTUI Klasse|grow-2}}{{FTUI Klasse|grow-x}}{{FTUI Klasse|items-top}}{{FTUI Klasse|items-center}}{{FTUI Klasse|items-bottom}}{{FTUI Klasse|items-space-between}}{{FTUI Klasse|items-space-around}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Generelle Klassen für die Positionierung&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|inline}}{{FTUI Klasse|newline}}{{FTUI Klasse|top-space}}{{FTUI Klasse|top-space-2x}}{{FTUI Klasse|top-space-3x}}{{FTUI Klasse|left-space}}{{FTUI Klasse|left-space-2x}}{{FTUI Klasse|left-space-3x}}{{FTUI Klasse|right-space}}{{FTUI Klasse|right-space-2x}}{{FTUI Klasse|right-space-3x}}{{FTUI Klasse|top-narrow}}{{FTUI Klasse|top-narrow-2x}}{{FTUI Klasse|top-narrow-10}}{{FTUI Klasse|left-narrow}}{{FTUI Klasse|left-narrow-2x}}{{FTUI Klasse|left-narrow-3x}}{{FTUI Klasse|right-narrow}}{{FTUI Klasse|right-narrow-2x}}{{FTUI Klasse|right-narrow-3x}}{{FTUI Klasse|centered}}{{FTUI Klasse|wider}}{{FTUI Klasse|narrow}}{{FTUI Klasse|fullsize}}{{FTUI Klasse|compressed}}{{FTUI Klasse|height-narrow}}{{FTUI Klasse|w1x}}{{FTUI Klasse|w2x}}{{FTUI Klasse|w3x}}{{FTUI Klasse|maxw40}}{{FTUI Klasse|doublebox-v}}{{FTUI Klasse|doublebox-h}}{{FTUI Klasse|triplebox-v}}{{FTUI Klasse|right}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Vordergrundfarben&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|red}}{{FTUI Klasse|green}}{{FTUI Klasse|blue}}{{FTUI Klasse|lightblue}}{{FTUI Klasse|orange}}{{FTUI Klasse|gray}}{{FTUI Klasse|lightgray}}{{FTUI Klasse|white}}{{FTUI Klasse|black}}{{FTUI Klasse|mint}}{{FTUI Klasse|yellow}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Hintergrundfarben&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|bg-red}}{{FTUI Klasse|bg-green}}{{FTUI Klasse|bg-blue}}{{FTUI Klasse|bg-lightblue}}{{FTUI Klasse|bg-orange}}{{FTUI Klasse|bg-gray}}{{FTUI Klasse|bg-lightgray}}{{FTUI Klasse|bg-white}}{{FTUI Klasse|bg-black}}{{FTUI Klasse|bg-mint}}{{FTUI Klasse|bg-yellow}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Rahmen&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|verticalLine}}{{FTUI Klasse|border-black}}{{FTUI Klasse|border-white}}{{FTUI Klasse|border-orange}}{{FTUI Klasse|border-red}}{{FTUI Klasse|border-green}}{{FTUI Klasse|border-mint}}{{FTUI Klasse|border-lightblue}}{{FTUI Klasse|border-blue}}{{FTUI Klasse|border-gray}}{{FTUI Klasse|border-yellow}}{{FTUI Klasse|border-lightgray}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Größen&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|mini}}{{FTUI Klasse|tiny}}{{FTUI Klasse|small}}{{FTUI Klasse|normal}}{{FTUI Klasse|large}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|tall}}{{FTUI Klasse|great}}{{FTUI Klasse|grande}}{{FTUI Klasse|gigantic}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Schriftstil&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|thin}}{{FTUI Klasse|bold}}{{FTUI Klasse|darker}}{{FTUI Klasse|truncate}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Sonstiges&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|blank}}{{FTUI Klasse|transparent}}{{FTUI Klasse|half-transparent}}{{FTUI Klasse|blurry}}{{FTUI Klasse|shake}}{{FTUI Klasse|fail-shake}}{{FTUI Klasse|marquee}}{{FTUI Klasse|icon round}}{{FTUI Klasse|icon square}}{{FTUI Klasse|readonly}}{{FTUI Klasse|blink}}{{FTUI Klasse|rotate-90}}{{FTUI Klasse|horizontal}}{{FTUI Klasse|circleborder}}{{FTUI Klasse|autohide}}{{FTUI Klasse|notransmit}}{{FTUI Klasse|tap}}{{FTUI Klasse|FS20}}{{FTUI Klasse|value}}{{FTUI Klasse|novalue}}{{FTUI Klasse|timestamp}}{{FTUI Klasse|percent}}{{FTUI Klasse|nocache}}{{FTUI Klasse|fade}}{{FTUI Klasse|rotate}}{{FTUI Klasse|nolabels}}{{FTUI Klasse|default}}{{FTUI Klasse|prefetch}}{{FTUI Klasse|circulate}}{{FTUI Klasse|valueonly}}{{FTUI Klasse|positiononly}}{{FTUI Klasse|lineIndicator}}{{FTUI Klasse|barIndicator}}{{FTUI Klasse|roundIndicator}}{{FTUI Klasse|dim-tick}}{{FTUI Klasse|dim-front}}{{FTUI Klasse|dim-back}}{{FTUI Klasse|hue-tick}}{{FTUI Klasse|hue-front}}{{FTUI Klasse|hue-back}}{{FTUI Klasse|warn}}{{FTUI Klasse|activate}}{{FTUI Klasse|labelright}}{{FTUI Klasse|interlock}}{{FTUI Klasse|keepopen}}{{FTUI Klasse|noshade}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Überlagerung von Text und Bild ===&lt;br /&gt;
[[Datei:FTUI_Text_auf_Bild.png||thumb|right]]&lt;br /&gt;
Texte können auf Bildern positioniert werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;4&amp;quot; data-sizey=&amp;quot;4&amp;quot; data-sizex=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;display&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;image&amp;quot; data-url=&amp;quot;https://picsum.photos/200/125/?random&amp;quot; data-size=&amp;quot;100%&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-center bigger&amp;quot; data-type=&amp;quot;label&amp;quot;&amp;gt;Text1&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-topright bigger right-space top-space&amp;quot; data-type=&amp;quot;label&amp;quot;&amp;gt;Text2&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;ontop bigger&amp;quot; style=&amp;quot;left: 120px; top: 50px&amp;quot;&amp;gt;Text3&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Verfügung stehen folgende Grundpositionen:&lt;br /&gt;
* &amp;lt;code&amp;gt;display-topleft&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-topcenter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-topright&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-centerleft&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-left&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-centerright&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-right&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-bottomleft&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-bottomcenter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-bottomright&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Feinjustage ist möglich über&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;right-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;left-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;right-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;left-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;right-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;left-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:FTUI_Beispiel_Positionierung.png|200px|thumb|right]]&lt;br /&gt;
Verallgemeinert lassen sich auf diese Weise &#039;&#039;&#039;Objekte frei im Elternelement positionieren&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;display&amp;quot; data-type=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-topcenter top-space big&amp;quot;&amp;gt;Fenster&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-center fa fa-4x ftui-window&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-bottomleft bottom-space left-space&amp;quot; data-type=&amp;quot;label&amp;quot;&amp;gt;Text&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Icons ===&lt;br /&gt;
FTUI bringt einige Icons-&amp;quot;Schriftarten&amp;quot; mit, die für die Darstellung genützt werden können. Diese werden automatisch beim Start des UI eingebunden, sobald ein entsprechendes Icon-Präfix im Code der Seite vorkommt.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Icon-Schriftarten sind:&lt;br /&gt;
* Eingebaute Icons &#039;&#039;ftui-window&#039;&#039; und &#039;&#039;ftui-door&#039;&#039;. Präfix &#039;&#039;&#039;ftui-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;ftui-door&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [http://fontawesome.io/icons/ Font-Awesome]: Mehr als 500 Icons zur Auswahl. Präfix &#039;&#039;&#039;fa-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;fa-volume-up&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://material.io/icons/ Material Icons]: Mehr als 900 Icons zur Auswahl. Präfix &#039;&#039;&#039;mi-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;mi-local_gas_station&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* FHEM und OpenAutomation Icons: Präfix &#039;&#039;&#039;fs-&#039;&#039;&#039; und &#039;&#039;&#039;oa-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;oa-secur_locked&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://erikflowers.github.io/weather-icons/ Weather-Icons]: Präfix &#039;&#039;&#039;wi &#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;wi wi-day-rain-mix&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch Bilder Icons (bspw. png) über CSS verwendet werden. Bspw:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
  &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        .logo-fhem {&lt;br /&gt;
            background: url(https://wiki.fhem.de/fhemlogo.png) no-repeat;&lt;br /&gt;
            width: 120px;&lt;br /&gt;
            height: 132px;&lt;br /&gt;
            background-size: contain;&lt;br /&gt;
        }&lt;br /&gt;
  &amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-icon=&amp;quot;logo-fhem&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Widgets ==&lt;br /&gt;
===Allgemeine Attribute===&lt;br /&gt;
Jedes Widget kann über verschiedene Attribute konfiguriert werden. Folgende Attribute gelten für alle Widgets:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+allgemeine Attribute&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-type&lt;br /&gt;
|Widget-Typ&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-device&lt;br /&gt;
|FHEM-Name des Gerätes (mit dem Befehl &#039;list&#039; bekommt man im FHEM die kpl. Liste)&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|CSS-Klassen für Aussehen und Formatierung des Widgets&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Daten Empfangen&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|Reading Name&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-on&lt;br /&gt;
|Wert für den Status on&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-off&lt;br /&gt;
|Wert für den Status off&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Daten Senden&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set&lt;br /&gt;
|Reading Name&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set-on&lt;br /&gt;
|Wert für den Status on&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set-off&lt;br /&gt;
|Wert für den Status off&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Widget-spezifische Attribute können auf der jeweiligen Widget-Seite nachgelesen werden.&lt;br /&gt;
&lt;br /&gt;
=== Integrierte Widgets ===&lt;br /&gt;
Folgende Widgets sind direkt in FHEM Tablet UI integriert und können &amp;quot;out of the box&amp;quot; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* [[FTUI Widget Button|button]]: Variante der push und switch Widgets, die entweder einen URL ansteuern oder einen FHEM-Befehl absetzen kann&lt;br /&gt;
* [[FTUI Widget Checkbox|checkbox]]: Umschalter zwischen zwei definierten Zuständen&lt;br /&gt;
* [[FTUI Widget Circlemenu|circlemenu]]: Mehrere Widgets hinter einem Widget verborgen, trotz des &#039;circle&#039; im Namen kann das Menue jetzt auch horizontal oder vertikal ausgeklappt werden &lt;br /&gt;
* [[FTUI Widget Clock|clock]]: Stellt eine einfache Uhr zur Verfügung&lt;br /&gt;
* [[FTUI Widget Colorwheel|colorwheel]]: Farbpalette zur Auswahl von Farben&lt;br /&gt;
* [[FTUI Widget Controlbutton|controlbutton]]: iOS-ähnlicher Button zum Schalten zwischen zwei Zuständen (z.B. on / off)&lt;br /&gt;
* [[FTUI Widget Controller|controller]]: iOS-ähnlicher vertikaler Schieberegler zum Einstellen eines Wertes&lt;br /&gt;
* [[FTUI Widget Datetimepicker|datetimepicker]]: Erstellt eine Auswahl für Datum/Uhrzeit&lt;br /&gt;
* [[FTUI Widget Departure|departure]]: Abfahrtszeiten öffentlicher Verkehrsmittel&lt;br /&gt;
* [[FTUI Widget Dimmer|dimmer]]: Ein-/Aus-Button mit integriertem Schieberegler für z.B. einen Dim-Wert&lt;br /&gt;
* [[FTUI Widget Eventmonitor|eventmonitor]]:&lt;br /&gt;
* [[FTUI Widget Homestatus|homestatus]]: Auswahl für vier oder fünf definierte Stati eines Objects (z.B.: FHEM Residents)&lt;br /&gt;
* [[FTUI Widget Html|html]]:&lt;br /&gt;
* [[FTUI Widget Iframe|iframe]]: Widget zum Einbinden externer Inhalte in einem Iframe&lt;br /&gt;
* [[FTUI Widget Image|image]]: Zeigt ein Bild, dessen URL fest vorgegeben oder aus einem Device-Reading gelesen werden kann&lt;br /&gt;
* [[FTUI Widget Input|input]]: Erstellen eines Texteingabefeldes&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/joinedlabel joinedlabel]: verbindet mehrere Readings zu einem Feld&lt;br /&gt;
* [[FTUI Widget Klimatrend|klimatrend]]: wandelt Daten aus dem statistics-Modul in einen Pfeil um, der den aktuellen Trend anzeigt&lt;br /&gt;
* [[FTUI Widget Knob|knob]]: Erstellt einen Statusbalken auf einer Kreisbahn&lt;br /&gt;
* [[FTUI Widget Label|label]]: Reading als Text anzeigen&lt;br /&gt;
* [[FTUI Widget Level|level]]: Vertikale oder horizontale Leiste zur Anzeige von Werten zwischen einem Minimal- und einem Maximalwert&lt;br /&gt;
* [[FTUI Widget Link|link]]: Erstellt einen Link oder Button zum Aufrufen von URLs oder Senden von Befehlen an FHEM&lt;br /&gt;
* [[FTUI Widget Medialist|medialist]]:&lt;br /&gt;
* [[FTUI Widget Multistatebutton|multistatebutton]]: Variante des push-Widgets, welches den set-Befehl abhängig vom gelesenen Status ändert&lt;br /&gt;
* [[FTUI Widget Notify|notify]]: Blendet ein Hinweisfenster im Browser ein&lt;br /&gt;
* [[FTUI Widget Pagebutton|pagebutton]]: Button, mit dem auf andere Seiten gesprungen werden kann. Eignet sich gut für eine Navigation&lt;br /&gt;
* [[FTUI Widget Pagetab|pagetab]]: Tauscht den Inhalt einer Seite durch den einer anderen. Eignet sich gut für ein Navigationsmenü&lt;br /&gt;
* [[FTUI Widget Playstream|playstream]]: Abspielen eines Webradio-Streams per Button&lt;br /&gt;
* [[FTUI Widget Popup|popup]]: Öffnet ein Popup nach einem Klick auf ein Widget oder HTML-Element &lt;br /&gt;
* [[FTUI Widget Progress|progress]]: Zeigt einen Prozentwert in Form einer runden Fortschrittsleiste&lt;br /&gt;
* [[FTUI_Widget_Push|push]]: Button, mit dem ein Befehl an FHEM gesendet werden kann&lt;br /&gt;
* [[FTUI Widget Range|range]]: Erstellt vertikale Balken, die einen Wertebereich in unterschiedlichen Farben darstellen&lt;br /&gt;
* [[FTUI Widget Readingsgroup|readingsgroup]]: Zeigt eine Readingsgroup an, wie sie in FHEM definiert wurde&lt;br /&gt;
* [[FTUI Widget Rotor|rotor]]: Animiertes Umschalten von zwei oder mehr Widgets an einer Position&lt;br /&gt;
* [[FTUI Widget Scale|scale]]: Vertikale oder horizontale Leiste zur Anzeige von Werten zwischen einem Minimal- und einem Maximalwert&lt;br /&gt;
* [[FTUI_Widget_Select|select]]: Combobox, die eine Liste an Werten zur Auswahl anzeigt&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/settimer settimer]: Zum Anzeigen und Einstellen einer Uhrzeit&lt;br /&gt;
* [[FTUI Widget Simplechart|simplechart]]: Einfaches XY-Diagramm zur Anzeige eines Wertes, der direkt aus einem FHEM-Logfile gelesen wird&lt;br /&gt;
* [[FTUI Widget Slideout|slideout]]:&lt;br /&gt;
* [[FTUI Widget Slider|slider]]: Vertikaler Schieberegler zum Einstellen eines Wertes &lt;br /&gt;
* [[FTUI Widget Spinner|spinner]]: Element, um Werte durch Drücken auf Plus-/Minus- oder Höher-/Tiefer-Icons zu ändern&lt;br /&gt;
* [[FTUI Widget Swiper|swiper]]: Bietet die Möglichkeit, durch Wischen zwischen verschiedenen Seiten zu wechseln&lt;br /&gt;
* [[FTUI Widget Switch|switch]]: Button, um zwischen zwei Zuständen zu schalten (z.B. on / off)&lt;br /&gt;
* [[FTUI Widget Symbol|symbol]]: Status eines Devices als Symbol darstellen (z.B. Fenster offen)&lt;br /&gt;
* [[FTUI Widget Theme|theme]]: Kontextspezifisches Design&lt;br /&gt;
* [[FTUI Widget Thermostat|thermostat]]: Anzeige für Heizungsthermostate, mit der die gewünschte Temperatur eingestellt werden kann&lt;br /&gt;
* [[FTUI Widget Volume|volume]]: Einstellscheibe zur Änderung eines einzelnen Wertes&lt;br /&gt;
* [[FTUI Widget Weather|weather]]: Wettersymbol anzeigen&lt;br /&gt;
* [[FTUI Widget Weatherdetail|weatherdetail]]: Detaillierte Wettervorhersage über 4 Tage (Nutzt das Proplanta Modul)&lt;br /&gt;
* [[FTUI Widget WindDirection|wind_direction]]: Anzeige der Windrichtung auf einer Windrose&lt;br /&gt;
&lt;br /&gt;
===3rd Party Widgets===&lt;br /&gt;
Für diese Widgets kann nicht sichergestellt werden, dass sie mit der jeweils aktuellen Version von FTUI funktionieren.&lt;br /&gt;
* [[FTUI Widget Agenda|agenda]]: Zeigt Kalendereinträge in einer Listenform an&lt;br /&gt;
* [[FTUI_Widget_Analogclock|analogclock]]: Analoguhr&lt;br /&gt;
* [[FTUI Widget Calview|calview]]: Zeigt Einträge aus einem [[CALVIEW]]-Device an&lt;br /&gt;
* [[FTUI Widget Chart|chart]]: Diagramm mit ähnlichen Möglichkeiten wie die FHEM-Plots&lt;br /&gt;
* [[FTUI Widget Classchanger|classchanger]]: Ändert seine CSS-Klassen je nach Status eines Devices&lt;br /&gt;
* [[FTUI Widget Clicksound|clicksound]]: Mit dem Widget &amp;quot;clicksound&amp;quot; können Sounds an Click-Events von Elementen gebunden werden.&lt;br /&gt;
* [[FTUI Widget Filelog|filelog]]:&lt;br /&gt;
* [[FTUI Widget Fullcalview|fullcalview]]:&lt;br /&gt;
* [[FTUI Widget Gds|gds]]:&lt;br /&gt;
* [[FTUI Widget Maps|maps]]: Kartendarstellung mit Google Maps API&lt;br /&gt;
* [[FTUI Widget Highchart|highchart]]:&lt;br /&gt;
* [[FTUI Widget Highchart3d|highchart3d]]:&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/itunes_artwork itunes_artwork]: itunes_artwork durchsucht die iTunes-Datenbank anhand eines Arrays von beliebigen Suchworten nach einem Cover-Artwork und zeigt dieses an. &lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/javascript javascript]: Ermöglicht die Ausführung beliebigen Javascript-Codes aus einem Reading.&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/kodinowplaying kodinowplaying]: zeigt Informationen zu grade in KODI gespielten Medien in Form eines Labels an.&lt;br /&gt;
* [[FTUI Widget Loading|loading]]:&lt;br /&gt;
* [[FTUI Widget Meteogram|meteogram]]:&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/mpdnowplaying mpdnowplaying]: Zeigt Titelinformationen eines per MPD-Modul angebundenen Music Player Daemon an.&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,79283.msg712855.html#msg712855 pinpad]: Pinpad für z.B. eine Alarmanlage&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,76643.msg685472.html#msg685472 postme]: Liste des PostMe-Devices anzeigen&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/reload reload]: auslösen eine Pagereloads&lt;br /&gt;
* [[FTUI Widget Screensaver|screensaver]]:&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,73497.0.html scrolllabel]: Texte in Laufschrift darstellen&lt;br /&gt;
* [[FTUI Widget Svgplot|svgplot]]:&lt;br /&gt;
* [https://forum.fhem.de/index.php?topic=82883.msg750237#msg750237 todoist]: einfaches widget für todoist&lt;br /&gt;
* [[FTUI Widget Tts|tts]]: Sprachausgabe eines Textes aus einem Reading auf dem Endgerät.&lt;br /&gt;
* [[FTUI Widget UWZ|uwz]]: Anzeige der Warnungen der Unwetterzentrale&lt;br /&gt;
* [[FTUI Widget Wakeup|wakeup]]:&lt;br /&gt;
* [https://github.com/svenson08/ftui-weekdaytimer-widget wdtimer]: Visualisierung des [[WeekdayTimer]] Modul&lt;br /&gt;
* [[FTUI Widget Weekprofile|weekprofile]]: Visualisierung des [[weekprofile]] Moduls&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele===&lt;br /&gt;
Durch die Verbindung von Widgets mit dem FHEM-Umfeld entstehen Lösungen für typische Anwendungen.&lt;br /&gt;
* [[FTUI_Beispiel_Datetimepicker_für_Timer|Datetimepicker für Timer]]: Oberfläche für Timereinstellungen&lt;br /&gt;
* [[FTUI_Beispiel_Mondphase|Mondphase]]: Visuelle Darstellung der Mondphase&lt;br /&gt;
* [[FTUI_Beispiel_Webradio|Webradio]]&lt;br /&gt;
* [[FTUI Beispiel Zeitschaltung|Verschiedene Zeitschaltungen]]&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
Kommt ein bestimmtes &amp;quot;Code-Fragment&amp;quot; auf mehreren Seiten oder öfter pro Seite vor, bietet FTUI die Option, Templates zu erstellen. Diese werden einmal gebaut und können dann mit dem Attribut &#039;&#039;&#039;data-template&#039;&#039;&#039; nach Belieben in eine Seite eingefügt werden. Dabei besteht auch die Möglichkeit, Variablen zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Die Variablennamen sollten möglichst eindeutig und unverwechselbar gewählt werden, da bei der Verwendung von Templates im Prinzip Suchen &amp;amp; Ersetzen angewendet wird. Verwendet man beispielsweise die Variablen &#039;&#039;&#039;dev:Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;dev_temp:temperatue&#039;&#039;&#039;, so kann es passieren, dass die Ergebnisse im erzeugten Code dann &#039;&#039;&#039;Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;Thermostat_Kueche_temp&#039;&#039;&#039; lauten, statt wie gewünscht &#039;&#039;&#039;Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;temperature&#039;&#039;&#039;. Um dies zu vermeiden, sollten die Variablen besser &#039;&#039;&#039;device:Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;temp:temperatue&#039;&#039;&#039; lauten.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden ein paar Beispiele, wie Templates verwendet werden können.&lt;br /&gt;
&lt;br /&gt;
===Einzelnes Widget===&lt;br /&gt;
Soll ein Widget an mehreren Stellen in exakt der selben Ausführung eingebunden werden, kann diese Widget in einer eigenen Datei erstellt und diese dann auf den Zielseiten automatisch mitgeladen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
Die Template-Seite soll in diesem Beispiel &#039;&#039;template_symbol.html&#039;&#039; genannt werden. Diese wird daher zuerst im FTUI-Verzeichnis erstellt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;dummy1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
Die oben erstellte Template-Seite kann nun in jeder gewünschten Seite eingebunden werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; highlight=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;gridster&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;div data-template=&amp;quot;template_symbol.html&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gridster-Element===&lt;br /&gt;
Natürlich kann auch ein ganzes Gridster-Element - in diesem Fall ein Menü - als Template eingebunden werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot; data-template=&amp;quot;menu.html&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Widget-Gruppen ===&lt;br /&gt;
Die Template-Datei des [[#Einzelnes Widget|ersten Beispiels]] kann natürlich auch mehrere Widgets auf einmal enthalten.&lt;br /&gt;
&lt;br /&gt;
=== Verwendung von Variablen ===&lt;br /&gt;
==== Einfaches Beispiel ====&lt;br /&gt;
Oft wird ein und dasselbe Widget für verschiedenen Devices verwendet. Um nicht für jedes Device das Widget neu kopieren zu müssen (bzw. bei Änderungen alle Seiten ausbessern zu müssen), kann ein Template verwendet werden, dem einfach per Parameter mitgeteilt wird, von welchem Device es gerade die Daten empfangen soll.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird ein Template erzeugt, dass nur die Temperatur verschiedenen Thermostate mittels eines [[FTUI Widget Label|Label-Widgets]] anzeigt.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
Die Template-Seite enthält nur ein einfaches Label-Widget und wird in diesem Beispiel &#039;&#039;template_label.html&#039;&#039; genannt. Um sie für mehrere Devices verwenden zu können, wird im Attribut &#039;&#039;&#039;data-device&#039;&#039;&#039; der Name des eigentlichen Devices durch den Parameter &#039;&#039;&#039;par01&#039;&#039;&#039; ersetzt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; highlight=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;par01&amp;quot;&lt;br /&gt;
     data-get=&amp;quot;measured-temp&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
Auf der Haupt-Seite wird die Template-Seite mit dem Attribut &#039;&#039;&#039;data-template&#039;&#039;&#039; eingebunden und ihr via Attribut &#039;&#039;&#039;data-parameter&#039;&#039;&#039; das jeweils gewünschte Device übergeben.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat1&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat2&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat3&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wetter-Slider mit Template ====&lt;br /&gt;
In diesem Beispiel wird ein [[FTUI Widget Slider|Slider-Widget]] erstellt, welches die verschiedenen Tage eines Wetterberichtes anzeigt. Dabei wird für den Wetterbericht des jeweiligen Tages immer dasselbe Template verwendet um nicht für jeden Tag ein eigenes Widget schreiben zu müssen.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par01&amp;quot; data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;inline&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par02&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;lt;div data-type=&amp;quot;weather&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par02&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
       min:&amp;amp;nbsp;&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par03&amp;quot; data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par04&amp;quot; data-substitution=&amp;quot;toDate().eeee()+&#039;,&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par04&amp;quot; data-substitution=&amp;quot;toDate().ddmm()&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
In der Haupt-Seite wird das Template dann für jede Slider-Seite eingebunden und das Reading für den jeweiligen Tag via Parameter übergeben.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;swiper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc0_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc0_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc0_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc0_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc1_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc1_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc1_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc1_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc2_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc2_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc2_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc2_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc3_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc3_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc3_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc3_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JavaScript-Funktionen ==&lt;br /&gt;
Neben den Widgets können auch einige JavaScript-Funktionen verwendet werden, um Befehle an FHEM zu senden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgende Zeile setzt einen direkten Befehl an FHEM ab (&amp;lt;code&amp;gt;set dummy1 off&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;div onclick=&amp;quot;ftui.setFhemStatus(&#039;set dummy1 off&#039;)&amp;quot;&amp;gt;Dummy1 aus&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Zeile veranlasst FHEM dazu, eine Funktion aus der 99_myUtils.pm auszuführen (&amp;lt;code&amp;gt;myUtils_HeizungUpDown(&amp;quot;WZ.Thermostat_Climate&amp;quot;,&amp;quot;up&amp;quot;)&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;div onclick=&amp;quot;ftui.setFhemStatus(&#039;{myUtils_HeizungUpDown(&amp;amp;quot;WZ.Thermostat_Climate&amp;amp;quot;,&amp;amp;quot;up&amp;amp;quot;)}&#039;)&amp;quot;&amp;gt;+&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel, wie ein Kommando an FHEM gesendet wird und gleichzeitig der Wert eines bereits in FTUI angezeigten Readings verwendet werden kann:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get=&amp;quot;temperature&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div onClick=&amp;quot;ftui.setFhemStatus(&#039;set dummy2 &#039;+ftui.getDeviceParameter(&#039;dummy1&#039;,&#039;temperature&#039;).val);&amp;quot;&amp;gt;Senden&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigene Widgets erstellen ==&lt;br /&gt;
Wie eigenen Widgets für FTUI erstellt werden können, ist auf der Seite [[FTUI eigene Widgets]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine Schritt für Schritt Anleitung für das erste eigene Widget gibts hier [[FTUI eigene Widgets - Beispiel]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Häufig gestellte Fragen zum FHEM Tablet UI sind in der [[FHEM Tablet UI FAQ]] zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/knowthelist/fhem-tablet-ui Projekt auf Github]&lt;br /&gt;
* {{Link2Forum|Topic=34233|LinkText=Forums-Beitrag}}&lt;br /&gt;
* [[FTUI_Snippets|Snippets]]&lt;br /&gt;
* [http://knowthelist.github.io/fhem/tablet/demo_widgets.html Live-Demos]&lt;br /&gt;
* [https://waschto.eu/fhem-und-tabletui-livedemo/ FHEM und TabletUI Live-Demo]&lt;br /&gt;
* {{Link2Forum|Topic=37378|LinkText=User-Demos}}&lt;br /&gt;
* [https://github.com/ovibox/fhem-ftui-user-demos Download der User-Demo-Dateien]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|!]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Iframe&amp;diff=28177</id>
		<title>FTUI Widget Iframe</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Iframe&amp;diff=28177"/>
		<updated>2018-10-28T14:15:54Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Erste Version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Iframe Widget]] ist ein Widget für FHEM Tablet UI, welches ein externes HTML-Dokument innerhalb des Body-Elementes einfügt.&lt;br /&gt;
{{Hinweis|Es wird nicht mehr gepflegt und weiterentwickelt, erweist sich gleichwohl als nach wie vor nützlich. Die Dokumentation ist unter Links verknüpft. Man beachte gewisse Unterschiede zu sonst in FTUI üblichen Standards.}}&lt;br /&gt;
In der verknüpften Dokumentation nicht ausgewiesen ist die bedeutsame Möglichkeit, die aufzurufende &#039;&#039;&#039;URL über ein Device&#039;&#039;&#039; zu &#039;&#039;&#039;beziehen&#039;&#039;&#039;, sofern das Reading die Protokoll-Angabe enthält, z.B. &amp;lt;code&amp;gt;http://www.heise.de&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;iframe&amp;quot; data-device=&amp;quot;urlDevice&amp;quot; data-url=&amp;quot;urlReading&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Externe Inhalte können auch ohne dieses Widget, direkt über HTML eingebunden werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://reiseauskunft.bahn.de/bin/bhftafel.exe/dn?ld=15055&amp;amp;country=DEU&amp;amp;rt=1&amp;amp;input=K%F6ln%20Hbf%238000207&amp;amp;boardType=dep&amp;amp;time=actual&amp;amp;productsFilter=11&amp;amp;start=yes&amp;amp;&amp;quot; width=&amp;quot;1000&amp;quot; height=&amp;quot;658&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Links==&lt;br /&gt;
[https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/iframe Dokumentation]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Iframe]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Label&amp;diff=28176</id>
		<title>FTUI Widget Label</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Label&amp;diff=28176"/>
		<updated>2018-10-28T13:17:54Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Hinweise */ data-substitution=&amp;quot;toString().toHoursFromMin&amp;quot; ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Label Widget]] ist ein Widget für [[FHEM Tablet UI]], mit dem ein Reading eines FHEM-Devices in Textform angezeigt werden kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Label_01.png&lt;br /&gt;
File:FTUI_Widget_Label_02.png&lt;br /&gt;
File:FTUI_Widget_Label_03.png&lt;br /&gt;
File:FTUI_Widget_Label_04.png&lt;br /&gt;
File:FTUI_Widget_Label_05.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, dessen Wert angezeigt werden soll||||data-get=&amp;quot;measured-temp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-part&#039;&#039;&#039;||[[Regulärer Ausdruck|RegEx]] oder Nummer des Wortes, nach welcher der angezeigte Text gefiltert werden soll||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-fix&#039;&#039;&#039;||Angegebene Anzahl an Dezimalstellen einhalten||(-1 -&amp;gt; nicht numerisch)||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-color&#039;&#039;&#039;||Fester Wert oder &#039;&#039;&#039;Device:Reading&#039;&#039;&#039; eines Devices für die Label-Farbe||||data-color=&amp;quot;red&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-colors&#039;&#039;&#039;||Ein Array von Farben. Welche Farbe für das Label verwendet wird, wird durch das &#039;&#039;data-limits&#039;&#039;-Attribut bestimmt||||data-colors=&#039;[&amp;quot;red&amp;quot;,&amp;quot;yellow&amp;quot;,&amp;quot;green&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-classes&#039;&#039;&#039;||Ein Array von CSS-Klassen. Welche Klasse verwendet wird, hängt vom zutreffenden Wert im &#039;&#039;data-limits&#039;&#039;-Attribut ab||||data-classes=&#039;[&amp;quot;bg-red&amp;quot;,&amp;quot;bg-yellow&amp;quot;,&amp;quot;bg-green&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-limits&#039;&#039;&#039;||Ein Array numerischer oder RegEx Werte für den Vergleich mit dem aktuellen Wert||||data-limits=&#039;[1,15,30]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-limits-get&#039;&#039;&#039;||Name des Readings, von dem die Werte für den Vergleich mit dem data-limits-Array geholt werden||data-get||data-limit-get=&amp;quot;Dummy01:Limits&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-limits-part&#039;&#039;&#039;||Filtern nach Wert, Position eines Wertes in einer Leerzeichen-getrennte Liste oder RegEx||&#039;-1&#039; -&amp;gt; alle||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-unit&#039;&#039;&#039;||Einheit nach Zahl hinzufügen||||data-unit=&amp;quot;%B0C%0A&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-substitution&#039;&#039;&#039;||Verschiedene Funktionen, um den empfangenen Wert durch etwas anderes zu ersetzen||||siehe [[#Hinweise]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-pre-text&#039;&#039;&#039;||Text, der vor dem empfangenen Wert stehen soll||||data-pre-text=&amp;quot;Es ist &amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-post-text&#039;&#039;&#039;||Text, der nach dem empfangenen Wert sehen soll||||data-post-text=&amp;quot; Grad warm&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Name des Readings, nach dessen Wert das Widget angezeigt werden soll oder nicht||STATE||data-hide=&amp;quot;power-on&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Wert, bei dem das Widget versteckt wird||true,1,on||data-hide-on=&amp;quot;on&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-off&#039;&#039;&#039;||Wert, bei dem das Widget angezeigt wird||!on||data-hide-off=&amp;quot;!on&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hideparents&#039;&#039;&#039;||jQuery-Selector, um auch die Eltern-Elemente zu verstecken||||data-hideparents=&amp;quot;#Name&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-refresh&#039;&#039;&#039;||Anzahl Sekunden, nach denen das Widget aktualisiert werden soll||0 -&amp;gt; kein Auto-Refresh||data-refresh=&amp;quot;10&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|small}}{{FTUI Klasse|large}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|thin}}{{FTUI Klasse|bold}}{{FTUI Klasse|red}}{{FTUI Klasse|green}}{{FTUI Klasse|blue}}{{FTUI Klasse|orange}}{{FTUI Klasse|darker}}{{FTUI Klasse|timestamp}}{{FTUI Klasse|w1x}}{{FTUI Klasse|w2x}}{{FTUI Klasse|w3x}}{{FTUI Klasse|circleborder}}{{FTUI Klasse|squareborder}}{{FTUI Klasse|bg-limit}}{{FTUI Klasse|icon square}}{{FTUI Klasse|icon round}}{{FTUI Klasse|truncate}}{{FTUI Klasse|fixedlabel}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Es kann nur entweder &#039;&#039;data-color&#039;&#039; verwendet werden, oder &#039;&#039;data-colors&#039;&#039; + &#039;&#039;data-limits&#039;&#039;, nicht beides gleichzeitig&lt;br /&gt;
* Mit der Klasse &#039;&#039;bg-limit&#039;&#039; wird die Hintergrund- statt der Vordergrundfarbe abhängig von den Werten in &#039;&#039;data-limits&#039;&#039; geändert&lt;br /&gt;
* Die Klassen &#039;&#039;icon square&#039;&#039; und &#039;&#039;icon round&#039;&#039; formatieren das Label mit einer fixen Breite und Höhe im Icon-Stil&lt;br /&gt;
* Wird die Klasse &#039;&#039;timestamp&#039;&#039; zusammen mit &#039;&#039;data-substitution=&amp;quot;toDate().ago()&amp;quot;&#039;&#039; verwendet, sollte eine automatische Aktualisierung (&#039;&#039;data-refresh=&amp;quot;xx&amp;quot;&#039;&#039;) eingestellt werden für den Fall, dass die Aktualisierungsrate des Readings zu gering ist.&lt;br /&gt;
* Ein benutzerdefiniertes Layout kann durch Hinzufügen der folgenden Klassen in die fhem-tablet-ui-user.css erreicht werden:&lt;br /&gt;
** .label-precomma&lt;br /&gt;
** .label-comma&lt;br /&gt;
** .label-aftercomma&lt;br /&gt;
** .label-unit&lt;br /&gt;
** z.B.: &amp;lt;code&amp;gt;.label-aftercomma{ font-size:40%; left: 4px; top: -25px; position: relative; }&amp;lt;/code&amp;gt;&lt;br /&gt;
* Bis zur Version 2.6.2 wurde data-unit mit 50% Schriftgröße auf der Baseline des Wertes positioniert, danach wird die Unit auf superscript angehoben. Dies kann mit einem Eintrag in fhem-tablet-ui-user.css wieder überschrieben werden.&lt;br /&gt;
** &amp;lt;Code&amp;gt;.label-unit{ font-size: 50%; vertical-align: baseline; }&amp;lt;/code&amp;gt;&lt;br /&gt;
* Klasse &#039;&#039;fixedlabel&#039;&#039;: Vgl. [https://forum.fhem.de/index.php/topic,84158.msg764301.html#msg764301]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Statische Texte:&lt;br /&gt;
* Diese können ressourcenschonend direkt definiert werden; das Widget Label wird hierzu nicht benötigt. Vgl. auch das Beispiel &#039;&#039;Statisches Label mit Symbol&#039;&#039; (s.u.).&lt;br /&gt;
* &amp;lt;Code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;Text&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Funktionsweise(n) von &#039;&#039;data-substitution&#039;&#039;:&lt;br /&gt;
* Ein Array an Ersetzungen: &amp;lt;code&amp;gt;data-substitution=&#039;[&amp;quot;on&amp;quot;,&amp;quot;Lampe ist an&amp;quot;,&amp;quot;off&amp;quot;,&amp;quot;Lampe ist aus&amp;quot;]&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Regulärer Ausdruck|RegEx]], die auf dem Wert angewandt werden soll. Standard RegEx-Schreibweise wird erwartet (s/regex/subst/modifier): &amp;lt;code&amp;gt;data-substitution=&amp;quot;s/no soundplayer active//g&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;data-substitution=&amp;quot;weekdayshort&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Datums-/Zeitumwandlungen:&lt;br /&gt;
** Tag:Monat: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().ddmm()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Stunden:Minuten: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().hhmm()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Stunden:Minuten:Sekunden: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().hhmmss()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** Minuten --&amp;gt; Stunden: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toString().toHoursFromMin()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** den Namen des Wochentages:&lt;br /&gt;
*** Montag, Dienstag, etc.: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().eeee()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Mon, Die, etc.: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().eee()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Mo, Di, etc.: &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().ee()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** einen Zeitraum (langes Format): &amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().ago()&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** einen Zeitraum (kurzes Format):&amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().ago(&#039;hh:mm:ss&#039;)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** einen Zeitraum (Minuten ohne führende Nullen):&amp;lt;code&amp;gt;data-substitution=&amp;quot;toDate().ago(&#039;m&#039;)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** 20:15 statt 20:15:00: &amp;lt;code&amp;gt;data-substitution=&amp;quot;s/(:00)$//g&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Einfaches Auslesen des STATE eines Devices===&lt;br /&gt;
Ein ganz einfaches Beispiel, welches den &#039;&#039;STATE&#039;&#039; eines FHEM-Devices (in diesem Fall ein Heizkörperthermostat) ausliest und anzeigt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;HM_367B39_Climate&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_01.png]]&lt;br /&gt;
&lt;br /&gt;
===Anzeige bestimmter Werte eines Devices===&lt;br /&gt;
In diesem Beispiel werden Temperatur und Luftfeuchtigkeit eines Heizkörperthermostates ausgelesen und untereinander angezeigt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;Temperatur&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;HM_367B21_Climate&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;measured-temp&amp;quot;&lt;br /&gt;
     data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;Luftfeuchte&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;HM_367B21_Climate&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;humidity&amp;quot;&lt;br /&gt;
     data-unit=&amp;quot;%&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_02.png]]&lt;br /&gt;
&lt;br /&gt;
===Textfarbe bei bestimmten Grenzwerten ändern===&lt;br /&gt;
Mit dem Label-Widget kann die Textfarbe je nach bestimmten Grenzwerten geändert werden. In diesem Beispiel ist die Farbe blau, sobald die Temperatur gleich oder kleiner 18° ist, grün ab 20° und rot ab 23°.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;dDummy&amp;quot;&lt;br /&gt;
     data-limits=&#039;[18,20,23]&#039; &lt;br /&gt;
     data-colors=&#039;[&amp;quot;blue&amp;quot;,&amp;quot;green&amp;quot;,&amp;quot;#FF0000&amp;quot;]&#039; &lt;br /&gt;
     data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_03.png]]&lt;br /&gt;
[[Kategorie:FHEM Tablet UI]]&lt;br /&gt;
&lt;br /&gt;
===Zwei Labels in einer Textzeile===&lt;br /&gt;
Mit der Klasse &#039;&#039;inline&#039;&#039; (kein Zeilenumbruch) können mehrere Label-Widgets in der selben Textzeile platziert werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;dDummy&amp;quot; class=&amp;quot;inline&amp;quot;&amp;gt;&amp;lt;/div&amp;gt; bis&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;dDummy2&amp;quot; class=&amp;quot;inline&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_04.png]]&lt;br /&gt;
&lt;br /&gt;
===Kombination von Label- mit anderen Widgets===&lt;br /&gt;
Das Label-Widget kann sehr gut verwendet werden, um einen Beschreibungstext für andere Widgets bereitzustellen.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;EnO_0193F070&amp;quot; data-icon=&amp;quot;mi-power_settings_new&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot;&amp;gt;Nexus7&amp;lt;/div&amp;gt;&lt;br /&gt;
(&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;Nexus7&amp;quot; data-get=&amp;quot;powerLevel&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;%)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_05.png]]&lt;br /&gt;
&lt;br /&gt;
===Statisches Label mit Symbol===&lt;br /&gt;
Möchte man einen statischen Text darstellen, muss hierfür nicht unbedingt das Label-Widget verwendet werden. Das nachfolgende Beispiel zeigt genau dies und fügt links noch ein Symbol ein. Der Teil für das Symbol kann auch für richtige Labels verwendet werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;i class=&amp;quot;fa fa-cloud fa-2x inline&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;div class=&amp;quot;inline big&amp;quot;&amp;gt;WETTER&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_label_symbol.png]]&lt;br /&gt;
&lt;br /&gt;
===Label- und Symbol-Widget kombiniert===&lt;br /&gt;
Dieses Beispiel zeigt, wie man ein Label- innerhalb eines [[FTUI Widget Symbol|Symbol]]-Widgets anzeigen kann. Dazu wird einfach das Label-Widget im &amp;amp;lt;DIV&amp;amp;gt;-Container des Symbols platziert.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;dDummy3&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;none&amp;quot;&lt;br /&gt;
         data-color=&#039;none&#039;&lt;br /&gt;
         data-background-icon=&amp;quot;fa-circle&amp;quot;&lt;br /&gt;
         data-background-colors=&#039;[&amp;quot;red&amp;quot;,&amp;quot;blue&amp;quot;]&#039;&lt;br /&gt;
         data-limits=&#039;[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
         &amp;lt;div data-type=&amp;quot;label&amp;quot;&lt;br /&gt;
              data-device=&amp;quot;dDummy3&amp;quot;&lt;br /&gt;
              data-color=&amp;quot;white&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Label_06.png]]&lt;br /&gt;
&lt;br /&gt;
===Unterdrücken der Anzeige===&lt;br /&gt;
Die Argumente für &#039;&#039;data-hide-on&#039;&#039; und &#039;&#039;data-hide-off&#039;&#039; sind reguläre Ausdrücke. Um die Anzeige zu aktivieren, wenn eine Bedingung nicht zutrifft, ist für &#039;&#039;data-hide-off&#039;&#039; ein Schema &amp;lt;code&amp;gt;(?!.*MUSTER).*&amp;lt;/code&amp;gt; zu verwenden, resp. &amp;lt;code&amp;gt;(?!.*MUSTER1|MUSTER2).*&amp;lt;/code&amp;gt;, wenn mehrere Bedinungen zutreffen können; für &#039;&#039;data-hide-on&#039;&#039; entsprechend &amp;lt;code&amp;gt;MUSTER&amp;lt;/code&amp;gt; resp. &amp;lt;code&amp;gt;MUSTER1|MUSTER2&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Im folgenden Beispiel wird ein Eintrag eines [[CALVIEW|CALVIEW-Objekts]] &#039;&#039;Abfalldaten&#039;&#039; nur dann angezeigt, wenn er heute oder morgen aktuell ist, ausgeblendet wird die ganze Gruppe von Widgets über die ID des Elternelements:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div id=&amp;quot;Abfall1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;inline&amp;quot; &lt;br /&gt;
             data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
             data-device=&amp;quot;Abfalldaten&amp;quot; &lt;br /&gt;
             data-get=&amp;quot;t_001_bdate&amp;quot; &lt;br /&gt;
             data-hide=&amp;quot;t_001_daysleftLong&amp;quot; &lt;br /&gt;
             data-hide-on=&amp;quot;(?!.*heute|morgen).*&amp;quot; &lt;br /&gt;
             data-hide-off=&amp;quot;heute|morgen&amp;quot; &lt;br /&gt;
             data-hideparents=&amp;quot;#Abfall1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;inline&amp;quot; &lt;br /&gt;
             data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
             data-device=&amp;quot;Abfalldaten&amp;quot; &lt;br /&gt;
             data-get=&amp;quot;t_001_summary&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Label]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FHEM_Tablet_UI&amp;diff=28174</id>
		<title>FHEM Tablet UI</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FHEM_Tablet_UI&amp;diff=28174"/>
		<updated>2018-10-27T14:51:47Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Text auf Bild bzw. freie Positionierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Oberfläche für FHEM&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=34233&lt;br /&gt;
|ModForumArea=TabletUI&lt;br /&gt;
|ModTechName=n.a.&lt;br /&gt;
|ModOwner=setstate ({{Link2FU|7023|Forum}})&lt;br /&gt;
}}&lt;br /&gt;
[[FHEM Tablet UI]] (FTUI) ist ein leichtgewichtiges aber funktionsreiches Frontend-Framework zum Steuern und Überwachen von in FHEM integrierten Geräten. Es basiert auf HTML/CSS/JavaScript und stellt somit keine zusätzlichen Anforderungen an den FHEM-Server.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe zahlreicher Widgets, die sehr leicht mit HTML Code konfiguriert werden können, ist es möglich, innerhalb kurzer Zeit ein den eigenen Wünschen entsprechendes User-Interface aufzubauen.&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb ist nur eine FHEM-Installation mit [[HTTPSRV|HTTPSRV-Modul]] sowie ein gängiger Webbrowser notwendig.&lt;br /&gt;
&lt;br /&gt;
Mit wenigen Anpassungen ist es auch möglich, das UI auf anderen Webservern (Apache, u.a.) zu betreiben. Somit können FHEM und FHEM Tablet UI auch auf getrennten Systemen ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
[[File:tablet_ui.png|thumb|500px|center|Beispiel für ein mit [[FHEM Tablet UI]] erstelltes User-Interface]]&lt;br /&gt;
&lt;br /&gt;
{{Todo|Design-Möglichkeiten erklären, Navigationsmethoden ausformulieren}} &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die Installation von FHEM Tablet UI erzeugt keinen großen Aufwand und besteht im Großen und Ganzen aus drei Schritten:&lt;br /&gt;
*Dateien aus dem GitHub-Repository herunterladen&lt;br /&gt;
*FHEM konfigurieren ([[HTTPSRV]]-Device erstellen, [[FHEMWEB]]-Attribut longpoll einstellen)&lt;br /&gt;
*Eine Beispieldatei anlegen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Diese Anleitung geht davon aus, dass FHEM unter Debian nach der Anleitung [https://debian.fhem.de Stable build using apt] installiert wurde.&lt;br /&gt;
Ist dies nicht der Fall, muss der Pfad &#039;&#039;&#039;/opt/fhem&#039;&#039;&#039; dementsprechend angepasst werden.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst müssen alle Dateien von FHEM Tablet UI in das FHEM-Verzeichnis &#039;&#039;&#039;/opt/fhem/www&#039;&#039;&#039; kopiert werden. Das geht mit folgendem &#039;&#039;&#039;update&#039;&#039;&#039;-Befehl über die FHEM-Befehlszeile.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_01.png|thumb|none|Schritt 1: Dateien kopieren]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend ist ein neues [[HTTPSRV]]-Device in FHEM anzulegen, welches auf den Ordner mit den gerade heruntergeladenen Dateien verweist.&lt;br /&gt;
:&amp;lt;code&amp;gt;define TABLETUI HTTPSRV ftui/ ./www/tablet/ Tablet-UI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_02.png|thumb|none|Schritt 2: HTTPSRV-Device anlegen]]&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Dieser Schritt kann ausgelassen werden, wenn die Funktionalitäten von [[FHEMWEB]] ausreichend sind. Dann muss FTUI aber in weiterer Folge unter der URL &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http(s)://&amp;lt;fhem-server&amp;gt;:8083/fhem/tablet/index.html&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; aufgerufen werden und es wird kein Link auf FTUI in der FHEM GUI erstellt. Vorteil ist aber, dass das FHEMWEB-Caching verwendet werden kann. Siehe dieser {{Link2Forum|Topic=86362|Message=788258}}.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Damit FHEM Tablet UI mit FHEM kommunizieren kann, ist noch die &#039;&#039;&#039;longpoll&#039;&#039;&#039;-Einstellung im [[FHEMWEB]] Device festzulegen.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;attr WEB longpoll websocket&amp;lt;/code&amp;gt;&lt;br /&gt;
:bzw. bei Problemen mit &#039;&#039;websocket&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr WEB longpoll 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_03.png|thumb|none|Schritt 3: longpoll einstellen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Weil FTUI noch nichts anzuzeigen hat, wird die Datei &#039;&#039;&#039;/opt/fhem/www/tablet/index-example.html&#039;&#039;&#039; nach &#039;&#039;&#039;/opt/fhem/www/tablet/index.html&#039;&#039;&#039; kopiert.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cp -a /opt/fhem/www/tablet/index-example.html /opt/fhem/www/tablet/index.html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_04.png|thumb|none|Schritt 4: index.html erstellen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Abschließend muss FHEM noch &#039;&#039;&#039;neu gestartet&#039;&#039;&#039; werden (&#039;&#039;shutdown restart&#039;&#039;) da das Attribut &#039;&#039;&#039;longpoll&#039;&#039;&#039; geändert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Somit ist FHEM Tablet UI bereit zur Verwendung und kann durch Aufruf der URL &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://&amp;lt;fhem-server&amp;gt;:8083/fhem/ftui/&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; oder den Link im FHEM-Menü geöffnet werden&lt;br /&gt;
&lt;br /&gt;
== Update ==&lt;br /&gt;
Ein Update von FTUI kann ebenfalls über die FHEM-Kommandozeile erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Prüfen der Änderungen seit dem letzten Download/Update durch Eingabe von:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update check https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Update der geänderten Dateien durch Eingabe von:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update all https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine weitere Option ist das Hinzufügen des FTUI-Git-Repositories zum allgemeinem Update-Vorgang von FHEM. Dabei wird dann bei einem FHEM-Update auch gleich FHEM Tablet UI aktualisiert, bzw. die Änderungen angezeigt.&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update add https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beachte: Das Ergebnis des o.g. Befehls wird in FHEM/controls.txt eingetragen, siehe auch [[Update#update_add]]&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
===DOCTYPE===&lt;br /&gt;
In allen HTML-Dateien, die im Browser geladen werden und das typische HTML-Gerüst besitzen (also alle Hauptseiten, jedoch keine Template-Dateien), sollte eine &#039;&#039;Document Type Declaration&#039;&#039; (DTDT) eingefügt werden. Mit ihr wird festgelegt, welche &#039;&#039;Document Type Definition&#039;&#039; hier verwendet wird (das kommt aus der Metasprache XML), konkret also, in welcher Version der nachfolgende HTML-Code vom Browser interpretiert werden soll. Lässt man die DTDT weg, oder definiert sie auf verschiedenen Seiten unterschiedlich, kann ein und der selbe HTML-Code zu unterschiedlichen Darstellungen führen. Die DTDT erfolgt immer auf der ersten Zeile, noch vor dem &amp;lt;code&amp;gt;&amp;lt;html&amp;gt;&amp;lt;/code&amp;gt;-Tag. Nachfolgend wird HTML5 verwendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;...&amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;...&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===META-Parameter===&lt;br /&gt;
Das Tablet UI lässt sich über die META-Parameter konfigurieren. Diese Parameter sind in jeder &#039;&#039;&#039;.html&#039;&#039;&#039; Datei (z.B. index.html) im Abschnitt &#039;&#039;&#039;&amp;lt;head&amp;gt;&#039;&#039;&#039; einzutragen. Ausgenommen davon sind Dateien, die als Template, Pagebutton-Zielseiten oder ähnliches eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
Die Parameter sind immer nach diesem Schema aufgebaut:&lt;br /&gt;
 &amp;lt;meta name=&amp;quot;[Parameter-Name]&amp;quot; content=&amp;quot;[Parameter-Wert]&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verbindung zu FHEM===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter-Name!!Standard-Wert!!Mögliche Werte!!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|web_device||WEB||String||FHEM-Device, welches für das Polling verwendet wird&lt;br /&gt;
|-&lt;br /&gt;
|longpoll||1||0, 1||&lt;br /&gt;
&#039;&#039;&#039;0&#039;&#039;&#039;: Longpoll deaktiviert; alle 30s ein Shortpoll (Neuladen der gesamten Statusänderungen)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1&#039;&#039;&#039;: Longpoll aktiv; geänderte Stati werden sofort aktualisiert, zusätzlich werden alle 15min die gesamten Statusänderungen geladen.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_type||websocket||websocket, ajax, 0||&lt;br /&gt;
&#039;&#039;&#039;websocket&#039;&#039;&#039;: Für die Aktualisierung der Daten wird das Websocket-Protokoll verwendet. Werden vom Browser keine Websockets unterstützt, gibt es einen automatischen Fallback auf Ajax.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ajax&#039;&#039;&#039;: Ajax wird für die Aktualisierung verwendet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;0&#039;&#039;&#039;: Longpoll deaktiviert, Shortpoll wird verwendet.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_filter||.*||RegEx||Event-Filter. Kann verwendet werden, wenn z.B. Devices, die in FTUI angezeigt werden, in einem eigenen FHEM-Room sind.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_maxage||240||Integer||Kommen in diesem Zeitraum (Sekunden) keine Longpoll-Events bei FTUI an, wird die Verbindung als &amp;quot;disconnected&amp;quot; angesehen und ein neuer Verbindungsversuch wird gestartet.&lt;br /&gt;
|-&lt;br /&gt;
|shortpoll_interval||900||Integer||Zeitraum in Sekunden, nach dem ein vollständiger Refresh stattfindet&lt;br /&gt;
|-&lt;br /&gt;
|shortpoll_only_interval||30||Integer||Zeitraum in Sekunden, nach dem ein vollständiger Refresh stattfindet, sollte Longpoll deaktiviert sein&lt;br /&gt;
|-&lt;br /&gt;
|fhemweb_url||/fhem/||Integer||URL zu FHEM. Wird benötigt wenn FTUI auf einem anderen als dem FHEM Server läuft oder nicht im Standard-Pfad installiert ist. &lt;br /&gt;
Hinweis: Wenn FHEM auf einem anderem Server/Domain läuft muss man das &amp;quot;CORS&amp;quot; Attribut im FHEMWEB Modul (s.o.) auf 1 setzen, sonst bekommt man Cross Origin Fehler. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Funktionalität===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter-Name!!Standard-Wert!!Mögliche Werte!!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|debug||0||0 - 5||Log-Level&lt;br /&gt;
|-&lt;br /&gt;
|toast||5||Integer||Anzahl an gleichzeitig angezeigten Toast-Nachrichten. Um keine anzuzeigen, ist der Wert auf 0 zu setzen.&lt;br /&gt;
|-&lt;br /&gt;
|toast_position||bottom-left||||Position im Browserfenster, wo die Toast-Nachrichten angezeigt werden.&lt;br /&gt;
|-&lt;br /&gt;
|lang||de||de||Sprache der Oberfläche (für z.B. Datums-/Zeitfunktionen)&lt;br /&gt;
|-&lt;br /&gt;
|username||||String||Benutzername für eine Basic-Authentifierung *&lt;br /&gt;
|-&lt;br /&gt;
|password||||String||Passwort für eine Basic-Authentifizierung *&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; Derzeit wird die Basic-Authentifizierung in Kombination mit WebSockets nicht unterstützt. Die Verwendung von &#039;&#039;&#039;longpoll=1&#039;&#039;&#039; (ajax) ist daher notwendig.&lt;br /&gt;
&lt;br /&gt;
===Toast-Nachrichten===&lt;br /&gt;
[[Datei:Ftui_toast.png|thumb|Toast-Nachrichten]]&lt;br /&gt;
Tablet-UI liefert Informationen darüber, was im Moment gerade passiert. Das geschieht über Toast-Nachrichten, die in der Standardeinstellung unten links im Browser auftauchen.&lt;br /&gt;
&lt;br /&gt;
Wird beispielsweise ein Gerät eingeschaltet, so erscheint eine kleine Nachricht mit dem abgesetzten Befehl. Auch Fehlermeldungen und Statusinformationen werden angezeigt. Ob überhaupt und was konkret angezeigt wird, richtet sich nach dem eingestellten Debug-Level (siehe oben). Beim Debug-Level 5 werden alle Nachrichten angezeigt, bei 0 keine.&lt;br /&gt;
&lt;br /&gt;
Die Position der Toast-Nachrichten kann über den Meta-Tag &amp;lt;code&amp;gt;meta name=&#039;toast_position&#039;&amp;lt;/code&amp;gt; festgelegt werden. Für oben-mittig müsste folgender Code eingefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;meta name=&#039;toast_position&#039; content=&#039;top-center&#039;&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Möglich sind folgende Positionen:&lt;br /&gt;
* &amp;lt;code&amp;gt;top-left&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-right&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-left&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-right&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-center&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-center&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mid-center&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die maximale Anzahl an Nachrichten, die gleichzeitig angezeigt werden können, lässt sich mit &amp;lt;code&amp;gt;meta name=&#039;toast&#039;&amp;lt;/code&amp;gt; Sind maximal 2 Nachrichten gewünscht, muss folgender Meta-Tag gesetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;meta name=&#039;toast&#039; content=&#039;2&#039;&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Navigationsmethoden==&lt;br /&gt;
{{Todo|Dieser Abschnitt dient derzeit lediglich als Sammlung von Stichpunkten und muss vollständig überarbeitet werden.}} &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unterschied zwischen Pagetab und Pagebutton:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pagetab:&#039;&#039;&#039; Ganze Seite austauschen -&amp;gt; Menü muss auf jede Seite&lt;br /&gt;
[[FTUI_Widget_Pagetab]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pagebutton:&#039;&#039;&#039; Teil der Seite austauschen -&amp;gt; Menü nur in erster Seite&lt;br /&gt;
[[FTUI_Widget_Pagebutton]]&lt;br /&gt;
&lt;br /&gt;
==Gestaltung==&lt;br /&gt;
===Layout-Optionen===&lt;br /&gt;
* [[FTUI Layout Gridster|Gridster]]&lt;br /&gt;
* [[FTUI Layout Flex|Flex]]&lt;br /&gt;
* [[FTUI Layout Sheet|Tabelle]]&lt;br /&gt;
* [[FTUI Layout Row|Reihen]]&lt;br /&gt;
&lt;br /&gt;
=== Farben ===&lt;br /&gt;
Es besteht die Möglichkeit, die Farbwerte in hexadezimaler Form, als RGB-Wert oder mit dem Farbnamen anzugeben. Zum Beispiel: &lt;br /&gt;
&lt;br /&gt;
*HEX: #ADD8E6&lt;br /&gt;
*RBG: rgb(173, 216, 230)&lt;br /&gt;
*Namen: lightblue&lt;br /&gt;
&lt;br /&gt;
Knallige Farben wie &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;#ff0000&amp;lt;/span&amp;gt;&#039;&#039;&#039; für Rot oder &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #00ff00;&amp;quot;&amp;gt;#00ff00&amp;lt;/span&amp;gt;&#039;&#039;&#039; für Grün sollten vermieden werden.&lt;br /&gt;
Es ist besser unterhalb von #D0 (208) für die Grundfarben zu bleiben.&lt;br /&gt;
&lt;br /&gt;
Empfohlene Farben sind z.B.:&lt;br /&gt;
&lt;br /&gt;
*Orange: &amp;lt;span style=&amp;quot;color: #aa6900;&amp;quot;&amp;gt;#aa6900&amp;lt;/span&amp;gt;&lt;br /&gt;
*Rot: &amp;lt;span style=&amp;quot;color: #ad3333;&amp;quot;&amp;gt;#ad3333&amp;lt;/span&amp;gt;&lt;br /&gt;
*Grün: &amp;lt;span style=&amp;quot;color: #32a054;&amp;quot;&amp;gt;#32a054&amp;lt;/span&amp;gt;&lt;br /&gt;
*Blau: &amp;lt;span style=&amp;quot;color: #6699FF;&amp;quot;&amp;gt;#6699FF&amp;lt;/span&amp;gt;&lt;br /&gt;
*Grau: &amp;lt;span style=&amp;quot;color: #8C8C8C;&amp;quot;&amp;gt;#8C8C8C&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfreich bei der Suche nach den Farbwerten ist zum Beispiel der Color-Picker auf dieser Seite: http://www.colorpicker.com. Für die Suche nach Farben, die einen guten Kontrast bilden, diese Webseite: http://vanisoft.pl/~lopuszanski/public/colors/&lt;br /&gt;
&lt;br /&gt;
Im Ordner &#039;&#039;css&#039;&#039; der FTUI Installation finden sich einige vorbereitete Farbschemata. Diese können mit einem zusätzlichen Eintrag im &amp;lt;nowiki&amp;gt;&amp;lt;head&amp;gt;&amp;lt;/nowiki&amp;gt;-Bereich der FTUI-Seite(n) aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Hier am Beispiel eines blauen Farbschemas:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
   [...]&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/fhem/tablet/css/fhem-blue-ui.css&amp;quot; /&amp;gt;&lt;br /&gt;
   [...]&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Schema-Dateien ändern alle Widgets. &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Theme_default.png|default&lt;br /&gt;
File:Theme_blue.png|fhem-blue-ui.css&lt;br /&gt;
File:Theme_green.png|fhem-green-ui.css&lt;br /&gt;
File:Theme_mobile.png|fhem-mobile-ui.css&lt;br /&gt;
File:Theme_darkblue.png|fhem-darkblue-ui.css&lt;br /&gt;
File:Theme_darkgreen.png|fhem-darkgreen-ui.css&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einzelne Widgets können durch Hinzufügen der jeweiligen [[#CSS-Klassen|CSS-Klasse]] geändert werden.&lt;br /&gt;
&lt;br /&gt;
===CSS-Styles===&lt;br /&gt;
Das Layout und das Aussehen des UI kann durch diverse vorgegebene CSS-Klassen beeinflusst werden. Die verfügbaren Klassen sind im Abschnitt [[#CSS-Klassen|CSS-Klassen]] aufgeführt.&lt;br /&gt;
&lt;br /&gt;
Soll das Aussehen des UI durch eigene CSS-Klassen oder durch Überschreiben der vorhandenen verändert werden, kann eine eigene CSS-Datei erstellt werden, die dann bei einem eventuellen Update von FTUI nicht überschrieben wird. Diese Datei muss den Dateinamen &#039;&#039;&#039;fhem-tablet-ui-user.css&#039;&#039;&#039; haben und im Ordner &#039;&#039;&#039;/fhem/tablet/css&#039;&#039;&#039; abgelegt werden. Sie wird dann beim Aufruf von FTUI automatisch mitgeladen.&lt;br /&gt;
&lt;br /&gt;
=== CSS-Klassen ===&lt;br /&gt;
Nicht alle Widgets unterstützen alle hier angegebenen Klassen. Welche genau unterstützt werden, kann auf der jeweiligen Widget-Seite nachgelesen werden.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|sheet/row/cell-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|sheet}}{{FTUI Klasse|row}}{{FTUI Klasse|cell}}{{FTUI Klasse|cell-1-x}}{{FTUI Klasse|cell-x}}{{FTUI Klasse|left-align}}{{FTUI Klasse|right-align}}{{FTUI Klasse|bottom-align}}{{FTUI Klasse|top-align}}{{FTUI Klasse|center-align}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|row/col-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|col}}{{FTUI Klasse|col-1-x}}{{FTUI Klasse|col-x}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|hbox/vbox-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|vbox}}{{FTUI Klasse|hbox}}{{FTUI Klasse|card}}{{FTUI Klasse|phone-width}}{{FTUI Klasse|full-height}}{{FTUI Klasse|full-width}}{{FTUI Klasse|grow-0}}{{FTUI Klasse|grow-1}}{{FTUI Klasse|grow-2}}{{FTUI Klasse|grow-x}}{{FTUI Klasse|items-top}}{{FTUI Klasse|items-center}}{{FTUI Klasse|items-bottom}}{{FTUI Klasse|items-space-between}}{{FTUI Klasse|items-space-around}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Generelle Klassen für die Positionierung&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|inline}}{{FTUI Klasse|newline}}{{FTUI Klasse|top-space}}{{FTUI Klasse|top-space-2x}}{{FTUI Klasse|top-space-3x}}{{FTUI Klasse|left-space}}{{FTUI Klasse|left-space-2x}}{{FTUI Klasse|left-space-3x}}{{FTUI Klasse|right-space}}{{FTUI Klasse|right-space-2x}}{{FTUI Klasse|right-space-3x}}{{FTUI Klasse|top-narrow}}{{FTUI Klasse|top-narrow-2x}}{{FTUI Klasse|top-narrow-10}}{{FTUI Klasse|left-narrow}}{{FTUI Klasse|left-narrow-2x}}{{FTUI Klasse|left-narrow-3x}}{{FTUI Klasse|right-narrow}}{{FTUI Klasse|right-narrow-2x}}{{FTUI Klasse|right-narrow-3x}}{{FTUI Klasse|centered}}{{FTUI Klasse|wider}}{{FTUI Klasse|narrow}}{{FTUI Klasse|fullsize}}{{FTUI Klasse|compressed}}{{FTUI Klasse|height-narrow}}{{FTUI Klasse|w1x}}{{FTUI Klasse|w2x}}{{FTUI Klasse|w3x}}{{FTUI Klasse|maxw40}}{{FTUI Klasse|doublebox-v}}{{FTUI Klasse|doublebox-h}}{{FTUI Klasse|triplebox-v}}{{FTUI Klasse|right}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Vordergrundfarben&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|red}}{{FTUI Klasse|green}}{{FTUI Klasse|blue}}{{FTUI Klasse|lightblue}}{{FTUI Klasse|orange}}{{FTUI Klasse|gray}}{{FTUI Klasse|lightgray}}{{FTUI Klasse|white}}{{FTUI Klasse|black}}{{FTUI Klasse|mint}}{{FTUI Klasse|yellow}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Hintergrundfarben&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|bg-red}}{{FTUI Klasse|bg-green}}{{FTUI Klasse|bg-blue}}{{FTUI Klasse|bg-lightblue}}{{FTUI Klasse|bg-orange}}{{FTUI Klasse|bg-gray}}{{FTUI Klasse|bg-lightgray}}{{FTUI Klasse|bg-white}}{{FTUI Klasse|bg-black}}{{FTUI Klasse|bg-mint}}{{FTUI Klasse|bg-yellow}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Rahmen&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|verticalLine}}{{FTUI Klasse|border-black}}{{FTUI Klasse|border-white}}{{FTUI Klasse|border-orange}}{{FTUI Klasse|border-red}}{{FTUI Klasse|border-green}}{{FTUI Klasse|border-mint}}{{FTUI Klasse|border-lightblue}}{{FTUI Klasse|border-blue}}{{FTUI Klasse|border-gray}}{{FTUI Klasse|border-yellow}}{{FTUI Klasse|border-lightgray}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Größen&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|mini}}{{FTUI Klasse|tiny}}{{FTUI Klasse|small}}{{FTUI Klasse|normal}}{{FTUI Klasse|large}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|tall}}{{FTUI Klasse|great}}{{FTUI Klasse|grande}}{{FTUI Klasse|gigantic}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Schriftstil&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|thin}}{{FTUI Klasse|bold}}{{FTUI Klasse|darker}}{{FTUI Klasse|truncate}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Sonstiges&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|blank}}{{FTUI Klasse|transparent}}{{FTUI Klasse|half-transparent}}{{FTUI Klasse|blurry}}{{FTUI Klasse|shake}}{{FTUI Klasse|fail-shake}}{{FTUI Klasse|marquee}}{{FTUI Klasse|icon round}}{{FTUI Klasse|icon square}}{{FTUI Klasse|readonly}}{{FTUI Klasse|blink}}{{FTUI Klasse|rotate-90}}{{FTUI Klasse|horizontal}}{{FTUI Klasse|circleborder}}{{FTUI Klasse|autohide}}{{FTUI Klasse|notransmit}}{{FTUI Klasse|tap}}{{FTUI Klasse|FS20}}{{FTUI Klasse|value}}{{FTUI Klasse|novalue}}{{FTUI Klasse|timestamp}}{{FTUI Klasse|percent}}{{FTUI Klasse|nocache}}{{FTUI Klasse|fade}}{{FTUI Klasse|rotate}}{{FTUI Klasse|nolabels}}{{FTUI Klasse|default}}{{FTUI Klasse|prefetch}}{{FTUI Klasse|circulate}}{{FTUI Klasse|valueonly}}{{FTUI Klasse|positiononly}}{{FTUI Klasse|lineIndicator}}{{FTUI Klasse|barIndicator}}{{FTUI Klasse|roundIndicator}}{{FTUI Klasse|dim-tick}}{{FTUI Klasse|dim-front}}{{FTUI Klasse|dim-back}}{{FTUI Klasse|hue-tick}}{{FTUI Klasse|hue-front}}{{FTUI Klasse|hue-back}}{{FTUI Klasse|warn}}{{FTUI Klasse|activate}}{{FTUI Klasse|labelright}}{{FTUI Klasse|interlock}}{{FTUI Klasse|keepopen}}{{FTUI Klasse|noshade}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Überlagerung von Text und Bild ===&lt;br /&gt;
[[Datei:FTUI_Text_auf_Bild.png||thumb|right]]&lt;br /&gt;
Texte können auf Bildern positioniert werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;4&amp;quot; data-sizey=&amp;quot;4&amp;quot; data-sizex=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;display&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;image&amp;quot; data-url=&amp;quot;https://picsum.photos/200/125/?random&amp;quot; data-size=&amp;quot;100%&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-center bigger&amp;quot; data-type=&amp;quot;label&amp;quot;&amp;gt;Text1&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-topright bigger right-space top-space&amp;quot; data-type=&amp;quot;label&amp;quot;&amp;gt;Text2&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;ontop bigger&amp;quot; style=&amp;quot;left: 120px; top: 50px&amp;quot;&amp;gt;Text3&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zur Verfügung stehen folgende Grundpositionen:&lt;br /&gt;
* &amp;lt;code&amp;gt;display-topleft&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-topcenter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-topright&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-centerleft&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-left&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-centerright&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-right&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-bottomleft&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-bottomcenter&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;display-bottomright&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Feinjustage ist möglich über&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;right-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;left-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-space&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;right-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;left-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-space-2&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;right-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;left-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-space-3&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:FTUI_Beispiel_Positionierung.png|200px|thumb|right]]&lt;br /&gt;
Verallgemeinert lassen sich auf diese Weise &#039;&#039;&#039;Objekte frei im Elternelement positionieren&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;display&amp;quot; data-type=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-topcenter top-space big&amp;quot;&amp;gt;Fenster&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-center fa fa-4x ftui-window&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div class=&amp;quot;display-bottomleft bottom-space left-space&amp;quot; data-type=&amp;quot;label&amp;quot;&amp;gt;Text&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Icons ===&lt;br /&gt;
FTUI bringt einige Icons-&amp;quot;Schriftarten&amp;quot; mit, die für die Darstellung genützt werden können. Diese werden automatisch beim Start des UI eingebunden, sobald ein entsprechendes Icon-Präfix im Code der Seite vorkommt.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Icon-Schriftarten sind:&lt;br /&gt;
* Eingebaute Icons &#039;&#039;ftui-window&#039;&#039; und &#039;&#039;ftui-door&#039;&#039;. Präfix &#039;&#039;&#039;ftui-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;ftui-door&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [http://fontawesome.io/icons/ Font-Awesome]: Mehr als 500 Icons zur Auswahl. Präfix &#039;&#039;&#039;fa-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;fa-volume-up&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://material.io/icons/ Material Icons]: Mehr als 900 Icons zur Auswahl. Präfix &#039;&#039;&#039;mi-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;mi-local_gas_station&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* FHEM und OpenAutomation Icons: Präfix &#039;&#039;&#039;fs-&#039;&#039;&#039; und &#039;&#039;&#039;oa-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;oa-secur_locked&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://erikflowers.github.io/weather-icons/ Weather-Icons]: Präfix &#039;&#039;&#039;wi &#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;wi wi-day-rain-mix&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch Bilder Icons (bspw. png) über CSS verwendet werden. Bspw:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
  &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        .logo-fhem {&lt;br /&gt;
            background: url(https://wiki.fhem.de/fhemlogo.png) no-repeat;&lt;br /&gt;
            width: 120px;&lt;br /&gt;
            height: 132px;&lt;br /&gt;
            background-size: contain;&lt;br /&gt;
        }&lt;br /&gt;
  &amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-icon=&amp;quot;logo-fhem&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Widgets ==&lt;br /&gt;
===Allgemeine Attribute===&lt;br /&gt;
Jedes Widget kann über verschiedene Attribute konfiguriert werden. Folgende Attribute gelten für alle Widgets:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+allgemeine Attribute&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-type&lt;br /&gt;
|Widget-Typ&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-device&lt;br /&gt;
|FHEM-Name des Gerätes (mit dem Befehl &#039;list&#039; bekommt man im FHEM die kpl. Liste)&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|CSS-Klassen für Aussehen und Formatierung des Widgets&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Daten Empfangen&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|Reading Name&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-on&lt;br /&gt;
|Wert für den Status on&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-off&lt;br /&gt;
|Wert für den Status off&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Daten Senden&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set&lt;br /&gt;
|Reading Name&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set-on&lt;br /&gt;
|Wert für den Status on&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set-off&lt;br /&gt;
|Wert für den Status off&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Widget-spezifische Attribute können auf der jeweiligen Widget-Seite nachgelesen werden.&lt;br /&gt;
&lt;br /&gt;
=== Integrierte Widgets ===&lt;br /&gt;
Folgende Widgets sind direkt in FHEM Tablet UI integriert und können &amp;quot;out of the box&amp;quot; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* [[FTUI Widget Button|button]]: Variante der push und switch Widgets, die entweder einen URL ansteuern oder einen FHEM-Befehl absetzen kann&lt;br /&gt;
* [[FTUI Widget Checkbox|checkbox]]: Umschalter zwischen zwei definierten Zuständen&lt;br /&gt;
* [[FTUI Widget Circlemenu|circlemenu]]: Mehrere Widgets hinter einem Widget verborgen, trotz des &#039;circle&#039; im Namen kann das Menue jetzt auch horizontal oder vertikal ausgeklappt werden &lt;br /&gt;
* [[FTUI Widget Clock|clock]]: Stellt eine einfache Uhr zur Verfügung&lt;br /&gt;
* [[FTUI Widget Colorwheel|colorwheel]]: Farbpalette zur Auswahl von Farben&lt;br /&gt;
* [[FTUI Widget Controlbutton|controlbutton]]: iOS-ähnlicher Button zum Schalten zwischen zwei Zuständen (z.B. on / off)&lt;br /&gt;
* [[FTUI Widget Controller|controller]]: iOS-ähnlicher vertikaler Schieberegler zum Einstellen eines Wertes&lt;br /&gt;
* [[FTUI Widget Datetimepicker|datetimepicker]]: Erstellt eine Auswahl für Datum/Uhrzeit&lt;br /&gt;
* [[FTUI Widget Departure|departure]]: Abfahrtszeiten öffentlicher Verkehrsmittel&lt;br /&gt;
* [[FTUI Widget Dimmer|dimmer]]: Ein-/Aus-Button mit integriertem Schieberegler für z.B. einen Dim-Wert&lt;br /&gt;
* [[FTUI Widget Eventmonitor|eventmonitor]]:&lt;br /&gt;
* [[FTUI Widget Homestatus|homestatus]]: Auswahl für vier oder fünf definierte Stati eines Objects (z.B.: FHEM Residents)&lt;br /&gt;
* [[FTUI Widget Html|html]]:&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/iframe iframe]: Widget zum Einbinden externer Inhalte in einem Iframe&lt;br /&gt;
* [[FTUI Widget Image|image]]: Zeigt ein Bild, dessen URL fest vorgegeben oder aus einem Device-Reading gelesen werden kann&lt;br /&gt;
* [[FTUI Widget Input|input]]: Erstellen eines Texteingabefeldes&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/joinedlabel joinedlabel]: verbindet mehrere Readings zu einem Feld&lt;br /&gt;
* [[FTUI Widget Klimatrend|klimatrend]]: wandelt Daten aus dem statistics-Modul in einen Pfeil um, der den aktuellen Trend anzeigt&lt;br /&gt;
* [[FTUI Widget Knob|knob]]: Erstellt einen Statusbalken auf einer Kreisbahn&lt;br /&gt;
* [[FTUI Widget Label|label]]: Reading als Text anzeigen&lt;br /&gt;
* [[FTUI Widget Level|level]]: Vertikale oder horizontale Leiste zur Anzeige von Werten zwischen einem Minimal- und einem Maximalwert&lt;br /&gt;
* [[FTUI Widget Link|link]]: Erstellt einen Link oder Button zum Aufrufen von URLs oder Senden von Befehlen an FHEM&lt;br /&gt;
* [[FTUI Widget Medialist|medialist]]:&lt;br /&gt;
* [[FTUI Widget Multistatebutton|multistatebutton]]: Variante des push-Widgets, welches den set-Befehl abhängig vom gelesenen Status ändert&lt;br /&gt;
* [[FTUI Widget Notify|notify]]: Blendet ein Hinweisfenster im Browser ein&lt;br /&gt;
* [[FTUI Widget Pagebutton|pagebutton]]: Button, mit dem auf andere Seiten gesprungen werden kann. Eignet sich gut für eine Navigation&lt;br /&gt;
* [[FTUI Widget Pagetab|pagetab]]: Tauscht den Inhalt einer Seite durch den einer anderen. Eignet sich gut für ein Navigationsmenü&lt;br /&gt;
* [[FTUI Widget Playstream|playstream]]: Abspielen eines Webradio-Streams per Button&lt;br /&gt;
* [[FTUI Widget Popup|popup]]: Öffnet ein Popup nach einem Klick auf ein Widget oder HTML-Element &lt;br /&gt;
* [[FTUI Widget Progress|progress]]: Zeigt einen Prozentwert in Form einer runden Fortschrittsleiste&lt;br /&gt;
* [[FTUI_Widget_Push|push]]: Button, mit dem ein Befehl an FHEM gesendet werden kann&lt;br /&gt;
* [[FTUI Widget Range|range]]: Erstellt vertikale Balken, die einen Wertebereich in unterschiedlichen Farben darstellen&lt;br /&gt;
* [[FTUI Widget Readingsgroup|readingsgroup]]: Zeigt eine Readingsgroup an, wie sie in FHEM definiert wurde&lt;br /&gt;
* [[FTUI Widget Rotor|rotor]]: Animiertes Umschalten von zwei oder mehr Widgets an einer Position&lt;br /&gt;
* [[FTUI Widget Scale|scale]]: Vertikale oder horizontale Leiste zur Anzeige von Werten zwischen einem Minimal- und einem Maximalwert&lt;br /&gt;
* [[FTUI_Widget_Select|select]]: Combobox, die eine Liste an Werten zur Auswahl anzeigt&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/settimer settimer]: Zum Anzeigen und Einstellen einer Uhrzeit&lt;br /&gt;
* [[FTUI Widget Simplechart|simplechart]]: Einfaches XY-Diagramm zur Anzeige eines Wertes, der direkt aus einem FHEM-Logfile gelesen wird&lt;br /&gt;
* [[FTUI Widget Slideout|slideout]]:&lt;br /&gt;
* [[FTUI Widget Slider|slider]]: Vertikaler Schieberegler zum Einstellen eines Wertes &lt;br /&gt;
* [[FTUI Widget Spinner|spinner]]: Element, um Werte durch Drücken auf Plus-/Minus- oder Höher-/Tiefer-Icons zu ändern&lt;br /&gt;
* [[FTUI Widget Swiper|swiper]]: Bietet die Möglichkeit, durch Wischen zwischen verschiedenen Seiten zu wechseln&lt;br /&gt;
* [[FTUI Widget Switch|switch]]: Button, um zwischen zwei Zuständen zu schalten (z.B. on / off)&lt;br /&gt;
* [[FTUI Widget Symbol|symbol]]: Status eines Devices als Symbol darstellen (z.B. Fenster offen)&lt;br /&gt;
* [[FTUI Widget Theme|theme]]: Kontextspezifisches Design&lt;br /&gt;
* [[FTUI Widget Thermostat|thermostat]]: Anzeige für Heizungsthermostate, mit der die gewünschte Temperatur eingestellt werden kann&lt;br /&gt;
* [[FTUI Widget Volume|volume]]: Einstellscheibe zur Änderung eines einzelnen Wertes&lt;br /&gt;
* [[FTUI Widget Weather|weather]]: Wettersymbol anzeigen&lt;br /&gt;
* [[FTUI Widget Weatherdetail|weatherdetail]]: Detaillierte Wettervorhersage über 4 Tage (Nutzt das Proplanta Modul)&lt;br /&gt;
* [[FTUI Widget WindDirection|wind_direction]]: Anzeige der Windrichtung auf einer Windrose&lt;br /&gt;
&lt;br /&gt;
===3rd Party Widgets===&lt;br /&gt;
Für diese Widgets kann nicht sichergestellt werden, dass sie mit der jeweils aktuellen Version von FTUI funktionieren.&lt;br /&gt;
* [[FTUI Widget Agenda|agenda]]: Zeigt Kalendereinträge in einer Listenform an&lt;br /&gt;
* [[FTUI_Widget_Analogclock|analogclock]]: Analoguhr&lt;br /&gt;
* [[FTUI Widget Calview|calview]]: Zeigt Einträge aus einem [[CALVIEW]]-Device an&lt;br /&gt;
* [[FTUI Widget Chart|chart]]: Diagramm mit ähnlichen Möglichkeiten wie die FHEM-Plots&lt;br /&gt;
* [[FTUI Widget Classchanger|classchanger]]: Ändert seine CSS-Klassen je nach Status eines Devices&lt;br /&gt;
* [[FTUI Widget Clicksound|clicksound]]: Mit dem Widget &amp;quot;clicksound&amp;quot; können Sounds an Click-Events von Elementen gebunden werden.&lt;br /&gt;
* [[FTUI Widget Filelog|filelog]]:&lt;br /&gt;
* [[FTUI Widget Fullcalview|fullcalview]]:&lt;br /&gt;
* [[FTUI Widget Gds|gds]]:&lt;br /&gt;
* [[FTUI Widget Maps|maps]]: Kartendarstellung mit Google Maps API&lt;br /&gt;
* [[FTUI Widget Highchart|highchart]]:&lt;br /&gt;
* [[FTUI Widget Highchart3d|highchart3d]]:&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/itunes_artwork itunes_artwork]: itunes_artwork durchsucht die iTunes-Datenbank anhand eines Arrays von beliebigen Suchworten nach einem Cover-Artwork und zeigt dieses an. &lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/javascript javascript]: Ermöglicht die Ausführung beliebigen Javascript-Codes aus einem Reading.&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/kodinowplaying kodinowplaying]: zeigt Informationen zu grade in KODI gespielten Medien in Form eines Labels an.&lt;br /&gt;
* [[FTUI Widget Loading|loading]]:&lt;br /&gt;
* [[FTUI Widget Meteogram|meteogram]]:&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/mpdnowplaying mpdnowplaying]: Zeigt Titelinformationen eines per MPD-Modul angebundenen Music Player Daemon an.&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,79283.msg712855.html#msg712855 pinpad]: Pinpad für z.B. eine Alarmanlage&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,76643.msg685472.html#msg685472 postme]: Liste des PostMe-Devices anzeigen&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/reload reload]: auslösen eine Pagereloads&lt;br /&gt;
* [[FTUI Widget Screensaver|screensaver]]:&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,73497.0.html scrolllabel]: Texte in Laufschrift darstellen&lt;br /&gt;
* [[FTUI Widget Svgplot|svgplot]]:&lt;br /&gt;
* [https://forum.fhem.de/index.php?topic=82883.msg750237#msg750237 todoist]: einfaches widget für todoist&lt;br /&gt;
* [[FTUI Widget Tts|tts]]: Sprachausgabe eines Textes aus einem Reading auf dem Endgerät.&lt;br /&gt;
* [[FTUI Widget UWZ|uwz]]: Anzeige der Warnungen der Unwetterzentrale&lt;br /&gt;
* [[FTUI Widget Wakeup|wakeup]]:&lt;br /&gt;
* [https://github.com/svenson08/ftui-weekdaytimer-widget wdtimer]: Visualisierung des [[WeekdayTimer]] Modul&lt;br /&gt;
* [[FTUI Widget Weekprofile|weekprofile]]: Visualisierung des [[weekprofile]] Moduls&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele===&lt;br /&gt;
Durch die Verbindung von Widgets mit dem FHEM-Umfeld entstehen Lösungen für typische Anwendungen.&lt;br /&gt;
* [[FTUI_Beispiel_Datetimepicker_für_Timer|Datetimepicker für Timer]]: Oberfläche für Timereinstellungen&lt;br /&gt;
* [[FTUI_Beispiel_Mondphase|Mondphase]]: Visuelle Darstellung der Mondphase&lt;br /&gt;
* [[FTUI_Beispiel_Webradio|Webradio]]&lt;br /&gt;
* [[FTUI Beispiel Zeitschaltung|Verschiedene Zeitschaltungen]]&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
Kommt ein bestimmtes &amp;quot;Code-Fragment&amp;quot; auf mehreren Seiten oder öfter pro Seite vor, bietet FTUI die Option, Templates zu erstellen. Diese werden einmal gebaut und können dann mit dem Attribut &#039;&#039;&#039;data-template&#039;&#039;&#039; nach Belieben in eine Seite eingefügt werden. Dabei besteht auch die Möglichkeit, Variablen zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Die Variablennamen sollten möglichst eindeutig und unverwechselbar gewählt werden, da bei der Verwendung von Templates im Prinzip Suchen &amp;amp; Ersetzen angewendet wird. Verwendet man beispielsweise die Variablen &#039;&#039;&#039;dev:Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;dev_temp:temperatue&#039;&#039;&#039;, so kann es passieren, dass die Ergebnisse im erzeugten Code dann &#039;&#039;&#039;Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;Thermostat_Kueche_temp&#039;&#039;&#039; lauten, statt wie gewünscht &#039;&#039;&#039;Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;temperature&#039;&#039;&#039;. Um dies zu vermeiden, sollten die Variablen besser &#039;&#039;&#039;device:Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;temp:temperatue&#039;&#039;&#039; lauten.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden ein paar Beispiele, wie Templates verwendet werden können.&lt;br /&gt;
&lt;br /&gt;
===Einzelnes Widget===&lt;br /&gt;
Soll ein Widget an mehreren Stellen in exakt der selben Ausführung eingebunden werden, kann diese Widget in einer eigenen Datei erstellt und diese dann auf den Zielseiten automatisch mitgeladen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
Die Template-Seite soll in diesem Beispiel &#039;&#039;template_symbol.html&#039;&#039; genannt werden. Diese wird daher zuerst im FTUI-Verzeichnis erstellt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;dummy1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
Die oben erstellte Template-Seite kann nun in jeder gewünschten Seite eingebunden werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; highlight=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;gridster&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;div data-template=&amp;quot;template_symbol.html&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gridster-Element===&lt;br /&gt;
Natürlich kann auch ein ganzes Gridster-Element - in diesem Fall ein Menü - als Template eingebunden werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot; data-template=&amp;quot;menu.html&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Widget-Gruppen ===&lt;br /&gt;
Die Template-Datei des [[#Einzelnes Widget|ersten Beispiels]] kann natürlich auch mehrere Widgets auf einmal enthalten.&lt;br /&gt;
&lt;br /&gt;
=== Verwendung von Variablen ===&lt;br /&gt;
==== Einfaches Beispiel ====&lt;br /&gt;
Oft wird ein und dasselbe Widget für verschiedenen Devices verwendet. Um nicht für jedes Device das Widget neu kopieren zu müssen (bzw. bei Änderungen alle Seiten ausbessern zu müssen), kann ein Template verwendet werden, dem einfach per Parameter mitgeteilt wird, von welchem Device es gerade die Daten empfangen soll.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird ein Template erzeugt, dass nur die Temperatur verschiedenen Thermostate mittels eines [[FTUI Widget Label|Label-Widgets]] anzeigt.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
Die Template-Seite enthält nur ein einfaches Label-Widget und wird in diesem Beispiel &#039;&#039;template_label.html&#039;&#039; genannt. Um sie für mehrere Devices verwenden zu können, wird im Attribut &#039;&#039;&#039;data-device&#039;&#039;&#039; der Name des eigentlichen Devices durch den Parameter &#039;&#039;&#039;par01&#039;&#039;&#039; ersetzt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; highlight=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;par01&amp;quot;&lt;br /&gt;
     data-get=&amp;quot;measured-temp&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
Auf der Haupt-Seite wird die Template-Seite mit dem Attribut &#039;&#039;&#039;data-template&#039;&#039;&#039; eingebunden und ihr via Attribut &#039;&#039;&#039;data-parameter&#039;&#039;&#039; das jeweils gewünschte Device übergeben.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat1&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat2&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat3&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wetter-Slider mit Template ====&lt;br /&gt;
In diesem Beispiel wird ein [[FTUI Widget Slider|Slider-Widget]] erstellt, welches die verschiedenen Tage eines Wetterberichtes anzeigt. Dabei wird für den Wetterbericht des jeweiligen Tages immer dasselbe Template verwendet um nicht für jeden Tag ein eigenes Widget schreiben zu müssen.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par01&amp;quot; data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;inline&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par02&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;lt;div data-type=&amp;quot;weather&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par02&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
       min:&amp;amp;nbsp;&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par03&amp;quot; data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par04&amp;quot; data-substitution=&amp;quot;toDate().eeee()+&#039;,&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par04&amp;quot; data-substitution=&amp;quot;toDate().ddmm()&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
In der Haupt-Seite wird das Template dann für jede Slider-Seite eingebunden und das Reading für den jeweiligen Tag via Parameter übergeben.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;swiper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc0_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc0_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc0_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc0_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc1_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc1_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc1_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc1_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc2_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc2_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc2_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc2_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc3_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc3_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc3_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc3_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JavaScript-Funktionen ==&lt;br /&gt;
Neben den Widgets können auch einige JavaScript-Funktionen verwendet werden, um Befehle an FHEM zu senden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgende Zeile setzt einen direkten Befehl an FHEM ab (&amp;lt;code&amp;gt;set dummy1 off&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;div onclick=&amp;quot;ftui.setFhemStatus(&#039;set dummy1 off&#039;)&amp;quot;&amp;gt;Dummy1 aus&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Zeile veranlasst FHEM dazu, eine Funktion aus der 99_myUtils.pm auszuführen (&amp;lt;code&amp;gt;myUtils_HeizungUpDown(&amp;quot;WZ.Thermostat_Climate&amp;quot;,&amp;quot;up&amp;quot;)&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;div onclick=&amp;quot;ftui.setFhemStatus(&#039;{myUtils_HeizungUpDown(&amp;amp;quot;WZ.Thermostat_Climate&amp;amp;quot;,&amp;amp;quot;up&amp;amp;quot;)}&#039;)&amp;quot;&amp;gt;+&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel, wie ein Kommando an FHEM gesendet wird und gleichzeitig der Wert eines bereits in FTUI angezeigten Readings verwendet werden kann:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get=&amp;quot;temperature&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div onClick=&amp;quot;ftui.setFhemStatus(&#039;set dummy2 &#039;+ftui.getDeviceParameter(&#039;dummy1&#039;,&#039;temperature&#039;).val);&amp;quot;&amp;gt;Senden&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigene Widgets erstellen ==&lt;br /&gt;
Wie eigenen Widgets für FTUI erstellt werden können, ist auf der Seite [[FTUI eigene Widgets]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine Schritt für Schritt Anleitung für das erste eigene Widget gibts hier [[FTUI eigene Widgets - Beispiel]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Häufig gestellte Fragen zum FHEM Tablet UI sind in der [[FHEM Tablet UI FAQ]] zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/knowthelist/fhem-tablet-ui Projekt auf Github]&lt;br /&gt;
* {{Link2Forum|Topic=34233|LinkText=Forums-Beitrag}}&lt;br /&gt;
* [[FTUI_Snippets|Snippets]]&lt;br /&gt;
* [http://knowthelist.github.io/fhem/tablet/demo_widgets.html Live-Demos]&lt;br /&gt;
* [https://waschto.eu/fhem-und-tabletui-livedemo/ FHEM und TabletUI Live-Demo]&lt;br /&gt;
* {{Link2Forum|Topic=37378|LinkText=User-Demos}}&lt;br /&gt;
* [https://github.com/ovibox/fhem-ftui-user-demos Download der User-Demo-Dateien]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|!]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:FTUI_Beispiel_Positionierung.png&amp;diff=28173</id>
		<title>Datei:FTUI Beispiel Positionierung.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:FTUI_Beispiel_Positionierung.png&amp;diff=28173"/>
		<updated>2018-10-27T14:42:05Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Für FTUI-Wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
Für FTUI-Wiki&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:FTUI_Text_auf_Bild.png&amp;diff=28172</id>
		<title>Datei:FTUI Text auf Bild.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:FTUI_Text_auf_Bild.png&amp;diff=28172"/>
		<updated>2018-10-27T14:16:57Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Beispiel für überlagerte Elemente in FTUI&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Beschreibung ==&lt;br /&gt;
Beispiel für überlagerte Elemente in FTUI&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Symbol&amp;diff=28170</id>
		<title>FTUI Widget Symbol</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Symbol&amp;diff=28170"/>
		<updated>2018-10-27T11:50:22Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */  data-warn-fixed ergänzt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Widget Symbol]] ist ein Widget für [[FHEM Tablet UI]], mit dem - ggf. gesteuert durch ein reading - ein Symbol dargestellt wird. Dieses Widget generiert nur eine Anzeige; es besitzt keine Möglichkeit zur Interaktion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;600&amp;quot; height=&amp;quot;200&amp;quot;&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Symbol_01.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
Neben den &#039;&#039;&#039;allgemeinen Attributen&#039;&#039;&#039; besitzt das SYMBOL-Widget die nachfolgenden Attribute.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! HTML Attribut !! Beschreibung !! Default Wert !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| data-get || Name des Readings, welches ausgelesen wird || STATE ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Einstellung bei zwei Werten&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut !! Beschreibung !! Default-Wert !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039; ||Wert für on ||&amp;lt;nowiki&amp;gt;true|1|on|open&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039; ||Wert für off ||&amp;lt;nowiki&amp;gt;false|0|off|closed&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-warn&#039;&#039;&#039; ||Wert für Warnmeldung (Rote (=default) Zahl am Rand) ||-1 (=aus)||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-background-color&#039;&#039;&#039;||Hintergrundfarbe des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-color&#039;&#039;&#039;||Schriftfarbe des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-fixed&#039;&#039;&#039;||Anzahl Nachkommastellen im Warnhinweis||0||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039; ||Name des Symbols||ftui-window||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039; ||Hintergrundsymbol ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039; ||Hintergrundfarbe für ON-Zustand. ||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039; ||Hintergrundfarbe für OFF-Zustand. ||#505050||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039; ||Farbe für ON-Zustand. ||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039; ||Farbe für OFF-Zustand. ||#505050||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Einstellung bei mehreren Werten&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut !! Beschreibung !!Default Wert !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-states&#039;&#039;&#039; ||Array für states ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icons&#039;&#039;&#039; ||Array mit Icons zu data-states Array ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-classes&#039;&#039;&#039; ||Array mit Klassen zu data-states Array.||||data-classes=&#039;[&amp;quot;bg-red blink&amp;quot;,&amp;quot;bg-yellow&amp;quot;,&amp;quot;bg-green&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icons&#039;&#039;&#039; ||Array mit Icons zu data-states Array ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-colors&#039;&#039;&#039; ||Array mit Farben zu data-states Array ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-colors&#039;&#039;&#039; ||Array mit Hintergrundfarben zu data-states Array ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading zum Verstecken des Elementes. Das Element verschwindet, wenn der Wert mit &#039;&#039;&#039;data-hide-on&#039;&#039;&#039; übereinstimmt.||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Zeichenkette, bei der das Element versteckt wird||&amp;lt;nowiki&amp;gt;&#039;true|1|on&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-off&#039;&#039;&#039;||Zeichenkette, bei der das Element angezeigt wird||&#039;!on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|&lt;br /&gt;
*&#039;&#039;data-get-on&#039;&#039;, &#039;&#039;data-get-off&#039;&#039; und &#039;&#039;data-states&#039;&#039; akzeptieren auch reguläre Ausdrücke (RegEx). Möglich sind auch Animationen, z.B. Blinken.&lt;br /&gt;
*&#039;&#039;data-get-on&#039;&#039; und &#039;&#039;data-get-off&#039;&#039; können nicht gemeinsam mit &#039;&#039;data-states&#039;&#039; verwendet werden&lt;br /&gt;
*reine Zahlen-Arrays bei &#039;&#039;data-states&#039;&#039; müssen &#039;&#039;&#039;aufsteigend&#039;&#039;&#039; sortiert werden.}}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|mini}}{{FTUI Klasse|tiny}}{{FTUI Klasse|small}}{{FTUI Klasse|normal}}{{FTUI Klasse|large}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|tall}}{{FTUI Klasse|grande}}{{FTUI Klasse|gigantic}}{{FTUI Klasse|compressed}}{{FTUI Klasse|compressed-50}}{{FTUI Klasse|transparent}}{{FTUI Klasse|half-transparent}}{{FTUI Klasse|hide}}{{FTUI Klasse|warn}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Einfaches Symbol===&lt;br /&gt;
[[File:FTUI_Widget_Symbol_02.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-device=&amp;quot;Web-Status&amp;quot; class=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(Das device &amp;quot;Web-Status&amp;quot; liefert in diesem Fall den Wert &amp;quot;fa-rss-square&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol mit vier Zuständen und Animation===&lt;br /&gt;
[[File:FTUI_Widget_Symbol_03.png|800px]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;&amp;quot; &lt;br /&gt;
     data-type=&amp;quot;symbol&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;Garage&amp;quot; &lt;br /&gt;
     data-states=&#039;[&amp;quot;oben&amp;quot;,&amp;quot;unten&amp;quot;,&amp;quot;lauf&amp;quot;,&amp;quot;angehalten&amp;quot;,&amp;quot;Fehler&amp;quot;]&#039; &lt;br /&gt;
     data-icons=&#039;[&amp;quot;oa-fts_garage_door_10&amp;quot;,&amp;quot;oa-fts_garage_door_100&amp;quot;,&amp;quot;fa-cog fa-spin&amp;quot;,&amp;quot;oa-fts_garage_door_40&amp;quot;,&amp;quot;fa-bug&amp;quot;]&#039; &lt;br /&gt;
     data-colors=&#039;[&amp;quot;GoldenRod&amp;quot;,&amp;quot;SeaGreen&amp;quot;,&amp;quot;Crimson&amp;quot;,&amp;quot;Crimson&amp;quot;,&amp;quot;Crimson&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weitere Beispiele==&lt;br /&gt;
===Batterieüberwachung mit Regulärem Ausdruck (0.0 - 3.9)===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;WohnzimmerHeizung&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;batteryLevel&amp;quot;&lt;br /&gt;
     data-states=&#039;[&amp;quot;3.[0-9]&amp;quot;,&amp;quot;2.[789]&amp;quot;,&amp;quot;2.[456]&amp;quot;,&amp;quot;2.[123]&amp;quot;,&amp;quot;((2.0)|([01].[0-9]))&amp;quot;]&#039;&lt;br /&gt;
     data-icons=&#039;[&amp;quot;fa-battery-4&amp;quot;,&amp;quot;fa-battery-3&amp;quot;,&amp;quot;fa-battery-2&amp;quot;,&amp;quot;fa-battery-1&amp;quot;,&amp;quot;fa-battery-0&amp;quot;]&#039;&lt;br /&gt;
     data-colors=&#039;[&amp;quot;#505050&amp;quot;,&amp;quot;#505050&amp;quot;,&amp;quot;#505050&amp;quot;,&amp;quot;#ad3333&amp;quot;,&amp;quot;#ad3333&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Batterieüberwachung mit Regulärem Ausdruck (0 - 100)===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;dDummy3&amp;quot;&lt;br /&gt;
     data-states=&#039;[&amp;quot;100&amp;quot;,&amp;quot;([7][5-9])|([8-9][0-9])&amp;quot;,&amp;quot;([5-6][0-9])|([7][0-4])&amp;quot;,&amp;quot;([2][5-9])|([3-5][0-9])&amp;quot;,&amp;quot;([0-9])|([1][0-9])|([2][0-4])&amp;quot;]&#039;&lt;br /&gt;
     data-icons=&#039;[&amp;quot;fa-battery-4&amp;quot;,&amp;quot;fa-battery-3&amp;quot;,&amp;quot;fa-battery-2&amp;quot;,&amp;quot;fa-battery-1&amp;quot;,&amp;quot;fa-battery-0&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI_Widget_Symbol_04.png]]&lt;br /&gt;
&lt;br /&gt;
===Batterieüberwachung mit Größenvergleich und gedrehten Symbolen===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;BadHeizung&amp;quot;&lt;br /&gt;
     data-get=&amp;quot;batteryLevel&amp;quot;&lt;br /&gt;
     data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;2.4&amp;quot;,&amp;quot;2.7&amp;quot;,&amp;quot;3.0&amp;quot;]&#039;&lt;br /&gt;
     data-icons=&#039;[&amp;quot;oa-measure_battery_0 fa-rotate-90&amp;quot;,&amp;quot;oa-measure_battery_25 fa-rotate-90&amp;quot;,&amp;quot;oa-measure_battery_50 fa-rotate-90&amp;quot;,&amp;quot;oa-measure_battery_75 fa-rotate-90&amp;quot;,&amp;quot;oa-measure_battery_0 fa-rotate-90&amp;quot;]&#039;&lt;br /&gt;
     data-colors=&#039;[&amp;quot;#ad3333&amp;quot;,&amp;quot;#ad3333&amp;quot;,&amp;quot;#505050&amp;quot;,&amp;quot;#505050&amp;quot;,&amp;quot;#505050&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Türsymbol mit Warnung bei geöffneter Tür===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-device=&amp;quot;Eingangstuer&amp;quot; &lt;br /&gt;
     data-states=&#039;[&amp;quot;open&amp;quot;,&amp;quot;closed&amp;quot;]&#039; &lt;br /&gt;
     data-icons=&#039;[&amp;quot;ftui-door warn&amp;quot;,&amp;quot;ftui-door&amp;quot;]&#039; &lt;br /&gt;
     data-colors=&#039;[&amp;quot;#999&amp;quot;,&amp;quot;#555&amp;quot;]&#039; &amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:Bsp class warn.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
Als Alternative zum Symbol-Widget kommt u.U. das [[FTUI Widget Pagebutton]] in Betracht, welches ebenfalls über Icons und Farben Zustände visualisieren kann und zusätzlich bei Betätigung eine Unterseite aufruft.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Symbol]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Datetimepicker&amp;diff=28169</id>
		<title>FTUI Widget Datetimepicker</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Datetimepicker&amp;diff=28169"/>
		<updated>2018-10-27T11:44:30Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: data-min-time und data-max-time ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Datetimepicker Widget]] ist ein Widget für [[FHEM Tablet UI]], mit dem eine Auswahlmöglichkeit für Datum und/oder Uhrzeit erstellt werden kann.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Datetimepicker_01.png&lt;br /&gt;
File:FTUI_Widget_Datetimepicker_02.png&lt;br /&gt;
File:FTUI_Widget_Datetimepicker_03.png&lt;br /&gt;
File:FTUI_Widget_Datetimepicker_04.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
Für das Datetimepicker-Widget gelten alle Attribute des [[FTUI Widget Label|Label-Widgets]]. Und zusätzlich die folgenden:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-format&#039;&#039;&#039;||Datum- und Zeitformat der Anzeige||Y-m-d H:i||data-format=&amp;quot;d. F Y&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-theme&#039;&#039;&#039;||Farb-Schema (normal, dark)||dark||data-theme=&amp;quot;normal&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-timepicker&#039;&#039;&#039;||Auswahlfeld für Zeit anzeigen||true||data-timepicker=&amp;quot;false&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-datepicker&#039;&#039;&#039;||Auswahlfeld für Datum anzeigen||true||data-datepicker=&amp;quot;false&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-step&#039;&#039;&#039;||Abstand der Minutenanzeige in Minuten||60||data-step=&amp;quot;10&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-min-time&#039;&#039;&#039;||Kleinstwert im Auswahlfeld für Zeit||||data-min-time=&amp;quot;09:00:00&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-max-time&#039;&#039;&#039;||Größstwert im Auswahlfeld für Zeit||||data-max-time=&amp;quot;18:00:00&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-set-value&#039;&#039;&#039;||Format des Wertes, der an FHEM gesendet werden soll||$v (nur der Wert)||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Datum und Uhrzeit - Schema dark===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;datetimepicker&amp;quot;&lt;br /&gt;
     data-device=&#039;dummy1&#039;&lt;br /&gt;
     class=&amp;quot;inline&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Datetimepicker_01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Datum und Uhrzeit - Schema normal===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;datetimepicker&amp;quot;&lt;br /&gt;
     data-device=&#039;dummy1&#039;&lt;br /&gt;
     data-theme=&amp;quot;normal&amp;quot;&lt;br /&gt;
     class=&amp;quot;inline&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Datetimepicker_02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Nur Zeitauswahl - Abstand 5min===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;datetimepicker&amp;quot;&lt;br /&gt;
     data-device=&#039;dummy1&#039;&lt;br /&gt;
     data-datepicker=&amp;quot;false&amp;quot;&lt;br /&gt;
     data-step=&amp;quot;5&amp;quot;&lt;br /&gt;
     class=&amp;quot;inline&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Datetimepicker_03.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Benutzerdefiniertes Anzeigeformat===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;datetimepicker&amp;quot;&lt;br /&gt;
     data-device=&#039;dummy1&#039;&lt;br /&gt;
     data-step=&amp;quot;5&amp;quot;&lt;br /&gt;
     data-format=&amp;quot;d. F Y H:i&amp;quot;&lt;br /&gt;
     class=&amp;quot;inline&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Datetimepicker_04.png]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Datetimepicker]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Clock&amp;diff=28168</id>
		<title>FTUI Widget Clock</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Clock&amp;diff=28168"/>
		<updated>2018-10-27T11:35:09Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: data-offset ergänzt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Widget Clock]] ist ein Widget für [[FHEM Tablet UI]], welches die aktuelle Zeit des jeweiligen Endgerätes in digitaler Form wiedergibt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Clock_01.png&lt;br /&gt;
File:FTUI_Widget_Clock_02.png&lt;br /&gt;
File:FTUI_Widget_Clock_03.png&lt;br /&gt;
File:FTUI_Widget_Clock_04.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-format&#039;&#039;&#039;||Format, siehe nachfolgende Tabelle||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-interval (&#039;&#039;entfallen ab 10/2018!&#039;&#039;)&#039;&#039;&#039;||Aktualisierungsinterval in Millisekunden||1000||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-offset&#039;&#039;&#039;||Zeitzonenverschiebung&lt;br /&gt;
&lt;br /&gt;
data-offset=&amp;quot;2&amp;quot; =&amp;gt; +2h gegenüber der FHEM-Server-Zeit.&lt;br /&gt;
&lt;br /&gt;
data-offset=&amp;quot;-1&amp;quot; =&amp;gt; -1h gegenüber der FHEM-Server-Zeit.&lt;br /&gt;
||0||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-days&#039;&#039;&#039;||Array der Bezeichner für Wochentagsnamen. Werden zur Ersetzung für die Formate l und D verwendet. Statt eines Arrays kann das Keyword &amp;quot;english&amp;quot; verwendet werden, um englische Wochentagsnamen zu verwenden. ||[&amp;quot;Montag&amp;quot;, &amp;quot;Dienstag&amp;quot;, &amp;quot;Mittwoch&amp;quot;, &amp;quot;Donnerstag&amp;quot;, &amp;quot;Freitag&amp;quot;, &amp;quot;Samstag&amp;quot;, &amp;quot;Sonntag&amp;quot;]||data-days=&amp;quot;english&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-shortday-length&#039;&#039;&#039;||Länge des abgekürzten Wochentagsbezeichners im Format D||3||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-months&#039;&#039;&#039;||Array der Bezeichner für Monatsnamen. Werden zur Ersetzung für die Formate F und M verwendet. Statt eines Arrays kann das Keyword &amp;quot;english&amp;quot; verwendet werden, um englische Monatsnamen zu verwenden.||[&amp;quot;Januar&amp;quot;, &amp;quot;Februar&amp;quot;, &amp;quot;März&amp;quot;, &amp;quot;April&amp;quot;, &amp;quot;Mai&amp;quot;, &amp;quot;Juni&amp;quot;, &amp;quot;Juli&amp;quot;, &amp;quot;August&amp;quot;, &amp;quot;September&amp;quot;, &amp;quot;Oktober&amp;quot;, &amp;quot;November&amp;quot;, &amp;quot;Dezember&amp;quot;]||data-months=&amp;quot;english&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-shortmonth-length&#039;&#039;&#039;||Länge des abgekürzten Monatsbezeichners im Format M||3||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Die Uhrzeit wird beim Start mit der FHEM-Server-Zeit per &#039;{localtime}&#039; abgeglichen. Man hat also auf seinem Telefon immer die aktuelle Home-Zeit in der FTUI-Anzeige, egal wo man sich gerade auf der Welt befindet.&lt;br /&gt;
&lt;br /&gt;
== Bezeichner ==&lt;br /&gt;
Das Format wird als String angegeben. Die in der nachfolgenden Tabelle aufgeführten Bezeichner werden durch den aktuellen Wert ersetzt, die übrigen Zeichen bleiben stehen. Default &amp;quot;H:i:s&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:center&amp;quot;| Bezeichner&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot;| Beschreibung&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;Y&#039;&#039;&#039;||Jahreszahl, vierstellig&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;y&#039;&#039;&#039;||Jahreszahl, zweistellig&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;m&#039;&#039;&#039;||Monatszahl, mit führender Null&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;n&#039;&#039;&#039;||Monatszahl, ohne führende Null&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;d&#039;&#039;&#039;||Tag des Monats, mit führender Null&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;j&#039;&#039;&#039;||Tag des Monats, ohne führende Null&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;H&#039;&#039;&#039;||Stunde des Tages, mit führender Null&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;G&#039;&#039;&#039;||Stunde im 24-Stunden-Format, ohne führende Null&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;i&#039;&#039;&#039;||Minute der Stunde, mit führender Null&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;s&#039;&#039;&#039;||Sekunde der Minute, mit führender Null&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;u&#039;&#039;&#039;||Millisekunden mit führender Null&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;O&#039;&#039;&#039;||Zeitunterschied zur Greenwich time (GMT) in Stunden&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;U&#039;&#039;&#039;||Sekunden seit Beginn der UNIX-Epoche (January 1 1970 00:00:00 GMT)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;w&#039;&#039;&#039;||Wochentagszahl (Sonntag = 0, Samstag=6)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;N&#039;&#039;&#039;||Wochentagszahl nach ISO-8601 (Montag = 1, Sonntag = 7)&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;l&#039;&#039;&#039;||Wochentag&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;D&#039;&#039;&#039;||Wochentag, gekürzt&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;S&#039;&#039;&#039;||Anhang der englischen Aufzählung für einen Monatstag, zwei Zeichen&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;F&#039;&#039;&#039;||Monat als ganzes Wort, wie Januar oder März&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;M&#039;&#039;&#039;||Monatsname gekürzt&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;g&#039;&#039;&#039;||Stunde im 12-Stunden-Format, ohne führende Nullen&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;h&#039;&#039;&#039;||Stunde im 12-Stunden-Format, mit führenden Nullen&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;a&#039;&#039;&#039;||am/pm&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;A&#039;&#039;&#039;||AM/PM&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;text-align:center&amp;quot;|&#039;&#039;&#039;W&#039;&#039;&#039;||ISO-8601 Wochennummer des Jahres&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;clock&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Clock_01.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;clock&amp;quot;&lt;br /&gt;
     data-format=&amp;quot;Y-m-d H:i:s&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Clock_05.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;clock&amp;quot; data-format=&amp;quot;l, j. F Y&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Clock_06.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;clock&amp;quot; data-format=&amp;quot;H:i&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Clock_02.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;clock&amp;quot; data-format=&amp;quot;l&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Clock_03.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;clock&amp;quot; data-format=&amp;quot;F&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Clock_04.png]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Clock]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Symbol&amp;diff=28167</id>
		<title>FTUI Widget Symbol</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Symbol&amp;diff=28167"/>
		<updated>2018-10-26T22:54:47Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ data-warn-color ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Widget Symbol]] ist ein Widget für [[FHEM Tablet UI]], mit dem - ggf. gesteuert durch ein reading - ein Symbol dargestellt wird. Dieses Widget generiert nur eine Anzeige; es besitzt keine Möglichkeit zur Interaktion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery widths=&amp;quot;600&amp;quot; height=&amp;quot;200&amp;quot;&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Symbol_01.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
Neben den &#039;&#039;&#039;allgemeinen Attributen&#039;&#039;&#039; besitzt das SYMBOL-Widget die nachfolgenden Attribute.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! HTML Attribut !! Beschreibung !! Default Wert !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| data-get || Name des Readings, welches ausgelesen wird || STATE ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Einstellung bei zwei Werten&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut !! Beschreibung !! Default-Wert !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039; ||Wert für on ||&amp;lt;nowiki&amp;gt;true|1|on|open&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039; ||Wert für off ||&amp;lt;nowiki&amp;gt;false|0|off|closed&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-warn&#039;&#039;&#039; ||Wert für Warnmeldung (Rote (=default) Zahl am Rand) ||-1 (=aus)||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-background-color&#039;&#039;&#039;||Hintergrundfarbe des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-color&#039;&#039;&#039;||Schriftfarbe des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039; ||Name des Symbols||ftui-window||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039; ||Hintergrundsymbol ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039; ||Hintergrundfarbe für ON-Zustand. ||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039; ||Hintergrundfarbe für OFF-Zustand. ||#505050||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039; ||Farbe für ON-Zustand. ||#aa6900||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039; ||Farbe für OFF-Zustand. ||#505050||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Einstellung bei mehreren Werten&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut !! Beschreibung !!Default Wert !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-states&#039;&#039;&#039; ||Array für states ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icons&#039;&#039;&#039; ||Array mit Icons zu data-states Array ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-classes&#039;&#039;&#039; ||Array mit Klassen zu data-states Array.||||data-classes=&#039;[&amp;quot;bg-red blink&amp;quot;,&amp;quot;bg-yellow&amp;quot;,&amp;quot;bg-green&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icons&#039;&#039;&#039; ||Array mit Icons zu data-states Array ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-colors&#039;&#039;&#039; ||Array mit Farben zu data-states Array ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-colors&#039;&#039;&#039; ||Array mit Hintergrundfarben zu data-states Array ||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading zum Verstecken des Elementes. Das Element verschwindet, wenn der Wert mit &#039;&#039;&#039;data-hide-on&#039;&#039;&#039; übereinstimmt.||&#039;STATE&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Zeichenkette, bei der das Element versteckt wird||&amp;lt;nowiki&amp;gt;&#039;true|1|on&#039;&amp;lt;/nowiki&amp;gt;||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-off&#039;&#039;&#039;||Zeichenkette, bei der das Element angezeigt wird||&#039;!on&#039;||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|&lt;br /&gt;
*&#039;&#039;data-get-on&#039;&#039;, &#039;&#039;data-get-off&#039;&#039; und &#039;&#039;data-states&#039;&#039; akzeptieren auch reguläre Ausdrücke (RegEx). Möglich sind auch Animationen, z.B. Blinken.&lt;br /&gt;
*&#039;&#039;data-get-on&#039;&#039; und &#039;&#039;data-get-off&#039;&#039; können nicht gemeinsam mit &#039;&#039;data-states&#039;&#039; verwendet werden&lt;br /&gt;
*reine Zahlen-Arrays bei &#039;&#039;data-states&#039;&#039; müssen &#039;&#039;&#039;aufsteigend&#039;&#039;&#039; sortiert werden.}}&lt;br /&gt;
&lt;br /&gt;
==CSS-Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|mini}}{{FTUI Klasse|tiny}}{{FTUI Klasse|small}}{{FTUI Klasse|normal}}{{FTUI Klasse|large}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|tall}}{{FTUI Klasse|grande}}{{FTUI Klasse|gigantic}}{{FTUI Klasse|compressed}}{{FTUI Klasse|compressed-50}}{{FTUI Klasse|transparent}}{{FTUI Klasse|half-transparent}}{{FTUI Klasse|hide}}{{FTUI Klasse|warn}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Einfaches Symbol===&lt;br /&gt;
[[File:FTUI_Widget_Symbol_02.png]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-device=&amp;quot;Web-Status&amp;quot; class=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
(Das device &amp;quot;Web-Status&amp;quot; liefert in diesem Fall den Wert &amp;quot;fa-rss-square&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Symbol mit vier Zuständen und Animation===&lt;br /&gt;
[[File:FTUI_Widget_Symbol_03.png|800px]]&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;&amp;quot; &lt;br /&gt;
     data-type=&amp;quot;symbol&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;Garage&amp;quot; &lt;br /&gt;
     data-states=&#039;[&amp;quot;oben&amp;quot;,&amp;quot;unten&amp;quot;,&amp;quot;lauf&amp;quot;,&amp;quot;angehalten&amp;quot;,&amp;quot;Fehler&amp;quot;]&#039; &lt;br /&gt;
     data-icons=&#039;[&amp;quot;oa-fts_garage_door_10&amp;quot;,&amp;quot;oa-fts_garage_door_100&amp;quot;,&amp;quot;fa-cog fa-spin&amp;quot;,&amp;quot;oa-fts_garage_door_40&amp;quot;,&amp;quot;fa-bug&amp;quot;]&#039; &lt;br /&gt;
     data-colors=&#039;[&amp;quot;GoldenRod&amp;quot;,&amp;quot;SeaGreen&amp;quot;,&amp;quot;Crimson&amp;quot;,&amp;quot;Crimson&amp;quot;,&amp;quot;Crimson&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weitere Beispiele==&lt;br /&gt;
===Batterieüberwachung mit Regulärem Ausdruck (0.0 - 3.9)===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;WohnzimmerHeizung&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;batteryLevel&amp;quot;&lt;br /&gt;
     data-states=&#039;[&amp;quot;3.[0-9]&amp;quot;,&amp;quot;2.[789]&amp;quot;,&amp;quot;2.[456]&amp;quot;,&amp;quot;2.[123]&amp;quot;,&amp;quot;((2.0)|([01].[0-9]))&amp;quot;]&#039;&lt;br /&gt;
     data-icons=&#039;[&amp;quot;fa-battery-4&amp;quot;,&amp;quot;fa-battery-3&amp;quot;,&amp;quot;fa-battery-2&amp;quot;,&amp;quot;fa-battery-1&amp;quot;,&amp;quot;fa-battery-0&amp;quot;]&#039;&lt;br /&gt;
     data-colors=&#039;[&amp;quot;#505050&amp;quot;,&amp;quot;#505050&amp;quot;,&amp;quot;#505050&amp;quot;,&amp;quot;#ad3333&amp;quot;,&amp;quot;#ad3333&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Batterieüberwachung mit Regulärem Ausdruck (0 - 100)===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;dDummy3&amp;quot;&lt;br /&gt;
     data-states=&#039;[&amp;quot;100&amp;quot;,&amp;quot;([7][5-9])|([8-9][0-9])&amp;quot;,&amp;quot;([5-6][0-9])|([7][0-4])&amp;quot;,&amp;quot;([2][5-9])|([3-5][0-9])&amp;quot;,&amp;quot;([0-9])|([1][0-9])|([2][0-4])&amp;quot;]&#039;&lt;br /&gt;
     data-icons=&#039;[&amp;quot;fa-battery-4&amp;quot;,&amp;quot;fa-battery-3&amp;quot;,&amp;quot;fa-battery-2&amp;quot;,&amp;quot;fa-battery-1&amp;quot;,&amp;quot;fa-battery-0&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:FTUI_Widget_Symbol_04.png]]&lt;br /&gt;
&lt;br /&gt;
===Batterieüberwachung mit Größenvergleich und gedrehten Symbolen===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;BadHeizung&amp;quot;&lt;br /&gt;
     data-get=&amp;quot;batteryLevel&amp;quot;&lt;br /&gt;
     data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;2.4&amp;quot;,&amp;quot;2.7&amp;quot;,&amp;quot;3.0&amp;quot;]&#039;&lt;br /&gt;
     data-icons=&#039;[&amp;quot;oa-measure_battery_0 fa-rotate-90&amp;quot;,&amp;quot;oa-measure_battery_25 fa-rotate-90&amp;quot;,&amp;quot;oa-measure_battery_50 fa-rotate-90&amp;quot;,&amp;quot;oa-measure_battery_75 fa-rotate-90&amp;quot;,&amp;quot;oa-measure_battery_0 fa-rotate-90&amp;quot;]&#039;&lt;br /&gt;
     data-colors=&#039;[&amp;quot;#ad3333&amp;quot;,&amp;quot;#ad3333&amp;quot;,&amp;quot;#505050&amp;quot;,&amp;quot;#505050&amp;quot;,&amp;quot;#505050&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Türsymbol mit Warnung bei geöffneter Tür===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-device=&amp;quot;Eingangstuer&amp;quot; &lt;br /&gt;
     data-states=&#039;[&amp;quot;open&amp;quot;,&amp;quot;closed&amp;quot;]&#039; &lt;br /&gt;
     data-icons=&#039;[&amp;quot;ftui-door warn&amp;quot;,&amp;quot;ftui-door&amp;quot;]&#039; &lt;br /&gt;
     data-colors=&#039;[&amp;quot;#999&amp;quot;,&amp;quot;#555&amp;quot;]&#039; &amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[Datei:Bsp class warn.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
Als Alternative zum Symbol-Widget kommt u.U. das [[FTUI Widget Pagebutton]] in Betracht, welches ebenfalls über Icons und Farben Zustände visualisieren kann und zusätzlich bei Betätigung eine Unterseite aufruft.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Symbol]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Pagebutton&amp;diff=28166</id>
		<title>FTUI Widget Pagebutton</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Pagebutton&amp;diff=28166"/>
		<updated>2018-10-26T18:05:04Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Attribute */ data-warn ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Pagebutton Widget]] ist ein Widget für [[FHEM Tablet UI]], das ein einfaches Element zur Verfügung stellt, um auf eine andere Seite zu navigieren. Auf der Zielseite wird das Widget als &amp;quot;ON&amp;quot; angezeigt. Das Pagebutton-Widget eignet sich zum Beispiel gut, um eine Navigation zu erstellen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Pagebutton_01.png&lt;br /&gt;
File:FTUI_Widget_Pagebutton_02.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
Für das Pagebutton-Widget gelten alle Attribute des [[FTUI Widget Switch]]. Und zusätzlich die folgenden:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-url&#039;&#039;&#039;||URL der Seite, die angezeigt werden soll||||data-url=&amp;quot;#content_main.html&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-load&#039;&#039;&#039;||DIV-Container, in den der Inhalt der Zielseite geladen werden soll||||data-load=&amp;quot;#main&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-active-pattern&#039;&#039;&#039;||[[Regulärer Ausdruck|RegEx]], die bestimmt, wann das Widget &amp;quot;ON&amp;quot; sein soll||||&amp;lt;nowiki&amp;gt;data-active-pattern=&amp;quot;(.*/||.*#content_main.html)&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-fade-duration&#039;&#039;&#039;||Zeit in Millisekunden oder &amp;quot;slow&amp;quot; bzw. &amp;quot;fast&amp;quot;, die verwendet werden soll, um die Zielseite einzublenden||slow||data-fade-duration=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Vordergrund-Icon des Widgets||fa-power-off||data-icon=&amp;quot;mi-home&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039;||Hintergrund-Icon des Widgets||fa-circle||data-background-icon=&amp;quot;fa-square&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt angezeigt wird||#222222||data-on-color=&amp;quot;yellow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039;||Farbe des Hintergrund-Icons, wenn der gewünschte Inhalt angezeigt wird||#606060||data-on-background-color=&amp;quot;gray&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt nicht angezeigt wird||#505050||data-off-color=&amp;quot;#000000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt nicht angezeigt wird||transparent||data-off-background-color=&amp;quot;#cccccc&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-return-time&#039;&#039;&#039;||Zeit in Sekunden, nach der die Standardseite (default) wieder aufgerufen wird||||data-return-time=&amp;quot;60&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-parent&#039;&#039;&#039;||&amp;quot;Eltern-Seite&amp;quot; - Angabe erforderlich, wenn in einer mehrstufigen Menüstruktur direkt auf eine Unterseite gesprungen werden soll und diese nicht mit &amp;quot;prefetch&amp;quot; vorgeladen ist||||data-parent=&amp;quot;main2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, über welches das Verhalten des Widgets gesteuert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, welches ausgewertet wird||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Wert, bei welchem das Widget ausgelöst wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-states&#039;&#039;&#039;||Vektor mit Zuständen von data-get||||data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icons&#039;&#039;&#039;||Vektor mit Symbolen, die auf data-states referenzieren||||data-icons=&#039;[&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading, welches Ein- und Ausblenden des Widgets steuert||||data-hide=&amp;quot;GelberSack_Anzeige&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Wert, bei dem das Widget ausgeblendet wird||||data-hide-on=&amp;quot;false&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn&#039;&#039;&#039;||&amp;lt;device&amp;gt;:&amp;lt;reading&amp;gt; für den Inhalt des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-background-color&#039;&#039;&#039;||Hintergrundfarbe des Warnhinweises||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-warn-color&#039;&#039;&#039;||Schriftfarbe des Warnhinweises||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{FTUI Klasse|blank}}{{FTUI Klasse|nocache}}{{FTUI Klasse|default}}{{FTUI Klasse|prefetch}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Für Sub-Pagebuttons kann eine eigene &#039;&#039;data-return-time&#039;&#039; festgelegt werden.&lt;br /&gt;
* &#039;&#039;data-return-time&#039;&#039; muss nicht am ersten Button hängen. Der erste, der dieses Attribut hat, wird ausgewertet.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Einfacher Link===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
     data-url=&amp;quot;index.html&amp;quot;&lt;br /&gt;
     data-icon=&amp;quot;mi-home&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Pagebutton_01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Navigationsleiste===&lt;br /&gt;
Für die Navigationsleiste braucht es zum einen die Leiste und zum anderen einen DIV-Container, in dem die zu ladenden Inhalte angezeigt werden. Die Container erhalten jeweils eine eindeutige ID, welche in der Navigationsleiste als Ziel referenziert wird.&lt;br /&gt;
&lt;br /&gt;
Als erstes wird das Menü aufgebaut.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werden noch die DIV-Container benötigt, in die der Inhalt der Zielseite geladen wird.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;2&amp;quot; data-sizex=&amp;quot;5&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Zielseite ist wichtig, dass ein DIV-Container erstellt wird, dem die Klasse &#039;&#039;page&#039;&#039; zugewiesen wird und eine ID, die der ID entsprechen muss, in der bei &#039;&#039;data-load&#039;&#039; verwiesen wird.&lt;br /&gt;
So eine Seite könnte wie folgt aussehen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot;&amp;gt;Page 1&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:FTUI_Widget_Pagebutton_02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Steuerung über ein Device===&lt;br /&gt;
Der Aufruf einzelner Seiten kann auch über ein Device erfolgen; dies eröffnet Automatisierungsmöglichkeiten. Das obige Beispiel wird hierzu erweitert:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nimmt das device &amp;quot;Seite&amp;quot; die STATES &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot; oder &amp;quot;3&amp;quot; an, wird die jeweilige Seite aufgerufen. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Variante zeigt das nachfolgende Beispiel: Hier wird über das device &amp;quot;Musik&amp;quot; bei &amp;quot;on&amp;quot; die Seite 2 aufgerufen und bei &amp;quot;off&amp;quot; zur Hauptseite zurückgewechselt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Musik&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;off&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Musik&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;on&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Querverweis auf eine Pagebutton-Seite===&lt;br /&gt;
Es ist zulässig, dass mehrere Pagebutton-Widgets auf dieselbe Seite verweisen. Neben der Verwendung in Menüleisten könnnen somit zusätzlich &amp;quot;Links&amp;quot; an beliebiger Stelle platziert werden, bei deren Betätigung die definierte Pagebutton-Seite bzw. -Unterseite aufgerufen wird. Das Aussehen des Pagebutton-Widgets kann mittels &#039;&#039;data-icons&#039;&#039; und &#039;&#039;data-colors&#039;&#039; wie beim Symbol-Widget beeinflusst werden. Folglich erweitert das Pagebutton-Widget die Funktionalität des Symbol-Widgets dergestalt, dass bei Betätigung eine Unterseite aufgerufen wird. Beispiel: Auf der Hauptseite signalisiert das Symbol, ob alle Fenster geschlossen sind oder mindestens eines geöffnet ist. Bei Betätigung des Widgets wird dann die Unterseite aufgerufen, welche eine detaillierte Übersicht über den Zustand aller Fenster enthält. Im nachfolgenden Beispiel wird der Abholtermin des Gelben Sacks am Vortag (normale Anzeige) und am Abholtag (blinkend) angezeigt. Das Reading &#039;&#039;GelberSack_Anzeige&#039;&#039; begrenzt das Zeitfenster der Anzeige auf den Nachmittag des Vortages bis zum Vormittag des Abholtages. Wenn das Symbol angezeigt wird, kann durch manuelle Betätigung die Unterseite &#039;&#039;&amp;quot;#page_content6_4.html&amp;quot;&#039;&#039; aufgerufen werden (welche z.B. weitere Informationen zu anstehenden Abholterminen bereithält).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vbox grow-0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;pagebutton&amp;quot; &lt;br /&gt;
data-url=&amp;quot;#page_content6_4.html&amp;quot; &lt;br /&gt;
data-load=&amp;quot;#content6_4&amp;quot; &lt;br /&gt;
data-off-background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
data-off-color=&amp;quot;#FFFF7A&amp;quot; &lt;br /&gt;
data-on-background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
data-on-color=&amp;quot;#FFFF7A&amp;quot; &lt;br /&gt;
data-active-pattern=&amp;quot;.*#page_content6_4.html&amp;quot; &lt;br /&gt;
class=&amp;quot;prefetch bigger compressed autohide&amp;quot; &lt;br /&gt;
data-device=&amp;quot;Entsorger&amp;quot; &lt;br /&gt;
data-get=&amp;quot;GelberSack_days&amp;quot; &lt;br /&gt;
data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;]&#039; &lt;br /&gt;
data-icons=&#039;[&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;]&#039; &lt;br /&gt;
data-hide=&amp;quot;GelberSack_Anzeige&amp;quot; &lt;br /&gt;
data-hide-on=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
data-device=&amp;quot;Entsorger&amp;quot; &lt;br /&gt;
data-hide=&amp;quot;GelberSack_Anzeige&amp;quot; &lt;br /&gt;
data-hide-on=&amp;quot;false&amp;quot; &lt;br /&gt;
data-get=&amp;quot;GelberSack_days&amp;quot; &lt;br /&gt;
data-substitution=&#039;[&amp;quot;0&amp;quot;,&amp;quot;Heute&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;Morgen&amp;quot;]&#039; &lt;br /&gt;
data-color=&amp;quot;#FFFF7A&amp;quot; class=&amp;quot;compressed autohide&amp;quot; &lt;br /&gt;
style=&amp;quot;position: relative; top: 5px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[https://github.com/knowthelist/fhem-tablet-ui/blob/master/examples/pagebutton/index_page_left_demo.html Beispiel für eine Navigation]&lt;br /&gt;
*{{Link2Forum|Topic=67141|LinkText=Fertiges Pagebutton Multi-Menü}}&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,82003.msg745677.html#msg745677 Sprung zu einer Unterseite (Anwendung von data-parent)]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Pagebutton]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Pagebutton&amp;diff=28165</id>
		<title>FTUI Widget Pagebutton</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Pagebutton&amp;diff=28165"/>
		<updated>2018-10-26T17:26:00Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: Hinweise aus Forum eingefügt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Pagebutton Widget]] ist ein Widget für [[FHEM Tablet UI]], das ein einfaches Element zur Verfügung stellt, um auf eine andere Seite zu navigieren. Auf der Zielseite wird das Widget als &amp;quot;ON&amp;quot; angezeigt. Das Pagebutton-Widget eignet sich zum Beispiel gut, um eine Navigation zu erstellen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Widget_Pagebutton_01.png&lt;br /&gt;
File:FTUI_Widget_Pagebutton_02.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
Für das Pagebutton-Widget gelten alle Attribute des [[FTUI Widget Switch]]. Und zusätzlich die folgenden:&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-url&#039;&#039;&#039;||URL der Seite, die angezeigt werden soll||||data-url=&amp;quot;#content_main.html&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-load&#039;&#039;&#039;||DIV-Container, in den der Inhalt der Zielseite geladen werden soll||||data-load=&amp;quot;#main&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-active-pattern&#039;&#039;&#039;||[[Regulärer Ausdruck|RegEx]], die bestimmt, wann das Widget &amp;quot;ON&amp;quot; sein soll||||&amp;lt;nowiki&amp;gt;data-active-pattern=&amp;quot;(.*/||.*#content_main.html)&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-fade-duration&#039;&#039;&#039;||Zeit in Millisekunden oder &amp;quot;slow&amp;quot; bzw. &amp;quot;fast&amp;quot;, die verwendet werden soll, um die Zielseite einzublenden||slow||data-fade-duration=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icon&#039;&#039;&#039;||Vordergrund-Icon des Widgets||fa-power-off||data-icon=&amp;quot;mi-home&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-background-icon&#039;&#039;&#039;||Hintergrund-Icon des Widgets||fa-circle||data-background-icon=&amp;quot;fa-square&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt angezeigt wird||#222222||data-on-color=&amp;quot;yellow&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-on-background-color&#039;&#039;&#039;||Farbe des Hintergrund-Icons, wenn der gewünschte Inhalt angezeigt wird||#606060||data-on-background-color=&amp;quot;gray&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt nicht angezeigt wird||#505050||data-off-color=&amp;quot;#000000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-off-background-color&#039;&#039;&#039;||Farbe des Vordergrund-Icons, wenn der gewünschte Inhalt nicht angezeigt wird||transparent||data-off-background-color=&amp;quot;#cccccc&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-return-time&#039;&#039;&#039;||Zeit in Sekunden, nach der die Standardseite (default) wieder aufgerufen wird||||data-return-time=&amp;quot;60&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-parent&#039;&#039;&#039;||&amp;quot;Eltern-Seite&amp;quot; - Angabe erforderlich, wenn in einer mehrstufigen Menüstruktur direkt auf eine Unterseite gesprungen werden soll und diese nicht mit &amp;quot;prefetch&amp;quot; vorgeladen ist||||data-parent=&amp;quot;main2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, über welches das Verhalten des Widgets gesteuert wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Reading, welches ausgewertet wird||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Wert, bei welchem das Widget ausgelöst wird||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-states&#039;&#039;&#039;||Vektor mit Zuständen von data-get||||data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-icons&#039;&#039;&#039;||Vektor mit Symbolen, die auf data-states referenzieren||||data-icons=&#039;[&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;]&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide&#039;&#039;&#039;||Reading, welches Ein- und Ausblenden des Widgets steuert||||data-hide=&amp;quot;GelberSack_Anzeige&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-hide-on&#039;&#039;&#039;||Wert, bei dem das Widget ausgeblendet wird||||data-hide-on=&amp;quot;false&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==CSS Klassen==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
{{FTUI Klasse|blank}}{{FTUI Klasse|nocache}}{{FTUI Klasse|default}}{{FTUI Klasse|prefetch}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Hinweise==&lt;br /&gt;
* Für Sub-Pagebuttons kann eine eigene &#039;&#039;data-return-time&#039;&#039; festgelegt werden.&lt;br /&gt;
* &#039;&#039;data-return-time&#039;&#039; muss nicht am ersten Button hängen. Der erste, der dieses Attribut hat, wird ausgewertet.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Einfacher Link===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
     data-url=&amp;quot;index.html&amp;quot;&lt;br /&gt;
     data-icon=&amp;quot;mi-home&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
[[File:FTUI_Widget_Pagebutton_01.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Navigationsleiste===&lt;br /&gt;
Für die Navigationsleiste braucht es zum einen die Leiste und zum anderen einen DIV-Container, in dem die zu ladenden Inhalte angezeigt werden. Die Container erhalten jeweils eine eindeutige ID, welche in der Navigationsleiste als Ziel referenziert wird.&lt;br /&gt;
&lt;br /&gt;
Als erstes wird das Menü aufgebaut.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend werden noch die DIV-Container benötigt, in die der Inhalt der Zielseite geladen wird.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;2&amp;quot; data-sizex=&amp;quot;5&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Zielseite ist wichtig, dass ein DIV-Container erstellt wird, dem die Klasse &#039;&#039;page&#039;&#039; zugewiesen wird und eine ID, die der ID entsprechen muss, in der bei &#039;&#039;data-load&#039;&#039; verwiesen wird.&lt;br /&gt;
So eine Seite könnte wie folgt aussehen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;page&amp;quot; id=&amp;quot;page1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot;&amp;gt;Page 1&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:FTUI_Widget_Pagebutton_02.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Steuerung über ein Device===&lt;br /&gt;
Der Aufruf einzelner Seiten kann auch über ein Device erfolgen; dies eröffnet Automatisierungsmöglichkeiten. Das obige Beispiel wird hierzu erweitert:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Seite&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nimmt das device &amp;quot;Seite&amp;quot; die STATES &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot; oder &amp;quot;3&amp;quot; an, wird die jeweilige Seite aufgerufen. &lt;br /&gt;
&lt;br /&gt;
Eine weitere Variante zeigt das nachfolgende Beispiel: Hier wird über das device &amp;quot;Musik&amp;quot; bei &amp;quot;on&amp;quot; die Seite 2 aufgerufen und bei &amp;quot;off&amp;quot; zur Hauptseite zurückgewechselt:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page1.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page1&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page1.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-weekend&amp;quot;&lt;br /&gt;
         class=&amp;quot;default&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Musik&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;off&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page2.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page2&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page2.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-music_video&amp;quot;&lt;br /&gt;
         data-device=&amp;quot;Musik&amp;quot;&lt;br /&gt;
         data-get=&amp;quot;STATE&amp;quot;&lt;br /&gt;
         data-get-on=&amp;quot;on&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;pagebutton&amp;quot;&lt;br /&gt;
         data-url=&amp;quot;#page3.html&amp;quot;&lt;br /&gt;
         data-load=&amp;quot;#page3&amp;quot;&lt;br /&gt;
         data-active-pattern=&amp;quot;.*#page3.html&amp;quot;&lt;br /&gt;
         data-icon=&amp;quot;mi-tv&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Querverweis auf eine Pagebutton-Seite===&lt;br /&gt;
Es ist zulässig, dass mehrere Pagebutton-Widgets auf dieselbe Seite verweisen. Neben der Verwendung in Menüleisten könnnen somit zusätzlich &amp;quot;Links&amp;quot; an beliebiger Stelle platziert werden, bei deren Betätigung die definierte Pagebutton-Seite bzw. -Unterseite aufgerufen wird. Das Aussehen des Pagebutton-Widgets kann mittels &#039;&#039;data-icons&#039;&#039; und &#039;&#039;data-colors&#039;&#039; wie beim Symbol-Widget beeinflusst werden. Folglich erweitert das Pagebutton-Widget die Funktionalität des Symbol-Widgets dergestalt, dass bei Betätigung eine Unterseite aufgerufen wird. Beispiel: Auf der Hauptseite signalisiert das Symbol, ob alle Fenster geschlossen sind oder mindestens eines geöffnet ist. Bei Betätigung des Widgets wird dann die Unterseite aufgerufen, welche eine detaillierte Übersicht über den Zustand aller Fenster enthält. Im nachfolgenden Beispiel wird der Abholtermin des Gelben Sacks am Vortag (normale Anzeige) und am Abholtag (blinkend) angezeigt. Das Reading &#039;&#039;GelberSack_Anzeige&#039;&#039; begrenzt das Zeitfenster der Anzeige auf den Nachmittag des Vortages bis zum Vormittag des Abholtages. Wenn das Symbol angezeigt wird, kann durch manuelle Betätigung die Unterseite &#039;&#039;&amp;quot;#page_content6_4.html&amp;quot;&#039;&#039; aufgerufen werden (welche z.B. weitere Informationen zu anstehenden Abholterminen bereithält).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;vbox grow-0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;pagebutton&amp;quot; &lt;br /&gt;
data-url=&amp;quot;#page_content6_4.html&amp;quot; &lt;br /&gt;
data-load=&amp;quot;#content6_4&amp;quot; &lt;br /&gt;
data-off-background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
data-off-color=&amp;quot;#FFFF7A&amp;quot; &lt;br /&gt;
data-on-background-color=&amp;quot;transparent&amp;quot; &lt;br /&gt;
data-on-color=&amp;quot;#FFFF7A&amp;quot; &lt;br /&gt;
data-active-pattern=&amp;quot;.*#page_content6_4.html&amp;quot; &lt;br /&gt;
class=&amp;quot;prefetch bigger compressed autohide&amp;quot; &lt;br /&gt;
data-device=&amp;quot;Entsorger&amp;quot; &lt;br /&gt;
data-get=&amp;quot;GelberSack_days&amp;quot; &lt;br /&gt;
data-states=&#039;[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;]&#039; &lt;br /&gt;
data-icons=&#039;[&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;]&#039; &lt;br /&gt;
data-hide=&amp;quot;GelberSack_Anzeige&amp;quot; &lt;br /&gt;
data-hide-on=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
data-device=&amp;quot;Entsorger&amp;quot; &lt;br /&gt;
data-hide=&amp;quot;GelberSack_Anzeige&amp;quot; &lt;br /&gt;
data-hide-on=&amp;quot;false&amp;quot; &lt;br /&gt;
data-get=&amp;quot;GelberSack_days&amp;quot; &lt;br /&gt;
data-substitution=&#039;[&amp;quot;0&amp;quot;,&amp;quot;Heute&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;Morgen&amp;quot;]&#039; &lt;br /&gt;
data-color=&amp;quot;#FFFF7A&amp;quot; class=&amp;quot;compressed autohide&amp;quot; &lt;br /&gt;
style=&amp;quot;position: relative; top: 5px&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weblinks==&lt;br /&gt;
*[https://github.com/knowthelist/fhem-tablet-ui/blob/master/examples/pagebutton/index_page_left_demo.html Beispiel für eine Navigation]&lt;br /&gt;
*{{Link2Forum|Topic=67141|LinkText=Fertiges Pagebutton Multi-Menü}}&lt;br /&gt;
*[https://forum.fhem.de/index.php/topic,82003.msg745677.html#msg745677 Sprung zu einer Unterseite (Anwendung von data-parent)]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|Pagebutton]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FHEM_Tablet_UI&amp;diff=27817</id>
		<title>FHEM Tablet UI</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FHEM_Tablet_UI&amp;diff=27817"/>
		<updated>2018-09-10T15:18:05Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Integrierte Widgets */ Typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Oberfläche für FHEM&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=34233&lt;br /&gt;
|ModForumArea=TabletUI&lt;br /&gt;
|ModTechName=n.a.&lt;br /&gt;
|ModOwner=setstate ({{Link2FU|7023|Forum}})&lt;br /&gt;
}}&lt;br /&gt;
[[FHEM Tablet UI]] (FTUI) ist ein leichtgewichtiges aber funktionsreiches Frontend-Framework zum Steuern und Überwachen von in FHEM integrierten Geräten. Es basiert auf HTML/CSS/JavaScript und stellt somit keine zusätzlichen Anforderungen an den FHEM-Server.&lt;br /&gt;
&lt;br /&gt;
Mit Hilfe zahlreicher Widgets, die sehr leicht mit HTML Code konfiguriert werden können, ist es möglich, innerhalb kurzer Zeit ein den eigenen Wünschen entsprechendes User-Interface aufzubauen.&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb ist nur eine FHEM-Installation mit [[HTTPSRV|HTTPSRV-Modul]] sowie ein gängiger Webbrowser notwendig.&lt;br /&gt;
&lt;br /&gt;
Mit wenigen Anpassungen ist es auch möglich, das UI auf anderen Webservern (Apache, u.a.) zu betreiben. Somit können FHEM und FHEM Tablet UI auch auf getrennten Systemen ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
[[File:tablet_ui.png|thumb|500px|center|Beispiel für ein mit [[FHEM Tablet UI]] erstelltes User-Interface]]&lt;br /&gt;
&lt;br /&gt;
{{Todo|Design-Möglichkeiten erklären, Navigationsmethoden ausformulieren}} &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
Die Installation von FHEM Tablet UI erzeugt keinen großen Aufwand und besteht im Großen und Ganzen aus drei Schritten:&lt;br /&gt;
*Dateien aus dem GitHub-Repository herunterladen&lt;br /&gt;
*FHEM konfigurieren ([[HTTPSRV]]-Device erstellen, [[FHEMWEB]]-Attribut longpoll einstellen)&lt;br /&gt;
*Eine Beispieldatei anlegen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Diese Anleitung geht davon aus, dass FHEM unter Debian nach der Anleitung [https://debian.fhem.de Stable build using apt] installiert wurde.&lt;br /&gt;
Ist dies nicht der Fall, muss der Pfad &#039;&#039;&#039;/opt/fhem&#039;&#039;&#039; dementsprechend angepasst werden.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Zuerst müssen alle Dateien von FHEM Tablet UI in das FHEM-Verzeichnis &#039;&#039;&#039;/opt/fhem/www&#039;&#039;&#039; kopiert werden. Das geht mit folgendem &#039;&#039;&#039;update&#039;&#039;&#039;-Befehl über die FHEM-Befehlszeile.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_01.png|thumb|none|Schritt 1: Dateien kopieren]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Anschließend ist ein neues [[HTTPSRV]]-Device in FHEM anzulegen, welches auf den Ordner mit den gerade heruntergeladenen Dateien verweist.&lt;br /&gt;
:&amp;lt;code&amp;gt;define TABLETUI HTTPSRV ftui/ ./www/tablet/ Tablet-UI&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_02.png|thumb|none|Schritt 2: HTTPSRV-Device anlegen]]&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|Dieser Schritt kann ausgelassen werden, wenn die Funktionalitäten von [[FHEMWEB]] ausreichend sind. Dann muss FTUI aber in weiterer Folge unter der URL &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http(s)://&amp;lt;fhem-server&amp;gt;:8083/fhem/tablet/index.html&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; aufgerufen werden und es wird kein Link auf FTUI in der FHEM GUI erstellt. Vorteil ist aber, dass das FHEMWEB-Caching verwendet werden kann. Siehe dieser {{Link2Forum|Topic=86362|Message=788258}}.}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039; Damit FHEM Tablet UI mit FHEM kommunizieren kann, ist noch die &#039;&#039;&#039;longpoll&#039;&#039;&#039;-Einstellung im [[FHEMWEB]] Device festzulegen.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;attr WEB longpoll websocket&amp;lt;/code&amp;gt;&lt;br /&gt;
:bzw. bei Problemen mit &#039;&#039;websocket&#039;&#039;&lt;br /&gt;
:&amp;lt;code&amp;gt;attr WEB longpoll 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_03.png|thumb|none|Schritt 3: longpoll einstellen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.&#039;&#039;&#039; Weil FTUI noch nichts anzuzeigen hat, wird die Datei &#039;&#039;&#039;/opt/fhem/www/tablet/index-example.html&#039;&#039;&#039; nach &#039;&#039;&#039;/opt/fhem/www/tablet/index.html&#039;&#039;&#039; kopiert.&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo cp -a /opt/fhem/www/tablet/index-example.html /opt/fhem/www/tablet/index.html&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:[[Datei:FTUI_Installation_04.png|thumb|none|Schritt 4: index.html erstellen]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5.&#039;&#039;&#039; Abschließend muss FHEM noch &#039;&#039;&#039;neu gestartet&#039;&#039;&#039; werden (&#039;&#039;shutdown restart&#039;&#039;) da das Attribut &#039;&#039;&#039;longpoll&#039;&#039;&#039; geändert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Somit ist FHEM Tablet UI bereit zur Verwendung und kann durch Aufruf der URL &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;http://&amp;lt;fhem-server&amp;gt;:8083/fhem/ftui/&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; oder den Link im FHEM-Menü geöffnet werden&lt;br /&gt;
&lt;br /&gt;
== Update ==&lt;br /&gt;
Ein Update von FTUI kann ebenfalls über die FHEM-Kommandozeile erfolgen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039; Prüfen der Änderungen seit dem letzten Download/Update durch Eingabe von:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update check https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039; Update der geänderten Dateien durch Eingabe von:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update all https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eine weitere Option ist das Hinzufügen des FTUI-Git-Repositories zum allgemeinem Update-Vorgang von FHEM. Dabei wird dann bei einem FHEM-Update auch gleich FHEM Tablet UI aktualisiert, bzw. die Änderungen angezeigt.&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update add https://raw.githubusercontent.com/knowthelist/fhem-tablet-ui/master/controls_fhemtabletui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
===DOCTYPE===&lt;br /&gt;
In allen HTML-Dateien, die im Browser geladen werden und das typische HTML-Gerüst besitzen (also alle Hauptseiten, jedoch keine Template-Dateien), sollte eine &#039;&#039;Document Type Declaration&#039;&#039; (DTDT) eingefügt werden. Mit ihr wird festgelegt, welche &#039;&#039;Document Type Definition&#039;&#039; hier verwendet wird (das kommt aus der Metasprache XML), konkret also, in welcher Version der nachfolgende HTML-Code vom Browser interpretiert werden soll. Lässt man die DTDT weg, oder definiert sie auf verschiedenen Seiten unterschiedlich, kann ein und der selbe HTML-Code zu unterschiedlichen Darstellungen führen. Die DTDT erfolgt immer auf der ersten Zeile, noch vor dem &amp;lt;code&amp;gt;&amp;lt;html&amp;gt;&amp;lt;/code&amp;gt;-Tag. Nachfolgend wird HTML5 verwendet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
    &amp;lt;head&amp;gt;...&amp;lt;/head&amp;gt;&lt;br /&gt;
    &amp;lt;body&amp;gt;...&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===META-Parameter===&lt;br /&gt;
Das Tablet UI lässt sich über die META-Parameter konfigurieren. Diese Parameter sind in jeder &#039;&#039;&#039;.html&#039;&#039;&#039; Datei (z.B. index.html) im Abschnitt &#039;&#039;&#039;&amp;lt;head&amp;gt;&#039;&#039;&#039; einzutragen. Ausgenommen davon sind Dateien, die als Template, Pagebutton-Zielseiten oder ähnliches eingebunden werden.&lt;br /&gt;
&lt;br /&gt;
Die Parameter sind immer nach diesem Schema aufgebaut:&lt;br /&gt;
 &amp;lt;meta name=&amp;quot;[Parameter-Name]&amp;quot; content=&amp;quot;[Parameter-Wert]&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Verbindung zu FHEM===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter-Name!!Standard-Wert!!Mögliche Werte!!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|web_device||WEB||String||FHEM-Device, welches für das Polling verwendet wird&lt;br /&gt;
|-&lt;br /&gt;
|longpoll||1||0, 1||&lt;br /&gt;
&#039;&#039;&#039;0&#039;&#039;&#039;: Longpoll deaktiviert; alle 30s ein Shortpoll (Neuladen der gesamten Statusänderungen)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1&#039;&#039;&#039;: Longpoll aktiv; geänderte Stati werden sofort aktualisiert, zusätzlich werden alle 15min die gesamten Statusänderungen geladen.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_type||websocket||websocket, ajax, 0||&lt;br /&gt;
&#039;&#039;&#039;websocket&#039;&#039;&#039;: Für die Aktualisierung der Daten wird das Websocket-Protokoll verwendet. Werden vom Browser keine Websockets unterstützt, gibt es einen automatischen Fallback auf Ajax.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ajax&#039;&#039;&#039;: Ajax wird für die Aktualisierung verwendet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;0&#039;&#039;&#039;: Longpoll deaktiviert, Shortpoll wird verwendet.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_filter||.*||RegEx||Event-Filter. Kann verwendet werden, wenn z.B. Devices, die in FTUI angezeigt werden, in einem eigenen FHEM-Room sind.&lt;br /&gt;
|-&lt;br /&gt;
|longpoll_maxage||240||Integer||Kommen in diesem Zeitraum (Sekunden) keine Longpoll-Events bei FTUI an, wird die Verbindung als &amp;quot;disconnected&amp;quot; angesehen und ein neuer Verbindungsversuch wird gestartet.&lt;br /&gt;
|-&lt;br /&gt;
|shortpoll_interval||900||Integer||Zeitraum in Sekunden, nach dem ein vollständiger Refresh stattfindet&lt;br /&gt;
|-&lt;br /&gt;
|shortpoll_only_interval||30||Integer||Zeitraum in Sekunden, nach dem ein vollständiger Refresh stattfindet, sollte Longpoll deaktiviert sein&lt;br /&gt;
|-&lt;br /&gt;
|fhemweb_url||/fhem/||Integer||URL zu FHEM. Wird benötigt wenn FTUI auf einem anderen als dem FHEM Server läuft oder nicht im Standard-Pfad installiert ist. &lt;br /&gt;
Hinweis: Wenn FHEM auf einem anderem Server/Domain läuft muss man das &amp;quot;CORS&amp;quot; Attribut im FHEMWEB Modul (s.o.) auf 1 setzen, sonst bekommt man Cross Origin Fehler. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Funktionalität===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Parameter-Name!!Standard-Wert!!Mögliche Werte!!Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
|debug||0||0 - 5||Log-Level&lt;br /&gt;
|-&lt;br /&gt;
|toast||5||Integer||Anzahl an gleichzeitig angezeigten Toast-Nachrichten. Um keine anzuzeigen, ist der Wert auf 0 zu setzen.&lt;br /&gt;
|-&lt;br /&gt;
|toast_position||bottom-left||||Position im Browserfenster, wo die Toast-Nachrichten angezeigt werden.&lt;br /&gt;
|-&lt;br /&gt;
|lang||de||de||Sprache der Oberfläche (für z.B. Datums-/Zeitfunktionen)&lt;br /&gt;
|-&lt;br /&gt;
|username||||String||Benutzername für eine Basic-Authentifierung *&lt;br /&gt;
|-&lt;br /&gt;
|password||||String||Passwort für eine Basic-Authentifizierung *&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;*&#039;&#039;&#039; Derzeit wird die Basic-Authentifizierung in Kombination mit WebSockets nicht unterstützt. Die Verwendung von &#039;&#039;&#039;longpoll=1&#039;&#039;&#039; (ajax) ist daher notwendig.&lt;br /&gt;
&lt;br /&gt;
===Toast-Nachrichten===&lt;br /&gt;
[[Datei:Ftui_toast.png|thumb|Toast-Nachrichten]]&lt;br /&gt;
Tablet-UI liefert Informationen darüber, was im Moment gerade passiert. Das geschieht über Toast-Nachrichten, die in der Standardeinstellung unten links im Browser auftauchen.&lt;br /&gt;
&lt;br /&gt;
Wird beispielsweise ein Gerät eingeschaltet, so erscheint eine kleine Nachricht mit dem abgesetzten Befehl. Auch Fehlermeldungen und Statusinformationen werden angezeigt. Ob überhaupt und was konkret angezeigt wird, richtet sich nach dem eingestellten Debug-Level (siehe oben). Beim Debug-Level 5 werden alle Nachrichten angezeigt, bei 0 keine.&lt;br /&gt;
&lt;br /&gt;
Die Position der Toast-Nachrichten kann über den Meta-Tag &amp;lt;code&amp;gt;meta name=&#039;toast_position&#039;&amp;lt;/code&amp;gt; festgelegt werden. Für oben-mittig müsste folgender Code eingefügt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;meta name=&#039;toast_position&#039; content=&#039;top-center&#039;&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Möglich sind folgende Positionen:&lt;br /&gt;
* &amp;lt;code&amp;gt;top-left&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-right&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-left&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-right&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;top-center&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;bottom-center&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mid-center&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die maximale Anzahl an Nachrichten, die gleichzeitig angezeigt werden können, lässt sich mit &amp;lt;code&amp;gt;meta name=&#039;toast&#039;&amp;lt;/code&amp;gt; Sind maximal 2 Nachrichten gewünscht, muss folgender Meta-Tag gesetzt werden:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;meta name=&#039;toast&#039; content=&#039;2&#039;&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Navigationsmethoden==&lt;br /&gt;
{{Todo|Dieser Abschnitt dient derzeit lediglich als Sammlung von Stichpunkten und muss vollständig überarbeitet werden.}} &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Unterschied zwischen Pagetab und Pagebutton:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pagetab:&#039;&#039;&#039; Ganze Seite austauschen -&amp;gt; Menü muss auf jede Seite&lt;br /&gt;
[[FTUI_Widget_Pagetab]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pagebutton:&#039;&#039;&#039; Teil der Seite austauschen -&amp;gt; Menü nur in erster Seite&lt;br /&gt;
[[FTUI_Widget_Pagebutton]]&lt;br /&gt;
&lt;br /&gt;
==Gestaltung==&lt;br /&gt;
===Layout-Optionen===&lt;br /&gt;
* [[FTUI Layout Gridster|Gridster]]&lt;br /&gt;
* [[FTUI Layout Flex|Flex]]&lt;br /&gt;
* [[FTUI Layout Sheet|Tabelle]]&lt;br /&gt;
* [[FTUI Layout Row|Reihen]]&lt;br /&gt;
&lt;br /&gt;
=== Farben ===&lt;br /&gt;
Es besteht die Möglichkeit, die Farbwerte in hexadezimaler Form, als RGB-Wert oder mit dem Farbnamen anzugeben. Zum Beispiel: &lt;br /&gt;
&lt;br /&gt;
*HEX: #ADD8E6&lt;br /&gt;
*RBG: rgb(173, 216, 230)&lt;br /&gt;
*Namen: lightblue&lt;br /&gt;
&lt;br /&gt;
Knallige Farben wie &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #ff0000;&amp;quot;&amp;gt;#ff0000&amp;lt;/span&amp;gt;&#039;&#039;&#039; für Rot oder &#039;&#039;&#039;&amp;lt;span style=&amp;quot;color: #00ff00;&amp;quot;&amp;gt;#00ff00&amp;lt;/span&amp;gt;&#039;&#039;&#039; für Grün sollten vermieden werden.&lt;br /&gt;
Es ist besser unterhalb von #D0 (208) für die Grundfarben zu bleiben.&lt;br /&gt;
&lt;br /&gt;
Empfohlene Farben sind z.B.:&lt;br /&gt;
&lt;br /&gt;
*Orange: &amp;lt;span style=&amp;quot;color: #aa6900;&amp;quot;&amp;gt;#aa6900&amp;lt;/span&amp;gt;&lt;br /&gt;
*Rot: &amp;lt;span style=&amp;quot;color: #ad3333;&amp;quot;&amp;gt;#ad3333&amp;lt;/span&amp;gt;&lt;br /&gt;
*Grün: &amp;lt;span style=&amp;quot;color: #32a054;&amp;quot;&amp;gt;#32a054&amp;lt;/span&amp;gt;&lt;br /&gt;
*Blau: &amp;lt;span style=&amp;quot;color: #6699FF;&amp;quot;&amp;gt;#6699FF&amp;lt;/span&amp;gt;&lt;br /&gt;
*Grau: &amp;lt;span style=&amp;quot;color: #8C8C8C;&amp;quot;&amp;gt;#8C8C8C&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hilfreich bei der Suche nach den Farbwerten ist zum Beispiel der Color-Picker auf dieser Seite: http://www.colorpicker.com. Für die Suche nach Farben, die einen guten Kontrast bilden, diese Webseite: http://vanisoft.pl/~lopuszanski/public/colors/&lt;br /&gt;
&lt;br /&gt;
Im Ordner &#039;&#039;css&#039;&#039; der FTUI Installation finden sich einige vorbereitete Farbschemata. Diese können mit einem zusätzlichen Eintrag im &amp;lt;nowiki&amp;gt;&amp;lt;head&amp;gt;&amp;lt;/nowiki&amp;gt;-Bereich der FTUI-Seite(n) aktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Hier am Beispiel eines blauen Farbschemas:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
   [...]&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/fhem/tablet/css/fhem-blue-ui.css&amp;quot; /&amp;gt;&lt;br /&gt;
   [...]&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Schema-Dateien ändern alle Widgets. &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Theme_default.png|default&lt;br /&gt;
File:Theme_blue.png|fhem-blue-ui.css&lt;br /&gt;
File:Theme_green.png|fhem-green-ui.css&lt;br /&gt;
File:Theme_mobile.png|fhem-mobile-ui.css&lt;br /&gt;
File:Theme_darkblue.png|fhem-darkblue-ui.css&lt;br /&gt;
File:Theme_darkgreen.png|fhem-darkgreen-ui.css&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Einzelne Widgets können durch Hinzufügen der jeweiligen [[#CSS-Klassen|CSS-Klasse]] geändert werden.&lt;br /&gt;
&lt;br /&gt;
===CSS-Styles===&lt;br /&gt;
Das Layout und das Aussehen des UI kann durch diverse vorgegebene CSS-Klassen beeinflusst werden. Die verfügbaren Klassen sind im Abschnitt [[#CSS-Klassen|CSS-Klassen]] aufgeführt.&lt;br /&gt;
&lt;br /&gt;
Soll das Aussehen des UI durch eigene CSS-Klassen oder durch Überschreiben der vorhandenen verändert werden, kann eine eigene CSS-Datei erstellt werden, die dann bei einem eventuellen Update von FTUI nicht überschrieben wird. Diese Datei muss den Dateinamen &#039;&#039;&#039;fhem-tablet-ui-user.css&#039;&#039;&#039; haben und im Ordner &#039;&#039;&#039;/fhem/tablet/css&#039;&#039;&#039; abgelegt werden. Sie wird dann beim Aufruf von FTUI automatisch mitgeladen.&lt;br /&gt;
&lt;br /&gt;
=== CSS-Klassen ===&lt;br /&gt;
Nicht alle Widgets unterstützen alle hier angegebenen Klassen. Welche genau unterstützt werden, kann auf der jeweiligen Widget-Seite nachgelesen werden.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|sheet/row/cell-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|sheet}}{{FTUI Klasse|row}}{{FTUI Klasse|cell}}{{FTUI Klasse|cell-1-x}}{{FTUI Klasse|cell-x}}{{FTUI Klasse|left-align}}{{FTUI Klasse|right-align}}{{FTUI Klasse|bottom-align}}{{FTUI Klasse|top-align}}{{FTUI Klasse|center-align}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|row/col-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|col}}{{FTUI Klasse|col-1-x}}{{FTUI Klasse|col-x}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|hbox/vbox-Layout&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|vbox}}{{FTUI Klasse|hbox}}{{FTUI Klasse|card}}{{FTUI Klasse|phone-width}}{{FTUI Klasse|full-height}}{{FTUI Klasse|full-width}}{{FTUI Klasse|grow-0}}{{FTUI Klasse|grow-1}}{{FTUI Klasse|grow-2}}{{FTUI Klasse|grow-x}}{{FTUI Klasse|items-top}}{{FTUI Klasse|items-center}}{{FTUI Klasse|items-bottom}}{{FTUI Klasse|items-space-between}}{{FTUI Klasse|items-space-around}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Generelle Klassen für die Positionierung&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|inline}}{{FTUI Klasse|newline}}{{FTUI Klasse|top-space}}{{FTUI Klasse|top-space-2x}}{{FTUI Klasse|top-space-3x}}{{FTUI Klasse|left-space}}{{FTUI Klasse|left-space-2x}}{{FTUI Klasse|left-space-3x}}{{FTUI Klasse|right-space}}{{FTUI Klasse|right-space-2x}}{{FTUI Klasse|right-space-3x}}{{FTUI Klasse|top-narrow}}{{FTUI Klasse|top-narrow-2x}}{{FTUI Klasse|top-narrow-10}}{{FTUI Klasse|left-narrow}}{{FTUI Klasse|left-narrow-2x}}{{FTUI Klasse|left-narrow-3x}}{{FTUI Klasse|right-narrow}}{{FTUI Klasse|right-narrow-2x}}{{FTUI Klasse|right-narrow-3x}}{{FTUI Klasse|centered}}{{FTUI Klasse|wider}}{{FTUI Klasse|narrow}}{{FTUI Klasse|fullsize}}{{FTUI Klasse|compressed}}{{FTUI Klasse|height-narrow}}{{FTUI Klasse|w1x}}{{FTUI Klasse|w2x}}{{FTUI Klasse|w3x}}{{FTUI Klasse|maxw40}}{{FTUI Klasse|doublebox-v}}{{FTUI Klasse|doublebox-h}}{{FTUI Klasse|triplebox-v}}{{FTUI Klasse|right}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Vordergrundfarben&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|red}}{{FTUI Klasse|green}}{{FTUI Klasse|blue}}{{FTUI Klasse|lightblue}}{{FTUI Klasse|orange}}{{FTUI Klasse|gray}}{{FTUI Klasse|lightgray}}{{FTUI Klasse|white}}{{FTUI Klasse|black}}{{FTUI Klasse|mint}}{{FTUI Klasse|yellow}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Hintergrundfarben&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|bg-red}}{{FTUI Klasse|bg-green}}{{FTUI Klasse|bg-blue}}{{FTUI Klasse|bg-lightblue}}{{FTUI Klasse|bg-orange}}{{FTUI Klasse|bg-gray}}{{FTUI Klasse|bg-lightgray}}{{FTUI Klasse|bg-white}}{{FTUI Klasse|bg-black}}{{FTUI Klasse|bg-mint}}{{FTUI Klasse|bg-yellow}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Rahmen&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|verticalLine}}{{FTUI Klasse|border-black}}{{FTUI Klasse|border-white}}{{FTUI Klasse|border-orange}}{{FTUI Klasse|border-red}}{{FTUI Klasse|border-green}}{{FTUI Klasse|border-mint}}{{FTUI Klasse|border-lightblue}}{{FTUI Klasse|border-blue}}{{FTUI Klasse|border-gray}}{{FTUI Klasse|border-yellow}}{{FTUI Klasse|border-lightgray}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Größen&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|mini}}{{FTUI Klasse|tiny}}{{FTUI Klasse|small}}{{FTUI Klasse|normal}}{{FTUI Klasse|large}}{{FTUI Klasse|big}}{{FTUI Klasse|bigger}}{{FTUI Klasse|tall}}{{FTUI Klasse|great}}{{FTUI Klasse|grande}}{{FTUI Klasse|gigantic}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Schriftstil&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|thin}}{{FTUI Klasse|bold}}{{FTUI Klasse|darker}}{{FTUI Klasse|truncate}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;text-align: left;&amp;quot;|Sonstiges&lt;br /&gt;
|-&lt;br /&gt;
!class=&amp;quot;mw-collapsible-content&amp;quot;|Klasse!!Beschreibung&lt;br /&gt;
{{FTUI Klasse|blank}}{{FTUI Klasse|transparent}}{{FTUI Klasse|half-transparent}}{{FTUI Klasse|blurry}}{{FTUI Klasse|shake}}{{FTUI Klasse|fail-shake}}{{FTUI Klasse|marquee}}{{FTUI Klasse|icon round}}{{FTUI Klasse|icon square}}{{FTUI Klasse|readonly}}{{FTUI Klasse|blink}}{{FTUI Klasse|rotate-90}}{{FTUI Klasse|horizontal}}{{FTUI Klasse|circleborder}}{{FTUI Klasse|autohide}}{{FTUI Klasse|notransmit}}{{FTUI Klasse|tap}}{{FTUI Klasse|FS20}}{{FTUI Klasse|value}}{{FTUI Klasse|novalue}}{{FTUI Klasse|timestamp}}{{FTUI Klasse|percent}}{{FTUI Klasse|nocache}}{{FTUI Klasse|fade}}{{FTUI Klasse|rotate}}{{FTUI Klasse|nolabels}}{{FTUI Klasse|default}}{{FTUI Klasse|prefetch}}{{FTUI Klasse|circulate}}{{FTUI Klasse|valueonly}}{{FTUI Klasse|positiononly}}{{FTUI Klasse|lineIndicator}}{{FTUI Klasse|barIndicator}}{{FTUI Klasse|roundIndicator}}{{FTUI Klasse|dim-tick}}{{FTUI Klasse|dim-front}}{{FTUI Klasse|dim-back}}{{FTUI Klasse|hue-tick}}{{FTUI Klasse|hue-front}}{{FTUI Klasse|hue-back}}{{FTUI Klasse|warn}}{{FTUI Klasse|activate}}{{FTUI Klasse|labelright}}{{FTUI Klasse|interlock}}{{FTUI Klasse|keepopen}}{{FTUI Klasse|noshade}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Icons ===&lt;br /&gt;
FTUI bringt einige Icons-&amp;quot;Schriftarten&amp;quot; mit, die für die Darstellung genützt werden können. Diese werden automatisch beim Start des UI eingebunden, sobald ein entsprechendes Icon-Präfix im Code der Seite vorkommt.&lt;br /&gt;
&lt;br /&gt;
Verfügbare Icon-Schriftarten sind:&lt;br /&gt;
* Eingebaute Icons &#039;&#039;ftui-window&#039;&#039; und &#039;&#039;ftui-door&#039;&#039;. Präfix &#039;&#039;&#039;ftui-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;ftui-door&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [http://fontawesome.io/icons/ Font-Awesome]: Mehr als 500 Icons zur Auswahl. Präfix &#039;&#039;&#039;fa-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;fa-volume-up&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://material.io/icons/ Material Icons]: Mehr als 900 Icons zur Auswahl. Präfix &#039;&#039;&#039;mi-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;mi-local_gas_station&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* FHEM und OpenAutomation Icons: Präfix &#039;&#039;&#039;fs-&#039;&#039;&#039; und &#039;&#039;&#039;oa-&#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;oa-secur_locked&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* [https://erikflowers.github.io/weather-icons/ Weather-Icons]: Präfix &#039;&#039;&#039;wi &#039;&#039;&#039;. Beispiel: &amp;lt;code&amp;gt;data-icon=&amp;quot;wi wi-day-rain-mix&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternativ können auch Bilder Icons (bspw. png) über CSS verwendet werden. Bspw:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
  &amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;&lt;br /&gt;
        .logo-fhem {&lt;br /&gt;
            background: url(https://wiki.fhem.de/fhemlogo.png) no-repeat;&lt;br /&gt;
            width: 120px;&lt;br /&gt;
            height: 132px;&lt;br /&gt;
            background-size: contain;&lt;br /&gt;
        }&lt;br /&gt;
  &amp;lt;/style&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-icon=&amp;quot;logo-fhem&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Widgets ==&lt;br /&gt;
===Allgemeine Attribute===&lt;br /&gt;
Jedes Widget kann über verschiedene Attribute konfiguriert werden. Folgende Attribute gelten für alle Widgets:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+allgemeine Attribute&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-type&lt;br /&gt;
|Widget-Typ&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-device&lt;br /&gt;
|FHEM-Name des Gerätes (mit dem Befehl &#039;list&#039; bekommt man im FHEM die kpl. Liste)&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|CSS-Klassen für Aussehen und Formatierung des Widgets&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Daten Empfangen&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|Reading Name&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-on&lt;br /&gt;
|Wert für den Status on&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-off&lt;br /&gt;
|Wert für den Status off&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Daten Senden&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set&lt;br /&gt;
|Reading Name&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set-on&lt;br /&gt;
|Wert für den Status on&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set-off&lt;br /&gt;
|Wert für den Status off&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Widget-spezifische Attribute können auf der jeweiligen Widget-Seite nachgelesen werden.&lt;br /&gt;
&lt;br /&gt;
=== Integrierte Widgets ===&lt;br /&gt;
Folgende Widgets sind direkt in FHEM Tablet UI integriert und können &amp;quot;out of the box&amp;quot; verwendet werden.&lt;br /&gt;
&lt;br /&gt;
* [[FTUI Widget Button|button]]: Variante der push und switch Widgets, die entweder einen URL ansteuern oder einen FHEM-Befehl absetzen kann&lt;br /&gt;
* [[FTUI Widget Checkbox|checkbox]]: Umschalter zwischen zwei definierten Zuständen&lt;br /&gt;
* [[FTUI Widget Circlemenu|circlemenu]]: Mehrere Widgets hinter einem Widget verborgen, trotz des &#039;circle&#039; im Namen kann das Menue jetzt auch horizontal oder vertikal ausgeklappt werden &lt;br /&gt;
* [[FTUI Widget Clock|clock]]: Stellt eine einfache Uhr zur Verfügung&lt;br /&gt;
* [[FTUI Widget Colorwheel|colorwheel]]: Farbpalette zur Auswahl von Farben&lt;br /&gt;
* [[FTUI Widget Controlbutton|controlbutton]]: iOS-ähnlicher Button zum Schalten zwischen zwei Zuständen (z.B. on / off)&lt;br /&gt;
* [[FTUI Widget Controller|controller]]: iOS-ähnlicher vertikaler Schieberegler zum Einstellen eines Wertes&lt;br /&gt;
* [[FTUI Widget Datetimepicker|datetimepicker]]: Erstellt eine Auswahl für Datum/Uhrzeit&lt;br /&gt;
* [[FTUI Widget Departure|departure]]: Abfahrtszeiten öffentlicher Verkehrsmittel&lt;br /&gt;
* [[FTUI Widget Dimmer|dimmer]]: Ein-/Aus-Button mit integriertem Schieberegler für z.B. einen Dim-Wert&lt;br /&gt;
* [[FTUI Widget Eventmonitor|eventmonitor]]:&lt;br /&gt;
* [[FTUI Widget Homestatus|homestatus]]: Auswahl für vier oder fünf definierte Stati eines Objects (z.B.: FHEM Residents)&lt;br /&gt;
* [[FTUI Widget Html|html]]:&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/iframe iframe]: Widget zum Einbinden externer Inhalte in einem Iframe&lt;br /&gt;
* [[FTUI Widget Image|image]]: Zeigt ein Bild, dessen URL fest vorgegeben oder aus einem Device-Reading gelesen werden kann&lt;br /&gt;
* [[FTUI Widget Input|input]]: Erstellen eines Texteingabefeldes&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/joinedlabel joinedlabel]: verbindet mehrere Readings zu einem Feld&lt;br /&gt;
* [[FTUI Widget Klimatrend|klimatrend]]: wandelt Daten aus dem statistics-Modul in einen Pfeil um, der den aktuellen Trend anzeigt&lt;br /&gt;
* [[FTUI Widget Knob|knob]]: Erstellt einen Statusbalken auf einer Kreisbahn&lt;br /&gt;
* [[FTUI Widget Label|label]]: Reading als Text anzeigen&lt;br /&gt;
* [[FTUI Widget Level|level]]: Vertikale oder horizontale Leiste zur Anzeige von Werten zwischen einem Minimal- und einem Maximalwert&lt;br /&gt;
* [[FTUI Widget Link|link]]: Erstellt einen Link oder Button zum Aufrufen von URLs oder Senden von Befehlen an FHEM&lt;br /&gt;
* [[FTUI Widget Medialist|medialist]]:&lt;br /&gt;
* [[FTUI Widget Multistatebutton|multistatebutton]]: Variante des push-Widgets, welches den set-Befehl abhängig vom gelesenen Status ändert&lt;br /&gt;
* [[FTUI Widget Notify|notify]]: Blendet ein Hinweisfenster im Browser ein&lt;br /&gt;
* [[FTUI Widget Pagebutton|pagebutton]]: Button, mit dem auf andere Seiten gesprungen werden kann. Eignet sich gut für eine Navigation&lt;br /&gt;
* [[FTUI Widget Pagetab|pagetab]]: Tauscht den Inhalt einer Seite durch den einer anderen. Eignet sich gut für ein Navigationsmenü&lt;br /&gt;
* [[FTUI Widget Playstream|playstream]]: Abspielen eines Webradio-Streams per Button&lt;br /&gt;
* [[FTUI Widget Popup|popup]]: Öffnet ein Popup nach einem Klick auf ein Widget oder HTML-Element &lt;br /&gt;
* [[FTUI Widget Progress|progress]]: Zeigt einen Prozentwert in Form einer runden Fortschrittsleiste&lt;br /&gt;
* [[FTUI_Widget_Push|push]]: Button, mit dem ein Befehl an FHEM gesendet werden kann&lt;br /&gt;
* [[FTUI Widget Range|range]]: Erstellt vertikale Balken, die einen Wertebereich in unterschiedlichen Farben darstellen&lt;br /&gt;
* [[FTUI Widget Readingsgroup|readingsgroup]]: Zeigt eine Readingsgroup an, wie sie in FHEM definiert wurde&lt;br /&gt;
* [[FTUI Widget Rotor|rotor]]: Animiertes Umschalten von zwei oder mehr Widgets an einer Position&lt;br /&gt;
* [[FTUI Widget Scale|scale]]: Vertikale oder horizontale Leiste zur Anzeige von Werten zwischen einem Minimal- und einem Maximalwert&lt;br /&gt;
* [[FTUI_Widget_Select|select]]: Combobox, die eine Liste an Werten zur Auswahl anzeigt&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/settimer settimer]: Zum Anzeigen und Einstellen einer Uhrzeit&lt;br /&gt;
* [[FTUI Widget Simplechart|simplechart]]: Einfaches XY-Diagramm zur Anzeige eines Wertes, der direkt aus einem FHEM-Logfile gelesen wird&lt;br /&gt;
* [[FTUI Widget Slideout|slideout]]:&lt;br /&gt;
* [[FTUI Widget Slider|slider]]: Vertikaler Schieberegler zum Einstellen eines Wertes &lt;br /&gt;
* [[FTUI Widget Spinner|spinner]]: Element, um Werte durch Drücken auf Plus-/Minus- oder Höher-/Tiefer-Icons zu ändern&lt;br /&gt;
* [[FTUI Widget Swiper|swiper]]: Bietet die Möglichkeit, durch Wischen zwischen verschiedenen Seiten zu wechseln&lt;br /&gt;
* [[FTUI Widget Switch|switch]]: Button, um zwischen zwei Zuständen zu schalten (z.B. on / off)&lt;br /&gt;
* [[FTUI Widget Symbol|symbol]]: Status eines Devices als Symbol darstellen (z.B. Fenster offen)&lt;br /&gt;
* [[FTUI Widget Theme|theme]]: Kontextspezifisches Design&lt;br /&gt;
* [[FTUI Widget Thermostat|thermostat]]: Anzeige für Heizungsthermostate, mit der die gewünschte Temperatur eingestellt werden kann&lt;br /&gt;
* [[FTUI Widget Volume|volume]]: Einstellscheibe zur Änderung eines einzelnen Wertes&lt;br /&gt;
* [[FTUI Widget Weather|weather]]: Wettersymbol anzeigen&lt;br /&gt;
* [[FTUI Widget Weatherdetail|weatherdetail]]: Detaillierte Wettervorhersage über 4 Tage (Nutzt das Proplanta Modul)&lt;br /&gt;
* [[FTUI Widget WindDirection|wind_direction]]: Anzeige der Windrichtung auf einer Windrose&lt;br /&gt;
&lt;br /&gt;
===3rd Party Widgets===&lt;br /&gt;
Für diese Widgets kann nicht sichergestellt werden, dass sie mit der jeweils aktuellen Version von FTUI funktionieren.&lt;br /&gt;
* [[FTUI Widget Agenda|agenda]]: Zeigt Kalendereinträge in einer Listenform an&lt;br /&gt;
* [[FTUI_Widget_Analogclock|analogclock]]: Analoguhr&lt;br /&gt;
* [[FTUI Widget Calview|calview]]: Zeigt Einträge aus einem [[CALVIEW]]-Device an&lt;br /&gt;
* [[FTUI Widget Chart|chart]]: Diagramm mit ähnlichen Möglichkeiten wie die FHEM-Plots&lt;br /&gt;
* [[FTUI Widget Classchanger|classchanger]]: Ändert seine CSS-Klassen je nach Status eines Devices&lt;br /&gt;
* [[FTUI Widget Clicksound|clicksound]]: Mit dem Widget &amp;quot;clicksound&amp;quot; können Sounds an Click-Events von Elementen gebunden werden.&lt;br /&gt;
* [[FTUI Widget Filelog|filelog]]:&lt;br /&gt;
* [[FTUI Widget Fullcalview|fullcalview]]:&lt;br /&gt;
* [[FTUI Widget Gds|gds]]:&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,78379.msg703359.html#msg703359 gmaps]: Kartendarstellung mit Google Maps API&lt;br /&gt;
* [[FTUI Widget Highchart|highchart]]:&lt;br /&gt;
* [[FTUI Widget Highchart3d|highchart3d]]:&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/itunes_artwork itunes_artwork]: itunes_artwork durchsucht die iTunes-Datenbank anhand eines Arrays von beliebigen Suchworten nach einem Cover-Artwork und zeigt dieses an. &lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/javascript javascript]: Ermöglicht die Ausführung beliebigen Javascript-Codes aus einem Reading.&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/kodinowplaying kodinowplaying]: zeigt Informationen zu grade in KODI gespielten Medien in Form eines Labels an.&lt;br /&gt;
* [[FTUI Widget Loading|loading]]:&lt;br /&gt;
* [[FTUI Widget Meteogram|meteogram]]:&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/mpdnowplaying mpdnowplaying]: Zeigt Titelinformationen eines per MPD-Modul angebundenen Music Player Daemon an.&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,79283.msg712855.html#msg712855 pinpad]: Pinpad für z.B. eine Alarmanlage&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,76643.msg685472.html#msg685472 postme]: Liste des PostMe-Devices anzeigen&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/reload reload]: auslösen eine Pagereloads&lt;br /&gt;
* [[FTUI Widget Screensaver|screensaver]]:&lt;br /&gt;
* [https://forum.fhem.de/index.php/topic,73497.0.html scrolllabel]: Texte in Laufschrift darstellen&lt;br /&gt;
* [[FTUI Widget Svgplot|svgplot]]:&lt;br /&gt;
* [https://forum.fhem.de/index.php?topic=82883.msg750237#msg750237 todoist]: einfaches widget für todoist&lt;br /&gt;
* [[FTUI Widget Tts|tts]]: Sprachausgabe eines Textes aus einem Reading auf dem Endgerät.&lt;br /&gt;
* [[FTUI Widget UWZ|uwz]]: Anzeige der Warnungen der Unwetterzentrale&lt;br /&gt;
* [[FTUI Widget Wakeup|wakeup]]:&lt;br /&gt;
* [https://github.com/svenson08/ftui-weekdaytimer-widget wdtimer]: Visualisierung des [[WeekdayTimer]] Modul&lt;br /&gt;
* [[FTUI Widget Weekprofile|weekprofile]]: Visualisierung des [[weekprofile]] Moduls&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele===&lt;br /&gt;
Durch die Verbindung von Widgets mit dem FHEM-Umfeld entstehen Lösungen für typische Anwendungen.&lt;br /&gt;
* [[FTUI_Beispiel_Datetimepicker_für_Timer|Datetimepicker für Timer]]: Oberfläche für Timereinstellungen&lt;br /&gt;
* [[FTUI_Beispiel_Mondphase|Mondphase]]: Visuelle Darstellung der Mondphase&lt;br /&gt;
* [[FTUI_Beispiel_Webradio|Webradio]]&lt;br /&gt;
* [[FTUI Beispiel Zeitschaltung|Verschiedene Zeitschaltungen]]&lt;br /&gt;
&lt;br /&gt;
==Templates==&lt;br /&gt;
Kommt ein bestimmtes &amp;quot;Code-Fragment&amp;quot; auf mehreren Seiten oder öfter pro Seite vor, bietet FTUI die Option, Templates zu erstellen. Diese werden einmal gebaut und können dann mit dem Attribut &#039;&#039;&#039;data-template&#039;&#039;&#039; nach Belieben in eine Seite eingefügt werden. Dabei besteht auch die Möglichkeit, Variablen zu verwenden.&lt;br /&gt;
&lt;br /&gt;
Die Variablennamen sollten möglichst eindeutig und unverwechselbar gewählt werden, da bei der Verwendung von Templates im Prinzip Suchen &amp;amp; Ersetzen angewendet wird. Verwendet man beispielsweise die Variablen &#039;&#039;&#039;dev:Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;dev_temp:temperatue&#039;&#039;&#039;, so kann es passieren, dass die Ergebnisse im erzeugten Code dann &#039;&#039;&#039;Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;Thermostat_Kueche_temp&#039;&#039;&#039; lauten, statt wie gewünscht &#039;&#039;&#039;Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;temperature&#039;&#039;&#039;. Um dies zu vermeiden, sollten die Variablen besser &#039;&#039;&#039;device:Thermostat_Kueche&#039;&#039;&#039; und &#039;&#039;&#039;temp:temperatue&#039;&#039;&#039; lauten.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden ein paar Beispiele, wie Templates verwendet werden können.&lt;br /&gt;
&lt;br /&gt;
===Einzelnes Widget===&lt;br /&gt;
Soll ein Widget an mehreren Stellen in exakt der selben Ausführung eingebunden werden, kann diese Widget in einer eigenen Datei erstellt und diese dann auf den Zielseiten automatisch mitgeladen werden.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
Die Template-Seite soll in diesem Beispiel &#039;&#039;template_symbol.html&#039;&#039; genannt werden. Diese wird daher zuerst im FTUI-Verzeichnis erstellt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;dummy1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
Die oben erstellte Template-Seite kann nun in jeder gewünschten Seite eingebunden werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; highlight=&amp;quot;6&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;gridster&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizey=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;div data-template=&amp;quot;template_symbol.html&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Gridster-Element===&lt;br /&gt;
Natürlich kann auch ein ganzes Gridster-Element - in diesem Fall ein Menü - als Template eingebunden werden.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li data-row=&amp;quot;1&amp;quot; data-col=&amp;quot;1&amp;quot; data-sizex=&amp;quot;1&amp;quot; data-sizey=&amp;quot;4&amp;quot; data-template=&amp;quot;menu.html&amp;quot;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Widget-Gruppen ===&lt;br /&gt;
Die Template-Datei des [[#Einzelnes Widget|ersten Beispiels]] kann natürlich auch mehrere Widgets auf einmal enthalten.&lt;br /&gt;
&lt;br /&gt;
=== Verwendung von Variablen ===&lt;br /&gt;
==== Einfaches Beispiel ====&lt;br /&gt;
Oft wird ein und dasselbe Widget für verschiedenen Devices verwendet. Um nicht für jedes Device das Widget neu kopieren zu müssen (bzw. bei Änderungen alle Seiten ausbessern zu müssen), kann ein Template verwendet werden, dem einfach per Parameter mitgeteilt wird, von welchem Device es gerade die Daten empfangen soll.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird ein Template erzeugt, dass nur die Temperatur verschiedenen Thermostate mittels eines [[FTUI Widget Label|Label-Widgets]] anzeigt.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
Die Template-Seite enthält nur ein einfaches Label-Widget und wird in diesem Beispiel &#039;&#039;template_label.html&#039;&#039; genannt. Um sie für mehrere Devices verwenden zu können, wird im Attribut &#039;&#039;&#039;data-device&#039;&#039;&#039; der Name des eigentlichen Devices durch den Parameter &#039;&#039;&#039;par01&#039;&#039;&#039; ersetzt.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot; highlight=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot;&lt;br /&gt;
     data-device=&amp;quot;par01&amp;quot;&lt;br /&gt;
     data-get=&amp;quot;measured-temp&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
Auf der Haupt-Seite wird die Template-Seite mit dem Attribut &#039;&#039;&#039;data-template&#039;&#039;&#039; eingebunden und ihr via Attribut &#039;&#039;&#039;data-parameter&#039;&#039;&#039; das jeweils gewünschte Device übergeben.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat1&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat2&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-template=&amp;quot;template_label.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;Thermostat3&amp;quot;}&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Wetter-Slider mit Template ====&lt;br /&gt;
In diesem Beispiel wird ein [[FTUI Widget Slider|Slider-Widget]] erstellt, welches die verschiedenen Tage eines Wetterberichtes anzeigt. Dabei wird für den Wetterbericht des jeweiligen Tages immer dasselbe Template verwendet um nicht für jeden Tag ein eigenes Widget schreiben zu müssen.&lt;br /&gt;
&lt;br /&gt;
;Template-Seite&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par01&amp;quot; data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div class=&amp;quot;inline&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par02&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
       &amp;lt;div data-type=&amp;quot;weather&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par02&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
       min:&amp;amp;nbsp;&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par03&amp;quot; data-unit=&amp;quot;&amp;amp;deg;C&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;left&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par04&amp;quot; data-substitution=&amp;quot;toDate().eeee()+&#039;,&#039;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;AgroWeather&amp;quot; data-get=&amp;quot;par04&amp;quot; data-substitution=&amp;quot;toDate().ddmm()&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Haupt-Seite&lt;br /&gt;
In der Haupt-Seite wird das Template dann für jede Slider-Seite eingebunden und das Reading für den jeweiligen Tag via Parameter übergeben.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;swiper&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc0_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc0_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc0_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc0_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc1_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc1_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc1_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc1_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc2_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc2_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc2_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc2_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li data-template=&amp;quot;templates/wetter.html&amp;quot; data-parameter=&#039;{&amp;quot;par01&amp;quot;:&amp;quot;fc3_tempMax&amp;quot;,&amp;quot;par02&amp;quot;:&amp;quot;fc3_weatherDay&amp;quot;,&amp;quot;par03&amp;quot;:&amp;quot;fc3_tempMin&amp;quot;,&amp;quot;par04&amp;quot;:&amp;quot;fc3_date&amp;quot;}&#039;&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== JavaScript-Funktionen ==&lt;br /&gt;
Neben den Widgets können auch einige JavaScript-Funktionen verwendet werden, um Befehle an FHEM zu senden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgende Zeile setzt einen direkten Befehl an FHEM ab (&amp;lt;code&amp;gt;set dummy1 off&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;div onclick=&amp;quot;ftui.setFhemStatus(&#039;set dummy1 off&#039;)&amp;quot;&amp;gt;Dummy1 aus&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Diese Zeile veranlasst FHEM dazu, eine Funktion aus der 99_myUtils.pm auszuführen (&amp;lt;code&amp;gt;myUtils_HeizungUpDown(&amp;quot;WZ.Thermostat_Climate&amp;quot;,&amp;quot;up&amp;quot;)&amp;lt;/code&amp;gt;):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&amp;lt;div onclick=&amp;quot;ftui.setFhemStatus(&#039;{myUtils_HeizungUpDown(&amp;amp;quot;WZ.Thermostat_Climate&amp;amp;quot;,&amp;amp;quot;up&amp;amp;quot;)}&#039;)&amp;quot;&amp;gt;+&amp;lt;/div&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel, wie ein Kommando an FHEM gesendet wird und gleichzeitig der Wert eines bereits in FTUI angezeigten Readings verwendet werden kann:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;dummy1&amp;quot; data-get=&amp;quot;temperature&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div onClick=&amp;quot;ftui.setFhemStatus(&#039;set dummy2 &#039;+ftui.getDeviceParameter(&#039;dummy1&#039;,&#039;temperature&#039;).val);&amp;quot;&amp;gt;Senden&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigene Widgets erstellen ==&lt;br /&gt;
Wie eigenen Widgets für FTUI erstellt werden können, ist auf der Seite [[FTUI eigene Widgets]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Eine Schritt für Schritt Anleitung für das erste eigene Widget gibts hier [[FTUI eigene Widgets - Beispiel]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
Häufig gestellte Fragen zum FHEM Tablet UI sind in der [[FHEM Tablet UI FAQ]] zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [https://github.com/knowthelist/fhem-tablet-ui Projekt auf Github]&lt;br /&gt;
* {{Link2Forum|Topic=34233|LinkText=Forums-Beitrag}}&lt;br /&gt;
* [[FTUI_Snippets|Snippets]]&lt;br /&gt;
* [http://knowthelist.github.io/fhem/tablet/demo_widgets.html Live-Demos]&lt;br /&gt;
* [https://waschto.eu/fhem-und-tabletui-livedemo/ FHEM und TabletUI Live-Demo]&lt;br /&gt;
* {{Link2Forum|Topic=37378|LinkText=User-Demos}}&lt;br /&gt;
* [https://github.com/ovibox/fhem-ftui-user-demos Download der User-Demo-Dateien]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|!]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Theme&amp;diff=27816</id>
		<title>FTUI Widget Theme</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=FTUI_Widget_Theme&amp;diff=27816"/>
		<updated>2018-09-10T15:10:10Z</updated>

		<summary type="html">&lt;p&gt;Ulm32b: /* Beispiele */ Bilder zu den Stylesheets zur Hauptseite FTUI verschoben und hier durch einen Link ersetzt.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das [[{{PAGENAME}}|Theme Widget]] ist ein Widget für [[FHEM Tablet UI]], mit dem - gesteuert über ein Device - ein Stylesheet aktiviert und deaktiviert werden kann. Damit lassen sich kontextspezifische Designs realisieren, z.B. abhängig von [[FTUI Widget Homestatus|Homestatus]], Tageszeit, Jahreszeit, ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Theme_Tag.png&lt;br /&gt;
File:FTUI_Theme_Abend.png&lt;br /&gt;
File:FTUI_Theme_Nacht.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Standard-Wert&lt;br /&gt;
!Beispiel&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-device&#039;&#039;&#039;||FHEM-Device, dessen Reading ausgewertet werden soll||||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get&#039;&#039;&#039;||Name des Readings, das den Wert enthält||STATE||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-on&#039;&#039;&#039;||Wert, bei dem die css-Datei aktiviert wird||true,1,on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;data-get-off&#039;&#039;&#039;||Wert, bei dem die css-Datei deaktiviert wird||!on||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;href&#039;&#039;&#039;||Pfad und Name der angepassten css-Datei||||href=&amp;quot;css/Layout_Tag.css&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das Widget muss im &#039;&#039;&amp;lt;Head&amp;gt;&#039;&#039; innerhalb eines &#039;&#039;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; ...&amp;gt;&#039;&#039; angeordnet werden, vgl. Beispiel.&lt;br /&gt;
==Hinweise==&lt;br /&gt;
*Man darf die &#039;&#039;css/fhem-tablet-ui.css&#039;&#039; nicht deaktivieren.&lt;br /&gt;
&lt;br /&gt;
==Beispiele==&lt;br /&gt;
===Vordefinierte Stylesheets===&lt;br /&gt;
Im Lieferumfang von FTUI sind bereits vordefinierte Stylesheets enthalten, welche direkt eingebunden werden können:&lt;br /&gt;
* fhem-blue-ui.css&lt;br /&gt;
* fhem-green-ui.css&lt;br /&gt;
* fhem-mobile-ui.css&lt;br /&gt;
* fhem-darkblue-ui.css&lt;br /&gt;
* fhem-darkgreen-ui.css&lt;br /&gt;
Zugehörige Beispielbilder siehe [[FHEM_Tablet_UI#Farben|Farben in FTUI]].&lt;br /&gt;
&lt;br /&gt;
===Hintergrundfarbe bei Tag===&lt;br /&gt;
Tagsüber soll die Hintergrundfarbe geändert werden. Ausgewertet wird hierzu das FHEM-Device &#039;&#039;Twilight&#039;&#039;. Bei Tageslicht nimmt dessen Reading &#039;&#039;light&#039;&#039; den Wert &#039;&#039;&amp;quot;6&amp;quot;&#039;&#039; an.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
defmod Daemmerung Twilight &amp;lt;latitude&amp;gt; &amp;lt;longitude&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Datei &#039;&#039;&amp;quot;Layout_Tag.css&amp;quot;&#039;&#039; enthält die Farbdefinition:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
    background-color: #3A374A !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
In der HTML-Datei wird im &#039;&#039;&amp;lt;Head&amp;gt;&#039;&#039; das Widget platziert:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/Layout_Tag.css&amp;quot; data-type=&amp;quot;theme&amp;quot; data-device=&amp;quot;Daemmerung&amp;quot; data-get=&amp;quot;light&amp;quot;&lt;br /&gt;
          data-get-on=&amp;quot;6&amp;quot; data-get-off=&amp;quot;!6&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Umschaltung zwischen alternativen Stylesheets (hier day.css und night.css)===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/day.css&amp;quot; data-type=&amp;quot;theme&amp;quot;&lt;br /&gt;
          data-device=&amp;quot;ftui1&amp;quot; data-get=&amp;quot;theme&amp;quot; data-get-on=&amp;quot;day&amp;quot; data-get-off=&amp;quot;!day&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/night.css&amp;quot; data-type=&amp;quot;theme&amp;quot;&lt;br /&gt;
          data-device=&amp;quot;ftui1&amp;quot; data-get=&amp;quot;theme&amp;quot; data-get-on=&amp;quot;night&amp;quot; data-get-off=&amp;quot;!night&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Hintergrundbilder für die Dämmerung===&lt;br /&gt;
Das FHEM-Device &#039;&#039;Twilight&#039;&#039; unterscheidet zwischen astronomischer, nautischer und bürgerlicher Dämmerung. Auf dieser Basis können Tagesanfang und -ende einfach mit abgestuften Hintergrundbildern verknüpft werden.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:FTUI_Daemmerung_1.jpg&lt;br /&gt;
File:FTUI_Daemmerung_2.jpg&lt;br /&gt;
File:FTUI_Daemmerung_3.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Weitere Informationen==&lt;br /&gt;
*Ausrollung des Widgets in einem [https://forum.fhem.de/index.php/topic,69259.0.html Forumsbeitrag]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FHEM Tablet UI|theme]]&lt;/div&gt;</summary>
		<author><name>Ulm32b</name></author>
	</entry>
</feed>