How to know when ABP device reactivation is needed

Just created my first ABP device in ChirpStack… After several hours of looking through my software I finally tried (re)activate just created/activated device and chirpstack started to send messages to it.

How do I know when (re)activation is needed and how to do it through API? Just repeat …/activate call with same data?

This really depends on the device implementation. Ideally once activated, the device should persist its state (periodically) such that a power-cycle the device does not reset its frame-counters.

If the device resets is frame-counters, then you need to call the activate endpoint with the same session-keys, but frame-counters set to 0.