neues Attribut: uiTable - DOIF User Interface, neues Attribut: DOIF_Readings

Begonnen von Damian, 07 Oktober 2017, 23:29:48

Vorheriges Thema - Nächstes Thema

Damian

Um den Einstieg in uiTable zu erleichtern, habe ich eine Standard-Template-Datei erstellt. Sie beinhaltet zunächst folgende Templates:

TPL_onoff: on/off-Schalter (bedienbar)
TPL_Therm: Thermostat (bedienbar)
TPL_TempHym: Temperatur/Feuchte-Anzeige
TPL_Roll: Rollladen (bedienbar)
TPL_Wind: Anzeige offene Fenster
TPL_Batt: Anzeige leere Batterien

Die Anwendung der Templates ist denkbar einfach: Angabe des Template-Namens mit Readingangabe als Parameter.

Hier ein kleines Beispiel für die Anwendung der Templates:

attr uiTable
#Import der Templates
IMPORT ./contrib/DOIF/standard.tpl

#Tabellendefinition
"Schalter" | "Thermostat" | "Temperatur/Feuchte"
TPL_onoff ([test_d]) | TPL_Therm ([TH_Kz_o_HM:desired-temp]) | TPL_TempHym ([TH_Bad_HM:measured-temp],[TH_Bad_HM:humidity])
"Rollladen" | "offene Fenster" | "Battery low"
TPL_Roll ([R_Kinderzimmer1_O:pct]) | TPL_Wind ([$SELF:Windows]) | TPL_Batt ([$SELF:Battery])


Readings $SELF:Windows und $SELF:Battery sind im Beispiel über DOIF_Readings als Aggregation definiert:

attr DOIF_Readings Windows:[@s(<br> )"Fenster$":state:"open","keine"], Battery:[@s(<br> )":battery:":battery:"low","keine"]

Die eigentlichen Templates-Definitionen in der Datei standard.tpl sind Einzeiler. Sie können als Ausgangsbasis für eigene Template-Kreationen dienen ;)

Im Anhang: die Templatedatei (standard.tpl) und das Layout der Beispielkonfiguration

Edit: standard.tpl aktualisiert
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

der-Lolo

Hallo Damian,
ich wollte das gerade mal ausprobieren um für meine Lüftung mit WRG ein Bedien und Info Panell zu basteln,
scheitere aber schon bevor es losgeht - die DOIFv0.20.pm einfach in den Modulordner kopieren neustarten und loslegen - oder wie?
die 98_DOIF.pm bleibt unberührt?

Damian

Zitat von: der-Lolo am 25 November 2017, 16:40:40
Hallo Damian,
ich wollte das gerade mal ausprobieren um für meine Lüftung mit WRG ein Bedien und Info Panell zu basteln,
scheitere aber schon bevor es losgeht - die DOIFv0.20.pm einfach in den Modulordner kopieren neustarten und loslegen - oder wie?
die 98_DOIF.pm bleibt unberührt?

Die Frage hatten wir schon hier: https://forum.fhem.de/index.php/topic,77690.msg709443.html#msg709443
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Oft möchte man ein eine Wiederholung des Schaltens eines DOIFs mit do always provozieren und gleichzeitig zyklisch sendende Sensoren abfragen. Eine umständliche Möglichkeit bestand bisher darin, die Abfrage des zyklischen Sensors in ein separates DOIF ohne do always auszulagern und dessen Zustand im eigentlichen DOIF abzufragen. Dieses Problem lässt sich jetzt elegant mit DOIF_Readings lösen.

Bsp:

DOIF ([Schalter] eq "on" and [aussen:temperature] < 0) (set heizung on) DOELSE (set heizung off)

Nun soll wenn der Zustand von Schalter auf on geht, jedes mal set heizung on oder off ausgeführt werden. Do always ist wegen zyklischer Trigger von aussen:temperature kontraproduktiv.

Dieses Problem kann mit DOIF_Readings wie folgt gelöst werden:

