Skip to main content

Clarification on heartbeat intervals and isDeviceCommunicating behavior

DaichiMiura-2136
Original Poster

Hello,
I would like to clarify how GO device heartbeat reporting and the isDeviceCommunicating property work.

My current understanding is as follows:

  • While the vehicle is driving, the device communicates regularly.
  • For the first 72 hours after the vehicle becomes stationary, a heartbeat is sent approximately every 30 minutes.
  • After the vehicle has been stationary for more than 72 hours, a heartbeat is sent approximately every 23 hours.
  • The Geotab server uses data received from the device to determine whether isDeviceCommunicating should be true or false.

Could you please confirm whether this understanding is correct and clarify the following points?

1. When does isDeviceCommunicating become false?

If the device stops communicating, how does the server determine when to change isDeviceCommunicating to false?
For example, after the heartbeat interval has changed to 23 hours, is it determined as follows?

  • The server changes the value to false when 23 hours have passed since the last heartbeat was received.

Or:

  • The server expects a heartbeat at a specific scheduled time and changes the value to false when the expected heartbeat is not received.

In other words, if the device loses power, is the disconnection detected a fixed amount of time after the last communication, or can the detection time vary depending on the heartbeat schedule or server-side evaluation timing?

2. How is “stationary” defined?

What exactly starts the 72-hour stationary period?
For example, is the vehicle considered stationary based on:

  • vehicle speed becoming zero,
  • GPS position no longer changing,
  • ignition being turned off,
  • or another condition?

3. What resets the 72-hour stationary period?

If the vehicle does not move but the ignition or READY state is turned on and then off, is the 72-hour stationary timer reset?
For example, if the vehicle remains in the same location for more than 72 hours but its power is turned on briefly during that period, will the heartbeat interval remain at 23 hours, or will it return to the 30-minute interval?
Understanding these details is important for us when investigating communication failures and interpreting the isDeviceCommunicating value correctly.

Thank you in advance for your help.

Join the conversation

You need to be logged in to reply to this post and participate in the Geotab Community discussions.

4 Replies

EishiFUN
Community Administrator

Hey @DaichiMiura-2136 ,

Thank you for asking your question in our community. I want to make sure I am as accurate as possible when I answer your question. I was going to give you a response but I am consulting with some of our team first to make sure what I am saying is fully accurate. I will follow up with you soon.

Feel free to reach out if you have any other questions in the meantime.

Have a good one!
Eishi FUN

This is from the GO9 Firmware Product guide:User uploaded image 1
Also in regards to your first question, the time period is based on what the device is currently doing. If the device is driving then it will change after a very short period of non-communication (something like 10 minutes, I think) but if the device is sleep mode it's a lot longer.


EishiFUN
Community Administrator

Hi, thank you for your patience — I followed up with our team and wanted to share what they confirmed. I've consolidated their detailed answer here so it's easier to work through, but let me know if you'd like more depth on any part.

### Heartbeat behavior

For a GO9 operating in normal Sleep Mode, the firmware documentation describes the following behavior:

