Array mit einer Schleife durchlaufen lassen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
fkempter
Beiträge: 46
Registriert: 6. Jan 2018 13:59
Answers: 0

Array mit einer Schleife durchlaufen lassen

Beitrag von fkempter »

Ich fülle ein Array mit einer Rule

Code: Alles auswählen

import java.util.Map
val Map<String, Integer> alarmTxt = newHashMap

rule "Check Alarmtext"
when
    Item Alarmmelder changed
then
    var String tmp_State = si02Alarmmelder.state.toString
    alarmTxt.put(tmp_State, Integer::parseInt(tmp_State.substring(0,1)))
end
Nun möchte ich mit einer Schleife die Werte auslesen.
Ähnlich so, aber es funktioniert leider nicht.

Code: Alles auswählen

    alarmTxt.forEach[m| {
    	    if (alarmTxt.get(tmp_State) != NULL)
    	    		 logInfo(" rule Alarmtext: ", "Read > " + alarmTxt.get(tmp_State))
    }]

Benutzeravatar
udo1toni
Beiträge: 15639
Registriert: 11. Apr 2018 18:05
Answers: 254
Wohnort: Darmstadt

Re: Array mit einer Schleife durchlaufen lassen

Beitrag von udo1toni »

Wenn Du eine Map mit zwei Feldern definierst, müsstest Du beim Lesen ebenfalls zwei Felder auslesen. Außerdem müsstest Du einen Zeiger verwenden, um für get() anzugeben, welche Zeile des Arrays Dich interessiert.

Vieleicht hilft Dir dies hier weiter? https://community.openhab.org/t/solved- ... -help/3169
openHAB5.1.2 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.5 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte

Antworten