Temperatur Tendenz ermitteln

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Temperatur Tendenz ermitteln

Beitrag von udo1toni »

PeterA hat geschrieben: 13. Sep 2020 18:42 Ab und zu habe ich diese ERROR Meldungen im Log:
Schwierig. irgendwo fehlt ein Prüfung auf null... oder sie geht schief...
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Temperatur Tendenz ermitteln

Beitrag von PeterA »

udo1toni hat geschrieben: 13. Sep 2020 19:45
PeterA hat geschrieben: 13. Sep 2020 18:32 Nun denn, dann ist es eben so das die Position des Rollladens erst ins Kombiitem geschrieben wird sich wenn ein Temp oder Hum Item ändert.
Funktioniert es denn nicht mit den Triggern?
Jetzt kann ich nicht mehr folgen.
Also im when Teil steht die grAllShutters Gruppe welche die Untergruppen enthält.

Code: Alles auswählen

Member of grAllshutters changed
Das funktioniert ja auch alles, nur wird die geänderte Rollladenposition nicht SOFORT ins Kombiitem geschrieben sondern
erst wenn sich ein Temp oder Hum Wert im zugehörigen Kombiitem ändert.
Müsste das über einen weiteren IF Block in dem auf die geänderte Position verglichen wird erfolgen ? (Kopf rauch)... :?:
- OpenHab 2.4
#PWRUP

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

Re: Temperatur Tendenz ermitteln

Beitrag von udo1toni »

Nein. Im when Teil der Rule musst Du die Gruppen aufführen, deren unmittelbare Member sich ändern, hattest Du doch selbst in diesem Posting geschrieben?
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Temperatur Tendenz ermitteln

Beitrag von PeterA »

Oh ah ja.
Aber dann grAllshutters.allMembers filtern ?
- OpenHab 2.4
#PWRUP

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Temperatur Tendenz ermitteln

Beitrag von PeterA »

Oh Yeah! Udo that did the Trick!

Funktioniert.

Gruß Peter
- OpenHab 2.4
#PWRUP

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Temperatur Tendenz ermitteln

Beitrag von PeterA »

udo1toni hat geschrieben: 13. Sep 2020 19:46
PeterA hat geschrieben: 13. Sep 2020 18:42 Ab und zu habe ich diese ERROR Meldungen im Log:
Schwierig. irgendwo fehlt ein Prüfung auf null... oder sie geht schief...
Könnte man das irgendwie debuggen ?
- OpenHab 2.4
#PWRUP

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

Re: Temperatur Tendenz ermitteln

Beitrag von udo1toni »

Ja, sicher. Du müsstest halt in die Rule eine Menge log-Befehle einbauen, durch die Du dann erkennen kannst, an welcher Stelle der Rule der Fehler auftritt.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Temperatur Tendenz ermitteln

Beitrag von PeterA »

Alles klar.
Kannst Du mit einen Tipp geben wo solche log-Befehle am besten eingebaut werden ?
Nach jeder Zeile ? Oder nach jedem "if" Block ? Nach dem "when" Teil ? Oder auch den "val" Zeilen ?
- OpenHab 2.4
#PWRUP

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

Re: Temperatur Tendenz ermitteln

Beitrag von udo1toni »

Im Zweifel vor jeder Variablenzuweisung, weil da vermutlich etwas schief geht...
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Temperatur Tendenz ermitteln

Beitrag von PeterA »

So sieht die Rule nun mit den log-Befehlen aus:

Code: Alles auswählen

import java.util.HashMap

val HashMap <String,String> hmRoller = newHashMap(  "InnenDG"      -> "Shellyswitch25_745118_roller",                      // von Sensor nach Shutter
                                                    "InnenDGKind1" -> "Shellyswitch25_00B713_roller",
                                                    "InnenDGKind2" -> "Shellyswitch25_E58F7A_roller",
                                                    "InnenWHZ"     -> "Shellyswitch25_740A26_roller"
)

