Widget deaktivieren wenn Gerät nicht an ist

Begonnen von Jackie, 13 Januar 2022, 15:02:41

Vorheriges Thema - Nächstes Thema

Jackie

Hallo,

ich habe eine simple Frage zum Thema Tablet-UI: ich möchte einen Schieberegler für die Farbtemperatur einer per Hue-Bridge angebundenen Lampe einbauen, allerdings soll der Regler nur aktiv sein, wenn die Lampe schon an ist. Wie kann ich ein Widget aktivieren oder deaktivieren abhängig vm Schaltzustand eines anderen Gerätes?
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

eki

Es gibt beim Slider (und auch bei allen möglichen anderen Widgets) den Parameter data-lock, der per <device>:<reading> an oder ausgeschaltet werden kann.

Beispiel:

<div data-type="slider" data-lock="testLock:state" data-get="position" data-set="position"></div>


Wenn Du bei diesem Beispiel ein Device hättest, welches testLock heißt und dessen Reading state auf "1" steht, dann kann man den slider nicht mehr ändern (er wackelt bei dem Versuch kurz, bleibt aber auf dem alten Wert). Wenn das state reading auf 0 steht, ist der Slider wieder bedienbar.

Jackie

Hallo eki,

danke für die Antwort, im Prinzip ist das genau das was ich suche. Ich brauche es aber invertiert, also der Regler soll gesperrt sein wenn das Device den state off hat. Besonderheit bei diesem Device ist, dass es neben den States on und off noch andere States kennt wie z.B. dim42 für den Zustand der Helligkeit.

Kann man sowas über Bedingungen ermitteln, oder brauche ich ein Userreading das den Status setzt? Mir würde es genügen, wenn der Schiebregler gesperrt ist, wenn state=off.

Danke!
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

eki

Was das Sperren aktivieren soll, kannst Du über data-lock-off und data-lock-on definieren.

Beispiel:

<div data-type="slider" data-lock="testLock:state" data-lock-on="off" data-lock-off="!off" data-get="position" data-set="position"></div>

Jackie

Danke eki, jetzt ist der Groschen gefallen, irgendwie habe ich das in der Doku so nicht rausgelesen, bei mir klappt es jetzt genau so einwandfrei!
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

Ulm32b

Zitat von: Jackie am 14 Januar 2022, 20:07:28
Danke eki, jetzt ist der Groschen gefallen, irgendwie habe ich das in der Doku so nicht rausgelesen, bei mir klappt es jetzt genau so einwandfrei!

In der Tat scheint das Attribut data-lock im Wiki nicht konsequent dokumentiert zu sein, data-lock-on und -off wohl gar nicht. Das muss nicht so bleiben. Vorschlag einer harmonisierten Formulierung:

data-lock        Reading, mit dem das Element für eine Bedienung gesperrt wird. Gültige Werte sind 'true', '1' oder 'on'      
data-lock-on   Wert des Readings, bei dem die Sperre aktiviert wird
data-lock-off   Wert des Readings, bei dem die Sperre aufgehoben wird


Jetzt bräuchten wir eine halbwegs abgesicherte Liste der Widgets, bei denen das Attribut implementiert ist. Alle Fälle auszuprobieren, wäre doch etwas mühsam. Vielleicht gibt es eine(n) Kundige(n), die/der zumindest eine solide Prognose abgeben kann. Wünschenswert wäre, dass es überall funktioniert, wo man eine Aktion auslöst:

  • button
  • checkbox
  • circlemenu
  • colorwheel
  • controlbutton
  • controller
  • datetimepicker
  • departure ? (Hier könnte man den Refresh-Button deaktivieren, etwas exotisch)
  • dimmer
  • homestatus
  • input
  • knob
  • link
  • multistatebutton
  • pagebutton
  • pagetab
  • playstream
  • popup
  • push
  • rotor
  • select
  • slider
  • spinner
  • swiper
  • switch
  • thermostat
  • volume
Die Fleißarbeit der Doku-Erweiterung würde ich auf mich nehmen; für höhere Aufgaben bin ich ohnehin nicht der Richtige.

eki

Das Berücksichtigen von data-lock etc. ist grundsätzlich in der Widget Basisklasse enthalten, allerdings wird es nicht von allen Widgets genutzt. Ich habe mal in die Codes geschaut (nicht ausprobiert) und aktuell sollten folgende Widgets das unterstützen:

    button
    checkbox
    circlemenu
    colorwheel
    controlbutton
    controller
    datetimepicker
    departure ? (Hier könnte man den Refresh-Button deaktivieren, etwas exotisch)
    dimmer
    homestatus
    input
    knob
    link
    multistatebutton
    pagebutton
    pagetab
    playstream
    popup
    push
    rotor
    select
    slider
    spinner
    swiper
    switch
    thermostat
    volume

Ulm32b

Zitat von: eki am 18 Januar 2022, 10:58:05
Das Berücksichtigen von data-lock etc. ist grundsätzlich in der Widget Basisklasse enthalten, allerdings wird es nicht von allen Widgets genutzt. Ich habe mal in die Codes geschaut (nicht ausprobiert) und aktuell sollten folgende Widgets das unterstützen: ...

Wiki ist ergänzt, somit ist dieser Fall nachhaltig erledigt.

An dieser Stelle erlaube ich mir die Anmerkung, dass sich die Geschichte derzeit vor unser aller Augen wiederholt. Was vor 5 Jahren bei FTUI2 vorlag, sehen wir nun erneut bei FTUI3: Es wird fleißig entwickelt und optimiert, die Dokumentation steckt in Forumsbeiträgen. Auf die Dauer ist das ineffizient.