Seite 13 von 14

Re: Temperatur Tendenz ermitteln

Verfasst: 23. Sep 2020 08:38
von udo1toni
Ah. Dann müssen wir einen lock vorsehen. Später...

Gesendet von meinem SM-G973F mit Tapatalk


Re: Temperatur Tendenz ermitteln

Verfasst: 23. Sep 2020 10:22
von PeterA
Alles klar!
Hier nochmal ein fehlerfreies Update eines Temp Sensors:

Code: Alles auswählen

2020-09-23 09:58:33.641 [vent.ItemStateChangedEvent] - InnenEGGaesteWC_Temp changed from 20.8 to 20.9
==> /var/log/openhab2/openhab.log <==
2020-09-23 09:58:33.651 [INFO ] [e.smarthome.model.script.kombiupdate] - var String strSensor: InnenEGGaesteWC
2020-09-23 09:58:33.715 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTempTendenz: InnenEGGaesteWC_TempTendenz
2020-09-23 09:58:33.772 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTempProxy: InnenEGGaesteWC_TempProxy
2020-09-23 09:58:33.819 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHumTendenz: InnenEGGaesteWC_HumTendenz
2020-09-23 09:58:33.877 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHumProxy: InnenEGGaesteWC_HumProxy
2020-09-23 09:58:33.943 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTemp: InnenEGGaesteWC_Temp
2020-09-23 09:58:34.015 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHum: InnenEGGaesteWC_Hum
2020-09-23 09:58:34.149 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemKombi: InnenEGGaesteWC_Kombi
2020-09-23 09:58:34.172 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemShutter: Kein Rollladen gefunden!
2020-09-23 09:58:34.180 [INFO ] [e.smarthome.model.script.kombiupdate] - Number Proxy
2020-09-23 09:58:34.193 [INFO ] [e.smarthome.model.script.kombiupdate] - Number
2020-09-23 09:58:34.208 [INFO ] [e.smarthome.model.script.kombiupdate] - Sensor InnenEGGaesteWC Temperatur steigend
==> /var/log/openhab2/events.log <==
2020-09-23 09:58:34.224 [vent.ItemStateChangedEvent] - InnenEGGaesteWC_TempProxy changed from 20.8 to 20.9
==> /var/log/openhab2/openhab.log <==
2020-09-23 09:58:34.236 [INFO ] [e.smarthome.model.script.kombiupdate] - Sensor InnenEGGaesteWC Feuchte stagnierend
==> /var/log/openhab2/events.log <==
2020-09-23 09:58:34.275 [vent.ItemStateChangedEvent] - InnenEGGaesteWC_Kombi changed from ⬆️ 20,8 °C / ⬅️➡️ 57 % to ⬆️ 20,9 °C / ⬅️➡️ 57 %
Und hier ein fehlerfreies Update eines Hum Sensors:

Code: Alles auswählen

