Syntax für Mehrfachauswahlmenü in $hash->{AttrList}

Begonnen von klaus.schauer, 15 April 2020, 17:48:44

Vorheriges Thema - Nächstes Thema

klaus.schauer

Wie muss man in $hash->{AttrList} ein Attribut definieren, damit der Anwender wie beim Attribut "room" in einem Mehrfachauswahlmenü ein oder mehrere Werte aus der in $hash->{AttrList} vorgegebenen Liste auswählen kann? Mit

  $hash->{AttrList} = "alarmTrigger:dayNight,isRaining,isStormy,isWindy"

gelingt es mir nur ein Auswahlliste bereitzustellen, aus der man einen Wert auswählen kann.

CoolTux

#1
Das ist eine sehr schlechte Idee den Hash selbst zu beschreiben.
Wie stellst Du sicher das Du vorhandene nicht überschreibst?

Für Dein Vorhaben gibt es addToDevAttrList und delFromDevAttrList.


Grüße


Ich habe das Thema verfehlt. Sechs setzen  :-[
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

RichardCZ

#2
Zitat von: CoolTux am 15 April 2020, 18:10:50
Das ist eine sehr schlechte Idee den Hash selbst zu beschreiben.
Wie stellst Du sicher das Du vorhandene nicht überschreibst?

Der Aufmerksame "Perl-Ecke" Leser weiß es:

https://forum.fhem.de/index.php/topic,109740.msg1039114.html#msg1039114

So schlecht ist die Idee doch nicht.

$hash = {
%{$hash},
hier_fummel => 'ich einen neuen Wert herein und überschreibe ggf. den vorhandenen und nur den',
},

=

$hash->{hier_fummel} = 'ich einen neuen Wert herein und überschreibe ggf. den vorhandenen und nur den';


Nur muss es ja nicht bei einer zeile bleiben.

Wenn ich nun will, dass mein Wert aber ggf. von einem bereits vorhandenen Wert überschrieben werden soll... Hausaufgabe.

...

Ne kleiner Scherz:

$hash = {
hier_fummel => 'ich zwar was rein, aber wenn schon vorhanden wird nix geändert',
aber_hier => 'eventuell',
%{$hash},
und_hier => 'auf jeden Fall',
},


Capiche?
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

herrmannj

Zitat von: CoolTux am 15 April 2020, 18:10:50
Das ist eine sehr schlechte Idee den Hash selbst zu beschreiben.
Wie stellst Du sicher das Du vorhandene nicht überschreibst?

Für Dein Vorhaben gibt es addToDevAttrList und delFromDevAttrList.


Grüße
Achtung, cooltux Empfehlung folgen.

CoolTux

Es gibt für das Vorhaben interne Funktionen welche bitte auch verwendet werden sollen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

RichardCZ

Wenn vorhandene Funktionen sind, soll man natürlich die nutzen. Die

%hash = (
%mein_geknoedel_low_prio,
%hash
%mein_geknoedel_high_prio,
);

Methode funktioniert aber auch wenn keine Funktionen da sind.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

rudolfkoenig

ZitatWie muss man in $hash->{AttrList} ein Attribut definieren, damit der Anwender wie beim Attribut "room" in einem Mehrfachauswahlmenü ein oder mehrere Werte aus der in $hash->{AttrList} vorgegebenen Liste auswählen kann?
$hash->{AttrList} = "alarmTrigger:multiple,dayNight,isRaining,isStormy,isWindy"
Falls keiner der Keywords erkannt wird (die Liste ist hier), dann wird select angenommen. Alternative ist evtl. multiple-strict

ZitatWie stellst Du sicher das Du vorhandene nicht überschreibst?
Es geht hier um das Initialisieren im Modul Hash als Modul-Autor, erweitern muss man in diesem Fall nichts.

CoolTux

Ah jetzt verstehe ich. Es geht um das eigene Device was die Attribute bekommen soll. Sorry da habe ich zu schnell gelesen.

Rudi hat die richtige Lösung.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net