Ankündigung

Einklappen
Keine Ankündigung bisher.

eval überschreiben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    eval überschreiben

    Hallo zusammen. Ich glaube wir hatten das Thema schon mal. Aber vielleicht noch mal als Ansatz mit neuen Ideen. Und zwar würde ich ein eval_item gern manuell übersteuern wollen, damit das Ganze quasi bidirektional wird, ohne in mehrere Items aufgeteilt werden zu müssen:

    Code:
    main_switch:
    type: bool
    eval: or
    eval_trigger:
    - ..sub_switch1
    - ..sub_switch2
    on_change:
    - ..sub_switch1
    - ..sub_switch2
    
    sub_switch1:
    type: bool
    
    sub_switch2:
    type: bool
    So macht das Beispiel aktuell natürlich wenig Sinn. Aber was ist das Ziel:

    - main_switch ist immer dann True, wenn einer der sub_switches True ist
    - main_switch ist immer dann False, wenn alle sub_switches False sind
    - die sub_switches übernehmen den Status von main_switch bei "manueller" Schaltung

    Für den letzten Punkt wären aber mehrere Voraussetzungen fällig:

    - on_change löst nur bei einer manuellen Auslösung aus und nicht, wenn es von eval getriggert wurde
    - eval lässt sich manuell überschreiben

    Beides geht derzeit nicht. Deshalb folgender Vorschlag:

    Entweder ein neues Attribut, was eval daran verhindert anhängige on_change auszuführen oder ein separates eval, welches ebenfalls zwar den Wert des Items ändert, aber on_change nicht ausführt. Da ja auch der Werrt des Items unter Umgehung von eval überschrieben sollte, wären möglicherweise auch 2 Lösungen sinnvoll. Also auch ein eval, was nur getriggerte Werte nimmt und "wandelt".

    Wäre das sinnvoll und relativ easy umsetzbar?
    Zuletzt geändert von Cannon; 01.10.2023, 10:40.
Lädt...
X