System generated device state variables?

The devices already report conditions like open close, etc. BUT... I find myself creating global variables for a lot of my trigger devices so I can work with the time they're triggered. The info is logged, could it be loaded into a device specific variable by the system for use in rules?

Examples: (I've not thought this through very far)
device.LastOpened
device.LastClosed
device.LastMotionActive
deviceLastMotionInactive
device.LastActivity
device.DeviceName

Also being able to set current time in a GV is pretty-great, but I'd rather have it loaded on demand whenever I want to do a comparison. As it's working now I have a rule that runs every minute to load the current time into a variable so I can use it in the actions-to-run section of a rule.

Thanks for listening to my suggestions.. I have another weirder one, but will post it in a separate thread.