val HashMap <String,String> hmSensor = newHashMap(  "Shellyswitch25_745118_roller" -> "InnenDG",                          // von Shutter nach Sensor
                                                    "Shellyswitch25_00B713_roller" -> "InnenDGKind1",
                                                    "Shellyswitch25_E58F7A_roller" -> "InnenDGKind2",
                                                    "Shellyswitch25_740A26_roller" -> "InnenWHZ"
)



rule "Update Kombi Item"
when
    Member of gTemp changed or
    Member of gHum changed or
    Member of gruppeRolladen_Sued changed or
    Member of gruppeRolladen_West changed
then
    var String strSensor = triggeringItem.name.split("_").get(0)       // Sensor bestimmen. ACHTUNG! nun als var!!!
    logInfo("var String strSensor","schritt durchlaufen")
    if(triggeringItem.name.contains("Shellyswitch25")) {                                                                  // Falls ein Rollershutter die Rule getriggert hat
        if(hmSensor.get(triggeringItem.name) !== null)                                                                    // Falls in der Hashmap enthalten
            strSensor = hmSensor.get(triggeringItem.name)                                                                 // Ermittle Sensornamen
        else                                                                                                              // falls nicht in der Hashmap enthalten
            logInfo("var String strSensor","block abgebrochen")
            return;                                                                                                       // Rule abbrechen
    }
                                                                                                                          // zugehörige Items bestimmen
    val ItemTempTendenz =  gTempTendenz.members.findFirst[i|i.name.split("_").get(0) == strSensor] as StringItem          // Item für Temperatur Tendenz bestimmen
    logInfo("val ItemTempTendenz","schritt durchlaufen")
    val ItemTempProxy   =    gTempProxy.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Proxy Item für Temperatur bestimmen
    logInfo("val ItemTempProxy","schritt durchlaufen")
    val ItemHumTendenz  =   gHumTendenz.members.findFirst[i|i.name.split("_").get(0) == strSensor] as StringItem          // Item für Feuchte Tendenz bestimmen
    logInfo("val ItemHumTendenz","schritt durchlaufen")
    val ItemHumProxy    =     gHumProxy.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Proxy Item für Feuchte bestimmen
    logInfo("val ItemHumProxy","schritt durchlaufen")
    val ItemTemp        =         gTemp.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Temperatur Item bestimmen
    logInfo("val ItemTemp","schritt durchlaufen")
    val ItemHum         =          gHum.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Feuchte Item bestimmen
    logInfo("val ItemHum","schritt durchlaufen")
    val ItemKombi       =        gKombi.members.findFirst[i|i.name.split("_").get(0) == strSensor] as StringItem          // Kombi Item bestimmen
    logInfo("val ItemKombi","schritt durchlaufen")
    val ItemShutter     = grAllshutters.allMembers.findFirst[i|i.name == hmRoller.get(strSensor)]  as RollershutterItem   // Rolladen Pos Item bestimmen
    logInfo("val ItemShutter","schritt durchlaufen")
    logInfo("var Groups","block durchlaufen")
                                                                                                                          // Werte bestimmen
    val Number nTempProxy = if(ItemTempProxy.state instanceof Number) (ItemTempProxy.state as Number) else 0              // Temperatur Proxy auslesen
    val Number nHumProxy  = if(ItemHumTendenz.state instanceof Number) (ItemHumTendenz.state as Number) else 0            // Feuchte  Proxy auslesen
    logInfo("val Number Proxy","block durchlaufen")
    val Number nTemp = if(ItemTemp.state instanceof Number) (ItemTemp.state as Number).floatValue else nTempProxy         // Temperatur auslesen
    val Number nHum  = if(ItemHum.state instanceof Number) (ItemHum.state as Number).floatValue else nHumProxy            // Feuchte auslesen
    logInfo("val Number","block durchlaufen")
                                                                                                                          // Tendenz Temperatur
    var String strTempTendence = "⬅️➡️"                                                                                    // Default String für Tendenz Anzeige
    var String strTempMessage = "stagnierend"                                                                             // Default String für Tendenz Logmeldung
    if(nTemp > nTempProxy) {                                                                                              // falls aktuelle Temperatur höher als alte Temperatur
        strTempTendence = "⬆️"                                                                                            // String für Tendenz Anzeige steigend
        strTempMessage = "steigend"                                                                                       // String für Logmeldung steigend
    }
    if(nTemp < nTempProxy) {                                                                                              // falls aktuelle Temperatur geringer als alte Temperatur
        strTempTendence = "⬇️"                                                                                            // String für Tendenz Anzeige sinkend
        strTempMessage = "fallend"                                                                                        // String für Logmeldung sinkend
    }
    logInfo("temphum","Sensor {} Temperatur {}",strSensor,strTempMessage)                                                 // Logmeldung ausgeben
    ItemTempProxy.postUpdate(nTemp)                                                                                       // Neue Temperatur in Proxy Item übernehmen
    ItemTempTendenz.postUpdate(strTempTendence)                                                                           // Tendenz Item setzen
                                                                                                                          // Tendenz Feuchte
    var String strHumTendence = "⬅️➡️"                                                                                     // Default String für Tendenz Anzeige
    var String strHumMessage = "stagnierend"                                                                              // Default String für Tendenz Logmeldung
    if(nHum > nHumProxy) {                                                                                                // falls aktuelle Feuchte höher als alte Feuchte
        strHumTendence = "⬆️"                                                                                             // String für Tendenz Anzeige steigend
        strHumMessage = "steigend"                                                                                        // String für Logmeldung steigend
    }
    if(nHum < nHumProxy) {                                                                                                // falls aktuelle Feuchte geringer als alte Feuchte
        strHumTendence = "⬇️"                                                                                             // String für Tendenz Anzeige sinkend
        strHumMessage = "fallend"                                                                                         // String für Logmeldung sinkend
    }
    logInfo("temphum","Sensor {} Feuchte {}",strSensor,strHumMessage)                                                     // Logmeldung ausgeben
    ItemHumProxy.postUpdate(nHum)                                                                                         // Neue Feuchte in Proxy Item übernehmen
    ItemHumTendenz.postUpdate(strHumTendence)                                                                             // Tendenz Item setzen
                                                                                                                          // Kombiitem setzen
    //var String strKombi = strTempTendence + " " + nTemp.toString + " °C / " + strHumTendence + " " + nHum.toString + " %" // Kombinierter String ohne Shutter
    var String strKombi = strTempTendence + " " + String::format("%.1f °C / ",nTemp) + strHumTendence + " " + String::format("%.0f %%",nHum) // Kombinierter String ohne Shutter
    if(ItemShutter !== null)                                                                                              // Falls es ein passendes Shutteritem gibt
        strKombi = "Rollladen: " + ItemShutter.state.toString + "% / " + strKombi                                         // füge den Shutterstatus vorne an
    ItemKombi.postUpdate(strKombi)                                                                                        // Setze das Kombiitem
