Fix: update only if change, or time since last > 3 hours