Hi!
After upgrading to OH3 my rule throws errors:
2021-01-22 19:49:18.105 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'temperature-1' failed: java.net.SocketTimeoutException: timeout in temperature
2021-01-22 19:50:13.107 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'temperature-1' failed: java.net.SocketTimeoutException: timeout in temperature
2021-01-22 19:51:13.199 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'temperature-1' failed: java.net.SocketTimeoutException: timeout in temperature
2021-01-22 19:52:13.268 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'temperature-1' failed: java.net.SocketTimeoutException: timeout in temperature
2021-01-22 19:53:13.356 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'temperature-1' failed: java.net.SocketTimeoutException: timeout in temperature
This is my temperature.rules.
In OH2.5 everything works:
import java.text.DecimalFormat
import java.time.format.DateTimeFormatter
rule "Temperatures"
when
Time cron "0 0/1 * 1/1 * ? *"
then
var DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")
var DateTimeFormatter day_formatter = DateTimeFormatter.ofPattern("HH:mm:ss")
var DecimalFormat decformat = new DecimalFormat("#.##")
var String myTimeStamp
var Number round
val ZonedDateTime zdt = ZonedDateTime.now()
val ZonedDateTime zdt1900 = ZonedDateTime.parse("1900-01-01T00:00:00+01:00[Europe/Berlin]")
var ZonedDateTime start_of_day = zdt.toLocalDate().atStartOfDay(zdt.getZone())
var ZonedDateTime start_of_month = zdt.withDayOfMonth(1).toLocalDate().atStartOfDay(zdt.getZone())
var ZonedDateTime start_of_year = zdt.withDayOfYear(1).toLocalDate().atStartOfDay(zdt.getZone())
//Tageswerte
myTimeStamp = (Vitocal_Aussentemperatur.maximumSince(start_of_day).getTimestamp).format(day_formatter)
round = Double::valueOf(Vitocal_Aussentemperatur.maximumSince(start_of_day).state.toString)
Aussentemperatur_TagMax.postUpdate(decformat.format(round) + " °C um " + myTimeStamp)
myTimeStamp = (Vitocal_Aussentemperatur.minimumSince(start_of_day).getTimestamp).format(day_formatter)
round = Double::valueOf(Vitocal_Aussentemperatur.minimumSince(start_of_day).state.toString)
Aussentemperatur_TagMin.postUpdate(decformat.format(round) + " °C um " + myTimeStamp)
//Monatswerte
myTimeStamp = (Vitocal_Aussentemperatur.maximumSince(start_of_month).getTimestamp).format(formatter)
round = Double::valueOf(Vitocal_Aussentemperatur.maximumSince(start_of_month).state.toString)
Aussentemperatur_MonatMax.postUpdate(decformat.format(round) + " °C am " + myTimeStamp)
myTimeStamp = (Vitocal_Aussentemperatur.minimumSince(start_of_month).getTimestamp).format(formatter)
round = Double::valueOf(Vitocal_Aussentemperatur.minimumSince(start_of_month).state.toString)
Aussentemperatur_MonatMin.postUpdate(decformat.format(round) + " °C am " + myTimeStamp)
//Jahreswerte
myTimeStamp = (Vitocal_Aussentemperatur.maximumSince(start_of_year).getTimestamp).format(formatter)
round = Double::valueOf(Vitocal_Aussentemperatur.maximumSince(start_of_year).state.toString)
Aussentemperatur_JahrMax.postUpdate(decformat.format(round) + " °C am " + myTimeStamp)
myTimeStamp = (Vitocal_Aussentemperatur.minimumSince(start_of_year).getTimestamp).format(formatter)
round = Double::valueOf(Vitocal_Aussentemperatur.minimumSince(start_of_year).state.toString)
Aussentemperatur_JahrMin.postUpdate(decformat.format(round) + " °C am " + myTimeStamp)
//Ever
myTimeStamp = (Vitocal_Aussentemperatur.maximumSince(zdt1900).getTimestamp).format(formatter)
round = Double::valueOf(Vitocal_Aussentemperatur.maximumSince(zdt1900).state.toString)
Aussentemperatur_Max.postUpdate(decformat.format(round) + " °C am " + myTimeStamp)
myTimeStamp = (Vitocal_Aussentemperatur.minimumSince(zdt1900).getTimestamp).format(formatter)
round = Double::valueOf(Vitocal_Aussentemperatur.minimumSince(zdt1900).state.toString)
Aussentemperatur_Min.postUpdate(decformat.format(round) + " °C am " + myTimeStamp)
end