end
Und hier nun der Auszug aus dem Log wenn ein ERROR kommt:

Code: Alles auswählen

2020-09-18 08:39:15.142 [vent.ItemStateChangedEvent] - Aussen_Temp changed from 15.6 to 15.7
2020-09-18 08:39:15.182 [vent.ItemStateChangedEvent] - Aussen_Hum changed from 62 to 61
==> /var/log/openhab2/openhab.log <==
2020-09-18 08:39:15.169 [INFO ] [me.model.script.var String strSensor] - schritt durchlaufen
2020-09-18 08:39:15.201 [INFO ] [me.model.script.var String strSensor] - schritt durchlaufen
==> /var/log/openhab2/openhab.log <==
2020-09-18 08:39:15.261 [INFO ] [ome.model.script.val ItemTempTendenz] - schritt durchlaufen
2020-09-18 08:39:15.271 [INFO ] [ome.model.script.val ItemTempTendenz] - schritt durchlaufen
==> /var/log/openhab2/openhab.log <==
2020-09-18 08:39:15.298 [INFO ] [thome.model.script.val ItemTempProxy] - schritt durchlaufen
2020-09-18 08:39:15.299 [INFO ] [thome.model.script.val ItemTempProxy] - schritt durchlaufen
2020-09-18 08:39:15.315 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-18 08:39:15.316 [INFO ] [home.model.script.val ItemHumTendenz] - schritt durchlaufen
2020-09-18 08:39:15.328 [INFO ] [rthome.model.script.val ItemHumProxy] - schritt durchlaufen
2020-09-18 08:39:15.341 [INFO ] [.smarthome.model.script.val ItemTemp] - schritt durchlaufen
2020-09-18 08:39:15.355 [INFO ] [e.smarthome.model.script.val ItemHum] - schritt durchlaufen
2020-09-18 08:39:15.365 [INFO ] [smarthome.model.script.val ItemKombi] - schritt durchlaufen
2020-09-18 08:39:15.393 [INFO ] [arthome.model.script.val ItemShutter] - schritt durchlaufen
2020-09-18 08:39:15.397 [INFO ] [se.smarthome.model.script.var Groups] - block durchlaufen
2020-09-18 08:39:15.406 [INFO ] [rthome.model.script.val Number Proxy] - block durchlaufen
2020-09-18 08:39:15.412 [INFO ] [se.smarthome.model.script.val Number] - block durchlaufen
2020-09-18 08:39:15.419 [INFO ] [lipse.smarthome.model.script.temphum] - Sensor Aussen Temperatur steigend
==> /var/log/openhab2/events.log <==
2020-09-18 08:39:15.430 [vent.ItemStateChangedEvent] - Aussen_TempProxy changed from 15.6 to 15.7
==> /var/log/openhab2/openhab.log <==
2020-09-18 08:39:15.437 [INFO ] [lipse.smarthome.model.script.temphum] - Sensor Aussen Feuchte steigend
==> /var/log/openhab2/events.log <==
2020-09-18 08:39:15.459 [vent.ItemStateChangedEvent] - Aussen_HumProxy changed from 62.0 to 61.0
2020-09-18 08:39:15.477 [vent.ItemStateChangedEvent] - Aussen_Kombi changed from ⬆️ 15,6 °C / ⬆️ 62 % to ⬆️ 15,7 °C / ⬆️ 61 %
Und hier gleich nochmal:

