Hauptmenü

FTUI version 3

Begonnen von Bunnu, 25 Oktober 2020, 09:25:41

Vorheriges Thema - Nächstes Thema

Sailor

Zitat von: Dracolein am 23 November 2021, 15:29:25
nein! Interessant. Hole ich gleich nach.
Kurios: oft funktionieren die Charts trotzdem problemlos

Ja, nach einem Reload immer!  ;)
Das ":time" am Ende nicht vergessen!

Ich habe bis heute übrigens noch keine Aussage von setstate bekommen, ob das entsprechende zu kartierende Reading ein "event-on-update-Reading" - Attribut benötigt.

Gruss
   Sailor
******************************
Man wird immer besser...

setstate

Zitat von: Sailor am 25 November 2021, 08:01:04
Ich habe bis heute übrigens noch keine Aussage von setstate bekommen, ob das entsprechende zu kartierende Reading ein "event-on-update-Reading" - Attribut benötigt.

dafür bin ich kein Experte. Soviel ich weiß, senden Devices immer Update Events für alles. Erst, wenn du event-on-update-Reading setzt, schränkst du die Gesprächigkeit auf bestimmte Readings ein.

OdfFhem

#1712
@Sailor, @setstate

1) Devices senden standardmäßig bei jeder Aktualisierung Events - egal, ob Wert geändert wurde oder nicht.

2) Attribut event-on-change-reading dient dazu, Events auf Wert-Änderungen einzuschränken. Optional muss sich der Wert sogar um einen anzugebenden Mindestwert geändert haben; ansonsten gibt es trotz Wertänderung kein Event.

3) Um eine solche Einschränkung zu entschärfen, kann man (zusätzlich) event-min-interval bzw. event-on-update-reading verwenden.

- event-min-interval erlaubt mit einer Sekundenangabe, dass nach Verstreichen dieser Zeitspanne die nächste Aktualisierung auf jeden Fall zu einem Event führt - Wert spielt dabei keine Rolle.
- event-on-update-reading sorgt dafür, dass jede Aktualisierung zu einem Event führt

4) Standardmäßig führt jede Aktualisierung eines Readings zu einer Anpassung des zugehörigen Zeitstempels - unabhängig, ob ein Event ausgelöst wird oder nicht. Will man erreichen, dass der Zeitstempel eines Readings nur bei Auslösung eines Events angepasst wird, muss man timestamp-on-change-reading verwenden.


attr <device> event-on-change-reading .*
attr <device> event-min-interval <reading1>:3600
attr <device> event-on-update-reading <reading2>
attr <device> timestamp-on-change-reading <reading3>

Bedeutet, dass beim Device <device> bei jeder Aktualisierung eines Readings nur dann Events generiert werden, falls sich dabei der Wert des Readings geändert hat. Beim Reading <reading1> wird diese Einschränkung 3600 Sekunden aufrecht erhalten; anschließend führt jede (wertunabhängige) Aktualisierung des Readings zu einem Event. Beim Reading <reading2> wird festgelgt, dass jede Aktualisierung zu einem Event führt. Beim Reading <reading3> wird festgelegt, dass der Zeitstempel nur bei einer (eventauslösenden) Wertänderung angepasst wird. Dieses Beispiel zeigt natürlich nur eine Art der Verwendung; die Vielfalt der Verwendung ist relativ groß und hängt vom jeweiligen Einzelfall ab.


Damit FTUI3 zeitnah reagiert, sind Events wichtig
- in der Regel nur, wenn sich auch der Wert geändert hat ...
- in eher wenigen Fällen aber auch unabhängig von einer Wertänderung

Sailor

Zitat von: setstate am 25 November 2021, 22:22:51
dafür bin ich kein Experte. Soviel ich weiß, senden Devices immer Update Events für alles. Erst, wenn du event-on-update-Reading setzt, schränkst du die Gesprächigkeit auf bestimmte Readings ein.

OK, aber beeinflussen diese Attribute die Auffrischung [update] der Charts?

Gruß
    Sailor
******************************
Man wird immer besser...

audimax

Hallo zusammen,
gibt es eine Möglichkeit bei einem (bestimmten) event einen Sound im Browser abzuspielen.
Gedacht ist, wenn das Garagentor auf geht ein kleiner beep o.ä.
Danke und viele Grüße
Max

tomster

Zitat von: Sailor am 25 März 2021, 19:34:06
Hallo setstate,

Das ist schon mal die halbe Miete von dem was ich Suche.

Wie muss ich die Zeile um [hidden] abändern, damit der Wert true ist, wenn das Device bzw. das Reading nicht existiert?
Quasi das Button / Icon verschwinden lassen wenn "ftuitest" nicht existiert.

Gruß
    Sailor

Servus (=Moin-800km) Sailor,

hast Du für dieses Problem schon eine Lösung gefunden?
Allerbestigste Grüße aus dem Süden!

setstate

#1716
Das Get-Binding gibt man so an:

get-<HTML-Attribute>=<Device>:<Reading>:<Property>


Default für <Reading> ist 'STATE'
Default für < Property > ist 'value

Property kann folgendes sein:
        invalid: boolean,
        value: string,
        time: date,
        update: date

Wenn man also das schreibt


get-text="ftuitest"


bedeutet das


get-text="ftuitest:STATE:value"


Wenn man wissen will, ob das Reading gültig ist, fragt man


get-text="ftuitest:state:invalid"


Das Reading muss man angeben. get-text="ftuitest:invalid" wäre falsch.