==> /var/log/openhab2/openhab.log <==
2020-09-23 10:16:45.727 [INFO ] [e.smarthome.model.script.kombiupdate] - var String strSensor: InnenDGSZ
==> /var/log/openhab2/events.log <==
2020-09-23 10:16:45.731 [vent.ItemStateChangedEvent] - InnenDGSZ_Hum changed from 55 to 54
==> /var/log/openhab2/openhab.log <==
2020-09-23 10:16:45.787 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTempTendenz: InnenDGSZ_TempTendenz
==> /var/log/openhab2/openhab.log <==
2020-09-23 10:16:45.884 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTempProxy: InnenDGSZ_TempProxy
2020-09-23 10:16:45.911 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHumTendenz: InnenDGSZ_HumTendenz
2020-09-23 10:16:46.000 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHumProxy: InnenDGSZ_HumProxy
2020-09-23 10:16:46.047 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTemp: InnenDGSZ_Temp
2020-09-23 10:16:46.083 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHum: InnenDGSZ_Hum
2020-09-23 10:16:46.119 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemKombi: InnenDGSZ_Kombi
2020-09-23 10:16:46.128 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemShutter: Kein Rollladen gefunden!
2020-09-23 10:16:46.135 [INFO ] [e.smarthome.model.script.kombiupdate] - Number Proxy
2020-09-23 10:16:46.144 [INFO ] [e.smarthome.model.script.kombiupdate] - Number
2020-09-23 10:16:46.155 [INFO ] [e.smarthome.model.script.kombiupdate] - Sensor InnenDGSZ Temperatur stagnierend
==> /var/log/openhab2/events.log <==
2020-09-23 10:16:46.175 [vent.ItemStateChangedEvent] - InnenDGSZ_TempTendenz changed from ⬆️ to ⬅️➡️
==> /var/log/openhab2/openhab.log <==
2020-09-23 10:16:46.184 [INFO ] [e.smarthome.model.script.kombiupdate] - Sensor InnenDGSZ Feuchte fallend
==> /var/log/openhab2/events.log <==
2020-09-23 10:16:46.196 [vent.ItemStateChangedEvent] - InnenDGSZ_HumProxy changed from 55.0 to 54.0
2020-09-23 10:16:46.205 [vent.ItemStateChangedEvent] - InnenDGSZ_HumTendenz changed from ⬅️➡️ to ⬇️
2020-09-23 10:16:46.223 [vent.ItemStateChangedEvent] - InnenDGSZ_Kombi changed from ⬆️ 21,3 °C / ⬅️➡️ 55 % to ⬅️➡️ 21,3 °C / ⬇️ 54 %
Edit:
Und hier vom gleichen Sensor Temp und Hum aber kurz hintereinander.
Gibt auch KEIN Fehler:

Code: Alles auswählen

2020-09-23 10:29:09.693 [INFO ] [e.smarthome.model.script.kombiupdate] - var String strSensor: Aussen
==> /var/log/openhab2/events.log <==
2020-09-23 10:29:09.705 [vent.ItemStateChangedEvent] - AussenTemp changed from 19.6 to 19.7
2020-09-23 10:29:09.717 [vent.ItemStateChangedEvent] - Aussen_Hum changed from 64 to 63
==> /var/log/openhab2/openhab.log <==
2020-09-23 10:29:09.744 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTempTendenz: Aussen_TempTendenz
==> /var/log/openhab2/openhab.log <==
2020-09-23 10:29:09.789 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTempProxy: Aussen_TempProxy
2020-09-23 10:29:09.814 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHumTendenz: Aussen_HumTendenz
2020-09-23 10:29:09.838 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHumProxy: Aussen_HumProxy
==> /var/log/openhab2/openhab.log <==
2020-09-23 10:29:09.874 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTemp: Aussen_Temp
==> /var/log/openhab2/openhab.log <==
2020-09-23 10:29:09.912 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHum: Aussen_Hum
==> /var/log/openhab2/openhab.log <==
2020-09-23 10:29:09.947 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemKombi: Aussen_Kombi
2020-09-23 10:29:09.957 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemShutter: Kein Rollladen gefunden!
2020-09-23 10:29:09.979 [INFO ] [e.smarthome.model.script.kombiupdate] - Number Proxy
2020-09-23 10:29:09.999 [INFO ] [e.smarthome.model.script.kombiupdate] - Number
2020-09-23 10:29:10.022 [INFO ] [e.smarthome.model.script.kombiupdate] - Sensor Aussen Temperatur steigend
2020-09-23 10:29:10.028 [INFO ] [e.smarthome.model.script.kombiupdate] - var String strSensor: Aussen
2020-09-23 10:29:10.050 [INFO ] [e.smarthome.model.script.kombiupdate] - Sensor Aussen Feuchte fallend
2020-09-23 10:29:10.080 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTempTendenz: Aussen_TempTendenz
==> /var/log/openhab2/events.log <==
2020-09-23 10:29:10.084 [vent.ItemStateChangedEvent] - Aussen_TempProxy changed from 19.6 to 19.7
==> /var/log/openhab2/openhab.log <==
2020-09-23 10:29:10.100 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTempProxy: Aussen_TempProxy
==> /var/log/openhab2/events.log <==
2020-09-23 10:29:10.195 [vent.ItemStateChangedEvent] - Aussen_HumProxy changed from 64.0 to 63.0
2020-09-23 10:29:10.203 [vent.ItemStateChangedEvent] - Aussen_HumTendenz changed from ⬅️➡️ to ⬇️
2020-09-23 10:29:10.217 [vent.ItemStateChangedEvent] - Aussen_Kombi changed from ⬆️ 19,6 °C / ⬅️➡️ 64 % to ⬆️ 19,7 °C / ⬇️ 63 %
==> /var/log/openhab2/openhab.log <==
2020-09-23 10:29:10.215 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHumTendenz: Aussen_HumTendenz
2020-09-23 10:29:10.245 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHumProxy: Aussen_HumProxy
2020-09-23 10:29:10.257 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTemp: Aussen_Temp
2020-09-23 10:29:10.269 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHum: Aussen_Hum
2020-09-23 10:29:10.282 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemKombi: Aussen_Kombi
2020-09-23 10:29:10.291 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemShutter: Kein Rollladen gefunden!
2020-09-23 10:29:10.310 [INFO ] [e.smarthome.model.script.kombiupdate] - Number Proxy
2020-09-23 10:29:10.317 [INFO ] [e.smarthome.model.script.kombiupdate] - Number
2020-09-23 10:29:10.326 [INFO ] [e.smarthome.model.script.kombiupdate] - Sensor Aussen Temperatur stagnierend
==> /var/log/openhab2/events.log <==
2020-09-23 10:29:10.342 [vent.ItemStateChangedEvent] - Aussen_TempTendenz changed from ⬆️ to ⬅️➡️
==> /var/log/openhab2/openhab.log <==
2020-09-23 10:29:10.348 [INFO ] [e.smarthome.model.script.kombiupdate] - Sensor Aussen Feuchte stagnierend
==> /var/log/openhab2/events.log <==
2020-09-23 10:29:10.363 [vent.ItemStateChangedEvent] - Aussen_HumTendenz changed from ⬇️ to ⬅️➡️
2020-09-23 10:29:10.382 [vent.ItemStateChangedEvent] - Aussen_Kombi changed from ⬆️ 19,7 °C / ⬇️ 63 % to ⬅️➡️ 19,7 °C / ⬅️➡️ 63 %

