Last Update in rules

Is there anything else to use beside “received update” in rules to do the following?
When an item wakes up,
I guess my question is a bit deeper; what happens when an item wakes up?
I have two devices who’s battery, when it receives an update, then I run some code, but they don’t seem to want to run.
If i look in habmin, they have woken up and are active. But the code below doesn’t run for two items:
Item LaundryFloodBattery received update
Item SmokeDetectorBattery received update

The other 12 battery devices I have all have similar code that runs:
Item FrontIn_Battery received update, etc

The code is the same thing:

rule "Save Flood Last Battery Update"
Item LaundryFloodBattery received update
val Number nowEpoch = now.millis

Items don’t wake up. Items receive events and store state. Rules are triggered by the events and you access the state using MyItem.state.

Are you confusing Things and Items? Devices are represented in OH as a Thing. Each piece of information and control point is represented as a Channel. Channels are linked to Items. Items drive Rules, persistence, and are used in sitemaps.

You should be seeing LaundryFloodBattery being updated in events.log. If you don’t see it there then your Item doesn’t exist or is not being properly updated so your rule never executes.

And this is not related to anything but it would be less work in the background to use:

LaundryFloodBatteryLastUpdateOrig.postUpdate(new DateTimeType)

as the body of the rule.

Of course, also realize that battery powered zwave devices will typically only report the battery status once every two days or so (in my experience) so make sure you are giving them enough time to report.

Thanks…most of my stuff(if not all of it) happens multiple times a day.
So basically I’m running a rule daily that says “if you haven’t received a battery update in 25 hours, email me”.
Which is why i was curious about the “received update” portion of a rule.
If the battery is 100, and it wakes up and is still 100, does that constitute “an update”…since it’s technically the same?

That depends on the binding, which can choose whether or not to put an update onto the events bus if the value has not changed. You need that bus event to trigger a rule.
For example, the Modbus binding has a setting to allow the user to choose (as typical update rates are per second there)

I don’t know how the z-wave (?) binding behaves.