[gelöst][FTUI3]: Tag und Nacht Umschaltung

Begonnen von fremitus, 27 November 2022, 19:35:43

Vorheriges Thema - Nächstes Thema

fremitus

Hallo zusammen,

ich probiere gerade die Tag und Nachtumschaltung auf Basis der folgenden Anleitung umzusetzen - leider ohne Erfolg:
-> https://wiki.fhem.de/wiki/FTUI_Widget_Theme

Hier mein Code <!--Tag Nacht Schalte -->
  <link rel="stylesheet" href="themes/mobile-theme-bulli.css" data-type="theme" data-device="daynight" data-get=""
          data-get-on="9" data-get-off="!9" />
  <link href="themes/ftui-theme.css" rel="stylesheet">


Als Datadevice habe ich das Dämmerungsmodul definiert, was auch soweit funktioniert.
Ein manuelles "setstate daynight 9" (so habe ich das Dämmerungsmodul benannt) oder auch "setstate daynight STATE 9" oder "setstate daynight state 9" ändert leider nicht das Theme Template auf die Tagesversion.

Erstmal ein simple Frage: läuft das Widget auch unter FTUI3.....? Oder was mache ich falsch?

Gruss Peer

mr_petz

Die FTUI2 Version ist nicht mit FTUI3 Kompatibel
Bei FTUI3 kannst du es jetzt so über link rel="stylesheet" lösen:
Demo:
https://knowthelist.github.io/ftui/www/ftui/examples/themes.html
und das dazugehörige example:
https://github.com/knowthelist/ftui/blob/master/www/ftui/examples/themes.html

LG

stefan.apetz

👋 Moinsen

Wo kann man sehen welche Version man im Einsatz hat?

Ist fuip mit Version 3 kompatibel?

mr_petz

Am einfachsten ist es an den Definitionen zu sehen:

FTUI2.x Bsp:
data-type
data-device

FTUI3:
fangen die Tags mit ftui an Bsp:
<ftui-label
<ftui-button
fuip ist nicht Kompatibel
LG

fremitus

Hi mr_petz,

danke für deinen Tipp, da hätte ich selber nachschauen können..nur wäre ich dann trotzdem mit dieser Frage hier gelandet. Wie bekomme ich meine Daten aus dem "Daemmerungs" Modul über ftui-binding eingebunden? Im Example wird ja direkt über einen Button eingelesen, meine diversen Versuche, etwas vergleichbares zu bauen, haben leider nicht gefruchtet...meinen Verständnis nach müsste es ja irgendwo so aussehen:

über "ftui-binding ="daynight:status" lese ich den Status ein und muss dann ueber ein pipe das ganze auswerten. Bei mir wäre es bei "Status = 1 = true".

Ich bin kein Programmierer, habe leider auch nichts ueber die Suchen Funktion gefunden, was mir weiter geholfen hätte....


Gruss Peer

OdfFhem

#5
@fremitus

Der Befehl setstate setzt den Internal STATE Eintrag eines Gerätes direkt, ohne ein Event zu generieren
... FTUI3 bekommt vom "Umschalten" nichts mit
... übrigens wird auch das Reading state nicht gesetzt
Der Befehl setreading setzt den übergebenen Wert beim Reading eines Gerätes und löst auch ein Event aus - sofern nicht über Attribute unterbunden.


Eine mögliche Lösung für das wertabhängige Umschalten könnte so aussehen:

  <link href="themes/mobile-theme-bulli.css" rel="stylesheet" ftui-binding [disabled]="daynight:status | map('`.*`:true, 1:false') | toBool()">

- das Attribut ftui-binding sorgt dafür, dass das Element u.a. relevante Events verarbeitet
- [disabled] ... die eckigen Klammern sorgen dafür, dass das Attribut disabled beim Eintreffen eines relevanten Events neu gesetzt wird

- setreading daynight status 1 führt zur Aktivierung der angegebenen css-Datei ... disabled = false
- jeder andere Wert, z.B. setreading daynight status 2, führt zur Deaktivierung der angegebenen css-Datei ... disabled = true

fremitus

Super danke! Funktioniert jetzt einwandfrei, wenn man meinen kleinen Fehler noch eliminiert -

ftui-binding [disabled]="daynight:status ist falsch
ftui-binding [disabled]="daynight:state ist dann korrekt....

Die Funktion mit disable, wann dann eigentlich das richtige css enabled, war mir so nicht klar, jetzt habe ich es verstanden..