<?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=UniqueCK</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=UniqueCK"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/UniqueCK"/>
	<updated>2026-04-22T21:14:51Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=29479</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=29479"/>
		<updated>2019-02-11T21:28:03Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Einbindung ins Tablet UI, erweitert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Filtern von (Abfall-)Terminen aus einem Calendar.&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein (inoffizielles, nicht Bestandteil der Distribution) Hilfsmodul, das bestimmte Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere Calendar Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Namen der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgendem Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define AbfallGoogleCalender Calendar ical url https://......&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;define myABFALL ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom [[notify]] der entsprechenden Calendar Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt, sofern mehrere Kalender angegeben wurden, ansonsten 0 - praefix wird nicht vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, wird dieses Trennzeichen genutzt, um die beiden (oder mehrere) Werte zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern der Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einbindung ins Tablet UI, erweitert ===&lt;br /&gt;
Fallen die Leerungen zweier verschiedener Tonnen nicht auf den selben Tag, reicht es normalerweise, nur ein Symbol auf der Oberfläche zu platzieren und dieses dann dynamisch zu befüllen. In folgendem Beispiel werden folgende Anforderungen umgesetzt:&lt;br /&gt;
* Anzeige unterschiedlicher Symbole bzw. Farben für Papiertonne, Restmülltonne, Biotonne und gelbe Säcke&lt;br /&gt;
* Anzeige der verbleibenden Tage bis zur Leerung als &amp;quot;Warn&amp;quot;-Marker in Rot, aber nur, wenn die Leerung innerhalb der nächsten 2 Tage ist&lt;br /&gt;
* Blinken des Symbols, wenn die nächste Leerung morgen ansteht&lt;br /&gt;
* Rotation des Symbols, wenn die nächste Leerung noch am selben Tag ansteht. Nach einer bestimmten Uhrzeit (z.B. 9 Uhr morgens) soll dann auf die nächste Tonne geschaltet werden&lt;br /&gt;
* Anzeige des Datums bzw. von &amp;quot;heute&amp;quot; oder &amp;quot;morgen&amp;quot; unter dem Symbol als Label&lt;br /&gt;
&lt;br /&gt;
Zur Datumsanzeige wird eine kleine Hilfsfunktion in die 99_myUtils eingebaut. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub datumHeuteMorgen($){&lt;br /&gt;
		my $compareDate = shift;&lt;br /&gt;
		my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);&lt;br /&gt;
		$year += 1900; $mon += 1; &lt;br /&gt;
		my $heute = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);&lt;br /&gt;
		$year += 1900; $mon += 1;&lt;br /&gt;
		my $morgen = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		return &amp;quot;heute&amp;quot; if $compareDate eq $heute;&lt;br /&gt;
		return &amp;quot;morgen&amp;quot; if $compareDate eq $morgen;&lt;br /&gt;
		return $compareDate;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Diese Funktion wird in den userReadings des Abfall-Moduls verwendet. Das Abfallmodul erzeugt eine Gruppe von Readings mit dem Namen now_*, wenn die Leerung am selben Tag ansteht, bzw. genau dann, wenn der Termin im zu Grunde liegenden Kalender gerade aktiv ist. In diesem Beispiel liegt dem Kalender-Modul ein Google-Kalender zu Grunde, bei dem die Termine immer von 0 Uhr bis 9 Uhr morgens eingetragen sind. Dadurch wird erreicht, dass die Anzeige nach 9 Uhr weiterspringt, weil dann die now-Readings verschwinden.&lt;br /&gt;
&lt;br /&gt;
Folgende userReadings werden zum Abfallmodul hinzugefügt, welches in diesem Beispiel &amp;quot;abf.abfall&amp;quot; genannt ist:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
attr myABFALL userReadings ftui_datum {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? datumHeuteMorgen(ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next_date&amp;quot;,&amp;quot;&amp;quot;)) : &amp;quot;heute&amp;quot;;},ftui_next {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next&amp;quot;,&amp;quot;&amp;quot;) : ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now&amp;quot;,&amp;quot;&amp;quot;).&amp;quot;_0&amp;quot;;;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das Reading &amp;quot;ftui_next&amp;quot; bildet die Grundlage für das Symbol in TabletUI, das Reading &amp;quot;ftui_datum&amp;quot; wird für das Label genutzt. &lt;br /&gt;
&lt;br /&gt;
Somit lässt sich ganze in FTUI wie folgt darstellen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; &lt;br /&gt;
                     data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
                     data-get=&amp;quot;ftui_next&amp;quot;&lt;br /&gt;
                     data-get-on=&#039;[&amp;quot;Biotonne_0$&amp;quot;,&amp;quot;Biotonne_1$&amp;quot;,&amp;quot;Biotonne_.*&amp;quot;,&amp;quot;GelberSack_0$&amp;quot;,&amp;quot;GelberSack_1$&amp;quot;,&amp;quot;GelberSack_.*&amp;quot;,&amp;quot;Papiertonne_0$&amp;quot;,&amp;quot;Papiertonne_1$&amp;quot;,&amp;quot;Papiertonne_.*&amp;quot;,&amp;quot;Restmuelltonne_0$&amp;quot;,&amp;quot;Restmuelltonne_1$&amp;quot;,&amp;quot;Restmuelltonne_.*&amp;quot;]&#039;&lt;br /&gt;
                     data-get-warn=&amp;quot;.*([0|1|2]).*&amp;quot;&lt;br /&gt;
                     data-colors=&#039;[&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;]&#039;&lt;br /&gt;
                     class=&amp;quot;large warn&amp;quot;&lt;br /&gt;
                     data-icons=&#039;[&amp;quot;fa-trash-o fa-spin&amp;quot;,&amp;quot;fa-trash-o blink&amp;quot;,&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fs-bag fa-spin&amp;quot;,&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;,&amp;quot;fs-dustbin fa-spin&amp;quot;,&amp;quot;fs-dustbin blink&amp;quot;,&amp;quot;fs-dustbin&amp;quot;,&amp;quot;fa-trash fa-spin&amp;quot;,&amp;quot;fa-trash blink&amp;quot;,&amp;quot;fa-trash&amp;quot;]&#039;&lt;br /&gt;
                     /&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-get=&amp;quot;ftui_datum&amp;quot; data-type=&amp;quot;label&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Für Jede Tonne werden hier drei Zustände unterschieden und einzeln in &amp;quot;data-get-on&amp;quot;, &amp;quot;data-on-colors&amp;quot; und &amp;quot;data-icons&amp;quot; zugeordnet. Daher haben diese Listen jeweils 12 Einträge.&lt;br /&gt;
