Seite 1 von 1

The argument 'state' must not be null

Verfasst: 3. Okt 2021 14:54
von bohnehouse
Hallo Community,

ich kämpfe mal wieder mit einer Fehlermeldung:
Script execution of rule with UID 'Energiemonitor-3' failed: The argument 'state' must not be null. in Energiemonitor

Die Rule schaut folgendermaßen aus:

Code: Alles auswählen

rule "EM Netzbezug heute"
when
    Time cron "0/5 * * * * ?"       //every 5 seconds
then
    if(!(EM_SumConsumedToday.state instanceof Number))
        return;
    EM_SumConsumedToday.postUpdate(EM_SumConsumedTotal.deltaSince(ZonedDateTime.now().with(LocalTime.MIDNIGHT)))
end
Theoretisch müsste die Rule abbrechen, bevor es zur Fehlermeldung kommtm oder?

Jemand eine Idee was ich hier falsch gemacht habe?

Re: The argument 'state' must not be null

Verfasst: 3. Okt 2021 15:38
von udo1toni
Nein. Du prüfst ja nur den aktuellen Wert. Eher sollte es so aussehen:

Code: Alles auswählen

rule "EM Netzbezug heute"
when
    Time cron "0/5 * * * * ?"       //every 5 seconds
then
    if(!(EM_SumConsumedTotal.deltaSince(ZonedDateTime.now().with(LocalTime.MIDNIGHT)) instanceof Number))
        return;
    EM_SumConsumedToday.postUpdate(EM_SumConsumedTotal.deltaSince(ZonedDateTime.now().with(LocalTime.MIDNIGHT)))
end

Re: The argument 'state' must not be null

Verfasst: 3. Okt 2021 15:46
von bohnehouse
Danke für die Rückmeldung.

Das Item EM_SumConsumedTotal ist aber vom Type Number und sollte daher nicht zu einem Fehler führen, oder?
screenshot.JPG

Re: The argument 'state' must not be null

Verfasst: 3. Okt 2021 16:39
von udo1toni
Was hat denn das eine mit dem anderen zu tun? Wenn Du auf deltaSince zugreifen willst, musst Du auch deltaSince prüfen.