ich habe dieses WE von OH3.x auf OH4.0.3 upgedatet - bisher konnte ich ein paar Kleinigkeiten alleine beheben, allerdings beiße ich mir noch an einer Rule die Zähne aus.
Diese Rule liest ein Item aus meiner InfluxDB aus und schreibt die daraus generierten differenzierten Zeitwerte in Dummy Items welche ich dann in meiner Sitemap darstelle:
Code: Alles auswählen
//#####################################
rule "Aussentemp min-/max"
when
Item Sensor_Aussen_Temperatur changed or
Time cron "0 0/5 * 1/1 * ? *"
then
if (!(Sensor_Aussen_Temperatur.state instanceof Number)) return;
val aussen_temp_heute_min = (Sensor_Aussen_Temperatur.minimumSince(now.with(LocalTime.of(0,0,0,0)), "influxdb").state as Number)
val aussen_temp_heute_max = (Sensor_Aussen_Temperatur.maximumSince(now.with(LocalTime.of(0,0,0,0)), "influxdb").state as Number)
val aussen_temp_1W_min = (Sensor_Aussen_Temperatur.minimumSince(now.minusWeeks(1), "influxdb").state as Number)
val aussen_temp_1W_max = (Sensor_Aussen_Temperatur.maximumSince(now.minusWeeks(1), "influxdb").state as Number)
val aussen_temp_1M_min = (Sensor_Aussen_Temperatur.minimumSince(now.minusMonths(1), "influxdb").state as Number)
val aussen_temp_1M_max = (Sensor_Aussen_Temperatur.maximumSince(now.minusMonths(1), "influxdb").state as Number)
val aussen_temp_6M_min = (Sensor_Aussen_Temperatur.minimumSince(now.minusMonths(6), "influxdb").state as Number)
val aussen_temp_6M_max = (Sensor_Aussen_Temperatur.maximumSince(now.minusMonths(6), "influxdb").state as Number)
val aussen_temp_1Y_min = (Sensor_Aussen_Temperatur.minimumSince(now.minusYears(1), "influxdb").state as Number)
val aussen_temp_1Y_max = (Sensor_Aussen_Temperatur.maximumSince(now.minusYears(1), "influxdb").state as Number)
if (aussen_temp_heute_min != NULL && aussen_temp_heute_max != NULL) {
Sensor_Aussen_Temp_heute_min.postUpdate(aussen_temp_heute_min)
Sensor_Aussen_Temp_heute_max.postUpdate(aussen_temp_heute_max)
}
if (aussen_temp_1W_min != NULL && aussen_temp_1W_max != NULL) {
Sensor_Aussen_Temp_1W_min.postUpdate(aussen_temp_1W_min)
Sensor_Aussen_Temp_1W_max.postUpdate(aussen_temp_1W_max)
}
if (aussen_temp_1M_min != NULL && aussen_temp_1M_max != NULL) {
Sensor_Aussen_Temp_1M_min.postUpdate(aussen_temp_1M_min)
Sensor_Aussen_Temp_1M_max.postUpdate(aussen_temp_1M_max)
}
if (aussen_temp_6M_min != NULL && aussen_temp_6M_max != NULL) {
Sensor_Aussen_Temp_6M_min.postUpdate(aussen_temp_6M_min)
Sensor_Aussen_Temp_6M_max.postUpdate(aussen_temp_6M_max)
}
if (aussen_temp_1Y_min != NULL && aussen_temp_1Y_max != NULL) {
Sensor_Aussen_Temp_1Y_min.postUpdate(aussen_temp_1Y_min)
Sensor_Aussen_Temp_1Y_max.postUpdate(aussen_temp_1Y_max)
}
end
Code: Alles auswählen
Number:Temperature Sensor_Aussen_Temp_heute_min <temperature_cold> {unit="°C"}
Number:Temperature Sensor_Aussen_Temp_heute_max <temperature_hot> {unit="°C"}
Number:Temperature Sensor_Aussen_Temp_1W_min <temperature_cold> {unit="°C"}
Number:Temperature Sensor_Aussen_Temp_1W_max <temperature_hot> {unit="°C"}
Number:Temperature Sensor_Aussen_Temp_1M_min <temperature_cold> {unit="°C"}
Number:Temperature Sensor_Aussen_Temp_1M_max <temperature_hot> {unit="°C"}
Number:Temperature Sensor_Aussen_Temp_6M_min <temperature_cold> {unit="°C"}
Number:Temperature Sensor_Aussen_Temp_6M_max <temperature_hot> {unit="°C"}
Number:Temperature Sensor_Aussen_Temp_1Y_min <temperature_cold> {unit="°C"}
Number:Temperature Sensor_Aussen_Temp_1Y_max <temperature_hot> {unit="°C"}
Code: Alles auswählen
Number:Temperature Sensor_Aussen_Temperatur "Sensor Aussen Temperatur" <temperature> (gAussen,gInfluxDB,gRRD4J,gChartTemperatur) {channel="mqtt:topic:sensor_temp_aussen:temperature", unit="°C"}
Ich kann dies nur durch deaktivieren der Rule beheben - nach Deaktivierung dauert es teilweise 1 Minute bis folgender Fehler ausgeworfen wird und die 100% Last wieder abgeworfen wird:
Code: Alles auswählen
2023-10-22 16:13:22.409 [WARN ] [rnal.influx1.InfluxDB1RepositoryImpl] - Failed to execute query 'FilterCriteria [itemName=Sensor_Aussen_Temperatur, beginDate=null, endDate=2023-04-22T16:12:23.250613897+02:00[Europe/Berlin], pageNumber=0, pageSize=1, operator=EQ, ordering=DESCENDING, state=null]': java.io.InterruptedIOException: interrupted
2023-10-22 16:13:23.001 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'min_max_temp-1' failed: An error occurred during the script execution: Cannot invoke "org.eclipse.emf.ecore.resource.Resource.getResourceSet()" because "context" is null in min_max_temp
wenn jemand einen Tip hat in welche Richtung ich schauen muss, gerne her damit
