Task: Send the temperature value from a BME680 sensor to an MQTT gateway node and then enter deep sleep mode.
Problem: The EnvironmentTelemetry message is prepared but never sent. The node immediately enters deep sleep. Sometimes a “busyRX” entry appears in the log, sometimes not. In all cases no message arrives at the gateway node.
It works when: If “Enable power saving mode” is set to OFF, all messages are sent correctly. The behavior is as expected. I have tried many different settings for the times, without success.
My assumption: Deep sleep is initiated IMMEDIATELY after the sensor data is sent, without actually transmitting.
My question: How can I ensure that the sensor data is sent before deep sleep?
I am using “Meshtastic Web” for configuration. No programming in C++ or MicroPython. Location: Citycenter Hamburg
Hardware: Heltec V4 ESP32-S3
Firmware: 2.7.15.567b8ea
Here are the settings:
Device Role: Sensor
Enable power saving mode: On
Super Deep Sleep Duration_ 300s
Light Sleep Duration: 300s (default)
Minimum wake time: 10s
LoRa Region: EU_868
Hop limit: 3
Modem preset: LongFast
Telemetry Settings:
Device Metrics: 300s
Environment metrics update interval: 300s
Module Enabled: Yes
Channel Config:
Role: primary
PSK: set 256 bits
Name: SensorNet
Hardware: Heltec V4 ESP32-S3
Firmware: 2.7.15.567b8ea
Settings:
Device Role: Sensor
Enable power saving mode: On
Super Deep Sleep Duration_ 300s
Light Sleep Duration: 300s (default)
Minimum wake time: 10s
LoRa Region: EU_868
Hop limit: 3
Modem preset: LongFast
Telemetry Settings:
Device Metrics: 300s
Environment metrics update interval: 300s
Module Enabled: Yes
Channel Config:
Role: primary
PSK: set 256 bits
Name: SensorNet
Log:
…
DEBUG | 08:23:27 389 [EnvironmentTelemetry] BME680 state update IAQ accuracy 2 >= 2
INFO | 08:23:27 389 [EnvironmentTelemetry] BME680 state write to /prefs/bsec.dat
INFO | 08:23:27 389 [EnvironmentTelemetry] Send: barometric_pressure=1037.631592, current=0.000000, gas_resistance=38.210499, relative_humidity=38.937847, temperature=22.093746
INFO | 08:23:27 389 [EnvironmentTelemetry] Send: voltage=0.000000, IAQ=457, distance=0.000000, lux=0.000000
INFO | 08:23:27 389 [EnvironmentTelemetry] Send: wind speed=0.000000m/s, direction=0 degrees, weight=0.000000kg
INFO | 08:23:27 389 [EnvironmentTelemetry] Send: radiation=0.000000##R/h
INFO | 08:23:27 389 [EnvironmentTelemetry] Send: soil_temperature=0.000000, soil_moisture=0
DEBUG | 08:23:27 389 [EnvironmentTelemetry] Partially randomized packet id 907100193
INFO | 08:23:27 389 [EnvironmentTelemetry] Send packet to mesh
DEBUG | 08:23:27 389 [EnvironmentTelemetry] Ignore update from self
DEBUG | 08:23:27 389 [EnvironmentTelemetry] handleReceived(LOCAL) (id=0x36114021 fr=0x69855b54 to=0xffffffff, transport = 0, WantAck=0, HopLim=3 Ch=0x0 Portnum=67 rxtime=1766651007 priority=70)
DEBUG | 08:23:27 389 [EnvironmentTelemetry] No modules interested in portnum=67, src=LOCAL
INFO | 08:23:27 389 [EnvironmentTelemetry] Packet History - insert: Using new slot @uptime 389.476s TRACE NEW
DEBUG | 08:23:27 389 [EnvironmentTelemetry] Use AES256 key!
DEBUG | 08:23:27 389 [EnvironmentTelemetry] enqueue for send (id=0x36114021 fr=0x69855b54 to=0xffffffff, transport = 0, WantAck=0, HopLim=3 Ch=0xa9 encrypted len=52 rxtime=1766651007 hopStart=3 relay=0x
DEBUG | 08:23:27 389 [EnvironmentTelemetry] txGood=2,txRelay=0,rxGood=25,rxBad=0
INFO | 08:23:27 389 [EnvironmentTelemetry] tophone queue status queue is full, discard oldest
DEBUG | 08:23:27 389 [EnvironmentTelemetry] Use channel 0 (hash 0xa9)
DEBUG | 08:23:27 389 [EnvironmentTelemetry] Use AES256 key!
DEBUG | 08:23:27 389 [EnvironmentTelemetry] decoded message (id=0x36114021 fr=0x69855b54 to=0xffffffff, transport = 0, WantAck=0, HopLim=3 Ch=0x0 Portnum=67 rxtime=1766651007 hopStart=3 relay=0x54 prior
DEBUG | 08:23:27 389 [EnvironmentTelemetry] Send client notification to phone
DEBUG | 08:23:27 389 [EnvironmentTelemetry] Start next execution in 5s, then sleep
WARN | 08:23:27 389 [RadioIf] Can not send yet, busyRx
DEBUG | 08:23:27 389 [EnvironmentTelemetry] Sleep for 300000ms, then awake to send metrics again
INFO | 08:23:27 389 [EnvironmentTelemetry] Enter deep sleep for 300 seconds
DEBUG | 08:23:27 389 [EnvironmentTelemetry] SX126x entering sleep mode
WARN | 08:23:27 389 [EnvironmentTelemetry] Can not send yet, busyRx
INFO | 08:23:27 389 [EnvironmentTelemetry] GPS deep sleep!
INFO | 08:23:27 389 [EnvironmentTelemetry] GPS power state move from SOFTSLEEP to OFF
DEBUG | 08:23:27 389 [EnvironmentTelemetry] Save to disk 31
…