DOIF ([Schalter] eq "on" and [$SELF:frost] eq "on") (set heizung on) DOELSE (set heizung off)
attr do always
attr DOIF_Readings frost:([aussen:temperature] < 0 ? "on" : "off")


In der Version v0.25 (erster Post) triggern DOIF_Readings das eigene Modul nur, wenn sich deren Inhalt ändert.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

Mit der Funktion PUP(<Name eines anderen DOIF>,<Icon@Farbe>) wird ein Link erzeugt, der die UI-Table eines anderen DOIF in einem Popup-Fenster aufruft, Beispiel siehe https://wiki.fhem.de/wiki/DOIF/uiTable#Anzeige_der_uiTable_anderer_DOIF_als_Popup-Fenster

the ratman

muß ich gleich wieder fragen: funzt das auch am floorplan? wäre echt göttlich.
→do↑p!dnʇs↓shit←


the ratman

hmm, hab icg scheints noch generelle probleme.

0.25 doif rennt fehlerfrei.
hab dein wiki-bspl eingebaut.
passieren mag aber nix, siehe anhang. ich spühr die ersten krokodilstränen aufsteigen *snief*

muß ich noch was machen, oder reicht das reine vspl. im wiki aus?

aso ... unter web rennts
→do↑p!dnʇs↓shit←

Ellert

Wenn Du auf der DOIF-Seite alles richtig gemacht hast und im Floorplan nichts zusehen ist, dann unterstützt Floorplan die Anzeige der FW_detailFn wohl nicht.

Damian

Es weihnachtet. Es ist angedacht zu Nikolaus das neue Modul nach langer Testphase einzuchecken. Die Väter sollen zu Weihnachten etwas zum Basteln haben :)
Falls Unstimmigkeiten oder Probleme mit der neuen Version festgestellt wurden, dann bitte melden, ansonsten: der Eincheck-Countdown läuft  :)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

Zitat von: the ratman am 29 November 2017, 18:03:08
hmm, hab icg scheints noch generelle probleme.

0.25 doif rennt fehlerfrei.
hab dein wiki-bspl eingebaut.
passieren mag aber nix, siehe anhang. ich spühr die ersten krokodilstränen aufsteigen *snief*

muß ich noch was machen, oder reicht das reine vspl. im wiki aus?

aso ... unter web rennts

Es gibt die Möglichkeit die UI-Tabelle über weblink einzubinden, als Workaround, s. https://wiki.fhem.de/wiki/DOIF/uiTable#Anzeige_einer_uiTable_.C3.BCber_weblink_als_Popup-Fenster

Damian

Aktuelle Version wurde eingecheckt und ist ab morgen per Update verfügbar.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Ich habe im ersten Post meinen Statusbildschirm aktualisiert. Diesen nutze ich inzwischen auf einem Wandtablet und meinem Smartphone als weitere WEB-Instanz ohne Logo, ohne Raumauswahlmenü und ohne Eingabezeile. Der Vorteil: einmalige Konfiguration/Pflege für mehrfache Nutzung auf verschiedenen Medien.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Ellert

Basierend auf diesem Beitrag:  https://forum.fhem.de/index.php/topic,53286.msg449780.html#msg449780

kann man mit einer modifizierten clock.js, die hier als doifanaloguhr.js angehängt ist, die Bahnhofsuhr in uiTable einbinden.

Die Einbindung erfolgt in uiTable z.B. über
"<canvas id='doifanaloguhr' width='50' height='50'>error</canvas>"

doifanaloguhr.js und station-clock.js nach pgm2 kopieren und doifanaloguhr.js über JavaScripts in die FHEMWEB-Instanz einbinden.

station-clock.js gibt es dort: http://3quarks.com/de/Bahnhofsuhr/ , da  ist auch die Konfiguration beschrieben.

Per

Bekomme ich dann die Zeit des Servers oder des Clients? Bei den bisherigen .js-Uhren bekomme ich immer die des Cliens, ich bräuchte aber die des Servers (ja, eigentlich sollten die synchron sein, sind sie bei mir aber leider nicht).