FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: klaus.schauer am 15 April 2020, 17:48:44

Titel: Syntax für Mehrfachauswahlmenü in $hash->{AttrList}
Beitrag von: klaus.schauer am 15 April 2020, 17:48:44
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.
Titel: Antw:Syntax für Mehrfachauswahlmenü in $hash->{AttrList}
Beitrag 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


Ich habe das Thema verfehlt. Sechs setzen  :-[
Titel: Antw:Syntax für Mehrfachauswahlmenü in $hash->{AttrList}
Beitrag von: RichardCZ am 15 April 2020, 18:30:04
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?
Titel: Antw:Syntax für Mehrfachauswahlmenü in $hash->{AttrList}
Beitrag von: herrmannj am 15 April 2020, 18:33:17
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.
Titel: Antw:Syntax für Mehrfachauswahlmenü in $hash->{AttrList}
Beitrag von: CoolTux am 15 April 2020, 18:33:26
Es gibt für das Vorhaben interne Funktionen welche bitte auch verwendet werden sollen.
Titel: Antw:Syntax für Mehrfachauswahlmenü in $hash->{AttrList}
Beitrag von: RichardCZ am 15 April 2020, 18:35:43
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.
Titel: Antw:Syntax für Mehrfachauswahlmenü in $hash->{AttrList}
Beitrag von: rudolfkoenig am 15 April 2020, 18:38:00
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 (https://fhem.de/commandref_modular.html#widgetOverride)), 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.
Titel: Antw:Syntax für Mehrfachauswahlmenü in $hash->{AttrList}
Beitrag von: CoolTux am 15 April 2020, 18:42:07
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.