openhab-core icon indicating copy to clipboard operation
openhab-core copied to clipboard

Rules DSL ChronoUnit behaving differently

Open mherwege opened this issue 6 months ago • 1 comments

ChronoUnit is one of the enums imported by default in rules DSL.

Expected usage (and it used to work like that) is something like:

    var today = now.truncatedTo(ChronoUnit.DAYS)

See example in documentation: https://next.openhab.org/docs/configuration/persistence.html#examples

In the current version of OH, it does not work like that anymore.

This fails:

    chronoUnit = ChronoUnit.DAYS
    logInfo("Test", chronoUnit.toString)
    today = now.truncatedTo(ChronoUnit.DAYS)
    logInfo("Test", today.toString)

Error message:

09:12:15.689 [ERROR] [.handler.AbstractScriptModuleHandler] - Script execution of rule with UID 'test' failed: The name 'ChronoUnit' cannot be resolved to an item or type; line 5, column 18, length 10 in test

However, this now works:

    var chronoUnit = DAYS
    logInfo("Test", chronoUnit.toString)
    var today = now.truncatedTo(DAYS)
    logInfo("Test", today.toString)

Note that it still works for some other enums. The following all works

    var day = DayOfWeek.TUESDAY
    logInfo("Test", day.toString)
    
    var month = Month.FEBRUARY
    logInfo("Test", month.toString)

I found this out when trying to investigate https://github.com/openhab/openhab-core/issues/4784. I don't know if this is related.

mherwege avatar May 06 '25 07:05 mherwege