Setting up scheduled data transmissions

This article explains set up for the scheduled transmission feature in a Wavelet.

To schedule Wavelet data transmission at a specific time (not intervals), use firmware version 2.429 or later and configure it in the advanced settings.

Step 1 - Confirm the Wavelet FW version supports the scheduled transmission feature

Use the FAI or the AyyekaGo mobile app to verify that the Wavelet has firmware version 2.429 or newer.

Step 2 - Configure the feature in the advanced configuration

Use advanced configuration to schedule transmissions with Cron syntax for specific hours or dates.

Cron syntax

Cron is a Job scheduler utility common in Linux systems. Ayyeka adapted the Cron syntax to specify job schedules.

A schedule string is made of 5 fields separated by spaces:

A scheduled transmission (Cron job) runs when all Cron fields match the current date and time.

Cron field values can be:

  • Wildcard (*): Matches all values (e.g., * * * * * runs every minute).
  • Simple values: Specify exact times (e.g., 0 0 1 1 * runs at 00:00 on January 1).
  • Ranges (-): Define a range (e.g., 0 12-17 * * * runs every hour from 12:00 to 17:00).
  • Intervals (*/n): Run at regular intervals (e.g., */5 * * * * runs every 5 minutes).
  • Multiple values (,): Combine values (e.g., */5 7-9,19-21 * 1,5 * runs every 5 minutes between 7–9 AM and 7–9 PM in January and May).

Avoid using Cron expressions with non-wildcard values in both the weekday and day-of-month fields (e.g., 0 * * 1 1), as both conditions must be met simultaneously. This example will only run when the 1st of the month is a Monday.

Here’s a table with the examples:

Description Cron Expression
Every 5 minutes between 7:00 and 14:00 */5 7-14 * * *
Every 1st of the month at 12:00 and 00:00 0 0,12 1 * *
Every Monday at 09:00 0 9 * * 1
Every 15 minutes on weekdays (Monday–Friday) */15 * * * 1-5
Every 30 minutes between 18:00 and 23:30 0,30 18-23 * * *
Every 1st and 15th of the month at 08:00 0 8 1,15 * *
Every day at 22:00 during January and June 0 22 * 1,6 *

 

You can create your Cron syntax online here - link

To start the schedule at precise times (e.g., 00:00, 00:10, 00:20), set group_sample_interval_type to INTERVAL_SYNCED in the advanced configuration:

 

Scheduled Events in Wavelet

Wavelet executes scheduled transmissions (Cron jobs) when the Cron expression matches the current UTC datetime.

Supported scheduled jobs: HTTP and MQTT transmissions.

  • HTTP Schedule: Set a valid Cron expression in gsm->http_tx_cron.
  • MQTT Schedule: Set a valid Cron expression in gsm->mqtt_tx_cron.

Try to keep scheduled events separated by at least 5 minutes

These schedules work alongside regular transmission intervals (gsm_settings.http_tx_interval and gsm_settings.mqtt_tx_interval)

It is recommended to set a long tx_interval when using a Cron schedule.

Wavelet transmits when either:

  1. The Cron expression matches, or
  2. The configured interval (tx_interval) has elapsed since the last transmission.