Array/Liste mit Stings als Index anstatt Zahlen

Begonnen von stobor, 18 Januar 2023, 20:42:08

Vorheriges Thema - Nächstes Thema

stobor

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?
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 27642
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

stobor

#2
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?
Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 27642
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

stobor

Intel NUC (Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-73-generic x86_64))  mit CUL V3.2 (Firmware 1.57 CUL868) für FS20 und CUL V3.4 (Firmware 1.57 CUL868) für HM + Arduino Mega
FHEM Revision: 27642
FS20-Schalter und Dimmer
HM Fensterkontakte, Heizungsthermostate, Temperatursensoren

Otto123

#4
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")}}
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

betateilchen

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.


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!