<?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=Wvhn</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=Wvhn"/>
	<link rel="alternate" type="text/html" href="http://wiki.fhem.de/wiki/Spezial:Beitr%C3%A4ge/Wvhn"/>
	<updated>2026-04-15T21:44:27Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/IconHighlights_in_Menus&amp;diff=40810</id>
		<title>SmartVISU/IconHighlights in Menus</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/IconHighlights_in_Menus&amp;diff=40810"/>
		<updated>2026-02-22T09:42:15Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Ergänzung um Verweis auf Beispiele und Doku&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU/IconHighlights in Menus}}&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Code lassen sich, zum Beispiel innerhalb vom Hauptmenu oder in der Raumübersicht die Icons farbig kennzeichnen.&lt;br /&gt;
&lt;br /&gt;
Bis smartVISU v2.6&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;a href=&amp;quot;index.php?page=room_living&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img class=&amp;quot;icon&amp;quot; src=&amp;quot;{{ page == &#039;room_living&#039; ? icon1 : icon0 }}scene_livingroom.png&amp;quot;/&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;h3&amp;gt;Wohnzimmer&amp;lt;/h3&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ab smartVISU v2.7 werden svg-Icons verwendet und deren Stile mit Klassen festgelegt:  &lt;br /&gt;
 &amp;lt;a class=&amp;quot;icon1&amp;quot; href=&amp;quot;index.php?page=room_living&amp;quot; &amp;gt;&lt;br /&gt;
 &amp;lt;img class=&amp;quot;icon{% if page == &#039;room_living&#039; %} icon1 {% else %} icon0{% endif %}&amp;quot; src=&amp;quot;&amp;lt;nowiki&amp;gt;{{ icon0 }}&amp;lt;/nowiki&amp;gt;scene_livingroom.svg&amp;quot; alt=&amp;quot;Wohnzimmer&amp;quot; /&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;h3&amp;gt;Wohnzimmer&amp;lt;/h3&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ab smartVISU v3.4 gibt es die Designs mit Dark Mode. Hier ist es sinnvoll, im Raummenü die folgende Schreibweise zu nutzen:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;a href=&amp;quot;index.php?page=room_living&amp;quot;&amp;gt;&lt;br /&gt;
     {{ lib.svgimg (&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;scene livingroom.svg&#039;, page == &#039;room_living&#039;?&#039;icon1&#039;:&#039;icon0&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   &amp;lt;nowiki&amp;gt;&amp;lt;h3&amp;gt;Wohnzimmer&amp;lt;/h3&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Vorteil dieser Methode ist zusätzlich, dass das Icon schon während des Renderns durch Twig eingebettet wird und damit vom smartVISU-Cache gespeichert wird.  Das bewirkt bei großen Seiten deutliche Performancegewinne auf langsamen Servern. &lt;br /&gt;
&lt;br /&gt;
Wenn der Code in einem übergeordneten List-Element ist, muss dieses noch die Klasse&lt;br /&gt;
 class=&amp;quot;ui-li-has-thumb&amp;quot;&lt;br /&gt;
erhalten. Alle Beispielseiten (z.B. example1.smarthome‘) sind auf diese Schreibweise umgestellt, so dass der Code von dort kopiert werden kann. &lt;br /&gt;
&lt;br /&gt;
Neben / statt der Klasse können dem SVG im Widget &#039;lib.svgimg‘ mit dem vierten Parameter noch weitere CSS-Eigenachaften zugewiesen werden. Siehe dazu in der Inline-Doku den Menüpunkt „Icons“.&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/fritz!box_via_TR-064&amp;diff=40809</id>
		<title>SmartVISU/fritz!box via TR-064</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/fritz!box_via_TR-064&amp;diff=40809"/>
		<updated>2026-02-21T21:57:07Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: /* fritz!box_via_TR-064 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU/fritz!box via TR-064}}&lt;br /&gt;
&lt;br /&gt;
==fritz!box_via_TR-064==&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Update Februar 2026:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Service &amp;quot;fritz!box_TR-064.php&amp;quot; ist seit smartVISU v2.9 Bestandteil des Pakets. Ein Download ist nicht mehr erforderlich.&lt;br /&gt;
&lt;br /&gt;
Dieser Service verwendet TR-064 zum Auslesen der Anruferliste. Es ist ein Protokoll das nahe am UPnP Standard ist (SOAP).&lt;br /&gt;
Getestet wurde es mit den FritzOS Versionen ab v6.03 (aktuell v8.20).&lt;br /&gt;
&lt;br /&gt;
Der Service wird auf der smartVISU Config-Seite ausgewählt und es muss Benutzer und Passwort der Fritzbox angegeben werden.&lt;br /&gt;
Wichtig ist, dass in der Fritzbox unter -&amp;gt;Heimnetz-&amp;gt;Netzwerk-&amp;gt;Netzwerkeinstellungen-&amp;gt;&amp;quot;Zugriff für Anwendungen zulassen&amp;quot; aktiviert ist.&lt;br /&gt;
&lt;br /&gt;
Die von dem Service bereitgestellten Daten werden von den Widgets  phone.list und phone.missedlist in der Visu dargestellt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/Universelle_ZeitSchaltUhr_(UZSU)&amp;diff=40252</id>
		<title>SmartVISU/Universelle ZeitSchaltUhr (UZSU)</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/Universelle_ZeitSchaltUhr_(UZSU)&amp;diff=40252"/>
		<updated>2025-06-09T19:05:04Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Initialisierung UZSU-Dict ergänzt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU/Universelle ZeitSchaltUhr (UZSU)}}&lt;br /&gt;
Dieser Artikel behandelt die Einrichtung einer universellen Zeitschaltuhr innerhalb des Frontends [[smartVISU]]. &lt;br /&gt;
&lt;br /&gt;
==== UZSU-Widget ====&lt;br /&gt;
Das Widget „device.uzsuicon“, mit dem alle Einstellungen vorgenommen werden, ist als Standard in smartVISU enthalten. Es  kann in SmartVISU-Seiten wie gewohnt eingebunden werden:&lt;br /&gt;
&lt;br /&gt;
(für ein Ergebnis, das der Benutzer direkt eintippen kann, z.B. &#039;on&#039; oder &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUtxt&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;text&#039;) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder Text als Dropdown:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUtxt&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;text&#039;, [&#039;an&#039;, &#039;aus&#039;]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder (für eine einzugebende Ziffer zwischen 0 und 100)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUnum&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;num&#039;, [0, 100]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder (für ein Ergebnis {0,1}, das aber als flip mit &#039;an&#039; und &#039;aus&#039; angezeigt wird)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUnum&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;bool&#039;, [&#039;an&#039;, &#039;aus&#039;]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Beispiele sind in der Inline-Doku von smartVISU zu finden oder können mit dem Widget-Assistenten live ausprobiert werden.&lt;br /&gt;
&lt;br /&gt;
=== fronthem ===&lt;br /&gt;
Um die Antwort des Widgets in fhem zu verarbeiten, benötigt man &lt;br /&gt;
&lt;br /&gt;
1. je ein Reading uzsu an dem zu schaltenden Device, das man mit &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 setreading &amp;lt;device&amp;gt; uzsu &amp;lt;code&amp;gt;{&amp;quot;active&amp;quot;:false,&amp;quot;list&amp;quot;:[]}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erzeugen MUSS.&lt;br /&gt;
&lt;br /&gt;
2. eine Anbindung des UZSU-GAD per UZSU Converter aus der 99_fronthemUtils.pm (s. u.) an das Reading uzsu des zu schaltenden Device read und write in fhem&lt;br /&gt;
&lt;br /&gt;
3. Den sonstigen UZSU  Code aus der  99_FronthemUtils.pm aus dem http://github.com/herrmannj/fronthem (ist bei aktuellem fronthem alles schon drin)&lt;br /&gt;
&lt;br /&gt;
Dieser Code erzeugt aus den Einstellungen im Widget entsprechende WeekdayTimer in fhem und löscht und erstellt neu bei jeder Änderung in SmartVISU.&lt;br /&gt;
&lt;br /&gt;
4. Die Funktion muss getriggert werden. Dazu ist ein notify nötig, das auf die Veränderung der uzsu Readings reagiert:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 define UZSU notify .*:uzsu:.* { UZSU_execute($NAME, $EVTPART1) }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
5. GAD Editor Einstellungen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
mode:      item&lt;br /&gt;
device:    &amp;lt;DEIN_DEVICE&amp;gt;&lt;br /&gt;
reading:   uzsu&lt;br /&gt;
converter: UZSU&lt;br /&gt;
cmd set:   uzsu&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voila!&lt;br /&gt;
&lt;br /&gt;
====Conditions====&lt;br /&gt;
Eine Besonderheit der UZSU in Verbindung mit FHEM ist die Verarbeitung von Bedingungen (Conditions). Diese werden durch den Button &amp;quot;Experte&amp;quot; im UZSU-Popup aufgerufen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:UZSU_Popup_mit_Expertenmodus.png|...|Expertenmodus im UZSU-Popup]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Feld &amp;quot;Holiday&amp;quot; bietet die Möglichleit, Schaltbefehle nur an Arbeitstagen oder nur an Feiertagen / Wochenenden auszuführen. Dazu wird im WeekdayTimer das Attribut $we gesetzt (siehe [[WeekdayTimer]]).&lt;br /&gt;
&lt;br /&gt;
In den Feldern &amp;quot;Condition&amp;quot; und &amp;quot;DelayedExec&amp;quot; können Bedingungen enttweder als Pearl-Anweisung (Dropdown muss auf &amp;quot;String&amp;quot; stehen) oder als Kombination aus Device, Vergleichsoperator und Vergleichswert angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel für Pearl-String:&lt;br /&gt;
 &#039;&#039;ReadingsVal(&amp;quot;&amp;lt;code&amp;gt;Hzg_Wohnzimmer&amp;quot;,&amp;quot;temperature&amp;quot;,&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;) eq &amp;quot;22&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
([https://forum.fhem.de/index.php?msg=430522 Forum], [https://forum.fhem.de/index.php?topic=127432.0 Forum])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Device bei Verwendung der Vergleichsoperatoren:&lt;br /&gt;
 &amp;lt;code&amp;gt;ReadingsVal(&amp;quot;Hzg_Wohnzimmer&amp;quot;,&amp;quot;temperature&amp;quot;,&amp;quot;&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Fronthem akzeptiert in diesem Fall Readingsval, AttrVal und InternalVal, sowie Value(&amp;quot;device2check&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU&amp;diff=40251</id>
		<title>SmartVISU</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU&amp;diff=40251"/>
		<updated>2025-06-06T14:47:39Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Anpassung an smartVISU Versionen ab v2.9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschreibt das Web-Frontend smartVISU, dessen Funktionen und Konfiguration.  [http://www.smartvisu.de smartVISU] ist ein Framework zur Visualisierung von Hausautomationssystemen, die eigentlich KNX-Installationen bedient. Für die Anbindung an FHEM ist die Installation und Konfiguration von [[Fronthem]] notwendig, dass das Interface für die Anbindung zur Verfügung stellt. &lt;br /&gt;
&lt;br /&gt;
In einem separaten Artikel wird die [[smartVISU Installation|Basis-Installation von smartVISU]] beschrieben, die eine Voraussetzung für die Verwendung von smartVISU ist.&lt;br /&gt;
&lt;br /&gt;
Ein paar Sceenshots, die einen Eindruck des Frontends vermitteln wurden im {{Link2Forum|Topic= 27291|Message=227568|LinkText=Forum}} veröffentlicht.&lt;br /&gt;
&lt;br /&gt;
Alle Artikel zur Thematik fronthem/smartVISU sind [[:Kategorie:fronthem/smartVISU|hier]] kategorisiert. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Hat man die Installation durchgeführt, befindet sich im root-Verzeichnis der smartVISU Installation für die schnelle Einrichtung die Datei readme.md, in der ein 10-Schritte Guide die erste Konfiguration beschreibt. &lt;br /&gt;
&lt;br /&gt;
Wurden ebenfalls die Erweiterungen für FHEM eingespielt, befindet sich in diesem Verzeichnis ebenfalls die Datei readme.txt, die etwas FHEM-spezifischer ebenfalls den 10-Schritte Guide enthält.&lt;br /&gt;
&lt;br /&gt;
== Bausteine ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:Systemuebersicht_fronthem_smartVISU.jpg|550px|thumb|right|Systemübersicht, fronthem/smartVISU]] &lt;br /&gt;
Zum besseren Verständnis der Begrifflichkeiten und Zusammenhänge ist hier eine Systemübersicht dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Statische Seiten ===&lt;br /&gt;
&lt;br /&gt;
Für den Betrieb von smartVISU ist ein Web-Server mit PHP notwendig. Dieser stellt die statischen Inhalte des Frontends zur Verfügung. Die Oberfläche muss den eigenen Bedürfnissen per programmieren der Web-Seite anpassen werden. HTML-, PHP- oder  Javascript-Kenntnisse sind hilfreich, aber nicht zwingend erforderlich.&lt;br /&gt;
Genügend Beispiele sind vorhanden und leicht anpassbar, so dass durch einfaches Zusammenstellen schnell eine individuelle Seite erstellt werden kann.&lt;br /&gt;
&lt;br /&gt;
=== Treiber ===&lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
&lt;br /&gt;
Was fronthem für FHEM ist, ist der Treiber für smartVISU. Er ist ein Stück Software (js), das in die ausgeliefertern Webseiten per Link eingebettet ist, auf dem Endgerät ausgeführt wird und die Kommunikation zwischen Endgerät und Websocketserver (fronthem) übernimmt {{Link2Forum|Topic=53881|Message=466167|LinkText=(Forum)}}. &lt;br /&gt;
&lt;br /&gt;
Ein explizit auf FHEM angepasster Treiber stellt unter anderem die Mandantenfähigkeit (end-device werden seperat betrachtet und beschickt) sicher.&lt;br /&gt;
&lt;br /&gt;
Der Treiber heißt &amp;quot;io_fhem.js&amp;quot; und ist im Verzeichnis smartVISU/driver/ abgelegt. Seit smartVISU v2.9 kann der in smartVISU integrierte Treiber verwendet werden. Die im Forum verbreiteten alternativen Versionen dürfen nicht mehr verwendet werden.&lt;br /&gt;
&lt;br /&gt;
==== Verwendung ====&lt;br /&gt;
&lt;br /&gt;
Ruft man die smartVISU-Seite auf einem Endgerät auf, wird auf der Config-Seite (Zahnrädersymbol in der oberen Menüzeile)&lt;br /&gt;
* als Driver &amp;quot;Fhem&amp;quot; ausgewählt, &lt;br /&gt;
* die Adresse des Websocketservers, auf dem fronthem ansprechbar ist unter &amp;quot;Address URL/IP&amp;quot; eingetragen und &lt;br /&gt;
* für den Port &amp;quot;2121&amp;quot; gesetzt.&lt;br /&gt;
&lt;br /&gt;
=== Widgets ===&lt;br /&gt;
&lt;br /&gt;
smartVISU bietet mit seinem Konzept der Widgets eine flexible Möglichkeit der individuellen Erweiterung an. Für viele Anwendungen gibt es bereits Widgets (z.B. Heizung, RGB, Clock, Wetter, etc.), auf die zurückgegriffen werden kann.&lt;br /&gt;
&lt;br /&gt;
Mit einem Widget wird für den jeweiligen Anwendungsfall bestimmt, wie auf der Darstellungsseite das Design aussehen soll und welche Parameter auf der Verarbeitungsseite übergeben werden. So könnte man die Widgets auch als Vorlage verstehen, um diese Designelemente bei Bedarf entsprechend einzubinden.&lt;br /&gt;
{{Randnotiz|RNTyp=y|RNText=Schaut man sich die Dokumentation oder die Beispielhäuser an, sollte vorher den Treiber auf offline geschaltet werden, weil sich sonst fronthem die Konfiguration der Demohäuser importiert und merkt {{Link2Forum|Topic=30909|Message=235155|LinkText=(Forum)}}. Im Menüpunkt &amp;quot;Dokumentation&amp;quot; erfolgt die Umstellung automatisch.}}&lt;br /&gt;
Es gibt diverse Standard-Widgets, die bereits Teil der smartVISU-Installation sind. Darüber hinaus können eigene oder individualisierte Widgets hinzugefügt werden. &lt;br /&gt;
Die Dokumentation der verfügbaren Standard-Widgets in der Basisinstallation ist im Unterordner /pages/Docu gespeichert. Die Dokumentation kann angeschaut werden, indem man auf der Config-Seite die Page &amp;quot;Docu&amp;quot; auswählt, oder im Systemmenü den Menüpunkt &amp;quot;Dokumentation&amp;quot; auswählt. Es öffnet sich dann ein zweites Browserfenster, in dem die Widgets erklärt werden und live mit dem offline-Treiber ausprobiert werden können. Die integrierte Doku (&amp;quot;Inline-Doku&amp;quot;) ist immer aktuell, währemd die in diesem Artikel verlinkte Doku auf smartvisu.de eine Kopie davon ist, die oft zeitverzögert nach den großen Releases verfügbar ist.&lt;br /&gt;
&lt;br /&gt;
== Standard Seitenladeprozess ==&lt;br /&gt;
&lt;br /&gt;
(Übersetzt aus readme.txt)&lt;br /&gt;
&lt;br /&gt;
Ruft man die smartVISU-Seite über den Aufruf &amp;lt;code&amp;gt;http://&amp;lt;Server-IP&amp;gt;/&amp;lt;Installationsverzeichnis&amp;gt;&amp;lt;/code&amp;gt; (z.B. http://192.168.1.1/smartVISU) auf, läuft über die &amp;lt;code&amp;gt;index.php&amp;lt;/code&amp;gt; ein vordefinierter Ladezyklus ab, der&lt;br /&gt;
* über die includes.php die Einstellungen der config.ini einliest&lt;br /&gt;
* die twig Umgebung startet&lt;br /&gt;
* die Pfade setzt (für pages, icons, Standardwidgets, etc.)&lt;br /&gt;
* über die ./pages/base/root.html alle Widgets und Skripte importiert, sowie den Treiber startet &lt;br /&gt;
* die index.html der in der config.ini configurierten Seite ./pages/&amp;lt;eigener Ordner&amp;gt; aufruft&lt;br /&gt;
&lt;br /&gt;
Gibt es vor allen Dingen bei der Ersteinrichtung Probleme, sollte man sich den Ladeprozess und das Vorhandensein der Dateien und die richtige Konfiguration näher anschauen.&lt;br /&gt;
&lt;br /&gt;
== Ersteinrichtung ==&lt;br /&gt;
&lt;br /&gt;
Die folgende Beschreibung setzt voraus, dass die notwendigen Schritte für die grundsätzliche Installation von smartVISU und fronthem bereits erfolgreich durchgeführt wurden.&lt;br /&gt;
&lt;br /&gt;
=== ein &amp;quot;eigenes-Haus&amp;quot; anlegen ===&lt;br /&gt;
&lt;br /&gt;
Es gilt ein eigenes &amp;quot;Haus&amp;quot; anzulegen, dass man individuell konfiguriert.&lt;br /&gt;
&lt;br /&gt;
*  Für eine eigene neue Seite legt man unter ./pages des smartVISU-Root-Verzeichnisses ein neues Verzeichnis &amp;lt;code&amp;gt;eigenes-Haus&amp;lt;/code&amp;gt; an.&lt;br /&gt;
*  Die Dateien auf dem Ordner ./pages/_template kopiert man in dieses Verzeichnis.&lt;br /&gt;
*  Dort editiert man die Dateien und fügt z.B. Dinge ein, die man aus der Doku z.B. auf von www.smartVISU.de heraus kopiert hat. Auch die Beispielhäuser sind sehr hilfreich zum lernen. Ein spezieller Editor oder eine grafische Oberfläche für die Programmierung ist nicht erforderlich. Als erstes passt man z.B. die Datei &amp;lt;code&amp;gt;rooms_menu.html&amp;lt;/code&amp;gt; an die eigenen Bedürfnisse an.&lt;br /&gt;
* Die Räume richtet man ein, indem man diese durch Kopien des Beispielraumes (&amp;lt;code&amp;gt;room_sleeping.html&amp;lt;/code&amp;gt;) und passende icons und Überschriften erstellt. ([https://docu.smartvisu.de/3.5/index.php?page=design/design_icons SmartVisu Icons])&lt;br /&gt;
* SmartVISU nutzt [http://twig.sensiolabs.org/ Twig] als Template engine und die Seiten bestehen aus Blöcken und Widgets, die immer in doppelten geschweiften Klammern stehen &amp;lt;nowiki&amp;gt;{{ ... }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* Widget Syntax in der Inline-Doku auf [https://docu.smartvisu.de/3.5/index.php SmartVISU Doku] nachschlagen und kopieren. Alternativ im Systemmenü den Widget Assistenten aufrufen, mit dem ein Widget live parametriert und sofort ausprobiert werden kann. (Beachte dabei den Hinweis im Kasten !)&lt;br /&gt;
* Innerhalb eines Raums zwischen {% block content %} und {% endblock %} als Beispiel folgenden Abschnitt einfügen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;&amp;lt;img class=&amp;quot;icon&amp;quot; src=&#039;{{ icon0 }}scene_livingroom.svg&#039;/&amp;gt;Wohnzimmer&amp;lt;/h1&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;preblock&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;block&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;set-2&amp;quot; data-role=&amp;quot;collapsible-set&amp;quot; data-theme=&amp;quot;c&amp;quot; data-content-theme=&amp;quot;a&amp;quot; data-mini=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div data-role=&amp;quot;collapsible&amp;quot; data-collapsed=&amp;quot;false&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;h3&amp;gt;Licht&amp;lt;/h3&amp;gt;&lt;br /&gt;
          &amp;lt;table width=&amp;quot;90%&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td align=&amp;quot;left&amp;quot; width=&amp;quot;100px&amp;quot;&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
                {{ basic.stateswitch(&#039;Leselampe&#039;, &#039;Leselampe.sw&#039;, &#039;icon&#039;, [0,1], &#039;light_floor_lamp&#039;, &#039;&#039;, [&#039;icon0&#039;, &#039;icon1&#039;]) }}&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;Leselampe&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;/table&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;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Datei speichern und checken, dass die Rechte mindestens auf &amp;quot;755&amp;quot; stehen, ansonsten  mit &amp;quot;sudo chmod 755&amp;quot; korrigieren.&lt;br /&gt;
&lt;br /&gt;
Beim erstellen eigener Seiten oder Widgets sollte man darauf achten, nicht in die Dateien der smartVISU-Installation direkt einzugreifen, sondern vornehmlich in den eigenen Pages zu arbeiten. So steht auch einem unbeeinträchtigten späteren Update nichts im Wege.&lt;br /&gt;
&lt;br /&gt;
Beispielsweise anstelle &amp;lt;code&amp;gt;root.html&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;base.html&amp;lt;/code&amp;gt; im Ordner ./pages/base direkt zu verändern, sollte man jeweils angepasste Kopien in das eigene Pages-Verzeichnis legen - diese haben dann Vorrang vor den System Dateien {{Link2Forum|Topic=30909|Message=268592|LinkText=(Forum)}}, denn die Template-Engine schaut zuerst im Ordner ./pages/&amp;lt;eigeneSeite&amp;gt; nach und anschließend im Ordner ./pages/base {{Link2Forum|Topic=30909|Message=241148|LinkText=(Forum)}}. Änderungen bei Versionsupdates müssen dann allerdings immer manuell nachgezogen werden. Für eigene Erweiterungen (Widgets, Sprache, Design ...) steht seit v2.9 das Verzeichnis ./dropins zur Verfügung, das vor Updates geschützt ist.&lt;br /&gt;
&lt;br /&gt;
Für die eigenen Seiteninhalte sollten entsprechend die Dateinamen &amp;quot;base.html, basic.html, device.html&amp;quot; nicht verwendet werden, da dieses System-Seiten sind.&lt;br /&gt;
&lt;br /&gt;
;fronthem&lt;br /&gt;
Obwohl der folgende Teil bereits zur Einrichtung von fronthem gehört, sei es der Vollständigkeit des Beispiels halber hier trotzdem erwähnt:&lt;br /&gt;
* In FHEM eine fronthemDevice Detailansicht öffnen&lt;br /&gt;
* Nun sollten die GADs aufgelistet werden. Aus der Liste ein GAD auswählen (hier: &amp;quot;Leselampe.sw&amp;quot; wie im obigen Code-Beispiel definiert.) und die Parameter vergeben:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    device: &amp;lt;fhem-Name-des-fhem-devices&amp;gt; (in diesem Fall die Leselampe.sw)&lt;br /&gt;
    reading: state&lt;br /&gt;
    converter: OnOff&lt;br /&gt;
    cmd set: state&lt;br /&gt;
    write: ja (haken setzen)&lt;br /&gt;
    read: ja (haken setzen)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: &amp;quot;state&amp;quot; immer klein schreiben und speichern nicht vergessen!&lt;br /&gt;
* Die Settings für das Device gelten für alle Endgeräte, aber die read/write Rechte müssen für jedes Endgerät separat gesetzt werden.&lt;br /&gt;
&lt;br /&gt;
=== Einrichtung Endgerät ===&lt;br /&gt;
Auf dem Endgerät greift man auf die smartVISU-Seiten zu und stellt auf der Config-Seite den Treiber, IP der Servers und den Port ein. &lt;br /&gt;
&lt;br /&gt;
Unter smartVISU in die Konfigurationsoberfläche wechseln &amp;lt;code&amp;gt;http://&amp;amp;#x3C;IP-Adresse&amp;amp;#x3E;/smartVISU&amp;lt;nowiki/&amp;gt;/index.php?page=config&amp;lt;/code&amp;gt; bzw. Zahnradsymbol = System-Menü =&amp;gt; Einstellungen:&lt;br /&gt;
* Im Feld &amp;quot;Interfaces&amp;quot; / &amp;quot;Benutzeroberfläche&amp;quot; für pages das eigenes Haus auswählen (=Ordnername)&lt;br /&gt;
* Der Pagecache muss während der Einrichtung ausgeschaltet sein.&lt;br /&gt;
* Im Feld &amp;quot;I/O Connection&amp;quot; / &amp;quot;Datenverbindung&amp;quot; den Treiber Fhem wählen&lt;br /&gt;
* Die IP-Adresse des Servers mit dem Websocket-Server eintragen&lt;br /&gt;
* Port 2121 einstellen&lt;br /&gt;
Nach allen Eintragungen die Konfiguration am unteren Ende der Seite speichern. Diese Einstellungen gelten global für alle Endgeräte. Soll für ein einzelnes Endgerät eine abweichende Einstellung vorgenommen werden, kann dies im Reiter &amp;quot;Device&amp;quot; / &amp;quot;Gerät&amp;quot; erfolgen. &lt;br /&gt;
&lt;br /&gt;
Damit die GADs nun im GAD-Editor auf der Detailseite von einem [[fronthem#fronthemEditor|fronthemDevice]] auftauchen, ist es jetzt wichtig, die neue Seite in smartVISU einmal aufzurufen, damit im Hintergrund die GADs übertragen werden. &lt;br /&gt;
&lt;br /&gt;
Vorausgesetzt, man hat vorher alle notwendigen Schritte für die Installation und Konfiguration von fronthem ausgeführt, kann man nun smartVISU in Verbindung mit FHEM benutzen.&lt;br /&gt;
&lt;br /&gt;
Im Noramlbetrieb stellt man den Pagecache auf &amp;quot;on&amp;quot;- dann werden die templates compiliert gespeichert, was die Geschwindigkeit erhöht {{Link2Forum|Topic=35960|Message=283665|LinkText=(Forum)}}.&lt;br /&gt;
&lt;br /&gt;
=== Die wichtigste Dateien der eigenen Seite ===&lt;br /&gt;
Im Folgenden sind die wichtigsten Dateien und Grundlagen beschrieben, aus der eine Seite zusammensetzt ist, die aus den Template-Dateinen erstellt wurde. Jede Seite besteht aus der Menüzeile, einer Seitenleiste auf der linken Seite und den Hauptbereich auf der rechten Seite.&lt;br /&gt;
&lt;br /&gt;
Entsprechend Browser (z.B. Desktop oder Smartphone) werden die Seiten unterschiedlich dargestellt.&lt;br /&gt;
&lt;br /&gt;
;index.html&lt;br /&gt;
Der Inhalt dieser Seite ist der erste, der aufgerufen wird. Hauptsächlich besteht er aus 2 Blöcken, gekennzeichnet durch&lt;br /&gt;
 {% block sidebar %}&lt;br /&gt;
 ...&lt;br /&gt;
 {% endblock %}&lt;br /&gt;
&lt;br /&gt;
und&lt;br /&gt;
 {% block content %}&lt;br /&gt;
 ...&lt;br /&gt;
 {% endblock %}&lt;br /&gt;
&lt;br /&gt;
Im Block &amp;lt;code&amp;gt;sidebar&amp;lt;/code&amp;gt; steht der Inhalt, der auf der linken Seite der Startseite dargestellt wird. Im Beispiel wird wird die Uhr, das Datum, das aktuelle Wetter und die Wettervorhersage eingebunden.&lt;br /&gt;
&lt;br /&gt;
Im Block &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; wird die Datei &amp;lt;code&amp;gt;rooms_menu.html&amp;lt;/code&amp;gt; eingebunden. Der Inhalt dieses Blocks wird im rechten Bereich dargestellt.&lt;br /&gt;
&lt;br /&gt;
;rooms_menu.html&lt;br /&gt;
Diese Datei enthält die Darstellung des Links für die einzelnen Räume wie z.B. &amp;lt;code&amp;gt;room_sleeping.html&amp;lt;/code&amp;gt; für das Schlafzimmer. Ruft man von der Hauptseite einen Raum auf, wird auf einem Desktop-Browser die Seite &amp;lt;code&amp;gt;rooms_menu.html&amp;lt;/code&amp;gt;im linken Bereich im Block Sidebar dargestellt, im rechten Bereich wird der Inhalt des Raums dargestellt.&lt;br /&gt;
&lt;br /&gt;
;room_sleeping.html&lt;br /&gt;
Pro Raum gibt es eine Datei, die die Darstellung eines Raumes festlegen. Dort wie oben, wird der Bereich, der Darstellung über die Blockdefinition festgelegt.&lt;br /&gt;
&lt;br /&gt;
;rooms.html&lt;br /&gt;
Im Rahmen des Ladezyklus, wird diese Datei ebenfalls geladen, läd jedoch ihrerseits gleich die nächste. &lt;br /&gt;
&lt;br /&gt;
;visu.ccs&lt;br /&gt;
Möchte man das Design anpassen, verwendet man eine Stylesheet-Datei &amp;quot;visu.css&amp;quot; in seinem Projektordner. Diese Datei ist standardmäßig nicht Teil der Vorlage und kann bei Bedarf angelegt werden.&lt;br /&gt;
&lt;br /&gt;
;visu.js&lt;br /&gt;
In dieser Datei kann Javascrict-Code abgelegt werden, der auf einer Seite aufgerufen wird. Diese Datei ist standardmäßig nicht Teil der Vorlage und kann bei Bedarf angelegt werden.&lt;br /&gt;
&lt;br /&gt;
;menu.html&lt;br /&gt;
Diese Datei ist nicht Teil der Einrichtung über die Vorlage des template-Ordners. Möchte man das Menü anpassen, das oben auf der Seite angezeigt wird, kopiert man die Datei &amp;lt;code&amp;gt;menu.html&amp;lt;/code&amp;gt; aus dem Verzeichnis ./base in sein Verzeichnis ./pages/&amp;lt;eigeneSeite&amp;gt; und passt diese entsprechend an. Über die Reihenfolge, in der die Ordner nach möglichen Dateien durchsucht werden, wird im Folgenden die eigene individualisierte Datei berücksichtigt.&lt;br /&gt;
&lt;br /&gt;
=== Verwendung von Widgets ===&lt;br /&gt;
&lt;br /&gt;
==== Einbindung ====&lt;br /&gt;
&lt;br /&gt;
Eigene oder individualisierte Widgets werden seit v2.9 automatisch importiert, wenn sie in den Ordnern ./dropins/widgets oder ./pages/eigenes-Haus/widgets abgelegt sind. Dies gilt sowohl für die html-Dateien, als auch für die Skripte (.js) und die Stildefinitionen (.css).&lt;br /&gt;
&lt;br /&gt;
Die bisher beschriebene Einbindung von Code in die  &amp;lt;code&amp;gt;visu.ccs&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;visu.js&amp;lt;/code&amp;gt; ist nicht mehr erforderlich. DIese Dateien sind eher für globale Änderungen / Erweiterungen in wenigen Spezialfällen vorgesehen. &lt;br /&gt;
&lt;br /&gt;
==== Aufruf ====&lt;br /&gt;
&lt;br /&gt;
Auf der Seite wird der Aufruf des Widgets eingebettet und über seinen Aufruf ebenfalls positioniert. Beispiele für das Einbetten sind im Docu-Haus enthalten. &lt;br /&gt;
 {{ widgetname.function(&#039;&amp;lt;id&amp;gt;&#039;, &#039;&amp;lt;gad&amp;gt;&#039;, &#039;&amp;lt;weitere Parameter&amp;gt;&#039;) }}&lt;br /&gt;
&lt;br /&gt;
Der Aufruf eines Widgets auf einer Seite besteht jeweils aus einem in doppelt geschweifte Klammern eingefassten Ausdrucks &lt;br /&gt;
Der Ausdruck besteht aus der Nennung des Widget-Dateinamens, gefolgt von der mit einem Punkt getrennten Funktion. Wie in FHEM üblich ist auch hier die Groß/Kleinschreibung zu berücksichtigen und eine häufige Fehlerquelle.&lt;br /&gt;
&lt;br /&gt;
Im Anschluss in Klammern folgen die durch Komma getrennten Parameter in Hochkommata:&lt;br /&gt;
* id, die ID des Widgets ist eigentlich nur innerhalb von smartVISU wichtig, kann willkürlich gewählt werden, darf sich auf einer html-Seite allerdings nicht wiederholen. Seit v2.9 wurden fast alle Widgets so weiter entwickelt, dass die &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; nicht mehr benötigt wird. Sie kann optional eingegeben werden und dient dann vor allem dazu, die Darstellung des Widgets über die  &amp;lt;code&amp;gt;visu.ccs&amp;lt;/code&amp;gt; oder durch andere Widgets zu beeinflussen.&lt;br /&gt;
* gad, wird auch als Item bezeichnet. Dieses ist der Ausdruck, der später an fronthem übergeben wird und entsprechend im GAD-Editor auftaucht für die weitere Verarbeitung und Zuordnung.&lt;br /&gt;
* weitere Parameter, teilweise optional und teilweise mit Default-Werten, wenn diese nicht angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Detailliertere Beispiele finden sich in der [https://kurzanleitung.smartvisu.de/index.php Kurzanleitung], die allerdings auf die Kombination smarthomeNG / smartVISU abgestellt ist. &lt;br /&gt;
&lt;br /&gt;
== Codebeispiele ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Für die folgenden Dinge habe ich bereits eine Idee&lt;br /&gt;
Umrechnung der Batterieanzeige für Verwendung mit rtr&lt;br /&gt;
https://forum.fhem.de/index.php?topic=30909.msg242236#msg242236&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Layout ===&lt;br /&gt;
&lt;br /&gt;
* [[smartVISU/IconHighlights in Menus|IconHighlights in Menus]]&lt;br /&gt;
&amp;lt;!--Für die folgenden Dinge habe ich bereits eine Idee&lt;br /&gt;
* [[Reload Button]]&lt;br /&gt;
* [[nur aktiven switch darstellen und schalten]] mit Erweiterung von basic.html&lt;br /&gt;
* Layout für rtr in der ccs https://forum.fhem.de/index.php?topic=30909.msg255571#msg255571&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Standard-Widgets ===&lt;br /&gt;
&lt;br /&gt;
{{Todo|Hier sollte nicht die Dokumentation der Standardwidgets wiedergegeben werden, sondern Spezifika, die nicht in der Dokumentation auftauchen oder Anwendungsbeispiele.}}&lt;br /&gt;
&lt;br /&gt;
==== Basic.stateswitch ====&lt;br /&gt;
&lt;br /&gt;
* [[smartVISU/lichtSzene|lichtSzene]]&lt;br /&gt;
&amp;lt;!--Für die folgenden Dinge habe ich bereits eine Idee&lt;br /&gt;
* [[smartVISU/Leselampe|Leselampe]]&lt;br /&gt;
* [[Basic Switch]]&lt;br /&gt;
&lt;br /&gt;
==== Basic.slider ====&lt;br /&gt;
&lt;br /&gt;
* [[Rolladen]]&lt;br /&gt;
&lt;br /&gt;
==== Basic.symbol ====&lt;br /&gt;
&lt;br /&gt;
* [[Batterieanzeige]]&lt;br /&gt;
* [[Statusanzeige]]&lt;br /&gt;
* [[Fensterkontakt]]&lt;br /&gt;
&lt;br /&gt;
==== basic.shifter ====&lt;br /&gt;
&lt;br /&gt;
Batterieanzeige https://forum.fhem.de/index.php/topic,30909.msg264466.html#msg264466&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Device.dimmer ====&lt;br /&gt;
&lt;br /&gt;
* [[HM Dimmer]]&lt;br /&gt;
&lt;br /&gt;
==== icon ====&lt;br /&gt;
&lt;br /&gt;
* [[Wind]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== zusätzliche Widgets ===&lt;br /&gt;
&lt;br /&gt;
Es gibt diverse zusätzliche Widgets, für die es allerdings keine zentrale Quelle gibt. Stattdessen können diese aus den unterschiedlichen Repositories der Entwickler oder aus Beiträgen im Forum heruntergeladen werden. Viele haben jedoch die Entwicklung der smartVISU seit v2.8 nicht mitgemacht und müssen vor einer erneuten Verwendung aktualisiert werden. &lt;br /&gt;
&lt;br /&gt;
Das Repository https://github.com/smartvisu-newstuff enthält zusätzliche Widgets, Designs und Erweiterungen, die nach den jeweils kompatiblen smartVISU-Versionen sortiert sind und regelmäßig weiter gepflegt werden.&lt;br /&gt;
&lt;br /&gt;
;&lt;br /&gt;
;bekannte Repositories (nicht mehr aktiv gepflegt)&lt;br /&gt;
https://github.com/herrmannj/smartvisu-widgets&lt;br /&gt;
* LED&lt;br /&gt;
* UZSU V2.0&lt;br /&gt;
** [[smartVISU/Universelle ZeitSchaltUhr (UZSU)]]&lt;br /&gt;
* auth_switch&lt;br /&gt;
* basic&lt;br /&gt;
* basic_extra&lt;br /&gt;
* chart&lt;br /&gt;
* device_extra&lt;br /&gt;
* fritzbox&lt;br /&gt;
** [[smartVISU/fritz!box_via_TR-064|fritz!box_via_TR-064]], Einbindung Anruferliste, Telefonbuch, etc.&lt;br /&gt;
* homematic&lt;br /&gt;
&amp;lt;!--Für die folgenden Dinge habe ich bereits eine Idee&lt;br /&gt;
** [[HM-TC Wandthermostat und HM-CC Heizkörperthermostat]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
* httpcmd&lt;br /&gt;
* icon/battery&lt;br /&gt;
* icons&lt;br /&gt;
*img&lt;br /&gt;
* listbutton&lt;br /&gt;
* phoneservice/lib/phone/service&lt;br /&gt;
* selectmenu&lt;br /&gt;
* sonos&lt;br /&gt;
* squeezebox&lt;br /&gt;
* textinput&lt;br /&gt;
* timcounter&lt;br /&gt;
&lt;br /&gt;
https://github.com/ddtlabs/smartvisu-widgets&lt;br /&gt;
&lt;br /&gt;
Voraussetzung für die meisten hier liegenden Widgets ist V2.8 von smartVISU.&lt;br /&gt;
* basic-devices&lt;br /&gt;
* hm-rtr&lt;br /&gt;
* hue&lt;br /&gt;
* media&lt;br /&gt;
* motionDetection&lt;br /&gt;
* powerDistribution&lt;br /&gt;
* sonos&lt;br /&gt;
* ventilation&lt;br /&gt;
&lt;br /&gt;
https://github.com/ToGe3688/db_plot_widget&lt;br /&gt;
* Ein Widget für Plots (nur in Verbindung mit [[DbLog]])&lt;br /&gt;
&lt;br /&gt;
https://github.com/bgewehr/smartVISU&lt;br /&gt;
* basic2.html (LED)&lt;br /&gt;
* qlock.html&lt;br /&gt;
* widget_calendar.html&lt;br /&gt;
* widget_fritzbox.html&lt;br /&gt;
* widget_fritzbox_list.html&lt;br /&gt;
* widget_list.html&lt;br /&gt;
* widget_popup.html&lt;br /&gt;
&lt;br /&gt;
https://github.com/mworion/uzsu_widget&lt;br /&gt;
* uzsu_widget V5.0&lt;br /&gt;
&lt;br /&gt;
https://github.com/2ndsky/quad&lt;br /&gt;
* quad&lt;br /&gt;
&lt;br /&gt;
im Forum&lt;br /&gt;
&amp;lt;!--* [[smartVISU/Temperatur-/Feuchtigkeitssensor]]--&amp;gt;&lt;br /&gt;
* RTR für MAX! https://forum.fhem.de/index.php?topic=30909.msg241379#msg241379&lt;br /&gt;
* Ein weiteres Widget für ein RTR (Homematic) https://forum.fhem.de/index.php?topic=30909.msg276719#msg276719&lt;br /&gt;
* noch ein widget für homematic für HM-CC-RT-DN https://forum.fhem.de/index.php?topic=30909.msg248462#msg248462&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
[http://www.smartvisu.de smartVISU Hauptseite von smartVISU]&lt;br /&gt;
&lt;br /&gt;
[http://twig.sensiolabs.org/documentation PHP-Twig Doku]&lt;br /&gt;
&lt;br /&gt;
[https://code.google.com/archive/p/smartvisu/wikis Google-Archiv smartVISU]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU_Installation&amp;diff=40250</id>
		<title>SmartVISU Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU_Installation&amp;diff=40250"/>
		<updated>2025-06-05T20:18:02Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Anpassung an smartVISU Versionen ab v2.9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU Installation}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel beschreibt die Installation des Web-Frontends [[smartVISU]] und berücksichtigt mehrerer Alternativen für unterschiedliche Web-Server. Zum Betrieb von smartVISU mit FHEM ist die Installation und Konfiguration von [[fronthem]] erforderlich.&lt;br /&gt;
&lt;br /&gt;
Alle Artikel zur Thematik fronthem/smartVISU sind [[:Kategorie:fronthem/smartVISU|hier]] kategorisiert. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
Für die Installation ist es immer sinnvoll, von einem auf aktuellem Stand befindlichen System zu starten.&lt;br /&gt;
&lt;br /&gt;
Für das Betriebssystem (Linuxderivat)&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
Für FHEM&lt;br /&gt;
 &amp;lt;code&amp;gt;update&amp;lt;/code&amp;gt; in der Eingabezeile&lt;br /&gt;
&lt;br /&gt;
Die Installation lässt sich in 4 Bereiche unterteilen.&lt;br /&gt;
&lt;br /&gt;
== Webserver installieren ==&lt;br /&gt;
&lt;br /&gt;
Welcher Webserver zum Einsatz kommt, ist unerheblich. Im Folgenden sind Beispiele für lighttpd, nginx und Apache2 zu finden. Es wird nur &#039;&#039;&#039;eine&#039;&#039;&#039; Installation benötigt. Der Webserver benötigt PHP, um smartVISU ausliefern zu können. Dabei sollte immer die aktuelle PHP-Version verwendet werden, die das System von sich aus anbietet. Die unten angegebenen PHP-Versionen sind deshalb durch die aktuellen Versionen zu ersetzen. Im Lauf der Entwicklung wurde smartVISU kontinuierlich an die aktuellen PHP-Versionen angepasst. Aktuell (Stand Juni 2025) ist smartVISU v3.5 zuverlässig mit PHP8.4.1 getestet.&lt;br /&gt;
&lt;br /&gt;
===lighttpd ===&lt;br /&gt;
Dieses Beispiel basiert auf diesem {{Link2Forum|Topic= 27291|Message=208880|LinkText=Forumsbeitrag}}.&lt;br /&gt;
&lt;br /&gt;
Webserver installieren:&lt;br /&gt;
 sudo apt-get install lighttpd&lt;br /&gt;
&lt;br /&gt;
PHP installieren:&lt;br /&gt;
 sudo apt-get install php-common php-cgi php&lt;br /&gt;
&lt;br /&gt;
PHP konfigurieren:&lt;br /&gt;
 sudo lighty-enable-mod fastcgi-php&lt;br /&gt;
&lt;br /&gt;
Webserver-Dienst einmal neu starten, damit die Einstellungen wirksam werden:&lt;br /&gt;
 sudo service lighttpd force-reload&lt;br /&gt;
&lt;br /&gt;
Welchseln in des Root-Verzeichnis des Webservers (bei Bedarf, wenn sich das Root-Verzeichnis einer Distribution woanders ist, muss dieser Pfad entsprechend angepasst werden):&lt;br /&gt;
 cd /var/www&lt;br /&gt;
&lt;br /&gt;
Setzen des Besitzers und der Gruppe für das Root-Verzeichnis (TODO: Ist dieser Schritt wirklich notwendig?):&lt;br /&gt;
 sudo chown www-data:www-data /var/www&lt;br /&gt;
&lt;br /&gt;
Setzen der Berechtigungen des Root-Verzeichnis (TODO: Ist dieser Schritt wirklich notwendig?):&lt;br /&gt;
 sudo chmod 775 /var/www&lt;br /&gt;
&lt;br /&gt;
===nginx ===&lt;br /&gt;
====mit PHP5 ====&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf diesem {{Link2Forum|Topic=30909|Message=273180|LinkText=Forumsbeitrag}}.&lt;br /&gt;
&lt;br /&gt;
Für die Installation des Webservers und PHP5 werden folgende Pakete benötigt:&lt;br /&gt;
 sudo apt-get install nginx php5-fpm&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration für PHP muss in der entsprechenden Konfigurationsdatei vorgenommen werden:&lt;br /&gt;
 sudo nano /etc/nginx/sites-enabled/default&lt;br /&gt;
&lt;br /&gt;
Folgende Konfiguration sollte direkt funktionieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
         listen 80;&lt;br /&gt;
         root /var/www;&lt;br /&gt;
         index index.html index.php;&lt;br /&gt;
         server_name localhost;&lt;br /&gt;
         location / {&lt;br /&gt;
               try_files $uri $uri/ /index.php?$args;&lt;br /&gt;
         }&lt;br /&gt;
         location ~ \.php$ {&lt;br /&gt;
                 try_files $uri =404;&lt;br /&gt;
                 fastcgi_pass unix:/var/run/php5-fpm.sock;&lt;br /&gt;
                 fastcgi_index index.php;&lt;br /&gt;
                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;&lt;br /&gt;
                 include fastcgi_params;&lt;br /&gt;
          }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====mit PHP7====&lt;br /&gt;
Ubuntu 16.04 läuft standardmäßig mit PHP7. Der Betrieb ist noch nicht zu 100% getestet und daher ohne Garantie.&lt;br /&gt;
&lt;br /&gt;
Für die Installation des Webservers und PHP werden folgende Pakete benötigt:&lt;br /&gt;
 sudo apt-get install nginx php7.0-fpm&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration für PHP muss in der entsprechenden Konfigurationsdatei vorgenommen werden:&lt;br /&gt;
 sudo nano /etc/nginx/sites-enabled/default&lt;br /&gt;
&lt;br /&gt;
Folgende Konfiguration sollte direkt funktionieren:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
server {&lt;br /&gt;
        listen 80 default_server;&lt;br /&gt;
        listen [::]:80 default_server;&lt;br /&gt;
        root /var/www/html;&lt;br /&gt;
        index index.php index.html index.htm index.nginx-debian.html;&lt;br /&gt;
&lt;br /&gt;
        server_name _;&lt;br /&gt;
&lt;br /&gt;
        location / {&lt;br /&gt;
                try_files $uri $uri/ =404;&lt;br /&gt;
        }&lt;br /&gt;
        location ~ \.php$ {&lt;br /&gt;
                 try_files $uri =404;&lt;br /&gt;
                 fastcgi_split_path_info ^(.+\.php)(/.+)$;&lt;br /&gt;
                 fastcgi_pass unix:/run/php/php7.0-fpm.sock;&lt;br /&gt;
                 fastcgi_index index.php;&lt;br /&gt;
                 include fastcgi.conf;&lt;br /&gt;
                 fastcgi_read_timeout 600;&lt;br /&gt;
         }&lt;br /&gt;
         location ~* \.(js|css|png|jpg|jpeg|gif|ico|eot|otf|ttf|woff)$ {&lt;br /&gt;
                 access_log off; log_not_found off; expires 30d;&lt;br /&gt;
         }&lt;br /&gt;
         location = /robots.txt { access_log off; log_not_found off; }&lt;br /&gt;
         location ~ /\. { deny all; access_log off; log_not_found off; }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Apache2 ===&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel basiert auf diesem [http://www.meintechblog.de/2015/06/smartvisu-mit-fhem-die-perfekte-visualisierung-teil-1-basics/ Blogeintrag].&lt;br /&gt;
&lt;br /&gt;
Für die Installation des Webservers und PHP5 werden folgende Pakete benötigt:&lt;br /&gt;
 sudo apt-get install apache2 php5 libapache2-mod-php5&lt;br /&gt;
&lt;br /&gt;
===PHP-Module===&lt;br /&gt;
Für die Funktion von smartVISU werden noch einige PHP-Module benötigt: &lt;br /&gt;
 sudo apt-get install php-curl php php-json php-xml php-mbstring php-zip&lt;br /&gt;
Gegebenenfalls muss bei einzelnen Modulen die PHP-Version angegeben werden, wenn eine Fehlermeldung bei der Installation erscheint.&lt;br /&gt;
&lt;br /&gt;
==smartVISU Installation ==&lt;br /&gt;
&lt;br /&gt;
Für das Klonen (Herunterladen) wird folgendes Paket benötigt:&lt;br /&gt;
 sudo apt-get install git&lt;br /&gt;
Im Folgenden wird davon ausgegangen, dass das Root-Verzeichnis des Webservers &amp;quot;/var/www/html&amp;quot; ist. Ist deis nicht der Fall, wird empfohlen, dies in den Einstellungen des Webservers entsprechend zu konfigurieren.&lt;br /&gt;
&lt;br /&gt;
;Verfügbare Versionen (Stand Juli 2025)&lt;br /&gt;
smartVISU wird aktiv weiter entwickelt. Die aktuelle Version ist v3.5 vom Dezember 2024. Hinweise zur jeweils aktuellen Version und gegebenenfalls erforderliche Maßnahmen für den Umstieg sind im Kopfbereich des [https://knx-user-forum.de/forum/supportforen/smartvisu smartVISU-Forums] zu finden. Seit v2.9 ist smartVISU als vollständiges Paket ohne Modifikationen mit FHEM lauffähig. Die bisher veröffentlichten Anpassungen betreffen Versionen vor v2.9. &lt;br /&gt;
&lt;br /&gt;
Veröffentlicht wird smartVISI auf Github unter https://github.com/Martin-Gleiss/smartvisu. Der master branch enthält die jeweils freigegebene Version, die für den produktiven Einsatz gedacht ist. Im develop branch ist laufend der aktuellste Entwicklungsstand. Tester sind jederzeit willkommen.  &lt;br /&gt;
===Herunterladen ===&lt;br /&gt;
smartVISU kann direkt von Github in das Stammverzeichnis geklont werden. Dieses muss zunächst angelegt werden:&lt;br /&gt;
 cd /var/www/html&lt;br /&gt;
 sudo mkdir smartVISU&lt;br /&gt;
Das Verzeichnis kann einen beliebigen Namen haben. Hier im Beispiel wird &amp;quot;smartVISU&amp;quot; verwendet. Nach der Installation wird die Visu mit dem entsprechenden Namen aufgerufen, im vorliegenden Fall also mit &amp;lt;code&amp;gt;http://&amp;lt;IP-Adresse&amp;gt;/smartVISU&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Dann werden die Rechte für das neue Verzeichnis gesetzt:&lt;br /&gt;
 sudo chown www-data:www-data smartVISU&lt;br /&gt;
 chmod g+rws smartVISU/&lt;br /&gt;
Danach wechselt man in das Verzeichnis und klont smartVISU:&lt;br /&gt;
 cd smartVISU&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https://github.com/Martin-Gleiss/smartvisu.git&amp;lt;/nowiki&amp;gt; .&lt;br /&gt;
Hierbei ist auf den Punkt am Ende der Zeile zu achten!&lt;br /&gt;
&lt;br /&gt;
==== Berechtigungen setzen====&lt;br /&gt;
Später wird die Visu vom Endgerät aus konfiguriert. Damit dies funktioniert, müssen die Berechtigungen für die Verzeichnisse und Dateien entsprechend angepasst werden. Hierzu wird im Stammverzeichnis von smartVISU ein Skript aufgerufen:&lt;br /&gt;
 sudo bash setpermissions&lt;br /&gt;
&lt;br /&gt;
====ggf. Gruppenmitgliedschaft anpassen====&lt;br /&gt;
Dieser Schritt ist optional und dann hilfreich, wenn man mit einem normalen user z.B. über fileZilla die Dateien austauschen möchte. Da der Schritt zulasten der Sicherheit geht, sollte man ihn nach Abschluss der Konfiguration ggf. wieder rückgängig machen.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird der user &amp;quot;pi&amp;quot; zur Gruppe &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; hinzugefügt. Verwendet man einen anderen user, muss dieses selbstverständig angepasst werden.&lt;br /&gt;
 sudo usermod -a -G www-data pi&lt;br /&gt;
&lt;br /&gt;
Rückgängig machen kann man die Gruppenzugehörigkeit über&lt;br /&gt;
 sudo deluser pi www-data&lt;br /&gt;
&lt;br /&gt;
====Installation überprüfen====&lt;br /&gt;
&lt;br /&gt;
Beim Aufruf der Seite &amp;lt;code&amp;gt;http://&amp;lt;IP-Adresse&amp;gt;/smartVISU&amp;lt;/code&amp;gt; sollte folgende Seite angezeigt werden: {{Randnotiz|RNTyp=y|RNText=&lt;br /&gt;
Ggf. in der php.ini (error_reporting) die Ausgabe von Warnings abschalten, wenn so was kommt wie &amp;quot;Notice: Undefined index...&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Diese Seite wird angezeigt, solange keine config.ini im Stammverzeichnis existiert, also die Konfiguration noch nicht durchgeführt wurde. &lt;br /&gt;
&lt;br /&gt;
[[Datei:Installation_SmartVISU.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier werden zudem einige Systemvoraussetzungen überprüft, die vor einer ersten Konfiguration erfüllt werden müssen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun kann mit der Konfiguration (gelber Button mit Zahnrädern) begonnen werden. Es wird empfohlen, die Datenverbindung auf &amp;quot;offline&amp;quot; zu setzen und sich zuerst mit den Beispiel-Häusern (example1.smarthome ...) vertraut zu machen. Auf deren Basis kann man dann später seine eigene Visualisierung erstellen. Da fronthem alle über die Datenverbindung angefragten items intern anlegt und registriert, wird empfohlen, die Datenverbindung mit fronthem erst zu aktivieren, wenn die Seiten weitgehend fertig sind. &lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
===SSL===&lt;br /&gt;
&lt;br /&gt;
Wird derzeit nicht unterstützt {{Link2Forum|Topic=43226|Message=352115|LinkText=(Forum)}}.&lt;br /&gt;
&lt;br /&gt;
===Performanceproblem===&lt;br /&gt;
&lt;br /&gt;
Während der Entwicklung wurden seit v2.8 verschiedene Maßnahmen zur Verbesserung der Performance eingeführt. Trotzdem hat die Plattform, auf der smartVISU läuft einen gehörigen Anteil an der Reaktivität der Oberfläche. Darüber hinaus hat selbstredend die Komplexität einer Seite Einfluss auf die Geschwindigkeit.&lt;br /&gt;
Auf langsamen Servern bringt nach Abschluss der Konfiguration und der Erstellung der eigenen Seiten die Aktivierung des smartVISU-Cache einen deutlichen Performancegewinn.&lt;br /&gt;
&lt;br /&gt;
=== Config-Seite anstatt der individuellen Seite===&lt;br /&gt;
&lt;br /&gt;
Es wurde noch keine Konfiguration durchgeführt und &amp;lt;u&amp;gt;&#039;&#039;&#039;abgespeichert&#039;&#039;&#039;&amp;lt;/u&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
=== Zugriffsprobleme mit Apache===&lt;br /&gt;
Anscheinend gab es vereinzelt Zugriffsprobleme auf das smartVISU-Vereichnis, die sich aber mit dieser Erweiterung der Apache-Konfiguration beheben lies {{Link2Forum|Topic=30909|Message=239882|LinkText=(Forum)}}:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Directory &amp;quot;/var/www/smartvisu&amp;quot;&amp;gt;&lt;br /&gt;
    Options +Indexes FollowSymLinks +ExecCGI&lt;br /&gt;
    AllowOverride AuthConfig FileInfo&lt;br /&gt;
    Order allow,deny&lt;br /&gt;
    Allow from all&lt;br /&gt;
&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===404 not found===&lt;br /&gt;
&lt;br /&gt;
Wird noch nicht einmal die Seite gefunden (404), sind bereits die statischen Seiteninhalte der Webseite nicht richtig konfiguriert. Es muss sichergestellt werden, dass eine Datei im Verzeichnis von smartVISU von einem Endgerät angezeigt werden kann {{Link2Forum|Topic= 46501|Message=49524|LinkText=(Forum)}}.&lt;br /&gt;
&lt;br /&gt;
===verschiedene Devices, verschiedene Anzeigen===&lt;br /&gt;
&lt;br /&gt;
Die Konfigurationsseite beinhaltet 3 Reiter für die globalen, seitenspezifischen und gerätespezifischen Einstellungen. Alle Reiter enthalten dieselben Konfigurationsmöglichkeiten. Globale Einstellungen werden in der config.ini im Stammverzeichnis der smartVISU gespeichert. Sofern vorhanden erhalten seitenspezifische Einstellungen eine eigene config.ini im Verzeichnis der eigenen Seiten und gerätespezifische Einstellungen werden in einem Cookie auf dem Endgerät gespeichert. Die gerätespezifischen Einstellungen müssen mit dem jeweiligen Endgerät gemacht werden. Durch Klick auf die jeweiligen Felder werden die einzelnen Einstellungen für Seiten / Geräte aktiviert und deaktiviert (ausgegraut). &lt;br /&gt;
&lt;br /&gt;
===neue Clients===&lt;br /&gt;
&lt;br /&gt;
Das Anlegen neuer Clients In smartVISU erfolgt automatisch ohne weitere Konfiguration. &lt;br /&gt;
&lt;br /&gt;
===Ordner und Dateien===&lt;br /&gt;
Auch wenn es im Normalfall nicht notwendig ist sollte, kann es manchmal sinnvoll sein, den genauen Speicherort aller Dateien und Konfigurationsdateien zu kennen und entsprechend Debugging-Trigger hinzuzufügen oder Konfigurationen direkt zu korrigieren. &lt;br /&gt;
&lt;br /&gt;
Die folgenden Pfadangaben gehen davon aus, dass das Root-Verzeichnis des eingesetzten Webservers /var/www/html/ ist und smartVISU im Unterordner /var/www/html/sv liegt.&lt;br /&gt;
&lt;br /&gt;
Dokumenten Root für smartVISU:&lt;br /&gt;
 /var/www/html/smartVISU/&lt;br /&gt;
&lt;br /&gt;
Konfigurationsdatei von smartVISU:&lt;br /&gt;
 /var/www/html/smartVISU/config.ini&lt;br /&gt;
&lt;br /&gt;
Treiber:&lt;br /&gt;
 /var/www/html/smartVISU/driver/io_fhem.js&lt;br /&gt;
&lt;br /&gt;
Temp-Ordner:&lt;br /&gt;
 /var/www/html/smartVISU/temp&lt;br /&gt;
&lt;br /&gt;
Template-Ordner für neue &amp;quot;page&amp;quot;:&lt;br /&gt;
 /var/www/html/smartVISU/pages/_template&lt;br /&gt;
&lt;br /&gt;
Eigener Page-Ordner&lt;br /&gt;
 /var/www/html/smartVISU/pages/&amp;lt;eigeneSeite&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/fritz!box_via_TR-064&amp;diff=40249</id>
		<title>SmartVISU/fritz!box via TR-064</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/fritz!box_via_TR-064&amp;diff=40249"/>
		<updated>2025-06-05T16:51:00Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Anpassung an smartVISU Versionen ab v2.9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU/fritz!box via TR-064}}&lt;br /&gt;
&lt;br /&gt;
==fritz!box_via_TR-064==&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Update Juni 2025:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Der Service &amp;quot;fritz!box_TR-064.php&amp;quot; ist seit smartVISU v2.9 Bestandteil des Pakets. Ein Download ist nicht mehr erforderlich.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download: https://github.com/herrmannj/smartvisu-widgets/tree/master/phoneservice/lib/phone/service&lt;br /&gt;
&lt;br /&gt;
Dieses Widget verwendet TR-064 zum Auslesen der Anruferliste. Es ist ein Protokoll das nahe am UPnP Standard ist (SOAP).&lt;br /&gt;
Getestet wurde es mit den FritzOS Versionen 6.03 und 6.20.&lt;br /&gt;
Dieses Widget wird unter der Smartvisu-Config Seite ausgewählt und es muss gegebenenfalls Benutzer und Passwort der Fritzbox in SmartVisu angegeben werden.&lt;br /&gt;
Wichtig ist, dass in der Fritzbox unter -&amp;gt;Heimnetz-&amp;gt;Netzwerk-&amp;gt;Netzwerkeinstellungen-&amp;gt;&amp;quot;Zugriff für Anwendungen zulassen&amp;quot; aktiviert ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Fronthem_Installation&amp;diff=40248</id>
		<title>Fronthem Installation</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Fronthem_Installation&amp;diff=40248"/>
		<updated>2025-06-05T16:29:52Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Hinweis auf alternatives Repository mit allen bekannten Verbesserungen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:fronthem Installation}}&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel befasst sich mit der Installation von &amp;quot;fronthem&amp;quot;. Es stellt ein Interface zur Verfügung, um ein Webfrontends wie z.B. [[smartVISU]] an FHEM anzubinden. Die Konfiguration und das Interface selbst sind im [[fronthem|Hauptartikel von fronthem]] beschrieben.&lt;br /&gt;
&lt;br /&gt;
Alle Artikel zur Thematik fronthem/smartVISU sind [[:Kategorie:fronthem/smartVISU|hier]] kategorisiert. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vorraussetzungen schaffen ==&lt;br /&gt;
&lt;br /&gt;
In Abhängigkeit der verwendeten Distribution gibt es mehrere Möglichkeiten, die einzelnen Pakete zu installieren {{Link2Forum|Topic=38639|Message=309479|LinkText=(Forum)}}. Für einige Installationsschritte ist das Paket build-essential, dass über diesen Befehlt installiert werden kann. Sonst können die make&#039;s während der folgenden Schritte nicht ausgeführt werden {{Link2Forum|Topic=30909|Message=235986|LinkText=(Forum)}}.&lt;br /&gt;
 sudo apt-get install build-essential&lt;br /&gt;
&lt;br /&gt;
=== cpanmin ===&lt;br /&gt;
 curl -L https://cpanmin.us | perl - --sudo App::cpanminus&lt;br /&gt;
&lt;br /&gt;
oder&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install cpanminus&lt;br /&gt;
&lt;br /&gt;
=== WebSocket ===&lt;br /&gt;
&lt;br /&gt;
 sudo cpanm Net::WebSocket::Server&lt;br /&gt;
oder {{Link2Forum|Topic=47120|Message=388577|LinkText=(Forum)}}&lt;br /&gt;
 sudo cpan install Net::WebSocket::Server&lt;br /&gt;
&lt;br /&gt;
=== JSON ===&lt;br /&gt;
&lt;br /&gt;
 sudo cpanm JSON&lt;br /&gt;
oder&lt;br /&gt;
 sudo cpan install JSON&lt;br /&gt;
oder falls es Probleme mit CPAN und Debian z.B. auf dem RPi gibt, kann man JSON auch über die normale Paketverwaltung installieren {{Link2Forum|Topic=30909|Message=237576|LinkText=(Forum)}}:&lt;br /&gt;
 sudo apt-get install libjson-perl&lt;br /&gt;
&lt;br /&gt;
== Module herunterladen ==&lt;br /&gt;
&lt;br /&gt;
Mit folgendem Befehl kann man fronthem installieren / updaten (in Eingabezeile von FHEM eingeben):&lt;br /&gt;
 update force https://raw.githubusercontent.com/herrmannj/fronthem/master/controls_fronthem.txt&lt;br /&gt;
&lt;br /&gt;
Durch die Option &amp;lt;code&amp;gt;force&amp;lt;/code&amp;gt; werden bei erneutem Aufruf auch erneut alle Dateien heruntergeladen und das Update so erzwungen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Update Juni 2025:&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Derzeit  wird fronthem nicht aktiv weiterentwickelt. Es haben sich jedoch über die Jahre einige Verbesserungen im Forum angesammelt, die entweder den Austausch einzelner Dateien erforderten, oder die Änderung von Codezeilen. Um hier ein funktionierendes Gesamtpaket anzubieten, wurden alle Änderungen behelfsmäßig in ein alternatives Repository eingearbeitet: https://github.com/wvhn/fronthem. Im master branch ist dort eine gut getestete Version, die ohne weitere Modifikation lauffähig ist.  Der develop branch enthält weitere Neuerungen vor allerm bei der universellen Zeitschaltuhr und den Plots. Allerdings sind diese Änderungen nicht breit getestet und die Dokumentation ist noch lückenhaft ([https://forum.fhem.de/index.php?topic=127432.msg1234367#msg1234367 Forum], [https://forum.fhem.de/index.php?topic=129106.0 Forum], [https://forum.fhem.de/index.php?topic=118668.msg1259044#msg1259044 Forum]).  &lt;br /&gt;
&lt;br /&gt;
== Ersteinrichtung innerhalb von FHEM ==&lt;br /&gt;
&lt;br /&gt;
Die Konfiguration von fronthem in FHEM (Eingabe in der Fhem Web Kommandozeile):&lt;br /&gt;
 define &amp;lt;Name Webservice&amp;gt; fronthem&lt;br /&gt;
&lt;br /&gt;
 define &amp;lt;Name Endgerät&amp;gt; fronthemDevice &amp;lt;IP Endgerät&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Beispiel:&lt;br /&gt;
 define meinfronthem fronthem&lt;br /&gt;
&lt;br /&gt;
 define meiniphone fronthemDevice 192.168.178.25&lt;br /&gt;
&lt;br /&gt;
Näheres zur Einrichtung und Konfiguration innerhalb von FHEM findet sich im [[fronthem|Hauptartikel]] von fronthem.&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
=== Fehler bei Installation von WebSocket ===&lt;br /&gt;
&lt;br /&gt;
Zum einen ist für die Installation das Paket build-essential notwendig, dass z.B. über folgenden Befehl installiert werden kann:&lt;br /&gt;
 sudo apt-get install build-essential&lt;br /&gt;
&lt;br /&gt;
Darüber hinaus muss die Konfiguration des Netzwerk-Interfaces korrekt und vollständig sein {{Link2Forum|Topic=52694|Message=445277|LinkText=(Forum)}}.&lt;br /&gt;
&lt;br /&gt;
=== Port 2121 belegt ===&lt;br /&gt;
&lt;br /&gt;
Ist der Port 2121 bereits durch einen anderen Dienst belegt, z.B. ein OWS Server, gibt es beim Versuch den Websocketserver zu starten eine Fehlermeldung {{Link2Forum|Topic=38639|Message=313193|LinkText=(Forum)}}.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/IconHighlights_in_Menus&amp;diff=40242</id>
		<title>SmartVISU/IconHighlights in Menus</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/IconHighlights_in_Menus&amp;diff=40242"/>
		<updated>2025-06-05T12:18:25Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Anpassung an smartVISU Versionen ab v2.9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU/IconHighlights in Menus}}&lt;br /&gt;
&lt;br /&gt;
Mit dem folgenden Code lassen sich, zum Beispiel innerhalb vom Hauptmenu oder in der Raumübersicht die Icons farbig kennzeichnen.&lt;br /&gt;
&lt;br /&gt;
Bis smartVISU v2.6&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;a href=&amp;quot;index.php?page=room_living&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;img class=&amp;quot;icon&amp;quot; src=&amp;quot;{{ page == &#039;room_living&#039; ? icon1 : icon0 }}scene_livingroom.png&amp;quot;/&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;h3&amp;gt;Wohnzimmer&amp;lt;/h3&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ab smartVISU v2.7 werden svg-Icons verwendet und deren Stile mit Klassen festgelegt:  &lt;br /&gt;
 &amp;lt;a class=&amp;quot;icon1&amp;quot; href=&amp;quot;index.php?page=room_living&amp;quot; &amp;gt;&lt;br /&gt;
 &amp;lt;img class=&amp;quot;icon{% if page == &#039;room_living&#039; %} icon1 {% else %} icon0{% endif %}&amp;quot; src=&amp;quot;&amp;lt;nowiki&amp;gt;{{ icon0 }}&amp;lt;/nowiki&amp;gt;scene_livingroom.svg&amp;quot; alt=&amp;quot;Wohnzimmer&amp;quot; /&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;h3&amp;gt;Wohnzimmer&amp;lt;/h3&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ab smartVISU v3.4 gibt es die Designs mit Dark Mode. Hier ist es sinnvoll, im Raummenü die folgende Schreibweise zu nutzen:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;a href=&amp;quot;index.php?page=room_living&amp;quot;&amp;gt;&lt;br /&gt;
     {{ lib.svgimg (&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;scene livingroom.svg&#039;, page == &#039;room_living&#039;?&#039;icon1&#039;:&#039;icon0&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;   &amp;lt;nowiki&amp;gt;&amp;lt;h3&amp;gt;Wohnzimmer&amp;lt;/h3&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Vorteil dieser Methode ist zusätzlich, dass das Icon schon während des Renderns durch Twig eingebettet wird und damit vom smartVISU-Cache gespeichert wird.  Das bewirkt bei großen Seiten deutliche Performancegewinne auf langsamen Servern. &lt;br /&gt;
&lt;br /&gt;
Wenn der Code in einem übergeordneten List-Element ist, muss dieses noch die Klasse&lt;br /&gt;
 class=&amp;quot;ui-li-has-thumb&amp;quot;&lt;br /&gt;
erhalten.&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/ical&amp;diff=40241</id>
		<title>SmartVISU/ical</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/ical&amp;diff=40241"/>
		<updated>2025-06-05T11:32:28Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Anpassung an smartVISU Versionen ab v2.9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Diese Seite beschreibt eine Vorgehensweise, die für smartVISU bis v2.7 erforderlich war. Bei allen späteren Versionen ist der iCal-Service enthalten und wird über die Konfigurationsseite ausgewählt und parametriert.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um einen Kalender in [[SmartVISU]] mit dem Widget widget_ical einzubinden, ist folgendes zu tun:&lt;br /&gt;
&lt;br /&gt;
* Die Datei iCalcreator.class.php aus dem Paket http://kigkonsult.se/downloads/index.php#iCalcreator unter einem beliebigen Pfad ablegen, der aber in der ical.php eingetragen werden muss.&lt;br /&gt;
* Ablegen der Datei ical.php in das Verzeichnis /smartVISU/lib/calendar/service  &lt;br /&gt;
* Ablegen der Datei widget_ical.html in das Homeverzeichnis der eigenen Seite z.b. /smartVISU/pages/fhem&lt;br /&gt;
* Definition der Kalender findet in den Settings statt. Die Kalender werden wie folgt definiert:&lt;br /&gt;
: - wie bisher nur die Url&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/calendar&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: - die Url mit Parameter Farbe und Icon&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/calendar(Default Farbe,Default Icon)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: - die Url mit Parameter Farbe&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/calendar(Default Farbe)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: - die Url mit Parameter Icon&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/calendar(,Default Icon)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: - zwei Kalenderurls mit unterschiedlichen Parametern&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/calendar(,message_garbage);http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/Geburtstage(#ff69b4,scene_party)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: - eine lokale Url&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;file:/tmp/calendar.ics&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: - zwei Kalenderurls eine lokale und eine auf einem Caldav/Webserver&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;file:/tmp/calendar.ics(,message_garbage);http://xxx:xxx@xxx.xxx.xxx.xxx/davical/caldav.php/norbert/Geburtstage(#ff69b4,scene_party)&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;    &lt;br /&gt;
: Die Icons sind die Namen der png-Dateien ohne .png. Wenn keine Parameter, für Farbe und Icon mitgegeben werden und auch keine in den Terminen hinterlegt sind,     wird ein Standardicon und eine Standardfarbe gesetzt. Das setzen dieser Parameter pro Termin erfolgt im Beschreibungsfeld des jeweiligen Termin.&lt;br /&gt;
:Bei allen abgelegten Dateien muss auf die Rechte geachtet werden. Es sollten die gleichen User/Group-Rechte verwendet werden, wie auch bei den Dateien im pages Ordner.&lt;br /&gt;
* Einbinden es Kalenders auf einer SV-Seite:&lt;br /&gt;
: &amp;lt;code&amp;gt;{% import &amp;quot;widget_ical.html&amp;quot; as calendar %}&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ calendar.list(&#039;calendarlist&#039;, &#039;Termine&#039;, 6, 21) }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: Die erste Zahl (6) ist die Anzahl der Termine die aufgelistet werden. Die zweite Zahl (21) ist die Anzahl der Tage, die im Kalender in die Zukunft geprüft wird, ob sich ein Termin wiederholt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quelle und Download benötigter Dateien: {{Link2Forum|Topic=35831}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/Universelle_ZeitSchaltUhr_(UZSU)&amp;diff=40240</id>
		<title>SmartVISU/Universelle ZeitSchaltUhr (UZSU)</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/Universelle_ZeitSchaltUhr_(UZSU)&amp;diff=40240"/>
		<updated>2025-06-05T11:12:02Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Fehlerkorrektur&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU/Universelle ZeitSchaltUhr (UZSU)}}&lt;br /&gt;
Dieser Artikel behandelt die Einrichtung einer universellen Zeitschaltuhr innerhalb des Frontends [[smartVISU]]. &lt;br /&gt;
&lt;br /&gt;
==== UZSU-Widget ====&lt;br /&gt;
Das Widget „device.uzsuicon“, mit dem alle Einstellungen vorgenommen werden, ist als Standard in smartVISU enthalten. Es  kann in SmartVISU-Seiten wie gewohnt eingebunden werden:&lt;br /&gt;
&lt;br /&gt;
(für ein Ergebnis, das der Benutzer direkt eintippen kann, z.B. &#039;on&#039; oder &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUtxt&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;text&#039;) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder Text als Dropdown:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUtxt&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;text&#039;, [&#039;an&#039;, &#039;aus&#039;]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder (für eine einzugebende Ziffer zwischen 0 und 100)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUnum&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;num&#039;, [0, 100]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder (für ein Ergebnis {0,1}, das aber als flip mit &#039;an&#039; und &#039;aus&#039; angezeigt wird)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUnum&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;bool&#039;, [&#039;an&#039;, &#039;aus&#039;]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Beispiele sind in der Inline-Doku von smartVISU zu finden oder können mit dem Widget-Assistenten live ausprobiert werden.&lt;br /&gt;
&lt;br /&gt;
=== fronthem ===&lt;br /&gt;
Um die Antwort des Widgets in fhem zu verarbeiten, benötigt man &lt;br /&gt;
&lt;br /&gt;
1. je ein Reading uzsu an dem zu schaltenden Device, das man mit &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
setreading &amp;lt;device&amp;gt; uzsu {}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erzeugen MUSS.&lt;br /&gt;
&lt;br /&gt;
2. eine Anbindung des UZSU-GAD per UZSU Converter aus der 99_fronthemUtils.pm (s. u.) an das Reading uzsu des zu schaltenden Device read und write in fhem&lt;br /&gt;
&lt;br /&gt;
3. Den sonstigen UZSU  Code aus der  99_FronthemUtils.pm aus dem http://github.com/herrmannj/fronthem (ist bei aktuellem fronthem alles schon drin)&lt;br /&gt;
&lt;br /&gt;
Dieser Code erzeugt aus den Einstellungen im Widget entsprechende WeekdayTimer in fhem und löscht und erstellt neu bei jeder Änderung in SmartVISU.&lt;br /&gt;
&lt;br /&gt;
4. Die Funktion muss getriggert werden. Dazu ist ein notify nötig, das auf die Veränderung der uzsu Readings reagiert:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 define UZSU notify .*:uzsu:.* { UZSU_execute($NAME, $EVTPART1) }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
5. GAD Editor Einstellungen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
mode:      item&lt;br /&gt;
device:    &amp;lt;DEIN_DEVICE&amp;gt;&lt;br /&gt;
reading:   uzsu&lt;br /&gt;
converter: UZSU&lt;br /&gt;
cmd set:   uzsu&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voila!&lt;br /&gt;
&lt;br /&gt;
====Conditions====&lt;br /&gt;
Eine Besonderheit der UZSU in Verbindung mit FHEM ist die Verarbeitung von Bedingungen (Conditions). Diese werden durch den Button &amp;quot;Experte&amp;quot; im UZSU-Popup aufgerufen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:UZSU_Popup_mit_Expertenmodus.png|...|Expertenmodus im UZSU-Popup]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Feld &amp;quot;Holiday&amp;quot; bietet die Möglichleit, Schaltbefehle nur an Arbeitstagen oder nur an Feiertagen / Wochenenden auszuführen. Dazu wird im WeekdayTimer das Attribut $we gesetzt (siehe [[WeekdayTimer]]).&lt;br /&gt;
&lt;br /&gt;
In den Feldern &amp;quot;Condition&amp;quot; und &amp;quot;DelayedExec&amp;quot; können Bedingungen enttweder als Pearl-Anweisung (Dropdown muss auf &amp;quot;String&amp;quot; stehen) oder als Kombination aus Device, Vergleichsoperator und Vergleichswert angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel für Pearl-String:&lt;br /&gt;
 &#039;&#039;ReadingsVal(&amp;quot;&amp;lt;code&amp;gt;Hzg_Wohnzimmer&amp;quot;,&amp;quot;temperature&amp;quot;,&amp;quot;&amp;quot;&amp;lt;/code&amp;gt;) eq &amp;quot;22&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
([https://forum.fhem.de/index.php?msg=430522 Forum], [https://forum.fhem.de/index.php?topic=127432.0 Forum])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Device bei Verwendung der Vergleichsoperatoren:&lt;br /&gt;
 &amp;lt;code&amp;gt;ReadingsVal(&amp;quot;Hzg_Wohnzimmer&amp;quot;,&amp;quot;temperature&amp;quot;,&amp;quot;&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Fronthem akzeptiert in diesem Fall Readingsval, AttrVal und InternalVal, sowie Value(&amp;quot;device2check&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/Universelle_ZeitSchaltUhr_(UZSU)&amp;diff=40239</id>
		<title>SmartVISU/Universelle ZeitSchaltUhr (UZSU)</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/Universelle_ZeitSchaltUhr_(UZSU)&amp;diff=40239"/>
		<updated>2025-06-04T23:32:58Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Erweiterung um UZSU Conditions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU/Universelle ZeitSchaltUhr (UZSU)}}&lt;br /&gt;
Dieser Artikel behandelt die Einrichtung einer universellen Zeitschaltuhr innerhalb des Frontends [[smartVISU]]. &lt;br /&gt;
&lt;br /&gt;
==== UZSU-Widget ====&lt;br /&gt;
Das Widget „device.uzsuicon“, mit dem alle Einstellungen vorgenommen werden, ist als Standard in smartVISU enthalten. Es  kann in SmartVISU-Seiten wie gewohnt eingebunden werden:&lt;br /&gt;
&lt;br /&gt;
(für ein Ergebnis, das der Benutzer direkt eintippen kann, z.B. &#039;on&#039; oder &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUtxt&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;text&#039;) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder Text als Dropdown:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUtxt&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;text&#039;, [&#039;an&#039;, &#039;aus&#039;]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder (für eine einzugebende Ziffer zwischen 0 und 100)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUnum&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;num&#039;, [0, 100]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder (für ein Ergebnis {0,1}, das aber als flip mit &#039;an&#039; und &#039;aus&#039; angezeigt wird)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUnum&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;bool&#039;, [&#039;an&#039;, &#039;aus&#039;]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Beispiele sind in der Inline-Doku von smartVISU zu finden oder können mit dem Widget-Assistenten live ausprobiert werden.&lt;br /&gt;
&lt;br /&gt;
=== fronthem ===&lt;br /&gt;
Um die Antwort des Widgets in fhem zu verarbeiten, benötigt man &lt;br /&gt;
&lt;br /&gt;
1. je ein Reading uzsu an dem zu schaltenden Device, das man mit &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
setreading &amp;lt;device&amp;gt; uzsu {}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erzeugen MUSS.&lt;br /&gt;
&lt;br /&gt;
2. eine Anbindung des UZSU-GAD per UZSU Converter aus der 99_fronthemUtils.pm (s. u.) an das Reading uzsu des zu schaltenden Device read und write in fhem&lt;br /&gt;
&lt;br /&gt;
3. Den sonstigen UZSU  Code aus der  99_FronthemUtils.pm aus dem http://github.com/herrmannj/fronthem (ist bei aktuellem fronthem alles schon drin)&lt;br /&gt;
&lt;br /&gt;
Dieser Code erzeugt aus den Einstellungen im Widget entsprechende WeekdayTimer in fhem und löscht und erstellt neu bei jeder Änderung in SmartVISU.&lt;br /&gt;
&lt;br /&gt;
4. Die Funktion muss getriggert werden. Dazu ist ein notify nötig, das auf die Veränderung der uzsu Readings reagiert:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 define UZSU notify .*:uzsu:.* { UZSU_execute($NAME, $EVTPART1) }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
5. GAD Editor Einstellungen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
mode:      item&lt;br /&gt;
device:    &amp;lt;DEIN_DEVICE&amp;gt;&lt;br /&gt;
reading:   uzsu&lt;br /&gt;
converter: UZSU&lt;br /&gt;
cmd set:   uzsu&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voila!&lt;br /&gt;
&lt;br /&gt;
====Conditions====&lt;br /&gt;
Eine Besonderheit der UZSU in Verbindung mit FHEM ist die Verarbeitung von Bedingungen (Conditions). Diese werden durch den Button &amp;quot;Experte&amp;quot; im UZSU-Popup aufgerufen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:UZSU_Popup_mit_Expertenmodus.png|...|Expertenmodus im UZSU-Popup]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Feld &amp;quot;Holiday&amp;quot; bietet die Möglichleit, Schaltbefehle nur an Arbeitstagen oder nur an Feiertagen / Wochenenden auszuführen. Dazu wird im WeekdayTimer das Attribut $we gesetzt (siehe [[WeekdayTimer]]).&lt;br /&gt;
&lt;br /&gt;
In den Feldern &amp;quot;Condition&amp;quot; und &amp;quot;DelayedExec&amp;quot; können Bedingungen enttweder als Pearl-Anweisung (Dropdown muss auf &amp;quot;String&amp;quot; stehen) oder als Kombination aus Device, Vergleichsoperator und Vergleichswert angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Beispiel für Pearl-String:&lt;br /&gt;
 &#039;&#039;ReadingsVal(&amp;quot;&amp;lt;code&amp;gt;Wohnzimmer&amp;quot;,&amp;quot;temperature&amp;quot;&amp;lt;/code&amp;gt;&amp;quot;&amp;quot;) eq &amp;quot;22&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
([https://forum.fhem.de/index.php?msg=430522 Forum], [https://forum.fhem.de/index.php?topic=127432.0 Forum])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Device bei Verwendung der Vergleichsoperatoren:&lt;br /&gt;
 &amp;lt;code&amp;gt;ReadingsVal(&amp;quot;Wohnzimmer&amp;quot;,&amp;quot;temperature&amp;quot;,&amp;quot;&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Fronthem akzeptiert in diesem Fall Readingsval, AttrVal und InternalVal, sowie Value(&amp;quot;device2check&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=Datei:UZSU_Popup_mit_Expertenmodus.png&amp;diff=40238</id>
		<title>Datei:UZSU Popup mit Expertenmodus.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=Datei:UZSU_Popup_mit_Expertenmodus.png&amp;diff=40238"/>
		<updated>2025-06-04T22:05:20Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Darstellung der Felder für den Expertenmodus für Conditions und Delayed Execution&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/Universelle_ZeitSchaltUhr_(UZSU)&amp;diff=40237</id>
		<title>SmartVISU/Universelle ZeitSchaltUhr (UZSU)</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/Universelle_ZeitSchaltUhr_(UZSU)&amp;diff=40237"/>
		<updated>2025-06-04T21:49:42Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU/Universelle ZeitSchaltUhr (UZSU)}}&lt;br /&gt;
Dieser Artikel behandelt die Einrichtung einer universellen Zeitschaltuhr innerhalb des Frontends [[smartVISU]]. &lt;br /&gt;
&lt;br /&gt;
==== UZSU-Widget ====&lt;br /&gt;
Das Widget „device.uzsuicon“, mit dem alle Einstellungen vorgenommen werden, ist als Standard in smartVISU enthalten. Es  kann in SmartVISU-Seiten wie gewohnt eingebunden werden:&lt;br /&gt;
&lt;br /&gt;
(für ein Ergebnis, das der Benutzer direkt eintippen kann, z.B. &#039;on&#039; oder &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUtxt&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;text&#039;) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder Text als Dropdown:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUtxt&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;text&#039;, [&#039;an&#039;, &#039;aus&#039;]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder (für eine einzugebende Ziffer zwischen 0 und 100)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUnum&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;num&#039;, [0, 100]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder (für ein Ergebnis {0,1}, das aber als flip mit &#039;an&#039; und &#039;aus&#039; angezeigt wird)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUnum&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;bool&#039;, [&#039;an&#039;, &#039;aus&#039;]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Weitere Beispiele sind in der Inline-Doku von smartVISU zu finden oder können mit dem Widget-Assistenten live ausprobiert werden.&lt;br /&gt;
&lt;br /&gt;
=== fronthem ===&lt;br /&gt;
Um die Antwort des Widgets in fhem zu verarbeiten, benötigt man &lt;br /&gt;
&lt;br /&gt;
1. je ein Reading uzsu an dem zu schaltenden Device, das man mit &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
setreading &amp;lt;device&amp;gt; uzsu {}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erzeugen MUSS.&lt;br /&gt;
&lt;br /&gt;
2. eine Anbindung des UZSU-GAD per UZSU Converter aus der 99_fronthemUtils.pm (s. u.) an das Reading uzsu des zu schaltenden Device read und write in fhem&lt;br /&gt;
&lt;br /&gt;
3. Den sonstigen UZSU  Code aus der  99_FronthemUtils.pm aus dem http://github.com/herrmannj/fronthem (ist bei aktuellem fronthem alles schon drin)&lt;br /&gt;
&lt;br /&gt;
Dieser Code erzeugt aus den Einstellungen im Widget entsprechende WeekdayTimer in fhem und löscht und erstellt neu bei jeder Änderung in SmartVISU.&lt;br /&gt;
&lt;br /&gt;
4. Die Funktion muss getriggert werden. Dazu ist ein notify nötig, das auf die Veränderung der uzsu Readings reagiert:&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 define UZSU notify .*:uzsu:.* { UZSU_execute($NAME, $EVTPART1) }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
5. GAD Editor Einstellungen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
mode:      item&lt;br /&gt;
device:    &amp;lt;DEIN_DEVICE&amp;gt;&lt;br /&gt;
reading:   uzsu&lt;br /&gt;
converter: UZSU&lt;br /&gt;
cmd set:   uzsu&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voila!&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/lichtSzene&amp;diff=40212</id>
		<title>SmartVISU/lichtSzene</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/lichtSzene&amp;diff=40212"/>
		<updated>2025-06-04T11:48:43Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU/lichtSzene}}&lt;br /&gt;
&lt;br /&gt;
mit dem folgenden Code lässt sich eine Auswahl für Lichtszenen in smartVisu / fhem erstellen.&lt;br /&gt;
&lt;br /&gt;
So soll es aussehen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Smartvisu_Lichtszene_radio_buttons.png|600px|thumb|left|Screenshot Frontend smartVISU]]&lt;br /&gt;
&lt;br /&gt;
Die Radio Buttons sollen dabei in einem Raum folgende Lichtszenen steuern:&lt;br /&gt;
&lt;br /&gt;
* automatische Beleuchtung &lt;br /&gt;
* Fernsehen&lt;br /&gt;
* Arbeitsbeleuchtung &lt;br /&gt;
* Essen&lt;br /&gt;
* Party&lt;br /&gt;
* volle Beleuchtung&lt;br /&gt;
* Weihnachtsbeleuchtung&lt;br /&gt;
* alles Aus&lt;br /&gt;
&lt;br /&gt;
Die gewünschte Funktionalität ist dabei das sich die Lichtszenen umschalten lassen. Wenn eine bereits aktivierte Funktion nochmal betätigt wird entspricht das &amp;quot;aus&amp;quot;. Die Weihnachtsbeleuchtung soll sich unabhängig von den anderen Beleuchtungs Szenen aktivieren oder deaktivieren lassen.&lt;br /&gt;
&lt;br /&gt;
Das bisher hier verwendete Widget &amp;quot;basic.dual&amp;quot; wurde in Version 2.9 ungültig gemacht und in v3.0 gelöscht. Es wird durch &amp;quot;basic.stateswitch&amp;quot; ersetzt, für das es ausführliche Beispiele in der Inline-Doku gibt, oder (meist mit zeitlicher Verzögerung) auch online: &lt;br /&gt;
[https://docu.smartvisu.de/3.5/index.php?page=basic/widget_basic.stateswitch]&lt;br /&gt;
&lt;br /&gt;
Der Screenshot oben wird mit diesem code in sv erzeugt:&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span style=&amp;quot;display:inline-block; width: 40%&amp;quot;&amp;gt;Lichtszene&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span data-role=&amp;quot;controlgroup&amp;quot; data-type=&amp;quot;horizontal&amp;quot;&amp;gt;&lt;br /&gt;
  	{{ basic.stateswitch(&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;wz.light.szene.auto&#039;, &#039;midi&#039;, [&#039;auto&#039;, &#039;off&#039;], &#039;time_automatic&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;	{{ basic.stateswitch(&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;wz.light.szene.tv&#039;, &#039;midi&#039;, [&#039;tv&#039;, &#039;off&#039;], &#039;it_television&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;	&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;	{{ basic.stateswitch(&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;wz.light.szene.work&#039;, &#039;midi&#039;, [&#039;work&#039;, &#039;off&#039;], &#039;light_ceiling_light&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;	&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;	{{ basic.stateswitch(&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;wz.light.szene.eat&#039;, &#039;midi&#039;, [&#039;eat&#039;, &#039;off&#039;], &#039;light_dinner_table&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;	{{ basic.stateswitch(&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;wz.light.szene.party&#039;,&#039;midi&#039;, [&#039;party&#039;, &#039;off&#039;], &#039;light_party&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;	{{ basic.stateswitch(&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;wz.light.szene.full&#039;, &#039;midi&#039;, [&#039;full&#039;, &#039;off&#039;], &#039;light_light_dim_100&#039;, &#039;&#039;&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;	{{ basic.stateswitch(&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;wz.light.szene.xmas&#039;, &#039;midi&#039;, [&#039;on&#039;, &#039;off&#039;], &#039;scene_x-mas&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt; &amp;lt;/nowiki&amp;gt;	{{ basic.stateswitch(&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;, &#039;wz.light.szene.off&#039;, &#039;midi&#039;, [&#039;off&#039;, &#039;off&#039;], &#039;control_on_off&#039;, &amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird in fhem dazu ein dummy erzeugt, über den die Lichtszenen gesteuert werden. Natürlich gäbe es auch alternative Umsetzungen, bspw mit lightscene)&lt;br /&gt;
&lt;br /&gt;
Der dummy (name wz.licht.scene) bekommt diese setlist&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
define wz.licht.scene dummy&lt;br /&gt;
attr wz.licht.scene setList off auto tv eat work party full&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:fronthem_gadeditor_lichtszene.png|600px|thumb|right|ronthem Editor]]&lt;br /&gt;
&lt;br /&gt;
Nach einem reload der sv Seite werden die oben definierten GADs vom fronthemDevice in fhem angezeigt (hier mit bereits definierten GAD). Jetzt müssen die buttons (über ihr GAD) mit der fhem Funktionalität verbunden werden. Hier soll jeder button mit seinem Value den dummy setzen. &lt;br /&gt;
&lt;br /&gt;
Mit den folgenden Einstellungen, die für jedes GAD der Button Group durchgefühert werden müssen, wird das erwünschte Verhalten erreicht. Jeder Button der Group setzt das dummy jetzt auf den den seinen &amp;quot;ON-VALUE&amp;quot; (dritt - vorletzter Wert in der definition oben). Ein weiterer Click (oder der rechte Button) setzt alles aus.&lt;br /&gt;
&lt;br /&gt;
Für die Weihanchtsbeleuchtung wird unabhängig ein Steckdose geschaltet, das ist hier nicht dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/lichtSzene&amp;diff=40211</id>
		<title>SmartVISU/lichtSzene</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/lichtSzene&amp;diff=40211"/>
		<updated>2025-06-04T11:37:57Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Anpassung an smartVISU Versionen ab v2.9&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU/lichtSzene}}&lt;br /&gt;
&lt;br /&gt;
mit dem folgenden Code lässt sich eine Auswahl für Lichtszenen in smartVisu / fhem erstellen.&lt;br /&gt;
&lt;br /&gt;
So soll es aussehen:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Smartvisu_Lichtszene_radio_buttons.png|600px|thumb|left|Screenshot Frontend smartVISU]]&lt;br /&gt;
&lt;br /&gt;
Die Radio Buttons sollen dabei in einem Raum folgende Lichtszenen steuern:&lt;br /&gt;
&lt;br /&gt;
* automatische Beleuchtung &lt;br /&gt;
* Fernsehen&lt;br /&gt;
* Arbeitsbeleuchtung &lt;br /&gt;
* Essen&lt;br /&gt;
* Party&lt;br /&gt;
* volle Beleuchtung&lt;br /&gt;
* Weihnachtsbeleuchtung&lt;br /&gt;
* alles Aus&lt;br /&gt;
&lt;br /&gt;
Die gewünschte Funktionalität ist dabei das sich die Lichtszenen umschalten lassen. Wenn eine bereits aktivierte Funktion nochmal betätigt wird entspricht das &amp;quot;aus&amp;quot;. Die Weihnachtsbeleuchtung soll sich unabhängig von den anderen Beleuchtungs Szenen aktivieren oder deaktivieren lassen.&lt;br /&gt;
&lt;br /&gt;
Das bisher hier verwendete Widget &amp;quot;basic.dual&amp;quot; wurde in Version 2.9 ungültig gemacht und in v3.0 gelöscht. Es wird durch &amp;quot;basic.stateswitch&amp;quot; ersetzt, für das es ausführliche Beispiele in der Inline-Doku gibt, oder (meist mit zeitlicher Verzögerung) auch online: &lt;br /&gt;
[https://docu.smartvisu.de/3.5/index.php?page=basic/widget_basic.stateswitch]&lt;br /&gt;
&lt;br /&gt;
Der Screenshot oben wird mit diesem code in sv erzeugt:&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span style=&amp;quot;display:inline-block; width: 40%&amp;quot;&amp;gt;Lichtszene&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;span data-role=&amp;quot;controlgroup&amp;quot; data-type=&amp;quot;horizontal&amp;quot;&amp;gt;&lt;br /&gt;
 	{{ basic.stateswitch(&#039;light.a&#039;, &#039;wz.light.szene.auto&#039;, &#039;midi&#039;, [&#039;auto&#039;, &#039;off&#039;], &#039;time_automatic&#039;,     &amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 	{{ basic.stateswitch(&#039;light.b&#039;, &#039;wz.light.szene.tv&#039;,   &#039;midi&#039;, [&#039;tv&#039;, &#039;off&#039;],   &#039;it_television&#039;,      &amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;	&lt;br /&gt;
 	{{ basic.stateswitch(&#039;light.c&#039;, &#039;wz.light.szene.work&#039;, &#039;midi&#039;, [&#039;work&#039;, &#039;off&#039;], &#039;light_ceiling_light&#039;,&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;	&lt;br /&gt;
 	{{ basic.stateswitch(&#039;light.d&#039;, &#039;wz.light.szene.eat&#039;,  &#039;midi&#039;, [&#039;eat&#039;, &#039;off&#039;],  &#039;light_dinner_table&#039;, &amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 	{{ basic.stateswitch(&#039;light.e&#039;, &#039;wz.light.szene.party&#039;,&#039;midi&#039;, [&#039;party&#039;, &#039;off&#039;],&#039;light_party&#039;,        &amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 	{{ basic.stateswitch(&#039;light.f&#039;, &#039;wz.light.szene.full&#039;, &#039;midi&#039;, [&#039;full&#039;, &#039;off&#039;], &#039;light_light_dim_100&#039;,&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 	{{ basic.stateswitch(&#039;light.g&#039;, &#039;wz.light.szene.xmas&#039;, &#039;midi&#039;, [&#039;on&#039;, &#039;off&#039;],   &#039;scene_x-mas&#039;,        &amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 	{{ basic.stateswitch(&#039;light.h&#039;, &#039;wz.light.szene.off&#039;,  &#039;midi&#039;, [&#039;off&#039;, &#039;off&#039;],  &#039;control_on_off&#039;,     &amp;lt;/nowiki&amp;gt;&#039;&#039;&amp;lt;nowiki&amp;gt;, [&#039;icon1&#039;, &#039;icon0&#039;] ) }}&amp;lt;/nowiki&amp;gt;&#039;&#039;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel wird in fhem dazu ein dummy erzeugt, über den die Lichtszenen gesteuert werden. Natürlich gäbe es auch alternative Umsetzungen, bspw mit lightscene)&lt;br /&gt;
&lt;br /&gt;
Der dummy (name wz.licht.scene) bekommt diese setlist&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
define wz.licht.scene dummy&lt;br /&gt;
attr wz.licht.scene setList off auto tv eat work party full&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:fronthem_gadeditor_lichtszene.png|600px|thumb|right|ronthem Editor]]&lt;br /&gt;
&lt;br /&gt;
Nach einem reload der sv Seite werden die oben definierten GADs vom fronthemDevice in fhem angezeigt (hier mit bereits definierten GAD). Jetzt müssen die buttons (über ihr GAD) mit der fhem Funktionalität verbunden werden. Hier soll jeder button mit seinem Value den dummy setzen. &lt;br /&gt;
&lt;br /&gt;
Mit den folgenden Einstellungen, die für jedes GAD der Button Group durchgefühert werden müssen, wird das erwünschte Verhalten erreicht. Jeder Button der Group setzt das dummy jetzt auf den den seinen &amp;quot;ON-VALUE&amp;quot; (dritt - vorletzter Wert in der definition oben). Ein weiterer Click (oder der rechte Button) setzt alles aus.&lt;br /&gt;
&lt;br /&gt;
Für die Weihanchtsbeleuchtung wird unabhängig ein Steckdose geschaltet, das ist hier nicht dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
	<entry>
		<id>http://wiki.fhem.de/w/index.php?title=SmartVISU/Universelle_ZeitSchaltUhr_(UZSU)&amp;diff=40209</id>
		<title>SmartVISU/Universelle ZeitSchaltUhr (UZSU)</title>
		<link rel="alternate" type="text/html" href="http://wiki.fhem.de/w/index.php?title=SmartVISU/Universelle_ZeitSchaltUhr_(UZSU)&amp;diff=40209"/>
		<updated>2025-06-04T08:26:32Z</updated>

		<summary type="html">&lt;p&gt;Wvhn: Anpassung auf aktuelle smartVISU Version (ab v2.9)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SEITENTITEL:smartVISU/Universelle ZeitSchaltUhr (UZSU)}}&lt;br /&gt;
Dieser Artikel behandelt die Einrichtung einer universellen Zeitschaltuhr innerhalb des Frontends [[smartVISU]]. &lt;br /&gt;
&lt;br /&gt;
Das Widget „device.uzsuicon“, mit dem alle Einstellungen vorgenommen werden, ist als Standard in smartVISU enthalten. Es  kann in SmartVISU-Seiten wie gewohnt eingebunden werden:&lt;br /&gt;
&lt;br /&gt;
(für ein Ergebnis, das der Benutzer direkt eintippen kann, z.B. &#039;on&#039; oder &#039;off&#039;)&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUtxt&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;text&#039;) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder Text als Dropdown:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUtxt&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;text&#039;, [&#039;an&#039;, &#039;aus&#039;]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
oder (für eine einzugebende Ziffer zwischen 0 und 100)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUnum&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;num&#039;, [0, 100]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
oder (für ein Ergebnis {0,1}, das aber als flip mit &#039;an&#039; und &#039;aus&#039; angezeigt wird)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;{{ device.uzsuicon(&#039;UZSUnum&#039;, gad_uzsu, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;bool&#039;, [&#039;an&#039;, &#039;aus&#039;]) }}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Weitere Beispiele sind in der Inline-Doku von smartVISU zu finden oder können mit dem Widget-Assistenten live ausprobiert werden. &lt;br /&gt;
 &lt;br /&gt;
Um die Antwort des Widgets in fhem zu verarbeiten, benötigt man &lt;br /&gt;
&lt;br /&gt;
1. je ein Reading uzsu an dem zu schaltenden Device, das man mit &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
setreading &amp;lt;device&amp;gt; uzsu {}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
erzeugen MUSS.&lt;br /&gt;
&lt;br /&gt;
2. eine Anbindung des UZSU-GAD per UZSU Converter aus der 99_fronthemUtils.pm (s. u.) an das Reading uzsu des zu schaltenden Device read und write in fhem&lt;br /&gt;
&lt;br /&gt;
3. Den sonstigen UZSU  Code aus der  99_FronthemUtils.pm aus dem http://github.com/herrmannj/fronthem (ist bei aktuellem fronthem alles schon drin)&lt;br /&gt;
&lt;br /&gt;
Dieser Code erzeugt aus den Einstellungen im Widget entsprechende WeekdayTimer in fhem und löscht und erstellt neu bei jeder Änderung in SmartVISU.&lt;br /&gt;
&lt;br /&gt;
4. Die Funktion muss getriggert werden. Dazu ist ein notify nötig, das auf die Veränderung der uzsu Readings reagiert:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
define UZSU notify .*:uzsu:.* { UZSU_execute($NAME, $EVTPART1) }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. GAD Editor Einstellungen:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
mode:      item&lt;br /&gt;
device:    &amp;lt;DEIN_DEVICE&amp;gt;&lt;br /&gt;
reading:   uzsu&lt;br /&gt;
converter: UZSU&lt;br /&gt;
cmd set:   uzsu&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Voila!&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: fronthem/smartVISU]]&lt;/div&gt;</summary>
		<author><name>Wvhn</name></author>
	</entry>
</feed>