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