Why is my sensor not sending? Debugging with the device console

Every request your device makes, including the rejected ones and why. How to read 401, 429 and type errors, check the clock and test commands from a prompt.

HydroNode 7 min read
A HydroNode sensor page with the device console open at the bottomA HydroNode sensor page with the device console open at the bottom

The device blinks, the serial monitor says sent, yet nothing happens on the chart. Instead of guessing, open the device console. It shows every request your device makes, including the rejected ones, and tells you exactly why.

Open the console

  1. Go to the sensor pageClick the sensor under Sensors.
  2. Open itClick the Console bar at the bottom or press `. Drag the top edge to resize it; the button on the right goes full screen.
  3. On your phoneIn the app, open the ⋯ menu at the top right of the sensor page and pick Console. It has Live, Timing and Commands.
Who sees it Only you as the owner and people with an admin share. The console keeps 48 hours, at most 2,000 lines per sensor. Rejected requests are recorded at up to 20 per minute, so a device stuck in a retry loop cannot flood the log.

Live: every request as it arrives

New lines appear at the bottom. An HTTP line shows the time, status, measurement and value, the result of the signature check (hmac ok) and how far the device clock is off (skew +20.1s). The toggles at the top show or hide accepted, rejected, duplicate and command lines, and grep filters by any text, such as 401 or TEMPERATURE.

The Live tab of the console with accepted HTTP requests, signature checks and clock offsetThe Live tab of the console with accepted HTTP requests, signature checks and clock offset
On the right a short help explains the most common lines. Click any line for every detail.

Rejected: the usual reasons

Switch Accepted off and only the problem cases stay.

The console with rejected requests and their reasonsThe console with rejected requests and their reasons
Rejected requests in red, with commands and their way from sent to confirmed in between.
LineCauseFix
401 Invalid signatureWrong secret or wrongly signed textClick the line: it shows the exact text the server expected you to sign. Compare the secret under SettingsConnection.
401 Invalid timestampDevice clock off by more than 2 minutesCheck the time sync. The Arduino library refreshes its time on its own after this answer.
429Sent too fastAt most one value per measurement type every 10 seconds.
DUPRepeated requestHarmless. The value was already stored and is not counted twice.
no fPort configurationLoRaWAN port without a layoutAdd an fPort layout under SettingsConnection.

Timing: is the clock right, is the rhythm there?

For HTTP sensors the Timing tab shows how far the device clock is off right now and how fast it drifts. Since requests more than two minutes off are refused, it works out when that limit would be reached. Next to it are the expected and typical interval, the last gap and a countdown to the next reading. LoRaWAN sensors get the Link tab instead, with RSSI, SNR and the last 100 frames.

The Timing tab of the console with clock offset, drift and intervalThe Timing tab of the console with clock offset, drift and interval
Clock offset, drift per hour and when the two minute limit would be reached.

Commands: from the prompt

In the Commands tab you type commands like in a terminal. A command is queued and picked up with the device's next request. The device answers with acknowledged or declines with a reason. Tab completes names, ↑ brings back earlier commands.

consolePrompt
pump:uint32 1500     # name, type, value
fan:bool true
run Water 4s         # send a saved command template
cancel last          # take back what is still queued
help                 # every command with examples
The Commands tab of the console with sent, acknowledged and declined commandsThe Commands tab of the console with sent, acknowledged and declined commands
Every command with its status: queued, sent, acknowledged, declined or expired.

The checklist when nothing arrives

  1. No line in the console at all? The request never reaches HydroNode. Check WiFi, DNS and firewall. Is the right Sensor ID on the device?
  2. Only red lines? Read the reason in the line, then the table above.
  3. Green lines but an empty chart? Pick the right measurement at the top of the chart. A mistyped type name lands as a channel of its own.
  4. Values arrive, but too rarely? Look at the typical interval in the Timing tab, then tune monitoring to match.

Read more