- When the vehicle ignition is turned off, the device enters Sleep Mode.
- The device sends a heartbeat approximately every 30 minutes for the first 72 hours.
- After 72 hours, the heartbeat interval changes to approximately every 23 hours. (support.geotab.com (https://support.geotab.com/en-GB/go-devices/installation/doc/firmware))

This behavior should be understood as the normal GO9 Sleep Mode behavior. Other conditions can affect the heartbeat cycle, including Low Power Mode, device-disabled mode, low-voltage conditions, device family, and firmware version. For example, Low
Power Mode is separately documented as reducing heartbeats to every 23 hours. (support.geotab.com (https://support.geotab.com/help/mygeotab/device-management/device-statuses-and-settings/device-modes))

### 1. When does isDeviceCommunicating become false?

isDeviceCommunicating is not determined by checking whether a heartbeat arrived at one exact scheduled time.

For a standard GO device, the current MyGeotab server logic evaluates the timestamp of the latest available status, GPS, or fault data:

- If the last stored state is driving, the server uses an approximately 10-minute communication threshold.
- If the last stored state is stopped, the server uses an approximately 24-hour communication threshold.

Accordingly, if a device has entered the 23-hour heartbeat cycle and then loses power, the server does not simply wait for one specific expected heartbeat and immediately mark the device offline. It evaluates whether the latest received data has
exceeded the applicable server-side communication threshold.

The value can therefore be understood as an elapsed-time assessment from the latest qualifying data. The result may become visible when the next API request, UI refresh, or server health evaluation occurs. The public device-status guidance describes an
hourly health-check evaluation, so the observed transition can occur somewhat after the nominal threshold—for a standard GO device, approximately 24 hours after the last qualifying data, plus the evaluation delay. (support.geotab.com
(https://support.geotab.com/community/sdk-api/sdk-api-other-general/2540/how-long-does-geotab-s-cloud-infrastructure-logic-behind-the-heartbeat-data-element-waits-before-sending-a-disconnected-status-message-via-api-for-go09-devices-without-backup-battery))

The server-side property also uses the latest status/GPS/fault timestamp; it is not limited to a dedicated heartbeat record.

Other device families and configurations may use different thresholds, so the exact result depends on the device model, firmware, and enabled modes.

### 2. How is “stationary” defined?

There are two related concepts to distinguish.

For platform trip and stop recognition, MyGeotab documents a stop as occurring when:

- the ignition is turned off; or
- the vehicle remains below approximately 1 km/h for more than 200 seconds.

Stops shorter than 200 seconds while the ignition remains on—for example, waiting at a traffic light—are not recorded as stops in trip history. (support.geotab.com (https://support.geotab.com/help/mygeotab/reports/safety-reports/idling-time))

This explains the 200-second behavior mentioned in the discussion. However, it should not automatically be interpreted as the complete firmware rule for every heartbeat mode.

For the GO9 heartbeat schedule specifically, the firmware documentation describes the transition into Sleep Mode in terms of the ignition being turned off. The device may determine ignition using engine data, a three-wire ignition connection, or
trip-tracking/two-wire logic. Depending on the vehicle and installation, this can involve RPM, road speed, voltage changes, or accelerometer-based movement detection. (support.geotab.com
(https://support.geotab.com/en-GB/go-devices/installation/doc/firmware))

Therefore, “stationary” should not be interpreted as GPS position simply remaining unchanged.

### 3. What resets the 72-hour stationary period?

The firmware release notes document a fix to restore the normal 30-minute heartbeat period after the device enters the 23-hour heartbeat cycle and a subsequent ignition-off event occurs. (support.geotab.com
(https://support.geotab.com/es-ES/go-devices/installation/doc/firmware-notes))

Based on that documentation, if the vehicle is stationary for more than 72 hours, the ignition is turned on, and the vehicle is then turned off again, the device is expected to restart the normal heartbeat sequence after the new ignition-off event—
approximately 30-minute heartbeats for the first 72 hours, assuming normal Sleep Mode and firmware that includes this behavior.

A READY-state transition by itself is less certain. Whether READY is treated as an ignition event depends on the vehicle's signals and the device's ignition-detection method. A READY transition that is not recognized as an ignition-state change should
not be assumed to reset the heartbeat cycle.

Similarly, Low Power Mode or other special device modes may override the normal Sleep Mode behavior.

### Summary

For a standard GO9 in normal Sleep Mode:

- The 30-minute heartbeat period applies for the first 72 hours after entering Sleep Mode.
- The heartbeat then changes to approximately every 23 hours.
- isDeviceCommunicating is a separate server-side assessment based on the age of the latest qualifying device data and the device's stored driving/stopped state.
- A missed heartbeat does not necessarily cause an immediate disconnect indication at the exact expected heartbeat time.
- A subsequent recognized ignition cycle is expected to restart the normal heartbeat sequence, while a READY-only transition requires device- and vehicle-specific confirmation.

To confirm the behavior for a particular vehicle, we would need the device model, serial-number prefix, firmware version, ignition-detection method, and whether Low Power Mode, High Frequency Update, or another special mode is enabled.

Feel free to reach out if you have any other questions. We are here to help.

Have a great day!
Eishi FUN

Still have questions?