Re: Temperatur Tendenz ermitteln

Verfasst: 23. Sep 2020 20:32
von PeterA
Nochmal kurzes Feedback.
Habe heute über den Tag keine einzige Error Meldung im Log gehabt....

Re: Temperatur Tendenz ermitteln

Verfasst: 26. Sep 2020 12:08
von PeterA
Noch mal ein Feedback.
Man kann hier schön sehen das sich die Fehlermeldungen Tagsüber häufen.
Vermutlich weil hier mehr "Bewegung" im Haus ist.

Code: Alles auswählen

2020-09-25 10:03:46.271 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 11:50:32.813 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 11:58:23.525 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 12:02:40.951 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 12:13:41.516 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 13:48:32.439 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 14:20:25.841 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 14:31:26.102 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 14:50:26.482 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 15:03:58.950 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 15:49:05.485 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 16:13:28.235 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 17:42:30.087 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 19:30:17.976 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null
2020-09-25 19:32:18.126 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Update Kombi Item': null

Re: Temperatur Tendenz ermitteln

Verfasst: 26. Sep 2020 21:57
von udo1toni
Nächste Version :)

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"
)

var Boolean bUpdate = false                                                                                               // Sperrvariable
var String strSensor = ""

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
    if(bUpdate) {                                                                                                         // Falls Sperre aktiv
        logInfo("kombiupdate","Doppeltriger. Abbruch!")
        return;                                                                                                           // Rule abbrechen
    }
    bUpdate = true                                                                                                        // Sperre aktivieren
    strSensor = triggeringItem.name.split("_").get(0)                                                                     // Sensor bestimmen.
    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("kombiupdate","Rollladen ohne Sensoren. Abbruch!")
            bUpdate = false
            return;                                                                                                       // Rule abbrechen
        }
    }
    logInfo("kombiupdate","var String strSensor: {}",strSensor)
                                                                                                                          // 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("kombiupdate","ItemTempTendenz: {}",ItemTempTendenz.name)
    val ItemTempProxy   =    gTempProxy.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Proxy Item für Temperatur bestimmen
    logInfo("kombiupdate","ItemTempProxy: {}",ItemTempProxy.name)
    val ItemHumTendenz  =   gHumTendenz.members.findFirst[i|i.name.split("_").get(0) == strSensor] as StringItem          // Item für Feuchte Tendenz bestimmen
    logInfo("kombiupdate","ItemHumTendenz: {}",ItemHumTendenz.name)
    val ItemHumProxy    =     gHumProxy.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Proxy Item für Feuchte bestimmen
    logInfo("kombiupdate","ItemHumProxy: {}",ItemHumProxy.name)
    val ItemTemp        =         gTemp.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Temperatur Item bestimmen
    logInfo("kombiupdate","ItemTemp: {}",ItemTemp.name)
    val ItemHum         =          gHum.members.findFirst[i|i.name.split("_").get(0) == strSensor] as NumberItem          // Feuchte Item bestimmen
    logInfo("kombiupdate","ItemHum: {}",ItemHum.name)
    val ItemKombi       =        gKombi.members.findFirst[i|i.name.split("_").get(0) == strSensor] as StringItem          // Kombi Item bestimmen
    logInfo("kombiupdate","ItemKombi: {}",ItemKombi.name)
    val ItemShutter = if(hmRoller.get(strSensor) !== null)                                                                                  // falls Rollladen vorhanden
        grAllshutters.allMembers.findFirst[i|i.name == hmRoller.get(strSensor)]  as RollershutterItem   // Rolladen Pos Item bestimmen
    else
        null
    //logInfo("kombiupdate","ItemShutter: {}",ItemShutter.name)
                                                                                                                          // Werte bestimmen
    val Number nTempProxy = if(ItemTempProxy.state instanceof Number) (ItemTempProxy.state as Number) else 0              // Temperatur Proxy auslesen
    val Number nTemp = if(ItemTemp.state instanceof Number) (ItemTemp.state as Number).floatValue else nTempProxy         // Temperatur auslesen
    logInfo("kombiupdate","Temperatur neu {}°C alt {}°C",nTemp,nTempProxy)
    val Number nHumProxy  = if(ItemHumProxy.state instanceof Number) (ItemHumProxy.state as Number) else 0                // Feuchte  Proxy auslesen
    val Number nHum  = if(ItemHum.state instanceof Number) (ItemHum.state as Number).floatValue else nHumProxy            // Feuchte auslesen
    logInfo("kombiupdate","Luftfeuchte neu {}% alt {}%",nHum,nHumProxy)
                                                                                                                          // 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("kombiupdate","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("kombiupdate","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 + " " + 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
    bUpdate = false
