smartvisu - Widget Assistant

Inhalt

  1. Funktionsweise
  2. Hot-Keys
  3. Bekannte Probleme
  4. Logik zum Erstellen der masteritem.json in shNG
  5. Skript zum Erstellen der masteritem.json in FHEM

Funktionsweise

Dieses Tool hilft bei der Erstellung von Widgets für Ihre Visualisierung mit smartVISU. Es unterstützt mit Autovervollständigung vorhandener und im Kontext zulässiger Widgets, Items, Icons und Farben. Der Modus der Autovervollständigung kann ausgewählt werden.

Beginnen Sie einfach im Editor mit der Eingabe eines Widget-Namens oder öffnen Sie die Liste mit CTRL-Leerzeichen. Nachdem Sie ein Widget ausgewählt haben (z.B. basic.symbol...) und die erste Klammer eintippen, wird ein Fenster mit Erläuterungen (Tooltip) für dieses Widget angezeigt. Der jeweils zu bearbeitende Parameter wird in roter Schrift angezeigt und alle dazu verfügbaren Details werden darunter gelistet. Für Icons und Farben wird eine Vorschau im Tooltip angezeigt. Alle Parameter müssen mit Anführungszeichen eingegeben werden, wobei die Autovervollständigung die Parameter automatisch in Anführungszeichen setzt.

Nachdem das Widget vollständig eingegeben ist, können Sie es entweder auf dieser Seite, oder in einem neuen Fenster (empfohlen) anzeigen lassen und live testen. Das Widget ist voll funktionsfähig. Es wird lediglich ein Twig-Error angezeigt, wenn ein Fehler in der Syntax ist. Zudem wird der eingegebene Widget Code einschließlich der Klammern "{{" + "}}" in die Zwischenablage kopiert und kann direkt in Ihre Visu-Seiten eingefügt werden.

Man kann mehrere Widgets gleichezitig rendern, indem man sie mit einem <br>-TAG trennt.

Beispiel:

plot.period('', ['licht.og.terrasse.screens.warm.dimmen', 'licht.og.terrasse.screens.kalt.dimmen', 'licht.og.terrasse.decke.dimmen'], 'max', '1w', 'now', '0', '110', '1000', ['Screens warm', 'Screens kalt', 'Decke'], ['#daa', '#aad', '#955'], ['stair', 'stair', 'stair'], ['Uhrzeit', 'Helligkeit'], 'advanced', '', '', '', '', '', { yAxis: [ { tickInterval: 40 } ], legend: {align: 'right', verticalAlign: 'top', y: 50, layout: 'vertical'}, chart: { marginRight: 110} })
<br>
basic.stateswitch('','OG.Bad.Licht','midi','','light_ceiling_light','Licht Bad','','','','','')
<br>
quad.dimmer('Lueftungsstufe1', 'Lüftungsstufe', 'Haustechnik.Lueftung', 'Haustechnik.Lueftung.stufe', 0, 100, 5, icon.ventilation(), icon.ventilation('','','Haustechnik.Lueftung.stufe'), '', '', '', 0, 100, '', '', '', '',   '', '', '', '', '', '', '', '', '', ['switch', 'value_popup']) 

Hot-Keys

Kurzbefehl Funktion
STRG+1 Autovervollständigung nur für Items
STRG+2 Autovervollständigung nur für Widgets
STRG+3 Autovervollständigung nur für Icons
STRG+4 Autovervollständigung für alles
STRG+5 Autovervollständigung nur für Farben
STRG+6 Autovervollständigung AUS
STRG+9 Platzhaltersuche für Autovervollständigung ein/ausschalten
STRG+Space öffnet die aktuelle Liste zur Autovervollständigung
STRG+F Ausdruck im Code suchen
STRG+SHIFT+R Ausdruck im Code ersetzen - ENTER wechselt zum Ersatz-Ausdruck

Bekannte Probleme

Man kann das neue Widget in den iframe auf der aktuellen Seite rendern. Dies wird jedoch die geladene index.php zerstören, so dass Probleme in der weiteren Navigation in smartVISU entstehen. Derzeit gibt es dafür nur die Lösung, die Seite neu zu laden (CTRL+F5 / CTRL + Shift + R).

Logik zum Erstellen der masteritem.json in shNG

Wird nur für shNG Versionen <= v1.7.2 benötigt. Ab v1.8 erstellt das smartvisu plugin die Datei standardmäßig.

#!/usr/bin/env python3
# create_master_item.py
import json
from lib.item import Items
items = Items.get_instance()
items_sorted = sorted(items.return_items(), key=lambda k: str.lower(k['_path']), reverse=False)
item_list = []
for item in items_sorted:
    item_list.append(item._path + "|" + item._type )
f = open("/var/www/html/smartvisu/pages/YOUR_PAGES/masteritem.json", "w")
f.write(json.dumps(item_list))
f.close()

Skript zum Erstellen der masteritem.json in FHEM

Ein Skript ist im fronthem / smartVISU Forum verfügbar
https://forum.fhem.de/index.php/topic,118508.msg1135044.html#msg1135044