smartVISU/Universelle ZeitSchaltUhr (UZSU)

Aus FHEMWiki
Zur Navigation springen Zur Suche springen

Dieser Artikel behandelt die Einrichtung einer universellen Zeitschaltuhr innerhalb des Frontends smartVISU.

Es existiert ein Widget für eine universelle ZeitSchaltUhr auf GitHub unter https://github.com/herrmannj/smartvisu-widgets beziehen

Dank dafür an mworion!

Man muss dazu die uzsu_widget.html in das eigene Verzeichnis in ../pages/.. kopieren und die visu.js und die visu.css in seine Installation integrieren (Achtung, wenn die beiden Dateien schon bestehen, dann muss man das manuell zusammenkopieren!)

Das Widget kann in SmartVISU-Seiten wie gewohnt eingebunden werden:

(für ein Ergebnis, das der Benutzer direkt eintippen kann, z.B. 'on' oder 'off')

{% import "widget_uzsu.html" as visu %}

{{ visu.uzsu_icon('UZSUtxt', gad_uzsu, '', '', '', '', 'text') }}

oder Text als Dropdown:

{% import "widget_uzsu.html" as visu %}

{{ visu.uzsu_icon('UZSUtxt', gad_uzsu, '', '', '', '', 'text', ['an', 'aus']) }}


oder (für eine einzugebende Ziffer zwischen 0 und 100)

{% import "widget_uzsu.html" as visu %}

{{ visu.uzsu_icon('UZSUnum', gad_uzsu, '', '', '', '', 'num', [0, 100]) }}

oder (für ein Ergebnis {0,1}, das aber als flip mit 'an' und 'aus' angezeigt wird)

{% import "widget_uzsu.html" as visu %}

{{ visu.uzsu_icon('UZSUnum', gad_uzsu, '', '', '', '', 'bool', ['an', 'aus']) }}


Um die Antwort des Widgets in fhem zu verarbeiten, benötigt man

1. je ein Reading uzsu an dem zu schaltenden Device, das man mit

setreading <device> uzsu {}

erzeugen MUSS.

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

3. Den sonstigen UZSU Code aus der 99_FronthemUtils.pm aus dem http://github.com/herrmannj/fronthem (ist bei aktuellem fronthem alles schon drin)

Dieser Code erzeugt aus den Einstellungen im Widget entsprechende WeekdayTimer in fhem und löscht und erstellt neu bei jeder Änderung in SmartVISU.

4. Die Funktion muss getriggert werden. Dazu ist ein notify nötig, das auf die Veränderung der uzsu Readings reagiert:


define UZSU notify .*:uzsu:.* { UZSU_execute($NAME, $EVTPART1) }


5. GAD Editor Einstellungen:

mode:      item
device:    <DEIN_DEVICE>
reading:   uzsu
converter: UZSU
cmd set:   uzsu
 

Voila!