end
Die globale Variable bUpdate wird zu Beginn der Rule getestet. Ist sie gesetzt, wird ide Rule abgebrochen, ansonsten wird sie gesetzt. Wird die Rule ausgeführt, wird zuletzt die Variable zurückgesetzt. Damit sollte die Rule nicht mehr doppelt laufen.
Ich habe die Reihenfolge zweier Zuweisugnen geändert, um eine schönere Logausgabe zu erreichen. Ansonsten sollte die Rule dem aktuellen Stand entsprechen...

Re: Temperatur Tendenz ermitteln

Verfasst: 26. Sep 2020 22:46
von PeterA
Allright!
Habe diese Version jetzt laufen.

vermutlich sollten diese beiden Zeilen:

Code: Alles auswählen

logInfo("kombiupdate","Temperatur neu {}°C alt {}°C")

Code: Alles auswählen

logInfo("kombiupdate","Luftfeuchte neu {}% alt {}%")
eher so lauten:

Code: Alles auswählen

logInfo("kombiupdate","Temperatur neu {}°C alt {}°C",nTemp,nTempProxy)

Code: Alles auswählen

logInfo("kombiupdate","Luftfeuchte neu {}% alt {}%",nHum,nHumProxy)
Dann bekomme ich auch die entsprechende Ausgabe ins Log:

Code: Alles auswählen

2020-09-26 22:42:41.901 [INFO ] [e.smarthome.model.script.kombiupdate] - Temperatur neu 20.3°C alt 20.2°C
2020-09-26 22:42:41.917 [INFO ] [e.smarthome.model.script.kombiupdate] - Luftfeuchte neu 50.0% alt 50.0%
:)

Die ERROR Meldungen werden weiter beobachtet.....

