Skip to content

Commit

Permalink
Added minimum sleep interval
Browse files Browse the repository at this point in the history
  • Loading branch information
matthias-bs committed Apr 10, 2024
1 parent fb9e3d5 commit 1eca857
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
2 changes: 2 additions & 0 deletions BresserWeatherSensorLW.ino
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
// https://github.com/jgromes/RadioLib/blob/master/examples/LoRaWAN/LoRaWAN_Reference/LoRaWAN_Reference.ino
// https://github.com/radiolib-org/radiolib-persistence/blob/main/examples/LoRaWAN_ESP32/LoRaWAN_ESP32.ino
// 20240410 Added RP2040 specific implementation
// Added minimum sleep interval (and thus uplink interval)
//
// ToDo:
// -
Expand Down Expand Up @@ -228,6 +229,7 @@ uint32_t sleepDuration(void)
sleep_interval = sleep_interval - ((timeinfo.tm_min * 60) % sleep_interval + timeinfo.tm_sec);
}

sleep_interval = max(sleep_interval, SLEEP_INTERVAL_MIN);
return sleep_interval;
}

Expand Down
13 changes: 8 additions & 5 deletions src/BresserWeatherSensorLWCfg.h
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,9 @@
#define BATTERY_DISCHARGE_LIMIT 3200
#define BATTERY_CHARGE_LIMIT 4200

// Minimum sleep interval (in seconds)
#define SLEEP_INTERVAL_MIN 60

// Sleep for SLEEP_INTERVAL seconds after succesful transmission
#define SLEEP_INTERVAL 360

Expand All @@ -244,19 +247,19 @@
#define CLOCK_SYNC_INTERVAL 24 * 60

// Force deep sleep after a certain time, even if transmission was not completed
#define FORCE_SLEEP
//#define FORCE_SLEEP

// Force a new join procedure (instead of re-join) after encountering sleep timeout
#define FORCE_JOIN_AFTER_SLEEP_TIMEOUT
//#define FORCE_JOIN_AFTER_SLEEP_TIMEOUT

// During initialization (not joined), force deep sleep after SLEEP_TIMEOUT_INITIAL (if enabled)
#define SLEEP_TIMEOUT_INITIAL 1800
//#define SLEEP_TIMEOUT_INITIAL 1800

// If already joined, force deep sleep after SLEEP_TIMEOUT_JOINED seconds (if enabled)
#define SLEEP_TIMEOUT_JOINED 600
//#define SLEEP_TIMEOUT_JOINED 600

// Additional timeout to be applied after joining if Network Time Request pending
#define SLEEP_TIMEOUT_EXTRA 300
//#define SLEEP_TIMEOUT_EXTRA 300

// Timeout for weather sensor data reception (seconds)
#define WEATHERSENSOR_TIMEOUT 180
Expand Down

0 comments on commit 1eca857

Please sign in to comment.