Neuigkeiten:

Am Sonntag den 8.12.2024 kann es ab ca. 8:00 Uhr zu kurzzeitigen Einschränkungen / Ausfällen bei den Diensten des FHEM Vereines kommen.
Die Server müssen mal gewartet und dabei neu gestartet werden ;)

Hauptmenü

Priorität zwischen setList und SetExtensions

Begonnen von betateilchen, 06 April 2024, 17:42:44

Vorheriges Thema - Nächstes Thema

betateilchen

Moin,

wie ist eigentlich die Priorität zwischen den SetExtensions und dem Attribut setList festgelegt?

Hintergrund meiner Frage:

In MQTT2_DEVICE ist SetExtensions immer aktiv. Nun habe ich mqtt-gesteuerte Leuchtmittel, die in eigenes on-for-timer kennen, das man per mqtt-payload aktivieren kann.

Welches "on-for-timer" wird ausgeführt, wenn ich das entsprechende "set <device> on-for-timer 60" ausführe?

Noch ein Stück weiter gedacht: könnte man die Verwendung von SetExtensions bei Gelegenheit optional gestalten, gerne mit default=on, aber abschaltbar? So wie das in einigen anderen Modulen auch schon verfügbar ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

Soweit ich das verstanden habe, wird ein Kommando nur dann (am Ende der setFn()) an setextensions übergeben, wenn das nicht anders behandelt wurde.

Anders gesagt, geht ein echtes Kommando (z.B. für on-for-timer) in setList der Übergabe an setextensions vor.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

betateilchen

Zitat von: Beta-User am 06 April 2024, 18:51:48Anders gesagt, geht ein echtes Kommando (z.B. für on-for-timer) in setList der Übergabe an setextensions vor.

Nun hatte ich Zeit zum Testen, es scheint in der Tat so zu sein.
Damit ist die erste Hälfte meiner Überlegungen erledigt, danke.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

ZitatNoch ein Stück weiter gedacht: könnte man die Verwendung von SetExtensions bei Gelegenheit optional gestalten, gerne mit default=on, aber abschaltbar?
SetExtensions "schenkt" dem Modul auch noch attrTemplates, was bei MQTT2_DEVICE eine wichtige Rolle spielt.
D.h. SetExtensions abschaltbar zu machen wird vmtl. zusaetzlichen Aufwand im Forum bedeuten.
Ich werde ein useSetExtensions Attribut wie oben beschrieben einfuehren, wenn weitere Benutzer dafuer sind, oder ein Problem beschrieben wird, was mit diesem Attribut eleganter geloest werden kann.

betateilchen

Zitat von: rudolfkoenig am 08 April 2024, 11:14:49SetExtensions "schenkt" dem Modul auch noch attrTemplates, was bei MQTT2_DEVICE eine wichtige Rolle spielt.

Das spielt für mich keine wichtige (genauer: überhaupt keine) Rolle.
AttrTemplate hat es bis heute (trotz mehrfacher Versuche) noch nicht ein einziges Mal geschafft, ein MQTT2_DEVICE so zu konfigurieren, wie ich das gebraucht hätte. Und die nachträglichen Korrekturen sind meistens mehr Aufwand, als ein MQTT2_DEVICE manuell anzulegen. Deshalb habe ich AttrTemplate über das entsprechende globale Attribut installationsweit abgeschaltet.

Wenn es eine "Vermischung" zwischen SetExtensions und AttrTemplate gibt und dann auch noch damit argumentiert wird, finde ich das an dieser Stelle unschön.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!