Merci Udo

Gruß Peter

Re: Temperatur Tendenz ermitteln

Verfasst: 26. Sep 2020 22:53
von udo1toni
Oh. Ja... Wie peinlich...

Ich hab das oben mal korrigiert... ;)

Re: Temperatur Tendenz ermitteln

Verfasst: 27. Sep 2020 11:29
von PeterA
Zwischenzeitlich hätte ich noch ein Anliegen:
Wie ganz zu Beginn der Entwicklung hattest Du angemerkt das man das Update auf "Stagnierend" auch weglassen könnte.
Letztendlich ist es ja ausreichend wenn auf "Steigend" und "Fallend" Upgedatet wird.
Liese sich das hier auch noch abändern ?

Gruß Peter

Re: Temperatur Tendenz ermitteln

Verfasst: 27. Sep 2020 15:17
von PeterA
Update zum "Doppeltrigger"

Hier habe ich nun einen Doppeltrigger erwischt:

Code: Alles auswählen

2020-09-27 14:51:58.133 [vent.ItemStateChangedEvent] - Aussen_Temp changed from 12.8 to 12.9
2020-09-27 14:51:58.140 [vent.ItemStateChangedEvent] - AussenTemp changed from 12.8 to 12.9
2020-09-27 14:51:58.161 [vent.ItemStateChangedEvent] - Aussen_Hum changed from 73 to 72
2020-09-27 14:51:58.199 [vent.ItemStateChangedEvent] - AussenFeuchte changed from 73 % to 72 %
==> /var/log/openhab2/openhab.log <==
2020-09-27 14:51:58.193 [INFO ] [e.smarthome.model.script.kombiupdate] - Doppeltrigger. Abbruch
2020-09-27 14:51:58.191 [INFO ] [e.smarthome.model.script.kombiupdate] - var String strSensor: Aussen
==> /var/log/openhab2/events.log <==
2020-09-27 14:51:58.222 [vent.ItemStateChangedEvent] - SensorsInfo changed from 12,8 °C - 20,0 °C - 48 % to 12,9 °C - 20,0 °C - 48 %
==> /var/log/openhab2/openhab.log <==
2020-09-27 14:51:58.249 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTempTendenz: Aussen_TempTendenz
2020-09-27 14:51:58.268 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTempProxy: Aussen_TempProxy
2020-09-27 14:51:58.345 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHumTendenz: Aussen_HumTendenz
2020-09-27 14:51:58.358 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHumProxy: Aussen_HumProxy
2020-09-27 14:51:58.372 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemTemp: Aussen_Temp
2020-09-27 14:51:58.383 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemHum: Aussen_Hum
2020-09-27 14:51:58.395 [INFO ] [e.smarthome.model.script.kombiupdate] - ItemKombi: Aussen_Kombi
2020-09-27 14:51:58.407 [INFO ] [e.smarthome.model.script.kombiupdate] - Temperatur neu 12.9°C alt 12.8°C
2020-09-27 14:51:58.415 [INFO ] [e.smarthome.model.script.kombiupdate] - Luftfeuchte neu 72.0% alt 73.0%
2020-09-27 14:51:58.423 [INFO ] [e.smarthome.model.script.kombiupdate] - Sensor Aussen Temperatur steigend
==> /var/log/openhab2/events.log <==
2020-09-27 14:51:58.433 [vent.ItemStateChangedEvent] - Aussen_TempProxy changed from 12.8 to 12.9
==> /var/log/openhab2/openhab.log <==
2020-09-27 14:51:58.449 [INFO ] [e.smarthome.model.script.kombiupdate] - Sensor Aussen Feuchte fallend
==> /var/log/openhab2/events.log <==
2020-09-27 14:51:58.459 [vent.ItemStateChangedEvent] - Aussen_HumProxy changed from 73.0 to 72.0
2020-09-27 14:51:58.469 [vent.ItemStateChangedEvent] - Aussen_HumTendenz changed from ⬅️➡️ to ⬇️
2020-09-27 14:51:58.482 [vent.ItemStateChangedEvent] - Aussen_Kombi changed from ⬆️ 12,8 °C / ⬅️➡️ 73 % to ⬆️ 12,9 °C / ⬇️ 72 %
Vielleicht kommen wir der Sache nun näher...
Es gibt einen Punkt dem ich zunächst keine Beachtung geschenkt hatte.
Die urspünglichen Items (die nicht für diese Rule gebraucht werden) sind noch über die Paper UI angelegt
und bei dem Aussensensor ist die Bezeichnung der Items "AussenTemp" und "AussenFeuchte".
Damit aber die Rule die Items Filtern kann mussten diese ja andere Bezeichnungen bekommen.
"Aussen_Temp" und Aussen_Hum".
Diese Items sind dann zusätzlich auf den jeweiligen gleichen Channel gelinkt.