Das Reading-Property 'invalid' wird true, wenn es das Reading im FHEM nicht gibt. Damit kann man folgende schöne Dinge machen (Farben ändern, Wert anzeigen, Verstecken)


          <ftui-icon name="lightning"
                     [color]="dummyXY:state:invalid | map('true: danger, false: medium')"></ftui-icon>

          <ftui-label [text]="dummyXY:state:invalid"></ftui-label>
         
          <ftui-icon name="lightning"
                     [hidden]="dummyXY:state:invalid"></ftui-icon>


BTW.:

get-text = [text]
set-text = (text)
gset-text = [(text)]

tomster

Danke setstate!
Damit kann ich die Contentseiten (Wetterwarnungen) zu denen es derzeit keine Meldungen gibt endlich verstecken. Super!

yersinia

Hi @setstate,

wegen ftui.helper.js L239 sollte auch die Zeile 206 entsprechend bei Dezember angepasst werden:
const months_de = ['Januar', 'Februar', 'M&auml;rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

OdfFhem

Zitat von: OdfFhem am 23 Oktober 2021, 03:50:43
@setstate

In der Funktion dateFormat dient "z" als Platzhalter, daher erfordert "März" bzw. "Dezember" die Anpassung mit z

ToM_ToM

Hallo Zusammen,

gibt's für die TabView eigentlich auch einen Timeout oder eine Return Time um nach einer bestimmten Zeit zum Haupt-Tab zurückzukehren?

VG, Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

setstate

Zitat von: ToM_ToM am 30 November 2021, 19:10:09
Hallo Zusammen,

gibt's für die TabView eigentlich auch einen Timeout oder eine Return Time um nach einer bestimmten Zeit zum Haupt-Tab zurückzukehren?

VG, Thomas

Nein, dass habe ich bis jetzt noch nicht eingebaut. Wird aber kommen ...

muma

Hallo zusammen,
habe jetzt schon eine Weile dran rum gebastelt, bin aber leider nicht firm genug in JavaScript um den Code 100% zu verstehen   :o.

Ich würde gerne eine Farbtemperatur setzen (3000-6500). Ich kann zwar einen Slider mit dem Typ KelvinSlider anlegen, allerdings werden damit keine Werte gesetzt.
Geht das überhaupt als eigenständiger Slider aus dem Colorpicker oder würde dieser das immer generell in einen Hex-Wert rechnen?
Kann man das mit dem hinterlegten Farbverlauf auch auf einem normalen Slider machen? Stehe irgendwie im dunklen  :-\

setstate

Beim ColorPicker habe ich jetzt Kelvin als Attribute nach außen geführt

Die Komponente liefert 2200K bis 11000K.
In diesem Beispiel skaliere ich die Werte für eine HUE-Lampe nach 154 bis 454.
154 <-> 11000K
454 <-> 2200K


    <ftui-grid-tile row="2" col="4" height="1" width="1">
      <header>KELVIN</header>
        <ftui-colorpicker layout="kelvinSlider"
        (kelvin)="scale(2200,11000,454,154) | toInt() |  Stehlampe:ct"
        [kelvin]="Stehlampe:ct | toInt() | scale(154,454,11000,2200)"></ftui-colorpicker>
    </ftui-grid-tile>



octek0815

Zitat von: octek0815 am 11 Februar 2021, 20:02:46
@setstate

Mit dem letzten Update (made ftui-content more neutral in style) berücksichtigt der swiper bei content hidden nicht mehr.

Beispiel-Code:

<ftui-row>
<ftui-swiper id="dwd" scrollbar auto-play interval="15">
<ftui-content id="dwd_1" [hidden]="System_DWD_Wetter:a_count | map('0:true, 1:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_0"></ftui-content>
<ftui-content id="dwd_2" [hidden]="System_DWD_Wetter:a_count | map('0:true, 2:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_1"></ftui-content>
<ftui-content id="dwd_3" [hidden]="System_DWD_Wetter:a_count | map('0:true, 3:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_2"></ftui-content>
<ftui-content id="dwd_4" [hidden]="System_DWD_Wetter:a_count | map('0:true, 4:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_3"></ftui-content>
<ftui-content id="dwd_5" [hidden]="System_DWD_Wetter:a_count | map('0:true, 5:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_4"></ftui-content>
<ftui-content id="dwd_6" [hidden]="System_DWD_Wetter:a_count | map('0:true, 6:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_5"></ftui-content>
<ftui-content id="dwd_7" [hidden]="System_DWD_Wetter:a_count | map('0:true, 7:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_6"></ftui-content>
<ftui-content id="dwd_8" [hidden]="System_DWD_Wetter:a_count | map('0:true, 8:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_7"></ftui-content>
<ftui-content id="dwd_9" [hidden]="System_DWD_Wetter:a_count | map('0:true, 9:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_8"></ftui-content>
<ftui-content id="dwd_10" [hidden]="System_DWD_Wetter:a_count | map('0:true, 10:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_9"></ftui-content>
<ftui-content id="dwd_11" [hidden]="System_DWD_Wetter:a_count | map('0:true, 11:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_10"></ftui-content>
<ftui-content id="dwd_12" [hidden]="System_DWD_Wetter:a_count | map('0:true, 12:false')" file="./_contents/tablet-flur/content-popup-dwd-wetterwarung-swiper-content.html" warn-number="a_11"></ftui-content>
</ftui-swiper>
</ftui-row>


Derzeit gibt es nur zwei Warnungen, es werden aber alle Swiper-Karten angezeigt.

Hallo setstate,

ich möchte diese Thema nochmal in Erinnerung bringen, da hidden leider weiterhin beim ftui-swiper nicht greift. Könntest Du dir das nochmal anschauen.
Im alten Post ist ein Beispiel GIF (animiert dazu).

VG
Olli