Seite 1 von 1

Daten in ein Array sammeln

Verfasst: 11. Mär 2019 18:31
von fkempter
Leider habe ich überhaupt kein Idee wie ich Daten in ein Array sammeln kann.

Ziel
Anzeige (ESP8266 4x20Display mit MQTT) wo ein Alarm aufgetreten ist.
Sind es mehr dann werde ich diese langsam durchlaufen lassen.

Nun:
Über das item "Alarmmeldung" bekomme ich von verschiedenden Rules ein String mit dem Format
Alarmlevel ; gesendet von Item xx
zb:
1;Haustür
1;Garagentür
2;Bad-Fenster
1;Wasserausritt
..
bei Alarmlevel 0 ist der Alarm aufgehoben

Wie kann ich die Werte in ein Array sammeln
und dann die ersten 4 Werte (Alarmlevel > 0) an item "DisplayLine_1" "DisplayLine_2" "DisplayLine_3" "DisplayLine_4" senden(mqtt)?

Schöne Grüsse Franz

Re: Daten in ein Array sammeln

Verfasst: 12. Mär 2019 20:09
von fkempter
EIne Idee habe ich und zwar so:

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
    logInfo(" rule Alarmtext: ", "Neu  > " + tmp_State)
    alarmTxt.put(tmp_State, Integer::parseInt(tmp_State.substring(0,1)))
end
Nur weiß ich nicht wie ich das in eine Schleife bringe in dem ich die Werte dan auslessen könnte?
Ähnlich so aber es funktioniert nicht.

Code: Alles auswählen

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