No success. The rule never returns TRUE
Current rule
/* mindergas.rules */
import org.joda.time.DateTime
/*
* De slimme meter geeft 1x per uur een nieuwe stand van de gasmeter door.
* Een paar minuten na het hele uur ontvang je de stand per het hele uur.
* Publiceer deze stand naar mindergas als de stand eind vorige dag.
*/
rule GasMeterChanged
when
// Time cron "*/10 * * * * ?" or
Item P1_Gas_Timestamp changed
then
logInfo("GasMeterChanged", "Gas meter reading changed")
var DateTime dtRun = parse(P1_Gas_Timestamp.state.toString)
var DateTime dtSOD = now.toLocalDate.toDateTimeAtStartOfDay
logInfo("GasMeterChanged", "Timestamp : " + dtRun)
logInfo("GasMeterChanged", "Start of day: " + dtSOD)
if (dtRun.equals(dtSOD)) {
logInfo("GasMeterChanged", "Gas meter reading changed at midnight.")
callScript("mindergas")
} else {
logInfo("GasMeterChanged", "Gas meter reading changed during the day.")
}
end
Logging:
2017-01-24 23:05:32.165 [INFO ] [arthome.model.script.GasMeterChanged] - Gas meter reading changed
2017-01-24 23:05:32.184 [INFO ] [arthome.model.script.GasMeterChanged] - Timestamp : 2017-01-24T23:00:00.000+01:00
2017-01-24 23:05:32.192 [INFO ] [arthome.model.script.GasMeterChanged] - Start of day: 2017-01-24T00:00:00.000+01:00
2017-01-24 23:05:32.200 [INFO ] [arthome.model.script.GasMeterChanged] - Gas meter reading changed during the day.
...
2017-01-25 00:05:28.544 [INFO ] [arthome.model.script.GasMeterChanged] - Gas meter reading changed
2017-01-25 00:05:28.563 [INFO ] [arthome.model.script.GasMeterChanged] - Timestamp : 2017-01-25T00:00:00.000+01:00
2017-01-25 00:05:28.571 [INFO ] [arthome.model.script.GasMeterChanged] - Start of day: 2017-01-25T00:00:00.000+01:00
2017-01-25 00:05:28.580 [INFO ] [arthome.model.script.GasMeterChanged] - Gas meter reading changed during the day.
...
2017-01-25 01:05:26.830 [INFO ] [arthome.model.script.GasMeterChanged] - Gas meter reading changed
2017-01-25 01:05:26.847 [INFO ] [arthome.model.script.GasMeterChanged] - Timestamp : 2017-01-25T01:00:00.000+01:00
2017-01-25 01:05:26.856 [INFO ] [arthome.model.script.GasMeterChanged] - Start of day: 2017-01-25T00:00:00.000+01:00
2017-01-25 01:05:26.862 [INFO ] [arthome.model.script.GasMeterChanged] - Gas meter reading changed during the day.
Added these lines to the rule for further debugging:
// Added additional equations from the Joda time documentation
logInfo("GasMeterChanged", "== : " + (dtRun == dtSOD))
logInfo("GasMeterChanged", "equals : " + dtRun.equals(dtSOD))
logInfo("GasMeterChanged", "isEqual : " + dtRun.isEqual(dtSOD))
logInfo("GasMeterChanged", "compareTo: " + (dtRun.compareTo(dtSOD)==0))