Is it possible to force a LUX sensor to update?

This is a simple rule but please use How to use code fences when posting rules, items, logs, etc.

This is one of those cases that is surprisingly hard to deal with.

I think your best approach will be to ignore the lux value if the motion detector recently changed. I see other problems with the rules.

  • sleeps longer than 500 are strongly discouraged, use Timers instead
  • if you use Timers, you can keep the light on as long as motion is detected which may let you sidestep the lux issue entirely

Assuming that this light only needs to be controlled by the motion sensor I’d recommend using Design Pattern: Expire Binding Based Timers.

Switch LandLight “Landing Light” {channel="zwave:device:***, expire="20s,command=OFF"} // turn off the light after 20 seconds

You need to set up persistence on LandLight. If you are not already using persistence, use MapDB.

rule "Landing Motion"
when
    Item land_motion changed to ON
then
    // If the light is already on, keep it on for another 20 seconds
    if(LandLight.state == ON) {
        logInfo(loglight, "Landing Light switch kept ON")
        LandLight.sendCommand(ON) // keep the light ON and reset the timer
    }

    // if the light is OFF, turn it on if it is dark OR the light turned OFF less than 5 seconds ago
    else if(land_lum.state < 70 || LandLight.lasUpdate("mapdb").isAfter(now.minusSeconds(5)) {
        logInfo(loglight, "Landing Light switch ON")
        LandLight.sendCommand(ON)
    }
end