Rolladenposition und Fensterkontakt in einem Symbol darstellen?

Begonnen von choenig, 14 September 2017, 21:05:25

Vorheriges Thema - Nächstes Thema

choenig

Hallo zusammen,

ich würde sehr gerne die Position des Rolladens und den Fensterkontakt (open, closed, tilt) in einem Symbol darstellen. Die Position kommt aus einem Device, der Kontaktstatus aus einem anderen. Zusätzlich möchte ich das natürlich für alle 10 Fenster im Haus machen ;).

Ich habe schon über einiges nachgedacht, bin aber noch nicht auf eine funktionierende Lösung gestoßen:
* Zwei Symbole stacken (ähnlich dem hier), das funktioniert aber scheinbar nicht mit zwei Symbolen, nur mit einem label
* Ein Symbol: Und foreground und background Icons aus zwei Devices (würde das gehen, wenn ich die Syntax kennen würde?)
* Neue Grafiken für alle kombinierten Zustände erzeugen und das Symbol irgenwie setzen. Ich habe bereits neue Grafiken aus den vorhandenen erstellt, die jeweils die Kombination aus Position und Kontaktstatus sind (33 Stück), aber ich habe keine gute Idee, wie ich die einbinden könnte, bzw. wie ein passende Reading aussehen könnte oder wie ich es erstelle (userreadings?).

Habt Ihr eine Idee?

LG
Christian

Standarduser

Wenn Du die Symbole selbst schon erstellt hast findest Du hier Hinweise, wie du sie verarbeiten kannst (einfach den links folgen):
https://forum.fhem.de/index.php?topic=74636

choenig

Danke für den Hinweis.

Mein Problem ist eher, dass ich dann keine Idee habe, wie ich die zwei Readings (aus den zwei Devices) in einem kombinieren kann, damit das "symbol" damit umgehen kann.

LG
Christian

setstate

Wenn du ein gutes Konzept vorlegst, kann man bestimmt das dann auch in ein window-widget giessen.
Aber ich wüsste zur Zeit nicht, wie sinnvolle Kombis von Icons dafür aussehen könnten.
Aktuell kann nur ein Reading für das Icon und eins für die Farbe benutzt werden.
Oder der Classchanger als Wrapper, der dann einen Rahmen oder eine Backgroundfarbe ändert.

All-Ex

#4
Hallo zusammen,

ich stelle mal meine Rollladen-Fenster-Visualisierung vor. Sie ist platzsparend ist, zeigt alle nötigen Informationen an, kann die Rollladen steuern und hat sich seit längerem gut bewährt.

Jedes Fenster mit Rollladen hat ein Icon in FTUI. Das Icon zeigt über die Farbe den Zustand des Fensters an und über das Bild die Position des Rollladens. Außerdem steht die Fensterposition (kipp, offen) sowie die Zeit, seitdem das Fenster geöffnet ist, im Klartext neben dem Icon. Wenn das Fenster geschlossen ist, verschwinden die Texte.

Die Farben bedeuten:
grau = Fenster zu
orange = Fenster kurze Zeit auf
rot = Fenster lange Zeit auf

Die Schwelle zwischen orange und rot hängt von der Außentemperatur ab. So kann das Fenster im Sommer einen Tag lang offen sein und wird nicht rot, bei Minusgraden wird es schon nach 5 Minuten rot. So sehe ich direkt, welches Fenster offen ist (orange) oder zu lange offen ist (rot, Wohnung kühlt aus). Die Rollladenposition ist für mich nicht so entscheidend. Daher wechselt das Icon in Abhängigkeit von der Rollladenposition, aber nicht die Farbe.

Im angehängten Bild ist folgender Zustand dargestellt:
Ganz links: Fenster zu, Rollladen ganz hoch
2. von links: Fenster kurze Zeit offen, Rollladen ganz hoch
3. von links: Fenster geschlossen, Rollladen ganz unten
4. von links: Fenster lange Zeit gekippt, Rollladen halb unten

Wenn ich auf das Rollladen-Fenster-Icon klicke öffnet sich ein Popup, wo ich den Rollladen hochfahren, stoppen, herunterfahren sowie auf eine vordefinierte Position fahren kann. Während der Fahrt leuchtet der Hoch- bzw. Runter-Butten grün (siehe 2. angehängtes Bild). Die Buttons für Stopp und vordefinierte Position leuchten beim drücken kurz auf.

Zur Umsetzung:

Meine (Homematic-)Fensterkontakte heißen fns.xx.xx und kennen "open" und "tited", (Homematic-)Rollladen heißen rol.xx.xx. Eine Fenster/Rollladen-Kombination wird in FTUI mit Hilfe eines Templates (mit dem Plugin FTUISRV https://fhem.de/commandref.html#FTUISRV) über folgenden Einzeiler definiert. Es wird ein Label für die Überschrift des Pop-Ups, der Name des Rollladen-Devices und der Name des Fensterkontakt-Devices übergeben:
<?ftui-inc="template_fenster_rollo.ftui.part" label="Dachgeschoss Bad" dev_rol="rol.dg.ba" dev_fns="fns.dg.ba" ?>

Die Farbsteuerung ist etwas aufwändiger und über ein DOIF realisert, das bei einem Event eines Fensterkontaktes in das Fensterkontakt-Device die passende Farbe schreibt:
## 1 Fenster offen ==> Fenster-Icon sofort orange und nach Außentemperatur-abhängiger Wartezeit rot
(["^fns:open|tilted"])
(
  setreading $DEVICE ftui_color #996B19,                                   ## orange
  setreading $DEVICE ftui_color_text #C58920,                              ## orange
  sleep {([wet.yrno:temperature] > 0 ? ([wet.yrno:temperature] < 16 ? 7 * [wet.yrno:temperature] ** 2 + 300 : 86400) : 300)} $DEVICE quiet;
    setreading $DEVICE ftui_color #e74c3c;                                 ## rot
    setreading $DEVICE ftui_color_text #e74c3c                             ## rot
)

## 2 Fenster geschlossen ==> Fenster-Icon grau und Timer abbrechen
DOELSEIF
(["^fns:closed"])
(
  setreading $DEVICE ftui_color #505050,                                   ## grau
  cancel $DEVICE quiet
)

## Die Formel verzögert das Umschalten von orange nach rot abhängig von der Außentemperatur wie folgt:
##
## °C Verzögerung hh:mm
## >= 16 24:00
## 15 00:32
## 12 00:22
## 9 00:14
## 6 00:09
## 3 00:06
## <=0 00:05


Das Template, das über den Einzeiler oben aufgerufen wird kümmert sich um die Darstellung des zur Rollladenposition passenden Icons, setzt die zur Fensterposition passende Farbe sowie bei offenem Fenster den Text. Die Template-Datei habe ich angehängt.

Alex


choenig

'Nabend,

vielen Dank für euren Input :).

Ich habe jetzt eine Lösung gefunden, bei der ich zwei <div>s stacke, das funktioniert einigermassen gut. Ich hab mir hierzu die Grafiken so angepasst, dass sie gut zusammenpassen.

Und Dank des Hinweises von Alex werde ich das ganze mal mittels FTUISRV testen, weil ich das dann flexibler templaten kann, das geht mit data-template leider nicht so gut, wie ich es jetzt gebrauchen könnte.

Mein Plan ist es, das ganze hier zu veröffentlichen, sobald es rund ist (ich hoffe, das geht dann nicht unter).

Also nochmal vielen Dank für den Input.

LG
Christian