Seite 1 von 1

Script execution of rule with UID

Verfasst: 16. Jan 2023 20:36
von EMaster
Hallo Zusammen,

ich versuche gerade etwas hinter due ERROR-Einträge in meinem LOG zukommen.
Die unten stehende Rule funktioniert zwar, bringt mir aber im Minutentakt folgenden Fehler.

Code: Alles auswählen

2023-01-16 20:34:03.262 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'zaehler-1' failed: Could not cast 2055.717 to java.lang.Number; line 7, column 25, length 60 in zaehler

Code: Alles auswählen

rule "Stromzaehler Verbrauch Tag"
when
    Item SM_DG_ges_Verbrauch changed
    
then
    val dMidnight = ZonedDateTime.now().with(LocalTime.MIDNIGHT)
    val Number nTotal = SM_DG_ges_Verbrauch.historicState(dMidnight).state as Number
    val Number nDelta = SM_DG_ges_Verbrauch.deltaSince(dMidnight) as Number

    logInfo("verbrauch","Zählerstand um Mitternacht: {}",nTotal)
    logInfo("verbrauch","Zählerstand aktuell       : {}",SM_DG_ges_Verbrauch.state)
    logInfo("verbrauch","Persistence Delta         : {}",nDelta)
    logInfo("verbrauch","errechnetes Delta         : {}",(SM_DG_ges_Verbrauch.state as Number) - nTotal)

    SM_DG_ges_Verbrauch_Tag.postUpdate(nDelta)
end
Sieht jemand von Euch vielleicht das Problem?

Danke

Re: Script execution of rule with UID

Verfasst: 16. Jan 2023 21:37
von udo1toni
Und dennoch werden die nachfolgenden Logzeilen ausgegeben?
Ich würde ja erwarten, dass er Dir beim Auftauchen der Meldung keinen Wert in nTotal ablegt.
Wobei auch witzig ist, dass er eine gültige Zahl nicht als Zahl interpretieren will...

Re: Script execution of rule with UID

Verfasst: 16. Jan 2023 22:45
von EMaster
Mmmh, da hast Du mich jetzt eiskalt erwischt. :-D
Ich hab mir die Rule mal irgendwo rauskopiert und an meine Items angepasst.
Wie kann ich denn die Werte der Variablen sichtbar machen, um Deine Frage zu beantworten?
Für Visual Studio gibt es ja DataTips aber Visual Studio Code funktioniert das nicht. :-(

Re: Script execution of rule with UID

Verfasst: 16. Jan 2023 23:00
von udo1toni
Die Befehle (logInfo...) stehen ja schon da, das müsste also schon im log auftauchen (genauer: openhab.log, eigentlich sollte auch die ERROR Zeile aus der openhab.log stammen)

Re: Script execution of rule with UID

Verfasst: 17. Jan 2023 10:13
von EMaster
Ja, die sind aus der openhab.log. Da tauchen aber keinerlei Variablen auf. :-(
Kann ich irgendwie mit weiteren Infos dienen?

Re: Script execution of rule with UID

Verfasst: 17. Jan 2023 13:53
von udo1toni
Also die Ausgabe ist dann nach dem Doppelpunkt leer? Dann läuft die Rule auch nicht.

Re: Script execution of rule with UID

Verfasst: 17. Jan 2023 18:28
von EMaster
Da taucht gar nichts im LOG auf. :-(
Und jetzt habe ich auch die Quelle des Skriptes gefunden. Das war sogar von Dir. :-)
viewtopic.php?p=45049&hilit=dMidnight&s ... a3b#p45049

Re: Script execution of rule with UID

Verfasst: 17. Jan 2023 21:16
von udo1toni
Ja, das mag sein, :) aber "angepasst" habe ich es nicht.