Code: Alles auswählen

2020-09-18 09:00:07.707 [vent.ItemStateChangedEvent] - InnenWHZTemp changed from 21.4 °C to 21.5 °C
2020-09-18 09:00:07.718 [vent.ItemStateChangedEvent] - InnenWHZ_Temp changed from 21.4 to 21.5
==> /var/log/openhab2/openhab.log <==
2020-09-18 09:00:07.744 [INFO ] [me.model.script.var String strSensor] - schritt durchlaufen
==> /var/log/openhab2/events.log <==
2020-09-18 09:00:07.771 [vent.ItemStateChangedEvent] - InnenWHZFeuchte changed from 46 % to 47 %
2020-09-18 09:00:07.781 [vent.ItemStateChangedEvent] - InnenWHZ_Hum changed from 46 to 47
==> /var/log/openhab2/openhab.log <==
2020-09-18 09:00:07.788 [INFO ] [me.model.script.var String strSensor] - schritt durchlaufen
2020-09-18 09:00:07.870 [INFO ] [ome.model.script.val ItemTempTendenz] - schritt durchlaufen
2020-09-18 09:00:07.888 [INFO ] [ome.model.script.val ItemTempTendenz] - schritt durchlaufen
2020-09-18 09:00:07.920 [INFO ] [thome.model.script.val ItemTempProxy] - schritt durchlaufen
2020-09-18 09:00:07.948 [INFO ] [thome.model.script.val ItemTempProxy] - schritt durchlaufen
2020-09-18 09:00:07.976 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-18 09:00:07.976 [INFO ] [home.model.script.val ItemHumTendenz] - schritt durchlaufen
2020-09-18 09:00:08.049 [INFO ] [rthome.model.script.val ItemHumProxy] - schritt durchlaufen
2020-09-18 09:00:08.189 [INFO ] [.smarthome.model.script.val ItemTemp] - schritt durchlaufen
2020-09-18 09:00:08.238 [INFO ] [e.smarthome.model.script.val ItemHum] - schritt durchlaufen
2020-09-18 09:00:08.304 [INFO ] [smarthome.model.script.val ItemKombi] - schritt durchlaufen
2020-09-18 09:00:08.328 [INFO ] [arthome.model.script.val ItemShutter] - schritt durchlaufen
2020-09-18 09:00:08.333 [INFO ] [se.smarthome.model.script.var Groups] - block durchlaufen
2020-09-18 09:00:08.341 [INFO ] [rthome.model.script.val Number Proxy] - block durchlaufen
2020-09-18 09:00:08.350 [INFO ] [se.smarthome.model.script.val Number] - block durchlaufen
2020-09-18 09:00:08.360 [INFO ] [lipse.smarthome.model.script.temphum] - Sensor InnenWHZ Temperatur steigend
==> /var/log/openhab2/events.log <==
2020-09-18 09:00:08.372 [vent.ItemStateChangedEvent] - InnenWHZ_TempProxy changed from 21.4 to 21.5
2020-09-18 09:00:08.377 [vent.ItemStateChangedEvent] - InnenWHZ_TempTendenz changed from ⬅️➡️ to ⬆️
==> /var/log/openhab2/openhab.log <==
2020-09-18 09:00:08.379 [INFO ] [lipse.smarthome.model.script.temphum] - Sensor InnenWHZ Feuchte steigend
==> /var/log/openhab2/events.log <==
2020-09-18 09:00:08.393 [vent.ItemStateChangedEvent] - InnenWHZ_HumProxy changed from 46.0 to 47.0
2020-09-18 09:00:08.412 [vent.ItemStateChangedEvent] - InnenWHZ_Kombi changed from Rollladen: 0% / ⬅️➡️ 21,4 °C / ⬆️ 46 % to Rollladen: 0% / ⬆️ 21,5 °C / ⬆️ 47 %
Und nochmal:

Code: Alles auswählen

2020-09-18 10:25:17.432 [vent.ItemStateChangedEvent] - Aussen_Temp changed from 16.0 to 16.1
2020-09-18 10:25:17.446 [vent.ItemStateChangedEvent] - Aussen_Hum changed from 59 to 58
==> /var/log/openhab2/openhab.log <==
2020-09-18 10:25:17.488 [INFO ] [me.model.script.var String strSensor] - schritt durchlaufen
==> /var/log/openhab2/openhab.log <==
2020-09-18 10:25:17.523 [INFO ] [me.model.script.var String strSensor] - schritt durchlaufen
==> /var/log/openhab2/openhab.log <==
2020-09-18 10:25:17.563 [INFO ] [ome.model.script.val ItemTempTendenz] - schritt durchlaufen
==> /var/log/openhab2/openhab.log <==
2020-09-18 10:25:17.573 [INFO ] [ome.model.script.val ItemTempTendenz] - schritt durchlaufen
2020-09-18 10:25:17.574 [INFO ] [thome.model.script.val ItemTempProxy] - schritt durchlaufen
2020-09-18 10:25:17.592 [INFO ] [thome.model.script.val ItemTempProxy] - schritt durchlaufen
2020-09-18 10:25:17.593 [INFO ] [home.model.script.val ItemHumTendenz] - schritt durchlaufen
2020-09-18 10:25:17.658 [INFO ] [rthome.model.script.val ItemHumProxy] - schritt durchlaufen
2020-09-18 10:25:17.660 [INFO ] [home.model.script.val ItemHumTendenz] - schritt durchlaufen
2020-09-18 10:25:17.671 [INFO ] [.smarthome.model.script.val ItemTemp] - schritt durchlaufen
2020-09-18 10:25:17.674 [INFO ] [rthome.model.script.val ItemHumProxy] - schritt durchlaufen
2020-09-18 10:25:17.684 [INFO ] [.smarthome.model.script.val ItemTemp] - schritt durchlaufen
2020-09-18 10:25:17.684 [INFO ] [e.smarthome.model.script.val ItemHum] - schritt durchlaufen
2020-09-18 10:25:17.693 [INFO ] [e.smarthome.model.script.val ItemHum] - schritt durchlaufen
2020-09-18 10:25:17.696 [INFO ] [smarthome.model.script.val ItemKombi] - schritt durchlaufen
2020-09-18 10:25:17.704 [INFO ] [smarthome.model.script.val ItemKombi] - schritt durchlaufen
2020-09-18 10:25:17.719 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-18 10:25:17.727 [INFO ] [arthome.model.script.val ItemShutter] - schritt durchlaufen
2020-09-18 10:25:17.730 [INFO ] [se.smarthome.model.script.var Groups] - block durchlaufen
2020-09-18 10:25:17.736 [INFO ] [rthome.model.script.val Number Proxy] - block durchlaufen
2020-09-18 10:25:17.742 [INFO ] [se.smarthome.model.script.val Number] - block durchlaufen
2020-09-18 10:25:17.748 [INFO ] [lipse.smarthome.model.script.temphum] - Sensor Aussen Temperatur steigend
==> /var/log/openhab2/events.log <==
2020-09-18 10:25:17.757 [vent.ItemStateChangedEvent] - Aussen_TempProxy changed from 16.0 to 16.1
==> /var/log/openhab2/openhab.log <==
2020-09-18 10:25:17.766 [INFO ] [lipse.smarthome.model.script.temphum] - Sensor Aussen Feuchte steigend
==> /var/log/openhab2/events.log <==
2020-09-18 10:25:17.776 [vent.ItemStateChangedEvent] - Aussen_HumProxy changed from 59.0 to 58.0
2020-09-18 10:25:17.803 [vent.ItemStateChangedEvent] - Aussen_Kombi changed from ⬆️ 16,0 °C / ⬆️ 59 % to ⬆️ 16,1 °C / ⬆️ 58 %
Oder hängt es noch damit zusammen das VSC bei diesem Codeblock:

