Hallo,
Ich möchte gern eine Liste mit Werten anlegen, die ich über eindeutige Strings ansprechen kann.
Ich möchte eine Liste anlegen, die als Index die Gerätenamen verwendet und die Werte die Gerätezustände beinhalten. Über den Gerätenamen möchte ich dann an den Gerätezustand gelangen. Da ich nicht direkt die Zustände aus FHEM verwenden kann (on-for-timer wird nicht brauchbar abgebildet : https://forum.fhem.de/index.php/topic,131503.0.html).
Wie kann ich so etwas geschickt abbilden?
Das nennt sich hash.
Wie sollte ich denn das (hash) nutzen?
Wie initialisiere ich denn einen hash und schreibe neu Einträge in die Liste oder ändere Werte vorhandene Einträge?
Ich habe das etwas gefunden und werde das mal ausprobieren: https://www.perltutorial.org/perl-hash/
Ich habe sowas als userReadings, setzt quasi Zifferncode in Klartext um. Vielleicht ist das ein Beispiel für Dich.
mowerActive:mowerActiveIndex:.* {my %activeState = (
0 => "No",
1 => "Yes",
2 => "Party"
); $activeState{ReadingsVal($name,"mowerActiveIndex","0")}}
Zitat von: Otto123 am 18 Januar 2023, 21:46:05
Ich habe sowas als userReadings, setzt quasi Zifferncode in Klartext um.
Wobei man Dein Beispiel mit den Indexwerten 0..2 viel einfacher mit einem Array umsetzen könnte.
Aber angenommen, Du möchtest umgekehrt die Werte "No", "Yes" und "Party" in Zahlenwerte 0..2 umsetzen, dann könnte man das einfach mit dem hash lösen, in dem man die Werte einfach umdreht.