&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
====== TelegramBot Beispiel ======&lt;br /&gt;
&amp;lt;pre&amp;gt;[myABFALL:next_days] == 1) ( set fhemBot message &#039;Morgen wird [myABFALL:next_text] abgeholt&#039;)&lt;br /&gt;
[myABFALL:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message &#039;Heute wird [myABFALL:now_text] abgeholt&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Pushbullet Beispiel ======&lt;br /&gt;
&lt;br /&gt;
Die morgigen Leerungen per Push um 19:30 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallmorgen doif ([19:30] and [myABFALL:next_days] == 1) ( msg |Morgen wird [myABFALL:next_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallmorgen do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heutigen Leerungen per Push um 07:00 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallheute doif ([07:00] and [myABFALL:now_text] ne &amp;quot;&amp;quot;) ( msg |Heute wird [myABFALL:now_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallheute do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Forenthema {{Link2Forum|Topic=50177|LinkText=Abfall Visualisierung mit Bilderrahmen}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=29478</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=29478"/>
		<updated>2019-02-11T21:27:12Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Einbindung ins Tablet UI, erweitert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Filtern von (Abfall-)Terminen aus einem Calendar.&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein (inoffizielles, nicht Bestandteil der Distribution) Hilfsmodul, das bestimmte Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere Calendar Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Namen der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgendem Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define AbfallGoogleCalender Calendar ical url https://......&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;define myABFALL ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom [[notify]] der entsprechenden Calendar Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt, sofern mehrere Kalender angegeben wurden, ansonsten 0 - praefix wird nicht vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, wird dieses Trennzeichen genutzt, um die beiden (oder mehrere) Werte zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern der Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einbindung ins Tablet UI, erweitert ===&lt;br /&gt;
Fallen die Leerungen zweier verschiedener Tonnen nicht auf den selben Tag, reicht es normalerweise, nur ein Symbol auf der Oberfläche zu platzieren und dieses dann dynamisch zu befüllen. In folgendem Beispiel werden folgende Anforderungen umgesetzt:&lt;br /&gt;
* Anzeige unterschiedlicher Symbole bzw. Farben für Papiertonne, Restmülltonne, Biotonne und gelbe Säcke&lt;br /&gt;
* Anzeige der verbleibenden Tage bis zur Leerung als &amp;quot;Warn&amp;quot;-Marker in Rot, aber nur, wenn die Leerung innerhalb der nächsten 2 Tage ist&lt;br /&gt;
* Blinken des Symbols, wenn die nächste Leerung morgen ansteht&lt;br /&gt;
* Rotation des Symbols, wenn die nächste Leerung noch am selben Tag ansteht. Nach einer bestimmten Uhrzeit (z.B. 9 Uhr morgens) soll dann auf die nächste Tonne geschaltet werden&lt;br /&gt;
* Anzeige des Datums bzw. von &amp;quot;heute&amp;quot; oder &amp;quot;morgen&amp;quot; unter dem Symbol als Label&lt;br /&gt;
&lt;br /&gt;
Zur Datumsanzeige wird eine kleine Hilfsfunktion in die 99_myUtils eingebaut. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub datumHeuteMorgen($){&lt;br /&gt;
		my $compareDate = shift;&lt;br /&gt;
		my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);&lt;br /&gt;
		$year += 1900; $mon += 1; &lt;br /&gt;
		my $heute = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);&lt;br /&gt;
		$year += 1900; $mon += 1;&lt;br /&gt;
		my $morgen = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		return &amp;quot;heute&amp;quot; if $compareDate eq $heute;&lt;br /&gt;
		return &amp;quot;morgen&amp;quot; if $compareDate eq $morgen;&lt;br /&gt;
		return $compareDate;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Diese Funktion wird in den userReadings des Abfall-Moduls verwendet. Das Abfallmodul erzeugt eine Gruppe von Readings mit dem Namen now_*, wenn die Leerung am selben Tag ansteht, bzw. genau dann, wenn der Termin im zu Grunde liegenden Kalender gerade aktiv ist. In diesem Beispiel liegt dem Kalender-Modul ein Google-Kalender zu Grunde, bei dem die Termine immer von 0 Uhr bis 9 Uhr morgens eingetragen sind. Dadurch wird erreicht, dass die Anzeige nach 9 Uhr weiterspringt, weil dann die now-Readings verschwinden.&lt;br /&gt;
&lt;br /&gt;
Folgende userReadings werden zum Abfallmodul hinzugefügt, welches in diesem Beispiel &amp;quot;abf.abfall&amp;quot; genannt ist:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
attr myABFALL userReadings ftui_datum {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? datumHeuteMorgen(ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next_date&amp;quot;,&amp;quot;&amp;quot;)) : &amp;quot;heute&amp;quot;;},ftui_next {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next&amp;quot;,&amp;quot;&amp;quot;) : ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now&amp;quot;,&amp;quot;&amp;quot;).&amp;quot;_0&amp;quot;;;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das Reading &amp;quot;ftui_next&amp;quot; bildet die Grundlage für das Symbol in TabletUI, das Reading &amp;quot;ftui_datum&amp;quot; wird für das Label genutzt. &lt;br /&gt;
&lt;br /&gt;
Somit lässt sich ganze in FTUI wie folgt darstellen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; &lt;br /&gt;
                     data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
                     data-get=&amp;quot;ftui_next&amp;quot;&lt;br /&gt;
                     data-get-on=&#039;[&amp;quot;Biotonne_0$&amp;quot;,&amp;quot;Biotonne_1$&amp;quot;,&amp;quot;Biotonne_.*&amp;quot;,&amp;quot;GelberSack_0$&amp;quot;,&amp;quot;GelberSack_1$&amp;quot;,&amp;quot;GelberSack_.*&amp;quot;,&amp;quot;Papiertonne_0$&amp;quot;,&amp;quot;Papiertonne_1$&amp;quot;,&amp;quot;Papiertonne_.*&amp;quot;,&amp;quot;Restmuelltonne_0$&amp;quot;,&amp;quot;Restmuelltonne_1$&amp;quot;,&amp;quot;Restmuelltonne_.*&amp;quot;]&#039;&lt;br /&gt;
                     data-get-warn=&amp;quot;.*([0|1|2]).*&amp;quot;&lt;br /&gt;
                     data-on-colors=&#039;[&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;]&#039;&lt;br /&gt;
                     class=&amp;quot;large warn&amp;quot;&lt;br /&gt;
                     data-icons=&#039;[&amp;quot;fa-trash-o fa-spin&amp;quot;,&amp;quot;fa-trash-o blink&amp;quot;,&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fs-bag fa-spin&amp;quot;,&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;,&amp;quot;fs-dustbin fa-spin&amp;quot;,&amp;quot;fs-dustbin blink&amp;quot;,&amp;quot;fs-dustbin&amp;quot;,&amp;quot;fa-trash fa-spin&amp;quot;,&amp;quot;fa-trash blink&amp;quot;,&amp;quot;fa-trash&amp;quot;]&#039;&lt;br /&gt;
                     /&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-get=&amp;quot;ftui_datum&amp;quot; data-type=&amp;quot;label&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Für Jede Tonne werden hier drei Zustände unterschieden und einzeln in &amp;quot;data-get-on&amp;quot;, &amp;quot;data-on-colors&amp;quot; und &amp;quot;data-icons&amp;quot; zugeordnet. Daher haben diese Listen jeweils 12 Einträge.&lt;br /&gt;
&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
====== TelegramBot Beispiel ======&lt;br /&gt;
&amp;lt;pre&amp;gt;[myABFALL:next_days] == 1) ( set fhemBot message &#039;Morgen wird [myABFALL:next_text] abgeholt&#039;)&lt;br /&gt;
[myABFALL:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message &#039;Heute wird [myABFALL:now_text] abgeholt&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Pushbullet Beispiel ======&lt;br /&gt;
&lt;br /&gt;
Die morgigen Leerungen per Push um 19:30 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallmorgen doif ([19:30] and [myABFALL:next_days] == 1) ( msg |Morgen wird [myABFALL:next_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallmorgen do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heutigen Leerungen per Push um 07:00 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallheute doif ([07:00] and [myABFALL:now_text] ne &amp;quot;&amp;quot;) ( msg |Heute wird [myABFALL:now_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallheute do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Forenthema {{Link2Forum|Topic=50177|LinkText=Abfall Visualisierung mit Bilderrahmen}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=29477</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=29477"/>
		<updated>2019-02-11T21:26:35Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Einbindung ins Tablet UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Filtern von (Abfall-)Terminen aus einem Calendar.&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein (inoffizielles, nicht Bestandteil der Distribution) Hilfsmodul, das bestimmte Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere Calendar Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Namen der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgendem Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define AbfallGoogleCalender Calendar ical url https://......&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;define myABFALL ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom [[notify]] der entsprechenden Calendar Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt, sofern mehrere Kalender angegeben wurden, ansonsten 0 - praefix wird nicht vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, wird dieses Trennzeichen genutzt, um die beiden (oder mehrere) Werte zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern der Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einbindung ins Tablet UI, erweitert ===&lt;br /&gt;
Fallen die Leerungen zweier verschiedener Tonnen nicht auf den selben Tag, reicht es normalerweise, nur ein Symbol auf der Oberfläche zu platzieren und dieses dann dynamisch zu befüllen. In folgendem Beispiel werden folgende Anforderungen umgesetzt:&lt;br /&gt;
* Anzeige unterschiedlicher Symbole bzw. Farben für Papiertonne, Restmülltonne, Biotonne und gelbe Säcke&lt;br /&gt;
* Anzeige der verbleibenden Tage bis zur Leerung als &amp;quot;Warn&amp;quot;-Marker in Rot, aber nur, wenn die Leerung innerhalb der nächsten 2 Tage ist&lt;br /&gt;
* Blinken des Symbols, wenn die nächste Leerung morgen ansteht&lt;br /&gt;
* Rotation des Symbols, wenn die nächste Leerung noch am selben Tag ansteht. Nach einer bestimmten Uhrzeit (z.B. 9 Uhr morgens) soll dann auf die nächste Tonne geschaltet werden&lt;br /&gt;
* Anzeige des Datums bzw. von &amp;quot;heute&amp;quot; oder &amp;quot;morgen&amp;quot; unter dem Symbol als Label&lt;br /&gt;
&lt;br /&gt;
Zur Datumsanzeige wird eine kleine Hilfsfunktion in die 99_myUtils eingebaut. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub datumHeuteMorgen($){&lt;br /&gt;
		my $compareDate = shift;&lt;br /&gt;
		my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);&lt;br /&gt;
		$year += 1900; $mon += 1; &lt;br /&gt;
		my $heute = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);&lt;br /&gt;
		$year += 1900; $mon += 1;&lt;br /&gt;
		my $morgen = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		return &amp;quot;heute&amp;quot; if $compareDate eq $heute;&lt;br /&gt;
		return &amp;quot;morgen&amp;quot; if $compareDate eq $morgen;&lt;br /&gt;
		return $compareDate;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Diese Funktion wird in den userReadings des Abfall-Moduls verwendet. Das Abfallmodul erzeugt eine Gruppe von Readings mit dem Namen now_*, wenn die Leerung am selben Tag ansteht, bzw. genau dann, wenn der Termin im zu Grunde liegenden Kalender gerade aktiv ist. In diesem Beispiel liegt dem Kalender-Modul ein Google-Kalender zu Grunde, bei dem die Termine immer von 0 Uhr bis 9 Uhr morgens eingetragen sind. Dadurch wird erreicht, dass die Anzeige nach 9 Uhr weiterspringt, weil dann die now-Readings verschwinden.&lt;br /&gt;
&lt;br /&gt;
Folgende userReadings werden zum Abfallmodul hinzugefügt, welches in diesem Beispiel &amp;quot;abf.abfall&amp;quot; genannt ist:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
attr myABFALL userReadings ftui_datum {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? datumHeuteMorgen(ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next_datum&amp;quot;,&amp;quot;&amp;quot;)) : &amp;quot;heute&amp;quot;;},ftui_next {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next&amp;quot;,&amp;quot;&amp;quot;) : ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now&amp;quot;,&amp;quot;&amp;quot;).&amp;quot;_0&amp;quot;;;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das Reading &amp;quot;ftui_next&amp;quot; bildet die Grundlage für das Symbol in TabletUI, das Reading &amp;quot;ftui_datum&amp;quot; wird für das Label genutzt. &lt;br /&gt;
&lt;br /&gt;
Somit lässt sich ganze in FTUI wie folgt darstellen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; &lt;br /&gt;
                     data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
                     data-get=&amp;quot;ftui_next&amp;quot;&lt;br /&gt;
                     data-get-on=&#039;[&amp;quot;Biotonne_0$&amp;quot;,&amp;quot;Biotonne_1$&amp;quot;,&amp;quot;Biotonne_.*&amp;quot;,&amp;quot;GelberSack_0$&amp;quot;,&amp;quot;GelberSack_1$&amp;quot;,&amp;quot;GelberSack_.*&amp;quot;,&amp;quot;Papiertonne_0$&amp;quot;,&amp;quot;Papiertonne_1$&amp;quot;,&amp;quot;Papiertonne_.*&amp;quot;,&amp;quot;Restmuelltonne_0$&amp;quot;,&amp;quot;Restmuelltonne_1$&amp;quot;,&amp;quot;Restmuelltonne_.*&amp;quot;]&#039;&lt;br /&gt;
                     data-get-warn=&amp;quot;.*([0|1|2]).*&amp;quot;&lt;br /&gt;
                     data-on-colors=&#039;[&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;]&#039;&lt;br /&gt;
                     class=&amp;quot;large warn&amp;quot;&lt;br /&gt;
                     data-icons=&#039;[&amp;quot;fa-trash-o fa-spin&amp;quot;,&amp;quot;fa-trash-o blink&amp;quot;,&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fs-bag fa-spin&amp;quot;,&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;,&amp;quot;fs-dustbin fa-spin&amp;quot;,&amp;quot;fs-dustbin blink&amp;quot;,&amp;quot;fs-dustbin&amp;quot;,&amp;quot;fa-trash fa-spin&amp;quot;,&amp;quot;fa-trash blink&amp;quot;,&amp;quot;fa-trash&amp;quot;]&#039;&lt;br /&gt;
                     /&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-get=&amp;quot;ftui_datum&amp;quot; data-type=&amp;quot;label&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Für Jede Tonne werden hier drei Zustände unterschieden und einzeln in &amp;quot;data-get-on&amp;quot;, &amp;quot;data-on-colors&amp;quot; und &amp;quot;data-icons&amp;quot; zugeordnet. Daher haben diese Listen jeweils 12 Einträge.&lt;br /&gt;
&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
====== TelegramBot Beispiel ======&lt;br /&gt;
&amp;lt;pre&amp;gt;[myABFALL:next_days] == 1) ( set fhemBot message &#039;Morgen wird [myABFALL:next_text] abgeholt&#039;)&lt;br /&gt;
[myABFALL:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message &#039;Heute wird [myABFALL:now_text] abgeholt&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Pushbullet Beispiel ======&lt;br /&gt;
&lt;br /&gt;
Die morgigen Leerungen per Push um 19:30 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallmorgen doif ([19:30] and [myABFALL:next_days] == 1) ( msg |Morgen wird [myABFALL:next_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallmorgen do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heutigen Leerungen per Push um 07:00 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallheute doif ([07:00] and [myABFALL:now_text] ne &amp;quot;&amp;quot;) ( msg |Heute wird [myABFALL:now_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallheute do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Forenthema {{Link2Forum|Topic=50177|LinkText=Abfall Visualisierung mit Bilderrahmen}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=23932</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=23932"/>
		<updated>2017-12-29T22:57:34Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: correct default value for calendarname_praefix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Filtern von (Abfall-)Terminen aus einem Calendar.&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein (inoffizielles, nicht Bestandteil der Distribution) Hilfsmodul, das bestimmte Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere Calendar Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Namen der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgendem Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define AbfallGoogleCalender Calendar ical url https://......&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;define myABFALL ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom [[notify]] der entsprechenden Calendar Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt, sofern mehrere Kalender angegeben wurden, ansonsten 0 - praefix wird nicht vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, wird dieses Trennzeichen genutzt, um die beiden (oder mehrere) Werte zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern der Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einbindung ins Tablet UI, erweitert ===&lt;br /&gt;
Fallen die Leerungen zweier verschiedener Tonnen nicht auf den selben Tag, reicht es normalerweise, nur ein Symbol auf der Oberfläche zu platzieren und dieses dann dynamisch zu befüllen. In folgendem Beispiel werden folgende Anforderungen umgesetzt:&lt;br /&gt;
* Anzeige unterschiedlicher Symbole bzw. Farben für Papiertonne, Restmülltonne, Biotonne und gelbe Säcke&lt;br /&gt;
* Anzeige der verbleibenden Tage bis zur Leerung als &amp;quot;Warn&amp;quot;-Marker in Rot, aber nur, wenn die Leerung innerhalb der nächsten 2 Tage ist&lt;br /&gt;
* Blinken des Symbols, wenn die nächste Leerung morgen ansteht&lt;br /&gt;
* Rotation des Symbols, wenn die nächste Leerung noch am selben Tag ansteht. Nach einer bestimmten Uhrzeit (z.B. 9 Uhr morgens) soll dann auf die nächste Tonne geschaltet werden&lt;br /&gt;
* Anzeige des Datums bzw. von &amp;quot;heute&amp;quot; oder &amp;quot;morgen&amp;quot; unter dem Symbol als Label&lt;br /&gt;
&lt;br /&gt;
Zur Datumsanzeige wird eine kleine Hilfsfunktion in die 99_myUtils eingebaut. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub datumHeuteMorgen($){&lt;br /&gt;
		my $compareDate = shift;&lt;br /&gt;
		my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);&lt;br /&gt;
		$year += 1900; $mon += 1; &lt;br /&gt;
		my $heute = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);&lt;br /&gt;
		$year += 1900; $mon += 1;&lt;br /&gt;
		my $morgen = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		return &amp;quot;heute&amp;quot; if $compareDate eq $heute;&lt;br /&gt;
		return &amp;quot;morgen&amp;quot; if $compareDate eq $morgen;&lt;br /&gt;
		return $compareDate;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Diese Funktion wird in den userReadings des Abfall-Moduls verwendet. Das Abfallmodul erzeugt eine Gruppe von Readings mit dem Namen now_*, wenn die Leerung am selben Tag ansteht, bzw. genau dann, wenn der Termin im zu Grunde liegenden Kalender gerade aktiv ist. In diesem Beispiel liegt dem Kalender-Modul ein Google-Kalender zu Grunde, bei dem die Termine immer von 0 Uhr bis 9 Uhr morgens eingetragen sind. Dadurch wird erreicht, dass die Anzeige nach 9 Uhr weiterspringt, weil dann die now-Readings verschwinden.&lt;br /&gt;
&lt;br /&gt;
Folgende userReadings werden zum Abfallmodul hinzugefügt, welches in diesem Beispiel &amp;quot;abf.abfall&amp;quot; genannt ist:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
attr myABFALL userReadings ftui_datum {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? datumHeuteMorgen(ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next_datum&amp;quot;,&amp;quot;&amp;quot;)) : &amp;quot;heute&amp;quot;;},ftui_next {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next&amp;quot;,&amp;quot;&amp;quot;) : ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now&amp;quot;,&amp;quot;&amp;quot;).&amp;quot;_0&amp;quot;;;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das Reading &amp;quot;ftui_next&amp;quot; bildet die Grundlage für das Symbol in TabletUI, das Reading &amp;quot;ftui_datum&amp;quot; wird für das Label genutzt. &lt;br /&gt;
&lt;br /&gt;
Somit lässt sich ganze in FTUI wie folgt darstellen:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; &lt;br /&gt;
                     data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
                     data-get=&amp;quot;ftui_next&amp;quot;&lt;br /&gt;
                     data-get-on=&#039;[&amp;quot;Biotonne_0$&amp;quot;,&amp;quot;Biotonne_1$&amp;quot;,&amp;quot;Biotonne_.*&amp;quot;,&amp;quot;GelberSack_0$&amp;quot;,&amp;quot;GelberSack_1$&amp;quot;,&amp;quot;GelberSack_.*&amp;quot;,&amp;quot;Papiertonne_0$&amp;quot;,&amp;quot;Papiertonne_1$&amp;quot;,&amp;quot;Papiertonne_.*&amp;quot;,&amp;quot;Restmuelltonne_0$&amp;quot;,&amp;quot;Restmuelltonne_1$&amp;quot;,&amp;quot;Restmuelltonne_.*&amp;quot;]&#039;&lt;br /&gt;
                     data-get-warn=&amp;quot;.*([0|1|2]).*&amp;quot;&lt;br /&gt;
                     data-on-colors=&#039;[&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;]&#039;&lt;br /&gt;
                     class=&amp;quot;large warn&amp;quot;&lt;br /&gt;
                     data-icons=&#039;[&amp;quot;fa-trash-o fa-spin&amp;quot;,&amp;quot;fa-trash-o blink&amp;quot;,&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fs-bag fa-spin&amp;quot;,&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;,&amp;quot;fs-dustbin fa-spin&amp;quot;,&amp;quot;fs-dustbin blink&amp;quot;,&amp;quot;fs-dustbin&amp;quot;,&amp;quot;fa-trash fa-spin&amp;quot;,&amp;quot;fa-trash blink&amp;quot;,&amp;quot;fa-trash&amp;quot;]&#039;&lt;br /&gt;
                     /&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-get=&amp;quot;ftui_datum&amp;quot; data-type=&amp;quot;label&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Für Jede Tonne werden hier drei Zustände unterschieden und einzeln in &amp;quot;data-get-on&amp;quot;, &amp;quot;data-on-colors&amp;quot; und &amp;quot;data-icons&amp;quot; zugeordnet. Daher haben diese Listen jeweils 12 Einträge.&lt;br /&gt;
&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
====== TelegramBot Beispiel ======&lt;br /&gt;
&amp;lt;pre&amp;gt;[myABFALL:next_days] == 1) ( set fhemBot message &#039;Morgen wird [myABFALL:next_text] abgeholt&#039;)&lt;br /&gt;
[myABFALL:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message &#039;Heute wird [myABFALL:now_text] abgeholt&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Pushbullet Beispiel ======&lt;br /&gt;
&lt;br /&gt;
Die morgigen Leerungen per Push um 19:30 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallmorgen doif ([19:30] and [myABFALL:next_days] == 1) ( msg |Morgen wird [myABFALL:next_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallmorgen do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heutigen Leerungen per Push um 07:00 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallheute doif ([07:00] and [myABFALL:now_text] ne &amp;quot;&amp;quot;) ( msg |Heute wird [myABFALL:now_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallheute do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Forenthema {{Link2Forum|Topic=50177|LinkText=Abfall Visualisierung mit Bilderrahmen}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19585</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19585"/>
		<updated>2017-02-09T00:20:06Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* TelegramBot Beispiel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Filtern von (Abfall-)Terminen aus einem Calendar.&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein (inoffizielles, nicht Bestandteil der Distribution) Hilfsmodul, das bestimmte Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein Calendar-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere Calendar Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Namen der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgendem Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define AbfallGoogleCalender Calendar ical url https://......&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;define myABFALL ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom [[notify]] der entsprechenden Calendar Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, wird dieses Trennzeichen genutzt, um die beiden (oder mehrere) Werte zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern der Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einbindung ins Tablet UI, erweitert ===&lt;br /&gt;
Fallen die Leerungen zweier verschiedener Tonnen nicht auf den selben Tag, reicht es normalerweise, nur ein Symbol auf der Oberfläche zu platzieren und dieses dann dynamisch zu befüllen. In folgendem Beispiel werden folgende Anforderungen umgesetzt:&lt;br /&gt;
* Anzeige unterschiedlicher Symbole bzw. Farben für Papiertonne, Restmülltonne, Biotonne und gelbe Säcke&lt;br /&gt;
* Anzeige der verbleibenden Tage bis zur Leerung als &amp;quot;Warn&amp;quot;-Marker in Rot, aber nur, wenn die Leerung innerhalb der nächsten 2 Tage ist&lt;br /&gt;
* Blinken des Symbols, wenn die nächste Leerung morgen ansteht&lt;br /&gt;
* Rotation des Symbols, wenn die nächste Leerung noch am selben Tag ansteht. Nach einer bestimmten Uhrzeit (z.B. 9 Uhr morgens) soll dann auf die nächste Tonne geschaltet werden&lt;br /&gt;
* Anzeige des Datums bzw. von &amp;quot;heute&amp;quot; oder &amp;quot;morgen&amp;quot; unter dem Symbol als Label&lt;br /&gt;
&lt;br /&gt;
Zur Datumsanzeige wird eine kleine Hilfsfunktion in die 99_myUtils eingebaut. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub datumHeuteMorgen($){&lt;br /&gt;
		my $compareDate = shift;&lt;br /&gt;
		my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);&lt;br /&gt;
		$year += 1900; $mon += 1; &lt;br /&gt;
		my $heute = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);&lt;br /&gt;
		$year += 1900; $mon += 1;&lt;br /&gt;
		my $morgen = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		return &amp;quot;heute&amp;quot; if $compareDate eq $heute;&lt;br /&gt;
		return &amp;quot;morgen&amp;quot; if $compareDate eq $morgen;&lt;br /&gt;
		return $compareDate;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese Funktion wird in den userReadings des Abfall-Moduls verwendet. Das Abfallmodul erzeugt eine Gruppe von Readings mit dem Namen now_*, wenn die Leerung am selben Tag ansteht, bzw. genau dann, wenn der Termin im zu Grunde liegenden Kalender gerade aktiv ist. In diesem Beispiel liegt dem Kalender-Modul ein Google-Kalender zu Grunde, bei dem die Termine immer von 0 Uhr bis 9 Uhr morgens eingetragen sind. Dadurch wird erreicht, dass die Anzeige nach 9 Uhr weiterspringt, weil dann die now-Readings verschwinden.&lt;br /&gt;
&lt;br /&gt;
Folgende userReadings werden zum Abfallmodul hinzugefügt, welches in diesem Beispiel &amp;quot;abf.abfall&amp;quot; genannt ist:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
attr myABFALL userReadings ftui_datum {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? datumHeuteMorgen(ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next_datum&amp;quot;,&amp;quot;&amp;quot;)) : &amp;quot;heute&amp;quot;;},ftui_next {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next&amp;quot;,&amp;quot;&amp;quot;) : ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now&amp;quot;,&amp;quot;&amp;quot;).&amp;quot;_0&amp;quot;;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Reading &amp;quot;ftui_next&amp;quot; bildet die Grundlage für das Symbol in TabletUI, das Reading &amp;quot;ftui_datum&amp;quot; wird für das Label genutzt. &lt;br /&gt;
&lt;br /&gt;
Somit lässt sich ganze in FTUI wie folgt darstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; &lt;br /&gt;
                     data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
                     data-get=&amp;quot;ftui_next&amp;quot;&lt;br /&gt;
                     data-get-on=&#039;[&amp;quot;Biotonne_0$&amp;quot;,&amp;quot;Biotonne_1$&amp;quot;,&amp;quot;Biotonne_.*&amp;quot;,&amp;quot;GelberSack_0$&amp;quot;,&amp;quot;GelberSack_1$&amp;quot;,&amp;quot;GelberSack_.*&amp;quot;,&amp;quot;Papiertonne_0$&amp;quot;,&amp;quot;Papiertonne_1$&amp;quot;,&amp;quot;Papiertonne_.*&amp;quot;,&amp;quot;Restmuelltonne_0$&amp;quot;,&amp;quot;Restmuelltonne_1$&amp;quot;,&amp;quot;Restmuelltonne_.*&amp;quot;]&#039;&lt;br /&gt;
                     data-get-warn=&amp;quot;.*([0|1|2]).*&amp;quot;&lt;br /&gt;
                     data-on-colors=&#039;[&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;]&#039;&lt;br /&gt;
                     class=&amp;quot;large warn&amp;quot;&lt;br /&gt;
                     data-icons=&#039;[&amp;quot;fa-trash-o fa-spin&amp;quot;,&amp;quot;fa-trash-o blink&amp;quot;,&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fs-bag fa-spin&amp;quot;,&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;,&amp;quot;fs-dustbin fa-spin&amp;quot;,&amp;quot;fs-dustbin blink&amp;quot;,&amp;quot;fs-dustbin&amp;quot;,&amp;quot;fa-trash fa-spin&amp;quot;,&amp;quot;fa-trash blink&amp;quot;,&amp;quot;fa-trash&amp;quot;]&#039;&lt;br /&gt;
                     /&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-get=&amp;quot;ftui_datum&amp;quot; data-type=&amp;quot;label&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Für Jede Tonne werden hier drei Zustände unterschieden und einzeln in &amp;quot;data-get-on&amp;quot;, &amp;quot;data-on-colors&amp;quot; und &amp;quot;data-icons&amp;quot; zugeordnet. Daher haben diese Listen jeweils 12 Einträge.&lt;br /&gt;
&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
====== TelegramBot Beispiel ======&lt;br /&gt;
&amp;lt;pre&amp;gt;[myABFALL:next_tage] == 1) ( set fhemBot message &#039;Morgen wird [myABFALL:next_text] abgeholt&#039;)&lt;br /&gt;
[myABFALL:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message &#039;Heute wird [myABFALL:now_text] abgeholt&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Pushbullet Beispiel ======&lt;br /&gt;
&lt;br /&gt;
Die morgigen Leerungen per Push um 19:30 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallmorgen doif ([19:30] and [myABFALL:next_tage] == 1) ( msg |Morgen wird [myABFALL:next_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallmorgen do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heutigen Leerungen per Push um 07:00 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallheute doif ([07:00] and [myABFALL:now_text] ne &amp;quot;&amp;quot;) ( msg |Heute wird [myABFALL:now_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallheute do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Forenthema {{Link2Forum|Topic=50177|LinkText=Abfall Visualisierung mit Bilderrahmen}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19476</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19476"/>
		<updated>2017-02-06T12:50:01Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Define */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Filtern von (Abfall-)Terminen aus einem Calendar.&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein (inoffizielles, nicht Bestandteil der Distribution) Hilfsmodul, das bestimmte Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein Calendar-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere Calendar Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Namen der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgendem Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define AbfallGoogleCalender Calendar ical url https://......&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;define myABFALL ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom [[notify]] der entsprechenden Calendar Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, wird dieses Trennzeichen genutzt, um die beiden (oder mehrere) Werte zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern der Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einbindung ins Tablet UI, erweitert ===&lt;br /&gt;
Fallen die Leerungen zweier verschiedener Tonnen nicht auf den selben Tag, reicht es normalerweise, nur ein Symbol auf der Oberfläche zu platzieren und dieses dann dynamisch zu befüllen. In folgendem Beispiel werden folgende Anforderungen umgesetzt:&lt;br /&gt;
* Anzeige unterschiedlicher Symbole bzw. Farben für Papiertonne, Restmülltonne, Biotonne und gelbe Säcke&lt;br /&gt;
* Anzeige der verbleibenden Tage bis zur Leerung als &amp;quot;Warn&amp;quot;-Marker in Rot, aber nur, wenn die Leerung innerhalb der nächsten 2 Tage ist&lt;br /&gt;
* Blinken des Symbols, wenn die nächste Leerung morgen ansteht&lt;br /&gt;
* Rotation des Symbols, wenn die nächste Leerung noch am selben Tag ansteht. Nach einer bestimmten Uhrzeit (z.B. 9 Uhr morgens) soll dann auf die nächste Tonne geschaltet werden&lt;br /&gt;
* Anzeige des Datums bzw. von &amp;quot;heute&amp;quot; oder &amp;quot;morgen&amp;quot; unter dem Symbol als Label&lt;br /&gt;
&lt;br /&gt;
Zur Datumsanzeige wird eine kleine Hilfsfunktion in die 99_myUtils eingebaut. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub datumHeuteMorgen($){&lt;br /&gt;
		my $compareDate = shift;&lt;br /&gt;
		my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);&lt;br /&gt;
		$year += 1900; $mon += 1; &lt;br /&gt;
		my $heute = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);&lt;br /&gt;
		$year += 1900; $mon += 1;&lt;br /&gt;
		my $morgen = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		return &amp;quot;heute&amp;quot; if $compareDate eq $heute;&lt;br /&gt;
		return &amp;quot;morgen&amp;quot; if $compareDate eq $morgen;&lt;br /&gt;
		return $compareDate;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese Funktion wird in den userReadings des Abfall-Moduls verwendet. Das Abfallmodul erzeugt eine Gruppe von Readings mit dem Namen now_*, wenn die Leerung am selben Tag ansteht, bzw. genau dann, wenn der Termin im zu Grunde liegenden Kalender gerade aktiv ist. In diesem Beispiel liegt dem Kalender-Modul ein Google-Kalender zu Grunde, bei dem die Termine immer von 0 Uhr bis 9 Uhr morgens eingetragen sind. Dadurch wird erreicht, dass die Anzeige nach 9 Uhr weiterspringt, weil dann die now-Readings verschwinden.&lt;br /&gt;
&lt;br /&gt;
Folgende userReadings werden zum Abfallmodul hinzugefügt, welches in diesem Beispiel &amp;quot;abf.abfall&amp;quot; genannt ist:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
attr myABFALL userReadings ftui_datum {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? datumHeuteMorgen(ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next_datum&amp;quot;,&amp;quot;&amp;quot;)) : &amp;quot;heute&amp;quot;;},ftui_next {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next&amp;quot;,&amp;quot;&amp;quot;) : ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now&amp;quot;,&amp;quot;&amp;quot;).&amp;quot;_0&amp;quot;;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Reading &amp;quot;ftui_next&amp;quot; bildet die Grundlage für das Symbol in TabletUI, das Reading &amp;quot;ftui_datum&amp;quot; wird für das Label genutzt. &lt;br /&gt;
&lt;br /&gt;
Somit lässt sich ganze in FTUI wie folgt darstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; &lt;br /&gt;
                     data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
                     data-get=&amp;quot;ftui_next&amp;quot;&lt;br /&gt;
                     data-get-on=&#039;[&amp;quot;Biotonne_0$&amp;quot;,&amp;quot;Biotonne_1$&amp;quot;,&amp;quot;Biotonne_.*&amp;quot;,&amp;quot;GelberSack_0$&amp;quot;,&amp;quot;GelberSack_1$&amp;quot;,&amp;quot;GelberSack_.*&amp;quot;,&amp;quot;Papiertonne_0$&amp;quot;,&amp;quot;Papiertonne_1$&amp;quot;,&amp;quot;Papiertonne_.*&amp;quot;,&amp;quot;Restmuelltonne_0$&amp;quot;,&amp;quot;Restmuelltonne_1$&amp;quot;,&amp;quot;Restmuelltonne_.*&amp;quot;]&#039;&lt;br /&gt;
                     data-get-warn=&amp;quot;.*([0|1|2]).*&amp;quot;&lt;br /&gt;
                     data-on-colors=&#039;[&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;]&#039;&lt;br /&gt;
                     class=&amp;quot;large warn&amp;quot;&lt;br /&gt;
                     data-icons=&#039;[&amp;quot;fa-trash-o fa-spin&amp;quot;,&amp;quot;fa-trash-o blink&amp;quot;,&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fs-bag fa-spin&amp;quot;,&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;,&amp;quot;fs-dustbin fa-spin&amp;quot;,&amp;quot;fs-dustbin blink&amp;quot;,&amp;quot;fs-dustbin&amp;quot;,&amp;quot;fa-trash fa-spin&amp;quot;,&amp;quot;fa-trash blink&amp;quot;,&amp;quot;fa-trash&amp;quot;]&#039;&lt;br /&gt;
                     /&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-get=&amp;quot;ftui_datum&amp;quot; data-type=&amp;quot;label&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Für Jede Tonne werden hier drei Zustände unterschieden und einzeln in &amp;quot;data-get-on&amp;quot;, &amp;quot;data-on-colors&amp;quot; und &amp;quot;data-icons&amp;quot; zugeordnet. Daher haben diese Listen jeweils 12 Einträge.&lt;br /&gt;
&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
====== TelegramBot Beispiel ======&lt;br /&gt;
&amp;lt;pre&amp;gt;[myABFALL:next_tage] == 1) ( set fhemBot &#039;message Morgen wird [myABFALL:next_text] abgeholt&#039;)&lt;br /&gt;
[myABFALL:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message &#039;Heute wird [myABFALL:now_text] abgeholt&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Pushbullet Beispiel ======&lt;br /&gt;
&lt;br /&gt;
Die morgigen Leerungen per Push um 19:30 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallmorgen doif ([19:30] and [myABFALL:next_tage] == 1) ( msg |Morgen wird [myABFALL:next_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallmorgen do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heutigen Leerungen per Push um 07:00 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallheute doif ([07:00] and [myABFALL:now_text] ne &amp;quot;&amp;quot;) ( msg |Heute wird [myABFALL:now_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallheute do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Forenthema {{Link2Forum|Topic=50177|LinkText=Abfall Visualisierung mit Bilderrahmen}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19475</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19475"/>
		<updated>2017-02-06T12:33:21Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* DOIF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Filtern von (Abfall-)Terminen aus einem Calendar.&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein (inoffizielles, nicht Bestandteil der Distribution) Hilfsmodul, das bestimmte Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein Calendar-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere Calendar Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Namen der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgendem Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myABFALL ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom [[notify]] der entsprechenden Calendar Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, wird dieses Trennzeichen genutzt, um die beiden (oder mehrere) Werte zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern der Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einbindung ins Tablet UI, erweitert ===&lt;br /&gt;
Fallen die Leerungen zweier verschiedener Tonnen nicht auf den selben Tag, reicht es normalerweise, nur ein Symbol auf der Oberfläche zu platzieren und dieses dann dynamisch zu befüllen. In folgendem Beispiel werden folgende Anforderungen umgesetzt:&lt;br /&gt;
* Anzeige unterschiedlicher Symbole bzw. Farben für Papiertonne, Restmülltonne, Biotonne und gelbe Säcke&lt;br /&gt;
* Anzeige der verbleibenden Tage bis zur Leerung als &amp;quot;Warn&amp;quot;-Marker in Rot, aber nur, wenn die Leerung innerhalb der nächsten 2 Tage ist&lt;br /&gt;
* Blinken des Symbols, wenn die nächste Leerung morgen ansteht&lt;br /&gt;
* Rotation des Symbols, wenn die nächste Leerung noch am selben Tag ansteht. Nach einer bestimmten Uhrzeit (z.B. 9 Uhr morgens) soll dann auf die nächste Tonne geschaltet werden&lt;br /&gt;
* Anzeige des Datums bzw. von &amp;quot;heute&amp;quot; oder &amp;quot;morgen&amp;quot; unter dem Symbol als Label&lt;br /&gt;
&lt;br /&gt;
Zur Datumsanzeige wird eine kleine Hilfsfunktion in die 99_myUtils eingebaut. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub datumHeuteMorgen($){&lt;br /&gt;
		my $compareDate = shift;&lt;br /&gt;
		my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);&lt;br /&gt;
		$year += 1900; $mon += 1; &lt;br /&gt;
		my $heute = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);&lt;br /&gt;
		$year += 1900; $mon += 1;&lt;br /&gt;
		my $morgen = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		return &amp;quot;heute&amp;quot; if $compareDate eq $heute;&lt;br /&gt;
		return &amp;quot;morgen&amp;quot; if $compareDate eq $morgen;&lt;br /&gt;
		return $compareDate;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese Funktion wird in den userReadings des Abfall-Moduls verwendet. Das Abfallmodul erzeugt eine Gruppe von Readings mit dem Namen now_*, wenn die Leerung am selben Tag ansteht, bzw. genau dann, wenn der Termin im zu Grunde liegenden Kalender gerade aktiv ist. In diesem Beispiel liegt dem Kalender-Modul ein Google-Kalender zu Grunde, bei dem die Termine immer von 0 Uhr bis 9 Uhr morgens eingetragen sind. Dadurch wird erreicht, dass die Anzeige nach 9 Uhr weiterspringt, weil dann die now-Readings verschwinden.&lt;br /&gt;
&lt;br /&gt;
Folgende userReadings werden zum Abfallmodul hinzugefügt, welches in diesem Beispiel &amp;quot;abf.abfall&amp;quot; genannt ist:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
attr myABFALL userReadings ftui_datum {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? datumHeuteMorgen(ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next_datum&amp;quot;,&amp;quot;&amp;quot;)) : &amp;quot;heute&amp;quot;;},ftui_next {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next&amp;quot;,&amp;quot;&amp;quot;) : ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now&amp;quot;,&amp;quot;&amp;quot;).&amp;quot;_0&amp;quot;;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Reading &amp;quot;ftui_next&amp;quot; bildet die Grundlage für das Symbol in TabletUI, das Reading &amp;quot;ftui_datum&amp;quot; wird für das Label genutzt. &lt;br /&gt;
&lt;br /&gt;
Somit lässt sich ganze in FTUI wie folgt darstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; &lt;br /&gt;
                     data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
                     data-get=&amp;quot;ftui_next&amp;quot;&lt;br /&gt;
                     data-get-on=&#039;[&amp;quot;Biotonne_0$&amp;quot;,&amp;quot;Biotonne_1$&amp;quot;,&amp;quot;Biotonne_.*&amp;quot;,&amp;quot;GelberSack_0$&amp;quot;,&amp;quot;GelberSack_1$&amp;quot;,&amp;quot;GelberSack_.*&amp;quot;,&amp;quot;Papiertonne_0$&amp;quot;,&amp;quot;Papiertonne_1$&amp;quot;,&amp;quot;Papiertonne_.*&amp;quot;,&amp;quot;Restmuelltonne_0$&amp;quot;,&amp;quot;Restmuelltonne_1$&amp;quot;,&amp;quot;Restmuelltonne_.*&amp;quot;]&#039;&lt;br /&gt;
                     data-get-warn=&amp;quot;.*([0|1|2]).*&amp;quot;&lt;br /&gt;
                     data-on-colors=&#039;[&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;]&#039;&lt;br /&gt;
                     class=&amp;quot;large warn&amp;quot;&lt;br /&gt;
                     data-icons=&#039;[&amp;quot;fa-trash-o fa-spin&amp;quot;,&amp;quot;fa-trash-o blink&amp;quot;,&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fs-bag fa-spin&amp;quot;,&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;,&amp;quot;fs-dustbin fa-spin&amp;quot;,&amp;quot;fs-dustbin blink&amp;quot;,&amp;quot;fs-dustbin&amp;quot;,&amp;quot;fa-trash fa-spin&amp;quot;,&amp;quot;fa-trash blink&amp;quot;,&amp;quot;fa-trash&amp;quot;]&#039;&lt;br /&gt;
                     /&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-get=&amp;quot;ftui_datum&amp;quot; data-type=&amp;quot;label&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Für Jede Tonne werden hier drei Zustände unterschieden und einzeln in &amp;quot;data-get-on&amp;quot;, &amp;quot;data-on-colors&amp;quot; und &amp;quot;data-icons&amp;quot; zugeordnet. Daher haben diese Listen jeweils 12 Einträge.&lt;br /&gt;
&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
====== TelegramBot Beispiel ======&lt;br /&gt;
&amp;lt;pre&amp;gt;[myABFALL:next_tage] == 1) ( set fhemBot &#039;message Morgen wird [myABFALL:next_text] abgeholt&#039;)&lt;br /&gt;
[myABFALL:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message &#039;Heute wird [myABFALL:now_text] abgeholt&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Pushbullet Beispiel ======&lt;br /&gt;
&lt;br /&gt;
Die morgigen Leerungen per Push um 19:30 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallmorgen doif ([19:30] and [myABFALL:next_tage] == 1) ( msg |Morgen wird [myABFALL:next_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallmorgen do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heutigen Leerungen per Push um 07:00 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallheute doif ([07:00] and [myABFALL:now_text] ne &amp;quot;&amp;quot;) ( msg |Heute wird [myABFALL:now_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallheute do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Forenthema {{Link2Forum|Topic=50177|LinkText=Abfall Visualisierung mit Bilderrahmen}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19474</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19474"/>
		<updated>2017-02-06T12:31:24Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Define */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Filtern von (Abfall-)Terminen aus einem Calendar.&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein (inoffizielles, nicht Bestandteil der Distribution) Hilfsmodul, das bestimmte Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein Calendar-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere Calendar Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Namen der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgendem Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myABFALL ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom [[notify]] der entsprechenden Calendar Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, wird dieses Trennzeichen genutzt, um die beiden (oder mehrere) Werte zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern der Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einbindung ins Tablet UI, erweitert ===&lt;br /&gt;
Fallen die Leerungen zweier verschiedener Tonnen nicht auf den selben Tag, reicht es normalerweise, nur ein Symbol auf der Oberfläche zu platzieren und dieses dann dynamisch zu befüllen. In folgendem Beispiel werden folgende Anforderungen umgesetzt:&lt;br /&gt;
* Anzeige unterschiedlicher Symbole bzw. Farben für Papiertonne, Restmülltonne, Biotonne und gelbe Säcke&lt;br /&gt;
* Anzeige der verbleibenden Tage bis zur Leerung als &amp;quot;Warn&amp;quot;-Marker in Rot, aber nur, wenn die Leerung innerhalb der nächsten 2 Tage ist&lt;br /&gt;
* Blinken des Symbols, wenn die nächste Leerung morgen ansteht&lt;br /&gt;
* Rotation des Symbols, wenn die nächste Leerung noch am selben Tag ansteht. Nach einer bestimmten Uhrzeit (z.B. 9 Uhr morgens) soll dann auf die nächste Tonne geschaltet werden&lt;br /&gt;
* Anzeige des Datums bzw. von &amp;quot;heute&amp;quot; oder &amp;quot;morgen&amp;quot; unter dem Symbol als Label&lt;br /&gt;
&lt;br /&gt;
Zur Datumsanzeige wird eine kleine Hilfsfunktion in die 99_myUtils eingebaut. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub datumHeuteMorgen($){&lt;br /&gt;
		my $compareDate = shift;&lt;br /&gt;
		my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);&lt;br /&gt;
		$year += 1900; $mon += 1; &lt;br /&gt;
		my $heute = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);&lt;br /&gt;
		$year += 1900; $mon += 1;&lt;br /&gt;
		my $morgen = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		return &amp;quot;heute&amp;quot; if $compareDate eq $heute;&lt;br /&gt;
		return &amp;quot;morgen&amp;quot; if $compareDate eq $morgen;&lt;br /&gt;
		return $compareDate;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese Funktion wird in den userReadings des Abfall-Moduls verwendet. Das Abfallmodul erzeugt eine Gruppe von Readings mit dem Namen now_*, wenn die Leerung am selben Tag ansteht, bzw. genau dann, wenn der Termin im zu Grunde liegenden Kalender gerade aktiv ist. In diesem Beispiel liegt dem Kalender-Modul ein Google-Kalender zu Grunde, bei dem die Termine immer von 0 Uhr bis 9 Uhr morgens eingetragen sind. Dadurch wird erreicht, dass die Anzeige nach 9 Uhr weiterspringt, weil dann die now-Readings verschwinden.&lt;br /&gt;
&lt;br /&gt;
Folgende userReadings werden zum Abfallmodul hinzugefügt, welches in diesem Beispiel &amp;quot;abf.abfall&amp;quot; genannt ist:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
attr myABFALL userReadings ftui_datum {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? datumHeuteMorgen(ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next_datum&amp;quot;,&amp;quot;&amp;quot;)) : &amp;quot;heute&amp;quot;;},ftui_next {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next&amp;quot;,&amp;quot;&amp;quot;) : ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now&amp;quot;,&amp;quot;&amp;quot;).&amp;quot;_0&amp;quot;;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Reading &amp;quot;ftui_next&amp;quot; bildet die Grundlage für das Symbol in TabletUI, das Reading &amp;quot;ftui_datum&amp;quot; wird für das Label genutzt. &lt;br /&gt;
&lt;br /&gt;
Somit lässt sich ganze in FTUI wie folgt darstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; &lt;br /&gt;
                     data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
                     data-get=&amp;quot;ftui_next&amp;quot;&lt;br /&gt;
                     data-get-on=&#039;[&amp;quot;Biotonne_0$&amp;quot;,&amp;quot;Biotonne_1$&amp;quot;,&amp;quot;Biotonne_.*&amp;quot;,&amp;quot;GelberSack_0$&amp;quot;,&amp;quot;GelberSack_1$&amp;quot;,&amp;quot;GelberSack_.*&amp;quot;,&amp;quot;Papiertonne_0$&amp;quot;,&amp;quot;Papiertonne_1$&amp;quot;,&amp;quot;Papiertonne_.*&amp;quot;,&amp;quot;Restmuelltonne_0$&amp;quot;,&amp;quot;Restmuelltonne_1$&amp;quot;,&amp;quot;Restmuelltonne_.*&amp;quot;]&#039;&lt;br /&gt;
                     data-get-warn=&amp;quot;.*([0|1|2]).*&amp;quot;&lt;br /&gt;
                     data-on-colors=&#039;[&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;]&#039;&lt;br /&gt;
                     class=&amp;quot;large warn&amp;quot;&lt;br /&gt;
                     data-icons=&#039;[&amp;quot;fa-trash-o fa-spin&amp;quot;,&amp;quot;fa-trash-o blink&amp;quot;,&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fs-bag fa-spin&amp;quot;,&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;,&amp;quot;fs-dustbin fa-spin&amp;quot;,&amp;quot;fs-dustbin blink&amp;quot;,&amp;quot;fs-dustbin&amp;quot;,&amp;quot;fa-trash fa-spin&amp;quot;,&amp;quot;fa-trash blink&amp;quot;,&amp;quot;fa-trash&amp;quot;]&#039;&lt;br /&gt;
                     /&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-get=&amp;quot;ftui_datum&amp;quot; data-type=&amp;quot;label&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Für Jede Tonne werden hier drei Zustände unterschieden und einzeln in &amp;quot;data-get-on&amp;quot;, &amp;quot;data-on-colors&amp;quot; und &amp;quot;data-icons&amp;quot; zugeordnet. Daher haben diese Listen jeweils 12 Einträge.&lt;br /&gt;
&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
&amp;lt;pre&amp;gt;[Abfall:next_tage] == 1) ( set fhemBot &#039;message Morgen wird [Abfall:next_text] abgeholt&#039;)&lt;br /&gt;
[Abfall:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message &#039;Heute wird [Abfall:now_text] abgeholt&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Pushbullet Beispiel ======&lt;br /&gt;
&lt;br /&gt;
Die morgigen Leerungen per Push um 19:30 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallmorgen doif ([19:30] and [Abfall:next_tage] == 1) ( msg |Morgen wird [Abfall:next_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallmorgen do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heutigen Leerungen per Push um 07:00 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallheute doif ([07:00] and [Abfall:now_text] ne &amp;quot;&amp;quot;) ( msg |Heute wird [Abfall:now_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallheute do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Forenthema {{Link2Forum|Topic=50177|LinkText=Abfall Visualisierung mit Bilderrahmen}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19473</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19473"/>
		<updated>2017-02-06T12:30:56Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Einbindung ins Tablet UI, erweitert */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Filtern von (Abfall-)Terminen aus einem Calendar.&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein (inoffizielles, nicht Bestandteil der Distribution) Hilfsmodul, das bestimmte Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein Calendar-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere Calendar Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Namen der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgendem Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom [[notify]] der entsprechenden Calendar Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, wird dieses Trennzeichen genutzt, um die beiden (oder mehrere) Werte zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern der Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einbindung ins Tablet UI, erweitert ===&lt;br /&gt;
Fallen die Leerungen zweier verschiedener Tonnen nicht auf den selben Tag, reicht es normalerweise, nur ein Symbol auf der Oberfläche zu platzieren und dieses dann dynamisch zu befüllen. In folgendem Beispiel werden folgende Anforderungen umgesetzt:&lt;br /&gt;
* Anzeige unterschiedlicher Symbole bzw. Farben für Papiertonne, Restmülltonne, Biotonne und gelbe Säcke&lt;br /&gt;
* Anzeige der verbleibenden Tage bis zur Leerung als &amp;quot;Warn&amp;quot;-Marker in Rot, aber nur, wenn die Leerung innerhalb der nächsten 2 Tage ist&lt;br /&gt;
* Blinken des Symbols, wenn die nächste Leerung morgen ansteht&lt;br /&gt;
* Rotation des Symbols, wenn die nächste Leerung noch am selben Tag ansteht. Nach einer bestimmten Uhrzeit (z.B. 9 Uhr morgens) soll dann auf die nächste Tonne geschaltet werden&lt;br /&gt;
* Anzeige des Datums bzw. von &amp;quot;heute&amp;quot; oder &amp;quot;morgen&amp;quot; unter dem Symbol als Label&lt;br /&gt;
&lt;br /&gt;
Zur Datumsanzeige wird eine kleine Hilfsfunktion in die 99_myUtils eingebaut. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub datumHeuteMorgen($){&lt;br /&gt;
		my $compareDate = shift;&lt;br /&gt;
		my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);&lt;br /&gt;
		$year += 1900; $mon += 1; &lt;br /&gt;
		my $heute = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);&lt;br /&gt;
		$year += 1900; $mon += 1;&lt;br /&gt;
		my $morgen = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		return &amp;quot;heute&amp;quot; if $compareDate eq $heute;&lt;br /&gt;
		return &amp;quot;morgen&amp;quot; if $compareDate eq $morgen;&lt;br /&gt;
		return $compareDate;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese Funktion wird in den userReadings des Abfall-Moduls verwendet. Das Abfallmodul erzeugt eine Gruppe von Readings mit dem Namen now_*, wenn die Leerung am selben Tag ansteht, bzw. genau dann, wenn der Termin im zu Grunde liegenden Kalender gerade aktiv ist. In diesem Beispiel liegt dem Kalender-Modul ein Google-Kalender zu Grunde, bei dem die Termine immer von 0 Uhr bis 9 Uhr morgens eingetragen sind. Dadurch wird erreicht, dass die Anzeige nach 9 Uhr weiterspringt, weil dann die now-Readings verschwinden.&lt;br /&gt;
&lt;br /&gt;
Folgende userReadings werden zum Abfallmodul hinzugefügt, welches in diesem Beispiel &amp;quot;abf.abfall&amp;quot; genannt ist:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
attr myABFALL userReadings ftui_datum {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? datumHeuteMorgen(ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next_datum&amp;quot;,&amp;quot;&amp;quot;)) : &amp;quot;heute&amp;quot;;},ftui_next {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next&amp;quot;,&amp;quot;&amp;quot;) : ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now&amp;quot;,&amp;quot;&amp;quot;).&amp;quot;_0&amp;quot;;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Reading &amp;quot;ftui_next&amp;quot; bildet die Grundlage für das Symbol in TabletUI, das Reading &amp;quot;ftui_datum&amp;quot; wird für das Label genutzt. &lt;br /&gt;
&lt;br /&gt;
Somit lässt sich ganze in FTUI wie folgt darstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; &lt;br /&gt;
                     data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
                     data-get=&amp;quot;ftui_next&amp;quot;&lt;br /&gt;
                     data-get-on=&#039;[&amp;quot;Biotonne_0$&amp;quot;,&amp;quot;Biotonne_1$&amp;quot;,&amp;quot;Biotonne_.*&amp;quot;,&amp;quot;GelberSack_0$&amp;quot;,&amp;quot;GelberSack_1$&amp;quot;,&amp;quot;GelberSack_.*&amp;quot;,&amp;quot;Papiertonne_0$&amp;quot;,&amp;quot;Papiertonne_1$&amp;quot;,&amp;quot;Papiertonne_.*&amp;quot;,&amp;quot;Restmuelltonne_0$&amp;quot;,&amp;quot;Restmuelltonne_1$&amp;quot;,&amp;quot;Restmuelltonne_.*&amp;quot;]&#039;&lt;br /&gt;
                     data-get-warn=&amp;quot;.*([0|1|2]).*&amp;quot;&lt;br /&gt;
                     data-on-colors=&#039;[&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;]&#039;&lt;br /&gt;
                     class=&amp;quot;large warn&amp;quot;&lt;br /&gt;
                     data-icons=&#039;[&amp;quot;fa-trash-o fa-spin&amp;quot;,&amp;quot;fa-trash-o blink&amp;quot;,&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fs-bag fa-spin&amp;quot;,&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;,&amp;quot;fs-dustbin fa-spin&amp;quot;,&amp;quot;fs-dustbin blink&amp;quot;,&amp;quot;fs-dustbin&amp;quot;,&amp;quot;fa-trash fa-spin&amp;quot;,&amp;quot;fa-trash blink&amp;quot;,&amp;quot;fa-trash&amp;quot;]&#039;&lt;br /&gt;
                     /&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-get=&amp;quot;ftui_datum&amp;quot; data-type=&amp;quot;label&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Für Jede Tonne werden hier drei Zustände unterschieden und einzeln in &amp;quot;data-get-on&amp;quot;, &amp;quot;data-on-colors&amp;quot; und &amp;quot;data-icons&amp;quot; zugeordnet. Daher haben diese Listen jeweils 12 Einträge.&lt;br /&gt;
&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
&amp;lt;pre&amp;gt;[Abfall:next_tage] == 1) ( set fhemBot &#039;message Morgen wird [Abfall:next_text] abgeholt&#039;)&lt;br /&gt;
[Abfall:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message &#039;Heute wird [Abfall:now_text] abgeholt&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Pushbullet Beispiel ======&lt;br /&gt;
&lt;br /&gt;
Die morgigen Leerungen per Push um 19:30 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallmorgen doif ([19:30] and [Abfall:next_tage] == 1) ( msg |Morgen wird [Abfall:next_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallmorgen do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heutigen Leerungen per Push um 07:00 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallheute doif ([07:00] and [Abfall:now_text] ne &amp;quot;&amp;quot;) ( msg |Heute wird [Abfall:now_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallheute do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Forenthema {{Link2Forum|Topic=50177|LinkText=Abfall Visualisierung mit Bilderrahmen}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19472</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19472"/>
		<updated>2017-02-06T12:30:38Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: Änderung des Namen des Gerätes auf myABFALL, damit es zu den anderen Beispielen passt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Filtern von (Abfall-)Terminen aus einem Calendar.&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein (inoffizielles, nicht Bestandteil der Distribution) Hilfsmodul, das bestimmte Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein Calendar-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere Calendar Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Namen der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgendem Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom [[notify]] der entsprechenden Calendar Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, wird dieses Trennzeichen genutzt, um die beiden (oder mehrere) Werte zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern der Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einbindung ins Tablet UI, erweitert ===&lt;br /&gt;
Fallen die Leerungen zweier verschiedener Tonnen nicht auf den selben Tag, reicht es normalerweise, nur ein Symbol auf der Oberfläche zu platzieren und dieses dann dynamisch zu befüllen. In folgendem Beispiel werden folgende Anforderungen umgesetzt:&lt;br /&gt;
* Anzeige unterschiedlicher Symbole bzw. Farben für Papiertonne, Restmülltonne, Biotonne und gelbe Säcke&lt;br /&gt;
* Anzeige der verbleibenden Tage bis zur Leerung als &amp;quot;Warn&amp;quot;-Marker in Rot, aber nur, wenn die Leerung innerhalb der nächsten 2 Tage ist&lt;br /&gt;
* Blinken des Symbols, wenn die nächste Leerung morgen ansteht&lt;br /&gt;
* Rotation des Symbols, wenn die nächste Leerung noch am selben Tag ansteht. Nach einer bestimmten Uhrzeit (z.B. 9 Uhr morgens) soll dann auf die nächste Tonne geschaltet werden&lt;br /&gt;
* Anzeige des Datums bzw. von &amp;quot;heute&amp;quot; oder &amp;quot;morgen&amp;quot; unter dem Symbol als Label&lt;br /&gt;
&lt;br /&gt;
Zur Datumsanzeige wird eine kleine Hilfsfunktion in die 99_myUtils eingebaut. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub datumHeuteMorgen($){&lt;br /&gt;
		my $compareDate = shift;&lt;br /&gt;
		my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);&lt;br /&gt;
		$year += 1900; $mon += 1; &lt;br /&gt;
		my $heute = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);&lt;br /&gt;
		$year += 1900; $mon += 1;&lt;br /&gt;
		my $morgen = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		return &amp;quot;heute&amp;quot; if $compareDate eq $heute;&lt;br /&gt;
		return &amp;quot;morgen&amp;quot; if $compareDate eq $morgen;&lt;br /&gt;
		return $compareDate;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese Funktion wird in den userReadings des Abfall-Moduls verwendet. Das Abfallmodul erzeugt eine Gruppe von Readings mit dem Namen now_*, wenn die Leerung am selben Tag ansteht, bzw. genau dann, wenn der Termin im zu Grunde liegenden Kalender gerade aktiv ist. In diesem Beispiel liegt dem Kalender-Modul ein Google-Kalender zu Grunde, bei dem die Termine immer von 0 Uhr bis 9 Uhr morgens eingetragen sind. Dadurch wird erreicht, dass die Anzeige nach 9 Uhr weiterspringt, weil dann die now-Readings verschwinden.&lt;br /&gt;
&lt;br /&gt;
Folgende userReadings werden zum Abfallmodul hinzugefügt, welches in diesem Beispiel &amp;quot;abf.abfall&amp;quot; genannt ist:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
attr myABFALL userReadings ftui_datum {ReadingsVal(&amp;quot;abf.abfall&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? datumHeuteMorgen(ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next_datum&amp;quot;,&amp;quot;&amp;quot;)) : &amp;quot;heute&amp;quot;;},ftui_next {ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;next&amp;quot;,&amp;quot;&amp;quot;) : ReadingsVal(&amp;quot;myABFALL&amp;quot;,&amp;quot;now&amp;quot;,&amp;quot;&amp;quot;).&amp;quot;_0&amp;quot;;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Reading &amp;quot;ftui_next&amp;quot; bildet die Grundlage für das Symbol in TabletUI, das Reading &amp;quot;ftui_datum&amp;quot; wird für das Label genutzt. &lt;br /&gt;
&lt;br /&gt;
Somit lässt sich ganze in FTUI wie folgt darstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; &lt;br /&gt;
                     data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
                     data-get=&amp;quot;ftui_next&amp;quot;&lt;br /&gt;
                     data-get-on=&#039;[&amp;quot;Biotonne_0$&amp;quot;,&amp;quot;Biotonne_1$&amp;quot;,&amp;quot;Biotonne_.*&amp;quot;,&amp;quot;GelberSack_0$&amp;quot;,&amp;quot;GelberSack_1$&amp;quot;,&amp;quot;GelberSack_.*&amp;quot;,&amp;quot;Papiertonne_0$&amp;quot;,&amp;quot;Papiertonne_1$&amp;quot;,&amp;quot;Papiertonne_.*&amp;quot;,&amp;quot;Restmuelltonne_0$&amp;quot;,&amp;quot;Restmuelltonne_1$&amp;quot;,&amp;quot;Restmuelltonne_.*&amp;quot;]&#039;&lt;br /&gt;
                     data-get-warn=&amp;quot;.*([0|1|2]).*&amp;quot;&lt;br /&gt;
                     data-on-colors=&#039;[&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;]&#039;&lt;br /&gt;
                     class=&amp;quot;large warn&amp;quot;&lt;br /&gt;
                     data-icons=&#039;[&amp;quot;fa-trash-o fa-spin&amp;quot;,&amp;quot;fa-trash-o blink&amp;quot;,&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fs-bag fa-spin&amp;quot;,&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;,&amp;quot;fs-dustbin fa-spin&amp;quot;,&amp;quot;fs-dustbin blink&amp;quot;,&amp;quot;fs-dustbin&amp;quot;,&amp;quot;fa-trash fa-spin&amp;quot;,&amp;quot;fa-trash blink&amp;quot;,&amp;quot;fa-trash&amp;quot;]&#039;&lt;br /&gt;
                     /&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-get=&amp;quot;ftui_datum&amp;quot; data-type=&amp;quot;label&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Für Jede Tonne werden hier drei Zustände unterschieden und einzeln in &amp;quot;data-get-on&amp;quot;, &amp;quot;data-on-colors&amp;quot; und &amp;quot;data-icons&amp;quot; zugeordnet. Daher haben diese Listen jeweils 12 Einträge.&lt;br /&gt;
&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
&amp;lt;pre&amp;gt;[Abfall:next_tage] == 1) ( set fhemBot &#039;message Morgen wird [Abfall:next_text] abgeholt&#039;)&lt;br /&gt;
[Abfall:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message &#039;Heute wird [Abfall:now_text] abgeholt&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Pushbullet Beispiel ======&lt;br /&gt;
&lt;br /&gt;
Die morgigen Leerungen per Push um 19:30 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallmorgen doif ([19:30] and [Abfall:next_tage] == 1) ( msg |Morgen wird [Abfall:next_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallmorgen do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heutigen Leerungen per Push um 07:00 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallheute doif ([07:00] and [Abfall:now_text] ne &amp;quot;&amp;quot;) ( msg |Heute wird [Abfall:now_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallheute do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Forenthema {{Link2Forum|Topic=50177|LinkText=Abfall Visualisierung mit Bilderrahmen}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19471</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=19471"/>
		<updated>2017-02-06T12:28:47Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* DOIF */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Filtern von (Abfall-)Terminen aus einem Calendar.&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein (inoffizielles, nicht Bestandteil der Distribution) Hilfsmodul, das bestimmte Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein Calendar-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere Calendar Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Namen der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgendem Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom [[notify]] der entsprechenden Calendar Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, wird dieses Trennzeichen genutzt, um die beiden (oder mehrere) Werte zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern der Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Einbindung ins Tablet UI, erweitert ===&lt;br /&gt;
Fallen die Leerungen zweier verschiedener Tonnen nicht auf den selben Tag, reicht es normalerweise, nur ein Symbol auf der Oberfläche zu platzieren und dieses dann dynamisch zu befüllen. In folgendem Beispiel werden folgende Anforderungen umgesetzt:&lt;br /&gt;
* Anzeige unterschiedlicher Symbole bzw. Farben für Papiertonne, Restmülltonne, Biotonne und gelbe Säcke&lt;br /&gt;
* Anzeige der verbleibenden Tage bis zur Leerung als &amp;quot;Warn&amp;quot;-Marker in Rot, aber nur, wenn die Leerung innerhalb der nächsten 2 Tage ist&lt;br /&gt;
* Blinken des Symbols, wenn die nächste Leerung morgen ansteht&lt;br /&gt;
* Rotation des Symbols, wenn die nächste Leerung noch am selben Tag ansteht. Nach einer bestimmten Uhrzeit (z.B. 9 Uhr morgens) soll dann auf die nächste Tonne geschaltet werden&lt;br /&gt;
* Anzeige des Datums bzw. von &amp;quot;heute&amp;quot; oder &amp;quot;morgen&amp;quot; unter dem Symbol als Label&lt;br /&gt;
&lt;br /&gt;
Zur Datumsanzeige wird eine kleine Hilfsfunktion in die 99_myUtils eingebaut. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub datumHeuteMorgen($){&lt;br /&gt;
		my $compareDate = shift;&lt;br /&gt;
		my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);&lt;br /&gt;
		$year += 1900; $mon += 1; &lt;br /&gt;
		my $heute = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time+86400);&lt;br /&gt;
		$year += 1900; $mon += 1;&lt;br /&gt;
		my $morgen = sprintf(&#039;%02d.%02d.%04d&#039;, $mday, $mon, $year);&lt;br /&gt;
		return &amp;quot;heute&amp;quot; if $compareDate eq $heute;&lt;br /&gt;
		return &amp;quot;morgen&amp;quot; if $compareDate eq $morgen;&lt;br /&gt;
		return $compareDate;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese Funktion wird in den userReadings des Abfall-Moduls verwendet. Das Abfallmodul erzeugt eine Gruppe von Readings mit dem Namen now_*, wenn die Leerung am selben Tag ansteht, bzw. genau dann, wenn der Termin im zu Grunde liegenden Kalender gerade aktiv ist. In diesem Beispiel liegt dem Kalender-Modul ein Google-Kalender zu Grunde, bei dem die Termine immer von 0 Uhr bis 9 Uhr morgens eingetragen sind. Dadurch wird erreicht, dass die Anzeige nach 9 Uhr weiterspringt, weil dann die now-Readings verschwinden.&lt;br /&gt;
&lt;br /&gt;
Folgende userReadings werden zum Abfallmodul hinzugefügt, welches in diesem Beispiel &amp;quot;abf.abfall&amp;quot; genannt ist:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
attr abf.abfall userReadings ftui_datum {ReadingsVal(&amp;quot;abf.abfall&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? datumHeuteMorgen(ReadingsVal(&amp;quot;abf.abfall&amp;quot;,&amp;quot;next_datum&amp;quot;,&amp;quot;&amp;quot;)) : &amp;quot;heute&amp;quot;;},ftui_next {ReadingsVal(&amp;quot;abf.abfall&amp;quot;,&amp;quot;now_text&amp;quot;,&amp;quot;&amp;quot;) eq &amp;quot;&amp;quot; ? ReadingsVal(&amp;quot;abf.abfall&amp;quot;,&amp;quot;next&amp;quot;,&amp;quot;&amp;quot;) : ReadingsVal(&amp;quot;abf.abfall&amp;quot;,&amp;quot;now&amp;quot;,&amp;quot;&amp;quot;).&amp;quot;_0&amp;quot;;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Das Reading &amp;quot;ftui_next&amp;quot; bildet die Grundlage für das Symbol in TabletUI, das Reading &amp;quot;ftui_datum&amp;quot; wird für das Label genutzt. &lt;br /&gt;
&lt;br /&gt;
Somit lässt sich ganze in FTUI wie folgt darstellen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;abf.abfall&amp;quot; &lt;br /&gt;
                     data-type=&amp;quot;symbol&amp;quot;&lt;br /&gt;
                     data-get=&amp;quot;ftui_next&amp;quot;&lt;br /&gt;
                     data-get-on=&#039;[&amp;quot;Biotonne_0$&amp;quot;,&amp;quot;Biotonne_1$&amp;quot;,&amp;quot;Biotonne_.*&amp;quot;,&amp;quot;GelberSack_0$&amp;quot;,&amp;quot;GelberSack_1$&amp;quot;,&amp;quot;GelberSack_.*&amp;quot;,&amp;quot;Papiertonne_0$&amp;quot;,&amp;quot;Papiertonne_1$&amp;quot;,&amp;quot;Papiertonne_.*&amp;quot;,&amp;quot;Restmuelltonne_0$&amp;quot;,&amp;quot;Restmuelltonne_1$&amp;quot;,&amp;quot;Restmuelltonne_.*&amp;quot;]&#039;&lt;br /&gt;
                     data-get-warn=&amp;quot;.*([0|1|2]).*&amp;quot;&lt;br /&gt;
                     data-on-colors=&#039;[&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#8B4513&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#f4e946&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#2d9e1c&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;,&amp;quot;#696969&amp;quot;]&#039;&lt;br /&gt;
                     class=&amp;quot;large warn&amp;quot;&lt;br /&gt;
                     data-icons=&#039;[&amp;quot;fa-trash-o fa-spin&amp;quot;,&amp;quot;fa-trash-o blink&amp;quot;,&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fs-bag fa-spin&amp;quot;,&amp;quot;fs-bag blink&amp;quot;,&amp;quot;fs-bag&amp;quot;,&amp;quot;fs-dustbin fa-spin&amp;quot;,&amp;quot;fs-dustbin blink&amp;quot;,&amp;quot;fs-dustbin&amp;quot;,&amp;quot;fa-trash fa-spin&amp;quot;,&amp;quot;fa-trash blink&amp;quot;,&amp;quot;fa-trash&amp;quot;]&#039;&lt;br /&gt;
                     /&amp;gt;&lt;br /&gt;
                &amp;lt;div data-device=&amp;quot;abf.abfall&amp;quot; data-get=&amp;quot;ftui_datum&amp;quot; data-type=&amp;quot;label&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Für Jede Tonne werden hier drei Zustände unterschieden und einzeln in &amp;quot;data-get-on&amp;quot;, &amp;quot;data-on-colors&amp;quot; und &amp;quot;data-icons&amp;quot; zugeordnet. Daher haben diese Listen jeweils 12 Einträge. &lt;br /&gt;
&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
&amp;lt;pre&amp;gt;[Abfall:next_tage] == 1) ( set fhemBot &#039;message Morgen wird [Abfall:next_text] abgeholt&#039;)&lt;br /&gt;
[Abfall:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message &#039;Heute wird [Abfall:now_text] abgeholt&#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====== Pushbullet Beispiel ======&lt;br /&gt;
&lt;br /&gt;
Die morgigen Leerungen per Push um 19:30 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallmorgen doif ([19:30] and [Abfall:next_tage] == 1) ( msg |Morgen wird [Abfall:next_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallmorgen do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die heutigen Leerungen per Push um 07:00 mittels Pushbullet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;define dAbfallheute doif ([07:00] and [Abfall:now_text] ne &amp;quot;&amp;quot;) ( msg |Heute wird [Abfall:now_text] abgeholt)&lt;br /&gt;
&lt;br /&gt;
attr dAbfallheute do always&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* Forenthema {{Link2Forum|Topic=50177|LinkText=Abfall Visualisierung mit Bilderrahmen}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=18544</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=18544"/>
		<updated>2017-01-17T23:34:10Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: added example for doif&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Name der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgenden Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, da wird diese Trennzeichen genutzt um die beiden (oder mehrere) zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern von den Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Benachrichtigung ===&lt;br /&gt;
==== DOIF ====&lt;br /&gt;
&amp;lt;pre&amp;gt;[Abfall:next_tage] == 1) ( set fhemBot message Morgen wird [Abfall:next_text] abgeholt)&lt;br /&gt;
[Abfall:now_text] ne &amp;quot;&amp;quot;) ( set fhemBot message Heute wird [Abfall:now_text] abgeholt)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externe Links auf Artikel mit dem Abfall Modul ===&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,50177.0.html Abfall Visualisierung mit Bilderrahmen]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DevelopmentState&amp;diff=18492</id>
		<title>DevelopmentState</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DevelopmentState&amp;diff=18492"/>
		<updated>2017-01-15T17:18:17Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: add missing bracket&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Default-Status eines Gerätes wird in FHEM durch die interne Variable &#039;&#039;STATE&#039;&#039; dargestellt. Dieser wird beispielsweise von [[FHEMWEB]] oder von dem &#039;&#039;list&#039;&#039;-Befehl angezeigt.&lt;br /&gt;
&lt;br /&gt;
Dieser sollte jedoch von Modulautoren nicht direkt gesetzt werden. Stattdessen ermittelt FHEM den Wert folgendermaßen:&lt;br /&gt;
# Falls das Attribut &#039;&#039;stateFormat&#039;&#039; gesetzt ist, wird dieses ausgewertet und das Ergebnis in den &#039;&#039;STATE&#039;&#039; geschrieben. (Siehe [http://fhem.de/commandref.html#readingFnAttributes commandref.html#readingFnAttributes])&lt;br /&gt;
# Falls das Reading &#039;&#039;state&#039;&#039; existiert, wird diesen in &#039;&#039;STATE&#039;&#039; übernommen.&lt;br /&gt;
&lt;br /&gt;
Wenn ein Modulautor ein bestimmtes Reading in &#039;&#039;STATE&#039;&#039; vorgelegen möchte so kann er dies mit dem &#039;&#039;stateFormat&#039;&#039;-Attribut tun.&lt;br /&gt;
Dies sollte aber nur in der &#039;&#039;define&#039;&#039; Funktion des Moduls geschehen, damit der User die Möglichkeit hat, das Attribut anschließend anzupassen.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;perl&amp;quot;&amp;gt;&lt;br /&gt;
sub MYMODULE_Define($$)&lt;br /&gt;
{&lt;br /&gt;
	my ($hash, $def) = @_;&lt;br /&gt;
	my @args = split(&amp;quot;[ \t]+&amp;quot;, $def);&lt;br /&gt;
	my ($name, $type) = @args;&lt;br /&gt;
	[...];&lt;br /&gt;
	&lt;br /&gt;
	# prüfen, ob eine neue Definition angelegt wird &lt;br /&gt;
	if($init_done &amp;amp;&amp;amp; !defined($hash-&amp;gt;{OLDDEF}))&lt;br /&gt;
	{&lt;br /&gt;
		# setzen von stateFormat&lt;br /&gt;
	 	$attr{$name}{&amp;quot;stateFormat&amp;quot;} = &amp;quot;power&amp;quot;;&lt;br /&gt;
 	}&lt;br /&gt;
	&lt;br /&gt;
	[...];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
sub MYMODULE_Call($$)&lt;br /&gt;
{&lt;br /&gt;
	[...];&lt;br /&gt;
	my $power = [...];&lt;br /&gt;
	readingsBeginUpdate($hash);&lt;br /&gt;
	readingsBulkUpdate($hash,&amp;quot;power&amp;quot;,$power);&lt;br /&gt;
	readingsEndUpdate($hash, 1);&lt;br /&gt;
	[...];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Development]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
rudi:&lt;br /&gt;
Der Modulautor schlaegt in state vor, was angezeigt werden soll.&lt;br /&gt;
fhem.pl kopiert state nach STATE, falls kein stateFormat existiert, sonst wird stateFormat genomen&lt;br /&gt;
Der Benutzer (und nicht der Modulautor) setzt stateFromat, falls er mit dem Vorschlag des Modulautors nicht einverstanden ist.&lt;br /&gt;
Angezeigt wird STATE (von FHEMWEB und list, usw).&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=18249</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=18249"/>
		<updated>2017-01-02T22:30:03Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: update anweisung hinzufgefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Name der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Installation ===&lt;br /&gt;
Mit folgenden Befehl kann das Modul direkt in den Standard FHEM Update Prozess eingeklinkt werden.&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
Um es nur zu installieren, kann auch einfach nur das Command&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/master/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
eingegeben werden.&lt;br /&gt;
=== Entwicklungsstrang ===&lt;br /&gt;
:&amp;lt;code&amp;gt;update add https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
bzw.&lt;br /&gt;
:&amp;lt;code&amp;gt;update all https://raw.githubusercontent.com/uniqueck/fhem-abfall/develop/controls_fhemabfall.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, da wird diese Trennzeichen genutzt um die beiden (oder mehrere) zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern von den Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externe Links auf Artikel mit dem Abfall Modul ===&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,50177.0.html Abfall Visualisierung mit Bilderrahmen]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16553</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16553"/>
		<updated>2016-10-07T23:25:14Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Weitere Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Name der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, da wird diese Trennzeichen genutzt um die beiden (oder mehrere) zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |filter&lt;br /&gt;
|&lt;br /&gt;
|regex zum Filtern von den Namen der Termine aus den Kalendern, so dass nur solche genutzt werden, welche diesem Filter entsprechen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externe Links auf Artikel mit dem Abfall Modul ===&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,50177.0.html Abfall Visualisierung mit Bilderrahmen]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16552</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16552"/>
		<updated>2016-10-07T23:21:29Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Weitere Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Name der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin, dieser wird vor dem Entfernen von Sonderzeichen aus den Namen der Termine angewandt.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, da wird diese Trennzeichen genutzt um die beiden (oder mehrere) zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externe Links auf Artikel mit dem Abfall Modul ===&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,50177.0.html Abfall Visualisierung mit Bilderrahmen]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16551</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16551"/>
		<updated>2016-10-07T23:20:51Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Voraussetzungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Sonderzeichen aus dem Namen der Termine, werden entfernt um die Name der generierten Readings FHEM tauglich zu machen, für die Werte der Readings bleiben diese allerdings erhalten.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, da wird diese Trennzeichen genutzt um die beiden (oder mehrere) zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externe Links auf Artikel mit dem Abfall Modul ===&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,50177.0.html Abfall Visualisierung mit Bilderrahmen]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16550</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16550"/>
		<updated>2016-10-07T23:19:22Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Weitere Attribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Attribut&lt;br /&gt;
!Werteliste&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |calendarname_praefix&lt;br /&gt;
|0 und 1&lt;br /&gt;
|soll der Kalendername als praefix dem Reading vorangestellt werden, sollte bei nur einem Kalender auf 0 gesetzt werden&lt;br /&gt;
|1 - praefix wird vorangestellt&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |abfall_clear_reading_regex&lt;br /&gt;
|&lt;br /&gt;
|regex zum Entfernen von Anteilen aus dem Termin&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |disable&lt;br /&gt;
|0 und 1&lt;br /&gt;
|deaktiviert das Modul&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |weekday_mapping&lt;br /&gt;
|&lt;br /&gt;
|Mapping, wie die Readings der Tage angezeigt werden sollen, zum Beispiel So Mo Di Mi Do Fr Sa&lt;br /&gt;
|Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_text_reading&lt;br /&gt;
|&lt;br /&gt;
|Wenn zwei Abholungen an ein und demselben Tag existieren, da wird diese Trennzeichen genutzt um die beiden (oder mehrere) zu einem Text zu verbinden. Nur relevant für die Readings next_text und now_text&lt;br /&gt;
|und&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |delimiter_reading&lt;br /&gt;
|&lt;br /&gt;
|wie attribute delimiter_text_reading, allerdings nur für die readings next und now&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externe Links auf Artikel mit dem Abfall Modul ===&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,50177.0.html Abfall Visualisierung mit Bilderrahmen]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16549</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16549"/>
		<updated>2016-10-07T23:00:35Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Einbindung ins Tablet UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; &lt;br /&gt;
          data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; &lt;br /&gt;
          data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
          data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; &lt;br /&gt;
          data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externe Links auf Artikel mit dem Abfall Modul ===&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,50177.0.html Abfall Visualisierung mit Bilderrahmen]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16548</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16548"/>
		<updated>2016-10-07T22:59:53Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Einbindung ins Tablet UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; class=&amp;quot;bigger warn wider&amp;quot; data-get=&amp;quot;next&amp;quot; data-get-warn=&amp;quot;.*(\d+).*&amp;quot; data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;        data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039; data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externe Links auf Artikel mit dem Abfall Modul ===&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,50177.0.html Abfall Visualisierung mit Bilderrahmen]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16547</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16547"/>
		<updated>2016-10-07T22:58:38Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Tablet UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Einbindung ins Tablet UI ===&lt;br /&gt;
&lt;br /&gt;
=== externe Links auf Artikel mit dem Abfall Modul ===&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,50177.0.html Abfall Visualisierung mit Bilderrahmen]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16546</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16546"/>
		<updated>2016-10-07T22:56:32Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Anwendungsbeispiel(e) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
=== Tablet UI ===&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;div data-device=&amp;quot;myABFALL&amp;quot; data-type=&amp;quot;symbol&amp;quot; &lt;br /&gt;
				class=&amp;quot;bigger warn wider&amp;quot;&lt;br /&gt;
				data-get=&amp;quot;next&amp;quot;&lt;br /&gt;
                                data-get-warn=&amp;quot;.*(\d+).*&amp;quot;&lt;br /&gt;
				data-get-on=&#039;[&amp;quot;Restmuell_.*&amp;quot;,&amp;quot;Wertstoff_.*&amp;quot;]&#039;&lt;br /&gt;
				data-on-colors=&#039;[&amp;quot;#000&amp;quot;,&amp;quot;#6EB54C&amp;quot;]&#039;				&lt;br /&gt;
				data-icons=&#039;[&amp;quot;fa-trash-o&amp;quot;,&amp;quot;fa-trash-o&amp;quot;]&#039;&lt;br /&gt;
&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== externe Links auf Artikel mit dem Abfall Modul ===&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,50177.0.html Abfall Visualisierung mit Bilderrahmen]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16545</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=16545"/>
		<updated>2016-10-07T22:53:54Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: Link auf einen FHEM Forum Artikel hinzugefügt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;br /&gt;
[https://forum.fhem.de/index.php/topic,50177.0.html Abfall Visualisierung mit Bilderrahmen]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=15061</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=15061"/>
		<updated>2016-04-12T22:16:35Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Voraussetzungen */ Referenz vom Kalender Modul wurde gefixt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calendar]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=15060</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=15060"/>
		<updated>2016-04-12T22:16:09Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: /* Werte aktualisieren */ Referenz von Calendar Modul gefixt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calender]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calendar]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=15059</id>
		<title>ABFALL</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=ABFALL&amp;diff=15059"/>
		<updated>2016-04-12T22:15:32Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: Neuanlage der Wiki Seite für das Modul&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Legt ein Device an, das alle Termine aus einem [[Calendar]] in Readings übernimmt, welche speziell für das Thema Abfallkalender ausgelegt sind.&lt;br /&gt;
|ModType=d&lt;br /&gt;
|ModFTopic=48237&lt;br /&gt;
|ModForumArea=Codeschnipsel&lt;br /&gt;
|ModTechName=57_ABFALL.pm&lt;br /&gt;
|ModOwner=Constantin / {{Link2FU|14026|uniqueck}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[ABFALL]] ist ein Hilfsmodul, das alle Termine aus einem bestehenden Kalender des Moduls [[Calendar]] in Readings übernimmt. &lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Es muss ein [[Calendar]]-Objekt definiert sein. Der dabei benutzte Name muss in der Definition des ABFALL-Objekts spezifiziert werden.&lt;br /&gt;
Es können auch mehrere [[Calender]] Objekte übergeben werden.&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
=== Define ===&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; ABFALL &amp;lt;calendarname&amp;gt;,&amp;lt;calendarname2&amp;gt;,...&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erläuterung der Parameter im &#039;&#039;&#039;define&#039;&#039;&#039;:&lt;br /&gt;
;&amp;lt;calendarname&amp;gt;&lt;br /&gt;
:Name des &#039;&#039;&#039;Calendar&#039;&#039;&#039; Kalenders &lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
:&amp;lt;code&amp;gt;define myAbfall ABFALL AbfallGoogleCalender&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Werte aktualisieren ===&lt;br /&gt;
Die Werte aktualisieren sich abhängig vom notify der entsprechenden [[Calender]] Instanz, welche im define angegeben wurde(n).&lt;br /&gt;
&lt;br /&gt;
=== Weitere Attribute ===&lt;br /&gt;
&lt;br /&gt;
== Anwendungsbeispiel(e) ==&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DBPlan&amp;diff=13622</id>
		<title>DBPlan</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DBPlan&amp;diff=13622"/>
		<updated>2016-01-18T22:38:30Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: Dokumentation aus dem Forums Beitrag weitesgehend übernommen und noch die Abhängigkeite zu dem HTML Table Extract Modul&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Abfahrtszeiten Deutsche Bahn&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=36057&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=98_DBPlan.pm&lt;br /&gt;
|ModOwner=JoWiemann ({{Link2FU|7023|Forum}})&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Modul holt von der Infoseite der DB aktuelle Informationen zu einer angegeben Verbindung.&lt;br /&gt;
&lt;br /&gt;
== Einbinden in FHEM ==&lt;br /&gt;
Fhem benötigt zunächst die perl Module aus dem {{Link2FU|7023|98_DBPlan.pm: Fahrplaninformation der DB}}.&lt;br /&gt;
Des Weiteren wird das perl Modul HTML:Table Extract benötigt, diese bitte wie folgt installieren.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;sudo apt-get install  libhtml-tableextract-perl&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anschließend ggf. FHEM neu starten.&lt;br /&gt;
&lt;br /&gt;
Nun sollte sich mit folgendem Befehl das Modul nutzen.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;code&amp;gt;define &amp;lt;Name&amp;gt; DBPlan &amp;lt;Interval for refresh in seconds&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Attribute ==&lt;br /&gt;
*attr DB_Test dbplan_departure -&amp;gt; place of departure &lt;br /&gt;
*attr DB_Test dbplan_destination -&amp;gt; place of destination&lt;br /&gt;
*dbplan_journey_prod -&amp;gt; DB travel products like: ICE&lt;br /&gt;
*dbplan_journey_opt -&amp;gt; DB travel options like: direct connection&lt;br /&gt;
&lt;br /&gt;
Bitte die Attribute nur über die Fhem Oberfläche setzen. Es können für dbplan_journey_prod und dbplan_journey_opt mehrere Einträge aus den jeweiligen Listen kombiniert werden. Für Abfahrs- und Ankunftsort bitte vorher prüfen, ob diese Orte von www.bahn.de erkannt werden und ggf. anpassen.&lt;br /&gt;
&lt;br /&gt;
== Readings ==&lt;br /&gt;
&lt;br /&gt;
*departure_(1..3) -&amp;gt; time of departure&lt;br /&gt;
*arrival_(1..3) -&amp;gt; time of arrival&lt;br /&gt;
*connection_(1..3) -&amp;gt; type of connection&lt;br /&gt;
*departure_delay_(1..3) -&amp;gt; delay time for departure&lt;br /&gt;
*arrival_delay_(1..3) -&amp;gt; delay time for arrival&lt;br /&gt;
*travel_duration_(1..3) -&amp;gt; travel duration time&lt;br /&gt;
*travel_note_(1..3) -&amp;gt; travel note for travel plan&lt;br /&gt;
*travel_note_link_(1..3) -&amp;gt; travel note link for further informations&lt;br /&gt;
*travel_note_text_(1..3) -&amp;gt; travel note text&lt;br /&gt;
*travel_destination_(1..3) -&amp;gt; informations about the destination and the Plattform, if available&lt;br /&gt;
*travel_change_(1..3) -&amp;gt; travel plattform changings&lt;br /&gt;
*travel_price_(1..3) -&amp;gt; travel price in EUR&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=DBPlan&amp;diff=13619</id>
		<title>DBPlan</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=DBPlan&amp;diff=13619"/>
		<updated>2016-01-18T22:26:10Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: Infobox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox Modul&lt;br /&gt;
|ModPurpose=Abfahrtszeiten Deutsche Bahn&lt;br /&gt;
|ModType=x&lt;br /&gt;
|ModFTopic=36057&lt;br /&gt;
|ModForumArea=Unterstützende Dienste&lt;br /&gt;
|ModTechName=n.a.&lt;br /&gt;
|ModOwner=JoWiemann ({{Link2FU|7023|Forum}})&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=FHEM_Tablet_UI&amp;diff=13063</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=13063"/>
		<updated>2015-11-27T21:44:37Z</updated>

		<summary type="html">&lt;p&gt;UniqueCK: add new option data-get-warn for symbol widget&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=Frontends&lt;br /&gt;
|ModTechName=n.a.&lt;br /&gt;
|ModOwner=setstate ({{Link2FU|7023|Forum}})&lt;br /&gt;
}}&lt;br /&gt;
[[Datei:tablet_ui.png|200px|thumb|right|Fhem Tablet UI]]&lt;br /&gt;
FHEM Tablet UI ist ein leichtgewichtiges aber funktionsreiches Framework zum Steuern und Überwachen von in Fhem integrierten Geräten. Zahlreiche Widgets können sehr flexibel und leicht per HTML Code konfiguriert werden.&lt;br /&gt;
&lt;br /&gt;
In dieser Anleitung wird die Installation und Konfiguration des FHEM Tablet UI beschrieben.&lt;br /&gt;
&lt;br /&gt;
{{Todo|alle Widgets hier übernehmen, Übersetzung, weitere Beispiele aus dem Forum einfügen (evtl. mit Link!?)}} &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Dieses User Interface für Tablets benötigt &amp;lt;u&amp;gt;keine&amp;lt;/u&amp;gt; zusätzliche Frameworks, wie PHP, MySQL oder SmartVisu.&lt;br /&gt;
&lt;br /&gt;
Voraussetzungen ist nur ein Standard-Fhem mit HTTPSRV Modul und ein beliebiger Standard-Browser  mit Javascript auf einem beliebigen Betriebssystem oder Webviewcontrol.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
* Im Befehls-Eingabefeld eingeben: &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;
* Im Befehls-Eingabefeld eingeben: &amp;lt;code&amp;gt;define TABLETUI HTTPSRV ftui/ ./www/tablet Tablet-UI&amp;lt;/code&amp;gt;&lt;br /&gt;
* Im Verzeichnis ./fhem/www/tablet die Datei index-example.html in index.html umbenennen oder eine neue index.html erzeugen und diese index.html wie nachfolgend beschrieben editieren.&lt;br /&gt;
&lt;br /&gt;
Das UI ist über den Link &amp;quot;Tablet-UI&amp;quot; auf der Fhem-Hauptseite oder durch Direktaufruf der URL &amp;quot;&amp;lt;nowiki&amp;gt;http://&amp;lt;Fhem-url&amp;gt;:8083/fhem/tablet/index.html&amp;lt;/nowiki&amp;gt;&amp;quot; zu erreichen.&lt;br /&gt;
&lt;br /&gt;
Hinweise zu einer manuellen Installation und weitere Infos sind auf der Projektseite https://github.com/knowthelist/fhem-tablet-ui zu finden.&lt;br /&gt;
&lt;br /&gt;
== Update ==&lt;br /&gt;
* Prüfen der Änderungen seit dem letzten Download/Update durch Eingabe von: &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;
* Update des UI durch Eingabe von: &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;
== Weitere Widgets ==&lt;br /&gt;
&lt;br /&gt;
=== Widgets for Fhem-tablet-ui ===&lt;br /&gt;
Zusätzlich zu den bei der Installation des Tablet UI direkt zur Verfügung stehenden Widgets, gibt es eine weitere Widget-Quelle von nesges unter https://github.com/nesges/Widgets-for-fhem-tablet-ui. Die Widgets aus dieser Quelle müssen für eine Nutzung separat installiert werden.&lt;br /&gt;
&lt;br /&gt;
Dazu folgenden Befehl in die Fhem-Befehlszeile eingeben: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;update all https://raw.githubusercontent.com/nesges/Widgets-for-fhem-tablet-ui/master/controls_widgets-for-fhem-tablet-ui.txt&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Näheres zur Installation unter [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/Installation Wiki: Installation]. &lt;br /&gt;
&lt;br /&gt;
Die Dokumentation der einzelnen Widgets befindet sich ebenfalls [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki im Github-Wiki].&lt;br /&gt;
&lt;br /&gt;
== Konfiguration ==&lt;br /&gt;
Die Konfiguration der angezeigten Widgets erfolgt in der Datei &#039;&#039;&#039;index.html&#039;&#039;&#039; im Hauptordner &#039;tablet&#039;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Metadaten-Konfiguration&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Refresh sofort, alle 15 Minuten ein voller Refresh (shortpoll) statt alle 30 Sekunden ein voller Refresh&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;meta name=&amp;quot;longpoll&amp;quot; content=&amp;quot;1&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Drag&amp;amp;Drop deaktivieren&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;meta name=&#039;gridster_disable&#039; content=&#039;1&#039;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toast messages deaktivieren&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;meta name=&#039;toast&#039; content=&#039;1&#039;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Größe des Basis-Rasters (data-sizey=1/data-sizex=1)&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;meta name=&amp;quot;widget_base_width&amp;quot; content=&amp;quot;116&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;meta name=&amp;quot;widget_base_height&amp;quot; content=&amp;quot;131&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Abstände der Gridsterelemente verkleinern:&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;meta name=&amp;quot;widget_margin&amp;quot; content=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Layout und das Aussehen des UI kann durch die Klassen-Attribute beeinflusst werden. Verfügbare Klassen sind:&lt;br /&gt;
&lt;br /&gt;
container, left, right, cell, narrow, darker, big, bigger, small&lt;br /&gt;
&lt;br /&gt;
== Farbe ==&lt;br /&gt;
Es besteht die Möglichkeit, die Farbwerte in hexadezimaler Form oder als RGB-Wert anzugeben. Zum Beispiel: Hex: #A3CFA3 RBG: rgb(163, 207, 163).&lt;br /&gt;
&lt;br /&gt;
Knallige Farben wie #ff0000 für Rot oder #00ff00 für Grün sollten vermieden werden. Es ist besser unterhalb von #D0 (208) für die Grundfarben zu bleiben.&lt;br /&gt;
&lt;br /&gt;
Hilfreich bei der Suche nach den Farbwerten ist der color picker: http://www.w3schools.com/tags/ref_colorpicker.asp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== CSS Class description ==&lt;br /&gt;
&lt;br /&gt;
Not all widgets support all classes&lt;br /&gt;
&lt;br /&gt;
* readonly : changing of state is not allowed&lt;br /&gt;
* wider : 25px extra space for the widget to the top&lt;br /&gt;
* narrow : shorter distant to the widget above&lt;br /&gt;
* w1x, w2x, w3x : set the widget to a fix width: 1x, 2x, 3x width&lt;br /&gt;
* small : font 80% size (label), small diameter for volume widget&lt;br /&gt;
* mini : lowest diameter for volume widget&lt;br /&gt;
* large : font 150% size&lt;br /&gt;
* big : font 200% size&lt;br /&gt;
* bigger : font 320% size&lt;br /&gt;
* thin : font thin&lt;br /&gt;
* darker : forecolor in gray&lt;br /&gt;
* hue-tick : draw ticks in color range&lt;br /&gt;
* hue-front : draw handle in color range&lt;br /&gt;
* hue-back : draw background in color range&lt;br /&gt;
* dim-tick : draw ticks in brightness range&lt;br /&gt;
* dim-front : draw handle in brightness range&lt;br /&gt;
* dim-back : draw background in brightness range&lt;br /&gt;
* red : foreground color red&lt;br /&gt;
* green : foreground color green&lt;br /&gt;
* blue : foreground color blue&lt;br /&gt;
* doublebox-v : container to place 2 small widgets (e.g. switch) one above the other&lt;br /&gt;
* doublebox-h : container to place 2 small widgets (e.g. switch) side by side&lt;br /&gt;
* timestamp : deliver the date time for the reading instead the value&lt;br /&gt;
* inline : positioning elements in a row, no line break&lt;br /&gt;
* top-space : 15px extra on top (top-space-2x -&amp;gt; 30px; top-space-3x -&amp;gt; 45px)&lt;br /&gt;
* left-space : 15px extra on left (left-space-2x -&amp;gt; 30px; left-space-3x -&amp;gt; 45px)&lt;br /&gt;
* right-space : 15px extra on right (right-space-2x -&amp;gt; 30px; right-space-3x -&amp;gt; 45px)&lt;br /&gt;
* blink : blink animatation for label or symbol widget&lt;br /&gt;
&lt;br /&gt;
== Positioning ==&lt;br /&gt;
&lt;br /&gt;
*container : new box or new row&lt;br /&gt;
*col-x-y : new column with x/y of width (col-1-3,col-2-3,col-1-2,col-1-4,col-1-8,col-1-5,col-2-5,col-3-5,col-4-5)&lt;br /&gt;
*inline : positioning elements in a row, no line break&lt;br /&gt;
*top-space : 15px extra on top (top-space-2x -&amp;gt; 30px; top-space-3x -&amp;gt; 45px)&lt;br /&gt;
*left-space : 15px extra on left (left-space-2x -&amp;gt; 30px; left-space-3x -&amp;gt; 45px)&lt;br /&gt;
*right-space : 15px extra on right (right-space-2x -&amp;gt; 30px; right-space-3x -&amp;gt; 45px)&lt;br /&gt;
*top-narrow : -15px closer on top (top-narrow-2x -&amp;gt; -30px; top-narrow-10 -&amp;gt; -10px)&lt;br /&gt;
*centered : horizontal centered&lt;br /&gt;
*left-align : align text left&lt;br /&gt;
*right-align : align text right&lt;br /&gt;
*wider : 15px extra space for the widget all around&lt;br /&gt;
*narrow : shorter distant to the widget above&lt;br /&gt;
*fullsize : 100% in width and height&lt;br /&gt;
&lt;br /&gt;
== Widgets -- Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
Zurzeit stehen 33 Widgets zur Verfügung:&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/button button]: Variante der push und switch Widgets, die entweder einen URL ansteuern oder einen Fhem-Befehl absetzen kann.&lt;br /&gt;
* [[#chart|chart]]: chart with similar capabilities as the FHEM plots &lt;br /&gt;
* [[#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;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/clicksound clicksound]: Mit dem Widget &amp;quot;clicksound&amp;quot; können Sounds an Click-Events von Elementen gebunden werden. &lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/clock clock]: Das Widget &amp;quot;clock&amp;quot; stellt eine einfach Uhr zur verfügung.&lt;br /&gt;
* [[#dimmer|dimmer]]: toogle button with a setter for on value&lt;br /&gt;
* [[#homestatus|homestatus]]: selector for 4 states (1=home, 2=night, 3=away, 4=holiday)&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;
* [[#image|image]]: insert an image, the URL is given by a reading&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/joinedlabel joinedlabel]: verbindet mehrere Readings zu einem Feld&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/klimatrend klimatrend]: wandelt Daten aus dem statistics-Modul in einen Pfeil um, der den aktuellen Trend anzeigt. &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;
* [[#label|label]]: ein state als Text anzeigen (Farbe einstellbar)&lt;br /&gt;
* [[#level|level]]: vertical/horizontal bar to show values between min/max value&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://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/multistatebutton multistatebutton]: Variante des push-Widgets das den set-Befehl abhängig vom gelesenen Status ändert.&lt;br /&gt;
* [[#pagetab|pagetab]]: Element to smoothly exchange the whole page with another page&lt;br /&gt;
* [[#playstream|playstream]]: Abspielen eines Webradio-Streams per Button&lt;br /&gt;
* [[#popup|popup]]: a popup dialog which open on click on another widget &lt;br /&gt;
* [[#progress|progress]]: round symbolic display for percent values&lt;br /&gt;
* [[#push|push]]: send any command to Fhem e.g. up / down&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/reload reload]: auslösen eine Pagereloads&lt;br /&gt;
* [[#rotor|rotor]]: Umschalten von zwei oder mehr Widgets an einer Position&lt;br /&gt;
* [[#select|select]]: Combobox to provide a list for selection&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/settimer settimer]: zum anzeigen und einstellen einer Uhrzeit.&lt;br /&gt;
* [[#simplechart|simplechart]]: simple XY line chart for one value (reads directly from Fhem log file) &lt;br /&gt;
* [[#slider|slider]]: vertical slider to select between min/max value&lt;br /&gt;
* [[#switch|switch]]: Toggle any command to Fhem (e.g. on / off)&lt;br /&gt;
* [[#symbol|symbol]]: State als Symbol darstellen (z.B. Fenster offen)&lt;br /&gt;
* [[#thermostat|thermostat]]: dial for heater thermostates to set desired value and show current value&lt;br /&gt;
* [[#volume|volume]]: dial to set a single value (e.g. 0-60)&lt;br /&gt;
* [[#weather|weather]]: insert an icon or image, represending a weather literal&lt;br /&gt;
* [https://github.com/nesges/Widgets-for-fhem-tablet-ui/wiki/wind_direction wind_direction]: Zeigt die Windrichtung auf einer Windrose an. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----------------------------------&lt;br /&gt;
&lt;br /&gt;
Für alle Widgets gilt:&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;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;chart&amp;quot;&amp;gt;&#039;&#039;&#039;CHART&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-logdevice&lt;br /&gt;
|name of the logdevice (e.g. FileLog_WohnzimmerHeizung) or array of names if more than one graph shall be displayed&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-logfile&lt;br /&gt;
|name of the logfile (e.g. WohnzimmerHeizung-2015.log) or or array of names if more than one graph shall be displayed&lt;br /&gt;
|&#039;-&#039; or omitting this data means current logfile&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-columnspec&lt;br /&gt;
|definition for how to find the values (e.g. &amp;quot;4:meas.*:1:int&amp;quot;) or or array of columnspecs if more than one graph shall be displayed&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-style&lt;br /&gt;
|name of the graph style to be used (e.g. &#039;SVGplot l0&#039; or &#039;ftui l0dash&#039;) or or array of styles if more than one graph shall be displayed using different stlyes. The standard fhem plot styles can be used furthermore there are some more predefined styles existing (details see css file). Own styles can be specified e.g. in the fhem-table-ui-user.css file.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-ptype&lt;br /&gt;
|name of the plot type (e.g. &#039;lines&#039; or &#039;fa-cog&#039;) or or array of plottypes if more than one graph shall be displayed. All fhem plot styles are supported. Additionally it is possible to specify symbols (currently supported are font awesome (&#039;fa-...&#039;), open automation (&#039;oa-...&#039;) and fhem symbols (&#039;fs-...&#039;))&lt;br /&gt;
|&#039;lines&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-uaxis&lt;br /&gt;
|name of the axis to be used (&#039;primary&#039; or &#039;secondary&#039;) or or array of axis&#039; to be used if more than one graph shall be displayed. The &#039;primary&#039; axis is labelled on the left side, the &#039;secondary&#039; axis is labelled on the right side&lt;br /&gt;
|&#039;primary&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-legend&lt;br /&gt;
|caption of the graph (used in the legend and at the cursor) or an array of legend texts if more than one graph shall be displayed.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-minvalue&lt;br /&gt;
|min Y value to Show or an array of values for dynamic minY for primary axis. A value of &#039;auto&#039; means that the value is calculated from the data displayed dynamically&lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-minvalue_sec&lt;br /&gt;
|min Y value to Show or an array of values for dynamic minY for secondary axis. A value of &#039;auto&#039; means that the value is calculated from the data displayed dynamically&lt;br /&gt;
|&#039;auto&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-maxvalue&lt;br /&gt;
|max Y value to Show or an array of values for dynamic maxY for primary axis. A value of &#039;auto&#039; means that the value is calculated from the data displayed dynamically&lt;br /&gt;
|30&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-maxvalue_sec&lt;br /&gt;
|max Y value to Show or an array of values for dynamic maxY for secondary axis. A value of &#039;auto&#039; means that the value is calculated from the data displayed dynamically&lt;br /&gt;
|&#039;auto&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-yticks&lt;br /&gt;
|value distance between Y tick lines (related to primary axis). A value of &#039;auto&#039; means that the value is calculated from the data displayed dynamically.&lt;br /&gt;
|&#039;auto&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-xticks&lt;br /&gt;
|time range between each X tick lines (in minutes). A value of &#039;auto&#039; means that the value is calculated from the data displayed dynamically&lt;br /&gt;
|&#039;auto&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-daysago_start&lt;br /&gt;
|number of days back from now for the start of the plot (0 means the plot starts from today 0:00). Additionally the x-axis start value can be set here unsing standard data formats like (&#039;2013-10-23&#039;), the time portion of the string is only used when &amp;lt;code&amp;gt;data-nofulldays&amp;lt;/code&amp;gt; is &#039;true&#039;.&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-daysago_end&lt;br /&gt;
|number of days back from now for the end of the plot (-1 means the plot ends today 24:00). Additionally the x-axis end value can be set here unsing standard data formats like (&#039;2013-10-23&#039;), the time portion of the string is only used when &amp;lt;code&amp;gt;data-nofulldays&amp;lt;/code&amp;gt; is &#039;true&#039;.&lt;br /&gt;
|-1&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-nofulldays&lt;br /&gt;
|switch to activate/deactivate rounding of the xaxis start and end values to full days (&#039;true&#039; or &#039;false&#039;)&lt;br /&gt;
|&#039;false&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-ytext&lt;br /&gt;
|text to be shown besides the primary y axis.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-ytext_sec&lt;br /&gt;
|text to be shown besides the secondary y axis.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-yunit&lt;br /&gt;
|unit of the value to show beside of each Y ticks for primary y axis.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-crosshair&lt;br /&gt;
|switch to activate/deactivate the crosshair cursor (&#039;true&#039; or &#039;false&#039;)&lt;br /&gt;
|&#039;false&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-cursorgroup&lt;br /&gt;
|number to define coupling of the crosshair cursor. The cursors of all charts having the same number are coupled and move together.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-scrollgroup&lt;br /&gt;
|number to define coupling of the scrolling (shift and zoom). All charts having the same number are scrolled (shifted and zoomed) together.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-showlegend&lt;br /&gt;
|switch to activate/deactivate the initial display of the legend window (&#039;true&#039; or &#039;false&#039;)&lt;br /&gt;
|&#039;false&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-yunit_sec&lt;br /&gt;
|unit of the value to show beside of each Y ticks for secondary y axis.&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-width&lt;br /&gt;
|fixed size for width (in&amp;amp;nbsp;% or px)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-height&lt;br /&gt;
|fixed size for height (in&amp;amp;nbsp;% or px)&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|fullsize, noticks, nobuttons&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;data-logfile&amp;lt;/code&amp;gt; can be omitted in this case the default value &amp;quot;-&amp;quot; will be used. This means that the current logfile is going to be used.&lt;br /&gt;
&lt;br /&gt;
There are several buttons that control the dynamic behaviour of the chart. The &amp;lt;-, -&amp;gt;, + and - buttons shift and zoom the displayed data. The &amp;quot;legend&amp;quot; and &amp;quot;cursor&amp;quot; buttons are switching on and off the display of the legend window and the crosshair cursor respectively.&lt;br /&gt;
&lt;br /&gt;
When the legend window is displayed, a click on the legend text shows/hides the respective graph. The legend window can be dragged to other positions on desktop browsers (currently not yet working for iOS and Android).&lt;br /&gt;
&lt;br /&gt;
The crosshair cursor currently only works dynamically on desktop browsers. On iOS and Android you have to tap on the screen to set the cursor to a new position.&lt;br /&gt;
&lt;br /&gt;
There is a number of css styles that control the visible appearance of the chart. The following classes are supported:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!CSS class name&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
!.chart-background&lt;br /&gt;
|Color etc. for the chart background&lt;br /&gt;
|-&lt;br /&gt;
!.text.axes&lt;br /&gt;
|Font and color for the chart axes&lt;br /&gt;
|-&lt;br /&gt;
!.buttons&lt;br /&gt;
|Size and color for the buttons (shift etc.)&lt;br /&gt;
|-&lt;br /&gt;
!.gridlines&lt;br /&gt;
|Size and color for gridlines generally&lt;br /&gt;
|-&lt;br /&gt;
!.xaxis&lt;br /&gt;
|Font, size and color for xaxis&lt;br /&gt;
|-&lt;br /&gt;
!.yaxis&lt;br /&gt;
|Font, size and color for yaxis&lt;br /&gt;
|-&lt;br /&gt;
!.xticks&lt;br /&gt;
|Font, size and color for xticks&lt;br /&gt;
|-&lt;br /&gt;
!.yticks&lt;br /&gt;
|Font, size and color for yticks&lt;br /&gt;
|-&lt;br /&gt;
!.crosshair&lt;br /&gt;
|Font, size and color (foreground/background) for the crosshair cursor&lt;br /&gt;
|-&lt;br /&gt;
!.caption&lt;br /&gt;
|Font, size and color for text buttons for legend and cursor switching&lt;br /&gt;
|-&lt;br /&gt;
!.legend&lt;br /&gt;
|Font, size and background color for legend window&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_chart|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;circlemenu&amp;quot;&amp;gt;&#039;&#039;&#039;CIRCLEMENU&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-item-diameter&lt;br /&gt;
|diameter of the circle&lt;br /&gt;
|52&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-circle-radius&lt;br /&gt;
|radius of each item, in pixel&lt;br /&gt;
|70&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-direction&lt;br /&gt;
|position of the items in relation to the center&lt;br /&gt;
|&#039;full&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-close-after&lt;br /&gt;
|closing time of the circle-menu&lt;br /&gt;
|(item-count + 1s) or a minimum of 4s&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|keepopen&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Optionen für data-direction: top | right | bottom | left | top-right | top-left | bottom-right | bottom-left | top-half | right-half | bottom-half | left-half | full | vertical | horizontal&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_circlemenu|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;dimmer&amp;quot;&amp;gt;&#039;&#039;&#039;DIMMER&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading to get from Fhem&lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-on&lt;br /&gt;
|value for ON status to get&lt;br /&gt;
|&#039;on&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-off&lt;br /&gt;
|value for OFF status to get&lt;br /&gt;
|&#039;off&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set&lt;br /&gt;
|(&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set-on&lt;br /&gt;
|value for ON status to set&lt;br /&gt;
|value of data-get-on&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set-off&lt;br /&gt;
|value for OFF status to set&lt;br /&gt;
|value of data-get-off&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-cmd&lt;br /&gt;
|name of the command (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &amp;lt;value&amp;gt;) (e.g. setstate, set, setreading, trigger)&lt;br /&gt;
|&#039;set&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-dim&lt;br /&gt;
|name of the reading responsible for dim (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) &lt;br /&gt;
|value of data-get-on&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-icon&lt;br /&gt;
|name of the font-awesome icon&lt;br /&gt;
|fa-lightbulb-o&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_dimmer|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;homestatus&amp;quot;&amp;gt;&#039;&#039;&#039;HOMESTATUS&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading to get from Fhem&lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set&lt;br /&gt;
|command to send to Fhem (&amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; &amp;lt;command&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-alias&lt;br /&gt;
|array of fix names to show only in the UI as an alias to the real states&lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-icons&lt;br /&gt;
|array of icons related to the data-get-on array&lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-version&lt;br /&gt;
|name of the status model e.g. &#039;residents&#039;,&#039;roommate&#039;,&#039;guest&#039; &lt;br /&gt;
|(default NULL)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The default version has 4 states: &#039;1&#039;,&#039;2&#039;,&#039;3&#039;,&#039;4&#039; The default aliases are &#039;Home&#039;,&#039;Night&#039;,&#039;Away&#039;,&#039;Holiday&#039;; data-version=&#039;residents&#039; or &#039;roommate&#039; or &#039;guest&#039; has 5 states (&#039;home&#039;,&#039;asleep&#039;,&#039;absent&#039;,&#039;gone&#039;,&#039;gotosleep&#039;) They have these aliases &#039;Home&#039;,&#039;Night&#039;,&#039;Away&#039;,&#039;Holiday&#039;,&#039;Retire&#039;&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_homestatus|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;image&amp;quot;&amp;gt;&#039;&#039;&#039;IMAGE&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading to get an URL from Fhem&lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-size&lt;br /&gt;
|width of the image in px or %, the height scales proportionally&lt;br /&gt;
|50%&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-url&lt;br /&gt;
|URL of the image to show (use data-url or data-device + data-get, not both)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-refresh&lt;br /&gt;
|Interval in seconds for image refresh for usage together with data-url&lt;br /&gt;
|900&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_image|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;label&amp;quot;&amp;gt;&#039;&#039;&#039;LABEL&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading to get from Fhem&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-fix&lt;br /&gt;
|keeping a specified number of decimals. &lt;br /&gt;
|&#039;-1&#039; -&amp;gt; non-numeric&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-part&lt;br /&gt;
|split position of the space separated value to show or an RegEx&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-colors&lt;br /&gt;
|a array of color values to affect the colour of the label according to the limit value&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-limits-get&lt;br /&gt;
|name of the DEVICE:Reading to colorize the label &lt;br /&gt;
|data-device:data-get&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-limits&lt;br /&gt;
|an array of numeric values to affect the colour of the Label&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-limits-part&lt;br /&gt;
|part number of the space separated value to show or a RegEx &lt;br /&gt;
|&#039;-1&#039; -&amp;gt; all&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-unit&lt;br /&gt;
|add a unit after a numeric value. use encoded strings e.g. &amp;quot;%B0C%0A&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-substitution&lt;br /&gt;
|regex-substitution to apply on the value. Standard regex notation (s/regex/subst/modifier) is expected&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|small, large, big, bigger, thin, red, green, blue, darker, timestamp, w1x, w2x, w3x, fixedlabel&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mit der Class &#039;fixedlabel&#039; kann man Label einbauen, die einen festen Text (direkt im HTML) haben, aber trotzdem die Farbe per Reading Value beeinflusst werden könnte.&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_label|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;level&amp;quot;&amp;gt;&#039;&#039;&#039;LEVEL&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading to get from Fhem&lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-min&lt;br /&gt;
|minimal value to set&lt;br /&gt;
|&#039;0&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-max&lt;br /&gt;
|maximal value to set&lt;br /&gt;
|&#039;100&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-on&lt;br /&gt;
|value where the slider moves to max&lt;br /&gt;
|&#039;on&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-off&lt;br /&gt;
|value where the slider moves to min&lt;br /&gt;
|&#039;off&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-colors&lt;br /&gt;
|a array of color values to affect the colour of the label according to the limit value&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-limits&lt;br /&gt;
|a array of numeric or RegEx values to affect the colour of the label&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|mini, horizontal&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_level|Link zu einem Beispiel]] (fehlt noch)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;pagetab&amp;quot;&amp;gt;&#039;&#039;&#039;PAGETAB&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-url&lt;br /&gt;
|URL of the new page to show&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-icon&lt;br /&gt;
|name of the font-awesome icon&lt;br /&gt;
|&#039;fa-power-off&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-background-icon&lt;br /&gt;
|name of the font-awesome icon for background &lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-on-background-color&lt;br /&gt;
|color of ON state&lt;br /&gt;
|&#039;#aa6900&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-off-background-color&lt;br /&gt;
|color of OFF state&lt;br /&gt;
|&#039;#505050&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-on-color&lt;br /&gt;
|color of ON state&lt;br /&gt;
|&#039;#aa6900&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-off-color&lt;br /&gt;
|color of Off state&lt;br /&gt;
|&#039;#505050&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-on&lt;br /&gt;
|array of status to assign a special icon-list from data-icons&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-icons&lt;br /&gt;
|array of icons related to the a data-get-on array&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|warn, activate (as additionals for data-icons)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_pagetab|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;playstream&amp;quot;&amp;gt;&#039;&#039;&#039;PLAYSTREAM&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-url&lt;br /&gt;
|URL des Radio-Streams&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading to get the control state from FHEM&lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-on&lt;br /&gt;
|value for PLAY status to get. &lt;br /&gt;
|&#039;on&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-off&lt;br /&gt;
|value for STOP status to get. &lt;br /&gt;
|&#039;off&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-volume&lt;br /&gt;
|name of the reading to get the volume value (0-100) &lt;br /&gt;
|volume&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_playstream|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;popup&amp;quot;&amp;gt;&#039;&#039;&#039;POPUP&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading where to get the alert value from&lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-on&lt;br /&gt;
|value which trigger to open the dialog&lt;br /&gt;
|&#039;on&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-off&lt;br /&gt;
|value which trigger to close the dialog &lt;br /&gt;
|&#039;off&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-width&lt;br /&gt;
|fixe size for width (in % or px)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-height&lt;br /&gt;
|fixe size for height (in % or px)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_popup|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;progress&amp;quot;&amp;gt;&#039;&#039;&#039;PROGRESS&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading to get from Fhem&lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-max&lt;br /&gt;
|maximal value to set or name of the reading which helds the max value&lt;br /&gt;
|100&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|novalue, percent&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_progress|Link zu einem Beispiel]] (fehlt noch)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;push&amp;quot;&amp;gt;&#039;&#039;&#039;PUSH&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default-Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set&lt;br /&gt;
|value to send to Fhem (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &amp;lt;value&amp;gt;)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set-on&lt;br /&gt;
|value to send when the the button get pressed oder ein Array zwischen dessen Werten umgeschaltet werden kann&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-icon&lt;br /&gt;
|name of the font-awesome icon&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-background-icon&lt;br /&gt;
|name of the font-awesome icon for background &lt;br /&gt;
|&#039;fa-circle&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-cmd&lt;br /&gt;
|name of the command (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &amp;lt;value&amp;gt;) (e.g. setstate, set, setreading, trigger)&lt;br /&gt;
|&#039;set&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-doubleclick&lt;br /&gt;
|timeout to wait for a second click or touch. &#039;0&#039; disables the doubleclick feature. &lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-countdown&lt;br /&gt;
|secondes for the countdown progress control &lt;br /&gt;
|autodetect from &#039;on-for-timer&#039; command&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_push|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;rotor&amp;quot;&amp;gt;&#039;&#039;&#039;ROTOR&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; | data-delay&lt;br /&gt;
|time in millisecondes to wait until next list item get shown&lt;br /&gt;
|3500&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|fade, rotate&lt;br /&gt;
|&#039;&#039; &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
Ohne Angabe von class erfolgt keine Animation.&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_rotor|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;select&amp;quot;&amp;gt;&#039;&#039;&#039;SELECT&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading that get the selected item of the list&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set&lt;br /&gt;
|name of the reading to set on Fhem (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;)&lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-list&lt;br /&gt;
|name of the reading to get a :-separated list from Fhem&lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-items&lt;br /&gt;
|an array of fix items to show in the selection box (alternative if data-list is empty)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-alias&lt;br /&gt;
|an array of fix names to show only in the selection box as an alias to the real items&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-cmd&lt;br /&gt;
|name of the command to send to Fhem (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &amp;lt;reading&amp;gt; &amp;lt;value&amp;gt;) (e.g. setstate, set, setreading, trigger)&lt;br /&gt;
|&#039;set&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-quote&lt;br /&gt;
|characters to enclose the send value&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|wider, w1x, w2x, w3x, large, big&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_select|Link zu einem Beispiel]]&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;div id=&amp;quot;simplechart&amp;quot;&amp;gt;&#039;&#039;&#039;SIMPLECHART&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-logdevice&lt;br /&gt;
|name of the logdevice (e.g. FileLog_WohnzimmerHeizung)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-logfile&lt;br /&gt;
|name of the logfile (e.g. WohnzimmerHeizung-2015.log)&lt;br /&gt;
|&#039;-&#039; means current logfile&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-columnspec&lt;br /&gt;
|definition for how to find the values (e.g. &amp;quot;4:meas.*:1:int&amp;quot;)&lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-minvalue&lt;br /&gt;
|min Y value to Show or an array of values for dynamic minY &lt;br /&gt;
|10&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-maxvalue&lt;br /&gt;
|max Y value to Show or an array of values for dynamic maxY &lt;br /&gt;
|30&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-yticks&lt;br /&gt;
|value distance between Y tick lines&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-xticks&lt;br /&gt;
|time range between each X tick line (in Minuten)&lt;br /&gt;
|360 minutes&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-daysago&lt;br /&gt;
|number of days back from now &lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-caption&lt;br /&gt;
|name of the chart to show as text &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-yunit&lt;br /&gt;
|unit of the value to show beside of each Y ticks&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-width&lt;br /&gt;
|fixe size for width (in % or px)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-height&lt;br /&gt;
|fixe size for height (in % or px)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|fullsize, noticks&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_simplechart|Link zu einem Beispiel]] (fehlt noch)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;data-logfile&amp;lt;/code&amp;gt; kann man auch weglassen, dann greift der Defaultwert &amp;quot;-&amp;quot;. Damit wird das neuste Logfile gelesen.&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;div id=&amp;quot;slider&amp;quot;&amp;gt;&#039;&#039;&#039;SLIDER&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading to get from Fhem&lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set&lt;br /&gt;
|command to send to Fhem (&amp;lt;code&amp;gt;set &amp;lt;device&amp;gt; &amp;lt;command&amp;gt; &amp;lt;value&amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-cmd&lt;br /&gt;
|name of the command (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &amp;lt;value&amp;gt;) (e.g. setstate, set, setreading, trigger)&lt;br /&gt;
|&#039;set&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-min&lt;br /&gt;
|minimal value to set&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-max&lt;br /&gt;
|maximal value to set&lt;br /&gt;
|100&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-on&lt;br /&gt;
|value where the slider moves to max&lt;br /&gt;
|&#039;on&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-off&lt;br /&gt;
|value where the slider moves to min&lt;br /&gt;
|&#039;off&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-value&lt;br /&gt;
|wenn true wird beim sliden der Wert angezeigt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-width&lt;br /&gt;
|width for horizontal sliders&lt;br /&gt;
|&#039;120px&#039;, for mini &#039;60px&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-height&lt;br /&gt;
|height for vertical sliders &lt;br /&gt;
|&#039;120px&#039;, for mini &#039;60px&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|Aussehen/Ausrichtung&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Für class steht mini, horizontal und negated (0 liegt oben) zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_slider|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;switch&amp;quot;&amp;gt;&#039;&#039;&#039;SWITCH&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML-Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default-Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|Name des Reading, was gelesen werden soll&lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-on&lt;br /&gt;
|Wert, bei dem zum Status ON geschaltet werden soll. &lt;br /&gt;
|&#039;on&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-off&lt;br /&gt;
|Wert, bei dem zum Status OFF geschaltet werden soll. &lt;br /&gt;
|&#039;off&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set-on&lt;br /&gt;
|Wert, der zu Fhem gesendet werden soll, wenn das Widget auf ON geschaltet wurde  &lt;br /&gt;
|Wert von data-get-on&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set-off&lt;br /&gt;
|Wert, der zu Fhem gesendet werden soll, wenn das Widget auf OFF geschaltet wurde &lt;br /&gt;
|Wert von data-get-off&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-cmd&lt;br /&gt;
|Kommando Name (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &amp;lt;value&amp;gt;) &amp;lt;br /&amp;gt;(z.B setstate, set, setreading, trigger) &lt;br /&gt;
|&#039;set&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-icon&lt;br /&gt;
|Name des Font-Awesome Icon. &lt;br /&gt;
|&#039;fa-lightbulb-o&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-background-icon&lt;br /&gt;
|Name des Font-Awesome Hintergrund Icon. &lt;br /&gt;
|&#039;fa-circle&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-on-color&lt;br /&gt;
|Widget Farbe beim Status ON &lt;br /&gt;
|&#039;#aa6900&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-off-color&lt;br /&gt;
|Widget Farbe beim Status OFF &lt;br /&gt;
|&#039;#505050&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;data-get-on&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;data-get-off&amp;lt;/code&amp;gt; accept also RegEx values. e.g. data-get-on=&amp;quot;[0-9]{1,3}|on&amp;quot; means set switch on if STATE is a numeric value or &#039;on&#039;. data-get-off=&amp;quot;!on&amp;quot; means accept all but the data-get-on value (negation)&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_switch|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;symbol&amp;quot;&amp;gt;&#039;&#039;&#039;SYMBOL&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|Name des Reading, was gelesen werden soll&lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-on&lt;br /&gt;
|value for ON status to get or an array of states. &lt;br /&gt;
|&#039;open&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-off&lt;br /&gt;
|value for OFF status to get. &lt;br /&gt;
|&#039;closed&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get-warn&lt;br /&gt;
|RegEx to extract reading part for warn icon.  &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-icon&lt;br /&gt;
|Name des font-awesome-Symbols  &lt;br /&gt;
|&#039;ftui-window&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-background-icon&lt;br /&gt;
|Hintergrundsymbol&lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-on-background-color&lt;br /&gt;
|Farbe für ON-Zustand.&lt;br /&gt;
|&#039;#aa6900&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-off-background-color&lt;br /&gt;
|Farbe für ON-Zustand.&lt;br /&gt;
|&#039;#505050&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-on-color&lt;br /&gt;
|Farbe für ON-Zustand.&lt;br /&gt;
|&#039;#aa6900&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-off-color&lt;br /&gt;
|Farbe für ON-Zustand.&lt;br /&gt;
|&#039;#505050&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-icons&lt;br /&gt;
|Array mit Icons zu data-get-on Array&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-on-colors&lt;br /&gt;
|array of colors related to the data-get-on array&lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-on-background-colors&lt;br /&gt;
|array of background-colors related to the data-get-on array&lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
To use multiple icons, data-get-on, data-icons and data-on-colors have to be an array with the same size. The value for one icon can also contain an additional animatation CSS name, e.g. &amp;quot;fa-exclamation-triangle fa-blink&amp;quot; for a blinking symbol. data-get-on and data-get-off accept also RegEx values. The value for one icon can also contain an additional animatation CSS name, e.g. &amp;quot;fa-exclamation-triangle fa-blink&amp;quot; for a blinking symbol&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_symbol|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;thermostat&amp;quot;&amp;gt;&#039;&#039;&#039;THERMOSTAT&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading to get from Fhem&lt;br /&gt;
|&#039;desired-temp&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-temp&lt;br /&gt;
|reading for measured temperature of thermostates&lt;br /&gt;
|&#039;measured-temp&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set&lt;br /&gt;
|command to send to Fhem (set &amp;lt;device&amp;gt; &amp;lt;command&amp;gt; &amp;lt;value&amp;gt;)&lt;br /&gt;
|&#039;desired-temp&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-valve&lt;br /&gt;
|reading for valve position of thermostates&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-min&lt;br /&gt;
|minimal value to set&lt;br /&gt;
| 10&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-max&lt;br /&gt;
|maximal value to set&lt;br /&gt;
| 30&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-minColor&lt;br /&gt;
|Farbe des Keises für Min&lt;br /&gt;
| #4477FF&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-maxColor&lt;br /&gt;
|Farbe des Kreises für Max, zwischen Min und Max wird linear interpoliert &lt;br /&gt;
| #FF0000&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-step&lt;br /&gt;
|step size for value adjustment e.g. 0.5 &lt;br /&gt;
|1&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-bgColor&lt;br /&gt;
|Die Farbe der Kreises zwischen den ticks&lt;br /&gt;
|&#039;transparent&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-fgColor&lt;br /&gt;
|Die Farbe der zahl im Kreismittelpunkt&lt;br /&gt;
|#bbbbbb&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-tkColor&lt;br /&gt;
|Die Farbe der ticks&lt;br /&gt;
|#696969&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-angleOffset&lt;br /&gt;
|Start der ticks im Kreis (in Winkelgraden, 0 = oben)&lt;br /&gt;
| -120&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-angleArc&lt;br /&gt;
|Bereich der ticks im Kreis (in Winkelgraden)&lt;br /&gt;
|240&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|big, readonly&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_thermostat|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;volume&amp;quot;&amp;gt;&#039;&#039;&#039;VOLUME&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading to get from Fhem &lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-set&lt;br /&gt;
|command to send to Fhem (set &amp;lt;device&amp;gt; &amp;lt;command&amp;gt; &amp;lt;value&amp;gt;)&lt;br /&gt;
|&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;rigth&amp;quot; |data-cmd&lt;br /&gt;
|name of the command (&amp;lt;command&amp;gt; &amp;lt;device&amp;gt; &amp;lt;value&amp;gt;) (e.g. setstate, set, setreading, trigger) &lt;br /&gt;
|&#039;set&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-min&lt;br /&gt;
|minimal value to set&lt;br /&gt;
|0&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-max&lt;br /&gt;
|maximal value to set&lt;br /&gt;
|70&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |class&lt;br /&gt;
|small, hue-tick, hue-front, hue-back, dim-tick ,dim-front, dim-back&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_volume|Link zu einem Beispiel]] (fehlt noch)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;weather&amp;quot;&amp;gt;&#039;&#039;&#039;WEATHER&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!HTML Attribut&lt;br /&gt;
!Beschreibung&lt;br /&gt;
!Default Wert&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-get&lt;br /&gt;
|name of the reading to get the weather literal from Fhem&lt;br /&gt;
|&#039;STATE&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-imageset&lt;br /&gt;
|collection of images to display current weather situation. Possible values: &#039;meteocons&#039;, &#039;kleinklima&#039;&lt;br /&gt;
|&#039;meteocons&#039;&lt;br /&gt;
|-&lt;br /&gt;
!align=&amp;quot;right&amp;quot; |data-image-path&lt;br /&gt;
|path to the images of the selected imageset&lt;br /&gt;
|/images/weather/&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[#Beispiel_weather|Link zu einem Beispiel]]&lt;br /&gt;
&lt;br /&gt;
== Widgets -- Beispiele ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_chart&amp;quot;&amp;gt;&#039;&#039;&#039;Chart&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Display a chart with similar capabilities as the FHEM plots&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;normal&amp;quot;&amp;gt;&lt;br /&gt;
	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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:chart_tabletUI.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_circlemenu&amp;quot;&amp;gt;&#039;&#039;&#039;Circlemenu&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cover a lot of other button behind one single button&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&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;circlemenu&amp;quot; class=&amp;quot;cell circlemenu&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;ul class=&amp;quot;menu&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&amp;lt;div data-type=&amp;quot;push&amp;quot; data-icon=&amp;quot;fa-wrench&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;AvReceiver&amp;quot; &lt;br /&gt;
               data-set=&amp;quot;remoteControl subwoofer-temporary-level -6&amp;quot; &lt;br /&gt;
               data-icon=&amp;quot;&amp;quot;&amp;gt;-6&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;AvReceiver&amp;quot; &lt;br /&gt;
               data-set=&amp;quot;remoteControl subwoofer-temporary-level -2&amp;quot; &lt;br /&gt;
               data-icon=&amp;quot;&amp;quot;&amp;gt;-2&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;AvReceiver&amp;quot; &lt;br /&gt;
               data-set=&amp;quot;remoteControl subwoofer-temporary-level 0&amp;quot; &lt;br /&gt;
               data-icon=&amp;quot;&amp;quot;&amp;gt;0&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;AvReceiver&amp;quot; &lt;br /&gt;
               data-set=&amp;quot;remoteControl subwoofer-temporary-level +3&amp;quot; &lt;br /&gt;
               data-icon=&amp;quot;&amp;quot;&amp;gt;2&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;AvReceiver&amp;quot; &lt;br /&gt;
               data-set=&amp;quot;remoteControl subwoofer-temporary-level +9&amp;quot; &lt;br /&gt;
               data-icon=&amp;quot;&amp;quot;&amp;gt;9&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;&amp;lt;div data-type=&amp;quot;push&amp;quot; data-device=&amp;quot;AvReceiver&amp;quot; &lt;br /&gt;
               data-set=&amp;quot;remoteControl subwoofer-temporary-level +C&amp;quot; &lt;br /&gt;
               data-icon=&amp;quot;&amp;quot;&amp;gt;12&amp;lt;/div&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;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;Woofer&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:circlemenu_tabletUI.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_dimmer&amp;quot;&amp;gt;&#039;&#039;&#039;Dimmer&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dimmer Widget Beispiel für Philips Hue&lt;br /&gt;
&lt;br /&gt;
Minimalvariante&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&amp;lt;div data-type=&amp;quot;dimmer&amp;quot; data-device=&amp;quot;HUEDevice1&amp;quot;&lt;br /&gt;
        data-get-on=&amp;quot;!off&amp;quot; data-get-off=&amp;quot;off&amp;quot;&lt;br /&gt;
        data-set=&amp;quot;pct&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mit Anzeige der Dimstufe&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;dimmer&amp;quot; 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; 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; data-set-off=&amp;quot;off&amp;quot;&lt;br /&gt;
       data-dim=&amp;quot;pct&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dimmer Widget für MilightDevice&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;dimmer&amp;quot;&lt;br /&gt;
  data-device=&amp;quot;SonstWas&amp;quot;&lt;br /&gt;
  data-get=&amp;quot;brightness&amp;quot;&lt;br /&gt;
  data-get-off=&amp;quot;0&amp;quot;&lt;br /&gt;
  data-get-on=&amp;quot;[1-9][0-9]*&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;dim&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;
&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_homestatus&amp;quot;&amp;gt;&#039;&#039;&#039;Homestatus&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel rechts im Bild:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;homestatus&amp;quot; data-device=&#039;dummy1&#039;&lt;br /&gt;
       data-get-on=&#039;[&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;,&amp;quot;3&amp;quot;,&amp;quot;4&amp;quot;]&#039;&lt;br /&gt;
       data-alias=&#039;[&amp;quot;Home&amp;quot;,&amp;quot;Night&amp;quot;,&amp;quot;Away&amp;quot;,&amp;quot;Holiday&amp;quot;]&#039;&lt;br /&gt;
       data-icons=&#039;[&amp;quot;fa-home&amp;quot;,&amp;quot;fa-bed&amp;quot;,&amp;quot;fa-car&amp;quot;,&amp;quot;fa-suitcase&amp;quot;]&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel links im Bild:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;homestatus&amp;quot; data-device=&#039;dummy1&#039;&lt;br /&gt;
        data-get-on=&#039;[&amp;quot;home&amp;quot;,&amp;quot;asleep&amp;quot;,&amp;quot;absent&amp;quot;,&amp;quot;gone&amp;quot;,&amp;quot;gotosleep&amp;quot;]&#039;&lt;br /&gt;
        data-alias=&#039;[&amp;quot;Home&amp;quot;,&amp;quot;Night&amp;quot;,&amp;quot;Away&amp;quot;,&amp;quot;Holiday&amp;quot;,&amp;quot;Retire&amp;quot;]&#039;&lt;br /&gt;
        data-icons=&#039;[&amp;quot;fa-fire&amp;quot;,&amp;quot;fa-film&amp;quot;,&amp;quot;fa-plus&amp;quot;,&amp;quot;fa-car&amp;quot;,&amp;quot;fa-tint&amp;quot;]&#039;&lt;br /&gt;
        data-version=&#039;residents&#039;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:homestatus_tabletUI.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_image&amp;quot;&amp;gt;&#039;&#039;&#039;Image&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Erzeugt ein Widget mit einem Bild aus dem www, das alle 5 Sekunden aktualisiert wird (hier eine Wetterkarte vom DWD).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;image&amp;quot;&lt;br /&gt;
     data-size=&amp;quot;80%&amp;quot;&lt;br /&gt;
     data-url=&amp;quot;http://www.dwd.de/wundk/wetter/de/Deutschland.jpg&amp;quot;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:image_tabletUI.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example for how to add an image to the dashboard which its URL is delivered by a Fhem module like PROPLANTA:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;image&amp;quot; data-device=&amp;quot;Wetter1&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;fc0_weatherDayIcon&amp;quot; &lt;br /&gt;
     data-size=&amp;quot;40px&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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_label&amp;quot;&amp;gt;&#039;&#039;&#039;Label&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example for HM-WDS40-TH-I Funk-Temperatur-/Feuchtesensor innen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
STATE   T: 20.0 H: 61&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;THSensorWZ&amp;quot; &lt;br /&gt;
     data-part=&amp;quot;2&amp;quot; data-unit=&amp;quot;%B0C%0A&amp;quot; class=&amp;quot;cell big&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;Temperatur&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;THSensorWZ&amp;quot; data-part=&amp;quot;4&amp;quot; &lt;br /&gt;
     data-unit=&amp;quot;%&amp;quot; class=&amp;quot;cell big&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;Luftfeuchte&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But the same result can reached by getting single readings:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
humidity    58&lt;br /&gt;
temperature 20.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;THSensorWZ&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;temperature&amp;quot; data-unit=&amp;quot;%B0C%0A&amp;quot; class=&amp;quot;cell big&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;Temperatur&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; data-device=&amp;quot;THSensorWZ&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;humidity&amp;quot; data-unit=&amp;quot;%&amp;quot; class=&amp;quot;cell big&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;Luftfeuchte&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example for how to influence the color of the label according to value limits&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;OutTemp&amp;quot; &lt;br /&gt;
     data-limits=&#039;[-73,10,23]&#039; &lt;br /&gt;
     data-colors=&#039;[&amp;quot;#6699FF&amp;quot;,&amp;quot;#AA6900&amp;quot;,&amp;quot;#FF0000&amp;quot;]&#039; &lt;br /&gt;
     data-unit=&amp;quot;%B0C%0A&amp;quot; &lt;br /&gt;
     class=&amp;quot;cell big&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example for how to create a widget for shutter via push: show state and set up/down&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;wzRollo&amp;quot; &lt;br /&gt;
     data-get-on=&amp;quot;up&amp;quot; &lt;br /&gt;
     data-get-off=&amp;quot;down&amp;quot; &lt;br /&gt;
     data-icon=&amp;quot;fa-bars&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 data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
     class=&amp;quot;cell&amp;quot;&amp;gt;Rollo&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example for how to create a label for a time value in short format with usage of RegEx.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;label&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;dummy1&amp;quot; &lt;br /&gt;
     data-part=&amp;quot;(\d\d\.\d\d\.).*&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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example for how to show two labels in one line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;div type=&amp;quot;label&amp;quot; device=&amp;quot;OnSunrise&amp;quot; class=&amp;quot;inline&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;bis&lt;br /&gt;
   &amp;lt;div type=&amp;quot;label&amp;quot; device=&amp;quot;OnSunset&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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel für die Anzeige des UV-Indexes und der Abhängigkeit der anzuzeigenden Farbe.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;wider cell bigger&amp;quot; data-device=&amp;quot;ProVorhersage&amp;quot;&lt;br /&gt;
        data-get=&amp;quot;fc0_uv&amp;quot;&lt;br /&gt;
        data-limits=&amp;quot;[-2, 2, 5, 7, 10]&amp;quot; &lt;br /&gt;
	data-colors=&#039;[&amp;quot;#66FF33&amp;quot;,&amp;quot;#FFFF00&amp;quot;,&amp;quot;#FF6600&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#993399&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot; data-device=&amp;quot;ProVorhersage&amp;quot; data-get=&amp;quot;fc0_date&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;wider cell bigger&amp;quot; data-device=&amp;quot;ProVorhersage&amp;quot;&lt;br /&gt;
        data-get=&amp;quot;fc1_uv&amp;quot;&lt;br /&gt;
	data-limits=&amp;quot;[-2, 2, 5, 7, 10]&amp;quot;&lt;br /&gt;
	data-colors=&#039;[&amp;quot;#66FF33&amp;quot;,&amp;quot;#FFFF00&amp;quot;,&amp;quot;#FF6600&amp;quot;,&amp;quot;#FF0000&amp;quot;,&amp;quot;#993399&amp;quot;]&#039;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
   &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot; data-device=&amp;quot;ProVorhersage&amp;quot; data-get=&amp;quot;fc1_date&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:label_tabletUI.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_pagetab&amp;quot;&amp;gt;&#039;&#039;&#039;Pagetab&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example for a tab menu to switch smoothly between multiple pages. Multiple pagetabs in a template file: menu.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;header&amp;gt;MENU&amp;lt;/header&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;pagetab&amp;quot; data-url=&amp;quot;index.html&amp;quot;  data-icon=&amp;quot;fa-home&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;pagetab&amp;quot; data-url=&amp;quot;index_2.html&amp;quot; data-icon=&amp;quot;fa-sliders&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;pagetab&amp;quot; data-url=&amp;quot;index_3.html&amp;quot; data-icon=&amp;quot;fa-music&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;pagetab&amp;quot; data-url=&amp;quot;index_4.html&amp;quot; data-icon=&amp;quot;fa-hotel&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;pagetab&amp;quot; data-url=&amp;quot;index_5.html&amp;quot; data-icon=&amp;quot;fa-music&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;pagetab&amp;quot; data-url=&amp;quot;index_6.html&amp;quot; data-icon=&amp;quot;fa-database&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
        &amp;lt;div data-type=&amp;quot;pagetab&amp;quot; data-url=&amp;quot;index_7.html&amp;quot; data-icon=&amp;quot;fa-fax&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_playstream&amp;quot;&amp;gt;&#039;&#039;&#039;Playstream&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erzeugt einen Knopf zum direkten Abspielen eines Webradio-Streams.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
     &amp;lt;div data-type=&amp;quot;playstream&amp;quot; data-url=&amp;quot;http://radioeins.de/stream&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
     &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;darker&amp;quot;&amp;gt;Radio eins&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_push&amp;quot;&amp;gt;&#039;&#039;&#039;Push&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example for how to create a push button widget to trigger all devices on:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&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=&amp;quot;on&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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel für zwei horizontale Buttons:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cell&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 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=&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=&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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:push1.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Beispiel für zwei quadratische vertikale Buttons:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cell&amp;quot;&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=&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=&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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:push2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_rotor&amp;quot;&amp;gt;&#039;&#039;&#039;Rotor&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example for a rotor widget, which switches between to days of weather forecast&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;rotor&amp;quot; class=&amp;quot;fade&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;darker&amp;quot;&amp;gt;Heute&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;fc0_weatherDay&amp;quot; class=&amp;quot;big&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;fc0_weatherDay&amp;quot; class=&amp;quot;&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;fc0_tempMax&amp;quot; data-unit=&amp;quot;%B0C%0A&amp;quot; class=&amp;quot;large&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;darker&amp;quot;&amp;gt;Morgen&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;fc1_weatherDay&amp;quot; class=&amp;quot;big&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;fc1_weatherDay&amp;quot; class=&amp;quot;&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;fc1_tempMax&amp;quot; data-unit=&amp;quot;%B0C%0A&amp;quot; class=&amp;quot;large&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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_select&amp;quot;&amp;gt;&#039;&#039;&#039;Select&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Erzeugt zwei Comboboxen zur Auswahl des Eingang eines 2-Zonen-AV-Receivers. Die Liste für Zone2 ist fest, die Liste für Zone1 wird von Fhem übergeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cell wider&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline wider&amp;quot;&amp;gt;Zone2&amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div data-type=&amp;quot;select&amp;quot; data-device=&amp;quot;AvReceiverZ2&amp;quot; data-items=&#039;[&amp;quot;Airplay&amp;quot;,&amp;quot;Webradio&amp;quot;,&amp;quot;BD/DVD&amp;quot;,&amp;quot;PHONO&amp;quot;]&#039; data-get=&amp;quot;input&amp;quot; data-set=&amp;quot;input&amp;quot; class=&amp;quot;cell w2x&amp;quot; &amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;inline&amp;quot;&amp;gt;Zone1&amp;lt;/div&amp;gt;&lt;br /&gt;
          &amp;lt;div data-type=&amp;quot;select&amp;quot; data-device=&amp;quot;AvReceiver&amp;quot; data-list=&amp;quot;inputs&amp;quot; data-get=&amp;quot;input&amp;quot; data-set=&amp;quot;input&amp;quot; class=&amp;quot;cell w2x&amp;quot; &amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:select_tabeltUI.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_slider&amp;quot;&amp;gt;&#039;&#039;&#039;Slider&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Slider mit einstellbaren Werten von 10 bis 90:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&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 data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;Light1&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:slider_tabletUI.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Horizontal angeordneter Slider:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:slider_tabletUI2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_switch&amp;quot;&amp;gt;&#039;&#039;&#039;Switch&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Schalter. Usage of RegEx pattern for state request:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;switch&amp;quot; class=&amp;quot;cell&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;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:switch.png]]&lt;br /&gt;
&lt;br /&gt;
Beispiel für eine Gruppe von Schaltern, um zwischen vier verschiedenen Werten eines device umzuschalten:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;cell left&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&amp;quot;dummy1&amp;quot; &lt;br /&gt;
      data-get-off=&amp;quot;((?!Wert1).)*&amp;quot; &lt;br /&gt;
      data-get-on=&amp;quot;Wert1&amp;quot; class=&amp;quot;cell&amp;quot; &amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;Wert1&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; &lt;br /&gt;
      data-get-off=&amp;quot;((?!Wert2).)*&amp;quot; &lt;br /&gt;
      data-get-on=&amp;quot;Wert2&amp;quot; class=&amp;quot;cell&amp;quot; &amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;Wert2&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; &lt;br /&gt;
      data-get-off=&amp;quot;((?!Wert3).)*&amp;quot; &lt;br /&gt;
      data-get-on=&amp;quot;Wert3&amp;quot; class=&amp;quot;cell&amp;quot; &amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;Wert3&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; &lt;br /&gt;
      data-get-off=&amp;quot;((?!Wert4).)*&amp;quot; &lt;br /&gt;
      data-get-on=&amp;quot;Wert4&amp;quot; class=&amp;quot;cell&amp;quot; &amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;div data-type=&amp;quot;label&amp;quot; class=&amp;quot;cell&amp;quot;&amp;gt;Wert4&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:switch4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_symbol&amp;quot;&amp;gt;&#039;&#039;&#039;Symbol&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example for a tristate icon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-device=&amp;quot;dummy1&amp;quot; &lt;br /&gt;
     data-get-on=&#039;[&amp;quot;wert1&amp;quot;,&amp;quot;wert2&amp;quot;,&amp;quot;wert3&amp;quot;]&#039; &lt;br /&gt;
     data-icons=&#039;[&amp;quot;fa-arrow-up&amp;quot;,&amp;quot;fa-user&amp;quot;,&amp;quot;fa-arrow-down&amp;quot;]&#039; &lt;br /&gt;
     data-on-colors=&#039;[&amp;quot;SeaGreen&amp;quot;,&amp;quot;SlateBlue&amp;quot;,&amp;quot;IndianRed&amp;quot;]&#039; &lt;br /&gt;
     class=&amp;quot;cell big&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example for a tristate icon with blink and spin animation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-device=&amp;quot;dummy1&amp;quot; &lt;br /&gt;
     data-icons=&#039;[&amp;quot;fa-exclamation-triangle fa-blink&amp;quot;,&amp;quot;fa-exclamation-circle&amp;quot;,&amp;quot;fa-cog fa-spin&amp;quot;]&#039; &lt;br /&gt;
     data-on-colors=&#039;[&amp;quot;Crimson&amp;quot;,&amp;quot;GoldenRod&amp;quot;,&amp;quot;SeaGreen&amp;quot;]&#039; &lt;br /&gt;
     data-get-on=&#039;[&amp;quot;Wert1&amp;quot;,&amp;quot;Wert2&amp;quot;,&amp;quot;Wert3&amp;quot;]&#039; &amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example for a battery level control with RegEx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-device=&amp;quot;BadHeizung&amp;quot; data-get=&amp;quot;batteryLevel&amp;quot;&lt;br /&gt;
     data-icons=&#039;[&amp;quot;oa-measure_battery_100&amp;quot;,&amp;quot;oa-measure_battery_75&amp;quot;,&amp;quot;oa-measure_battery_50&amp;quot;,&amp;quot;oa-measure_battery_25&amp;quot;,&amp;quot;oa-measure_battery_0&amp;quot;]&#039;&lt;br /&gt;
     data-get-on=&#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-on-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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example for a battery level control with greater-equal compare and 90° rotated symbols&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-device=&amp;quot;BadHeizung&amp;quot; data-get=&amp;quot;batteryLevel&amp;quot;&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-get-on=&#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-on-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;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_thermostat&amp;quot;&amp;gt;&#039;&#039;&#039;Thermostat&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configure as data-device=&#039;...&#039; that item which delivers temp and desired-temp as reading.&lt;br /&gt;
&lt;br /&gt;
Default parameters are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data-get=&amp;quot;desired-temp&amp;quot; data-temp=&amp;quot;measured-temp&amp;quot; data-set=&amp;quot;desired-temp&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefor for HomaMatic HM-CC-RT-DN this is sufficient.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;thermostat&amp;quot; data-device=&#039;KH_Clima&#039; class=&amp;quot;cell&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The long format looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;thermostat&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;KH_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; &lt;br /&gt;
     class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example for MAX!:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;thermostat&amp;quot; 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; &lt;br /&gt;
    class=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wigets will show the valve value only in case of a valid data-valve attribute. The default for data-valve ist null. That means, a empty data-valve attribute hides the valve label for the widget.&lt;br /&gt;
&lt;br /&gt;
[[Datei:thermostat.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;Beispiel_weather&amp;quot;&amp;gt;&#039;&#039;&#039;Weather&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das Widget fügt ein dem Wetter entsprechendes Bild ein. Die Daten können durch Fhem-Module wie [[PROPLANTA]], [[OPENWEATHER]] und [[Weather]] bereitgestellt werden. &lt;br /&gt;
Add &#039;big&#039; or &#039;bigger&#039; to CSS class to get a bigger weather icon.&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;weather&amp;quot; &lt;br /&gt;
     data-device=&amp;quot;Weather&amp;quot; &lt;br /&gt;
     data-get=&amp;quot;fc0_weatherDay&amp;quot; &lt;br /&gt;
     class=&amp;quot;cell big&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:weather.png]]&lt;br /&gt;
&lt;br /&gt;
== Icon-Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
* Eingebaute Icons: Diese haben das ftui-Präfix. Zurzeit sind folgende verfügbar: ftui-window, ftui-door&lt;br /&gt;
&lt;br /&gt;
* Mehr als 500 Icons von &amp;quot;http://fortawesome.github.io/Font-Awesome/icons&amp;quot; verfügbar. Einfach den Icon-Namen angeben (Suffix &amp;quot;fa-&amp;quot; nicht vergessen, Z.B. &amp;lt;code&amp;gt;data-icon=&amp;quot;fa-volume-up&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Es stehen auch Openautomation Font-Files zur Verfügung. Wer sie nutzen möchte, muss folgende Stylesheets in die index.html hinzufügen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/fhem/tablet/lib/openautomation.css&amp;quot; /&amp;gt;&lt;br /&gt;
   &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;/fhem/tablet/lib/fhemSVG.css&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese font icons haben das Präfix &#039;fs-&#039; bzw. &#039;oa-&#039;.&lt;br /&gt;
&lt;br /&gt;
Beispiel bei einem Schalter:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;div data-type=&amp;quot;switch&amp;quot; data-device=&#039;dummy1&#039; data-icon=&amp;quot;oa-secur_locked&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Und so als großes Symbol:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div data-type=&amp;quot;symbol&amp;quot; data-device=&#039;dummy1&#039;&lt;br /&gt;
        data-icon=&amp;quot;oa-status_frost&amp;quot;&lt;br /&gt;
        data-on-color=&amp;quot;#bb3232&amp;quot;&lt;br /&gt;
        data-get-on=&amp;quot;on&amp;quot;&lt;br /&gt;
        data-get-off=&amp;quot;!on&amp;quot;&lt;br /&gt;
        class=&amp;quot;bigger&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Icons kann man auch etwas dicker darstellen mit den Zusatz bold: &amp;lt;code&amp;gt;data-icon=&amp;quot;oa-secur_locked bold&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Namen der verfügbaren Icons findet man auch in den CSS Files (openautomation.css / fhemSVG.css)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spezial ==&lt;br /&gt;
Folgender Befehl 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;pre&amp;gt;&lt;br /&gt;
     &amp;lt;div onclick=&amp;quot;setFhemStatus(&#039;set dummy1 off&#039;)&amp;quot;&amp;gt;All off!&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&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|FHEM Tablet UI FAQ]] zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://forum.fhem.de/index.php/topic,34233.0.html Forums-Beitrag]&lt;br /&gt;
* [https://github.com/knowthelist/fhem-tablet-ui Projekt auf Github]&lt;br /&gt;
* [http://forum.fhem.de/index.php/topic,37378.0.html 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 Frontends]]&lt;/div&gt;</summary>
		<author><name>UniqueCK</name></author>
	</entry>
</feed>