items:

Code: Alles auswählen

String    Aussen_TempTendenz                     "Temperatur Tendenz [%s]"                  <temperature>       (gTempTendenz)
Number    Aussen_TempProxy                       "Außentemp. Proxy [%s]"                                        (gTempProxy)
String    Aussen_HumTendenz                      "Luftfeuchtigkeit Tendenz [%s]"            <humidity>          (gHumTendenz)
Number    Aussen_HumProxy                        "Außenfeuchte Proxy [%s]"                                      (gHumProxy)
Number    Aussen_Temp                            "Außentemp. [%s]"                                              (gTemp)                                                  {channel="jeelink:lacrosse:60:temperature"}
Number    Aussen_Hum                             "Außenfeuchte [%s]"                                            (gHum)                                                   {channel="jeelink:lacrosse:60:humidity"}
String    Aussen_Kombi                           "Außen [%s]"                               <garden>            (gKombi)
Eventuell liegt ja hier die Ursache für die ERROR Meldung (welche jetzt noch nicht beobachten konnte)

Re: Temperatur Tendenz ermitteln

Verfasst: 27. Sep 2020 19:34
von PeterA
So nun habe ich doch etwas schwerwiegenderes feststellen können:

Wenn ein Rollladen betätigt wird, welcher sich zwar in einer der Rolladen Gruppen befindet, aber (noch) keinen Temp/Hum Sensor hat
gibt es einen "Doppelabbruch" und die Rule gibt dann immer nur noch "Doppeltrigger" aus.

Code: Alles auswählen

2020-09-27 19:23:03.500 [vent.ItemStateChangedEvent] - Shellyswitch25_00B12B_roller changed from 0 to 99
==> /var/log/openhab2/openhab.log <==
2020-09-27 19:23:03.512 [INFO ] [e.smarthome.model.script.kombiupdate] - Doppeltrigger. Abbruch!
2020-09-27 19:23:03.517 [INFO ] [e.smarthome.model.script.kombiupdate] - Rollladen ohne Sensoren. Abbruch!
Dieser Shellyswitch25_00B12B_roller ist der Raum ohne Sensoren.

Danach bricht die Rule weiter hin immer ab:

Code: Alles auswählen

2020-09-27 19:28:43.523 [vent.ItemStateChangedEvent] - InnenDGBad_Temp changed from 22.6 to 22.7
2020-09-27 19:28:43.540 [vent.ItemStateChangedEvent] - InnenDGBadTemp changed from 22.6 °C to 22.7 °C
==> /var/log/openhab2/openhab.log <==
2020-09-27 19:28:43.543 [INFO ] [e.smarthome.model.script.kombiupdate] - Doppeltrigger. Abbruch!
==> /var/log/openhab2/events.log <==
2020-09-27 19:28:43.620 [vent.ItemStateChangedEvent] - InnenDGBadFeuchte changed from 51 % to 52 %
==> /var/log/openhab2/openhab.log <==
2020-09-27 19:28:43.616 [INFO ] [thome.model.script.Feuchtesteuerung:] - Steuerung deaktiviert!
==> /var/log/openhab2/events.log <==
2020-09-27 19:28:43.628 [vent.ItemStateChangedEvent] - InnenDGBad_Hum changed from 51 to 52
==> /var/log/openhab2/openhab.log <==
2020-09-27 19:28:43.621 [INFO ] [e.smarthome.model.script.kombiupdate] - Doppeltrigger. Abbruch!
Es hilft dann nur die Rule neu zu Speichern damit wird vermutlich die variable "bUpdate" zurück gesetzt.

Gruß
Peter