Code: Alles auswählen

val ItemTempTendenz =  gTempTendenz.members.findFirst[i|i.name.split("_").get(0) == strSensor] as StringItem          // Item für Temperatur Tendenz bestimmen
    logInfo("val ItemTempTendenz","schritt durchlaufen")
    val ItemTempProxy   =    gTempProxy.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Proxy Item für Temperatur bestimmen
    logInfo("val ItemTempProxy","schritt durchlaufen")
    val ItemHumTendenz  =   gHumTendenz.members.findFirst[i|i.name.split("_").get(0) == strSensor] as StringItem          // Item für Feuchte Tendenz bestimmen
    logInfo("val ItemHumTendenz","schritt durchlaufen")
    val ItemHumProxy    =     gHumProxy.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Proxy Item für Feuchte bestimmen
    logInfo("val ItemHumProxy","schritt durchlaufen")
    val ItemTemp        =         gTemp.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Temperatur Item bestimmen
    logInfo("val ItemTemp","schritt durchlaufen")
    val ItemHum         =          gHum.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Feuchte Item bestimmen
    logInfo("val ItemHum","schritt durchlaufen")
    val ItemKombi       =        gKombi.members.findFirst[i|i.name.split("_").get(0) == strSensor] as StringItem          // Kombi Item bestimmen
    logInfo("val ItemKombi","schritt durchlaufen")
    val ItemShutter     = grAllshutters.allMembers.findFirst[i|i.name == hmRoller.get(strSensor)]  as RollershutterItem   // Rolladen Pos Item bestimmen
für "strSensor" jeweils diese Fehlermeldung ausgibt:

Code: Alles auswählen

Cannot refer to the non-final variable strSensor inside a lambda expression
- OpenHab 2.4
#PWRUP

Antworten