Skip to content

Push Telemetry#10

Open
gjelsoe wants to merge 5 commits into
IoTThinks:PowerSaving-v16from
gjelsoe:PowerSaving-v16-report
Open

Push Telemetry#10
gjelsoe wants to merge 5 commits into
IoTThinks:PowerSaving-v16from
gjelsoe:PowerSaving-v16-report

Conversation

@gjelsoe

@gjelsoe gjelsoe commented Jun 16, 2026

Copy link
Copy Markdown

Add ReportEngine: automated reporting and alerting for repeater nodes (Push Telemetry)

This PR adds a script/rule engine (ReportEngine.cpp / ReportEngine.h) to repeater firmware, enabling nodes to automatically send messages to a channel based on sensor readings or a fixed schedule — without any user interaction.

Supported triggers

  • Battery voltage threshold (bat<, bat>)
  • Temperature threshold (temp<, temp>)
  • Noise floor threshold (noise>, noise<)
  • Periodic reporting (report:bat, report:temp, report:noise)

Features

  • Optional time-of-day firing (at:HH:MM, UTC)
  • Hash channel and private channel support
  • Optional region scope (@scope:name)
  • Rules persist across reboots via SPIFFS/LittleFS
  • Deferred SPIFFS save to avoid blocking CLI on nRF52
  • Remote CLI support with paged compact list output (160-byte limit)
  • Local CLI (USB) supports full list output
  • Minimum 30-minute interval enforced to protect duty cycle

Rules are configured entirely via CLI — no recompilation needed. For full command reference see REPORT.md.

gjelsoe added 5 commits June 13, 2026 20:00
Fix saving on nrf52
Fix formatting on list command
Different output from over Serial vs LoRa
@IoTThinks

Copy link
Copy Markdown
Owner

Hi @gjelsoe
This is a great initiative for less baby sitting repeaters.
It can be used for MeshCore sensors too.

I have a few comments.

  1. If we name it ReportEngine, then the "script rule" should be named as "report rule"? Should it be "Alert Engine" as in the MeshCore sensor, it uses "alert".
  2. Is CommonCLI missing? We need to set the parameters into file.
  3. I also don't find the code to send alert. I guess it is not in yet.

Have fun.
Thanks a lot.

@gjelsoe

gjelsoe commented Jun 23, 2026

Copy link
Copy Markdown
Author
  • If we name it ReportEngine, then the "script rule" should be named as "report rule"? Should it be "Alert Engine" as in the MeshCore sensor, it uses "alert".

Was written for repeater not sensor firmware.

  • Is CommonCLI missing? We need to set the parameters into file.

Commands are handled by scriptHandleCommand in ReportEngine.cpp

  • I also don't find the code to send alert. I guess it is not in yet.

There isn't any alert.

@towerviewcams

Copy link
Copy Markdown

I have been testing this for a couple weeks and works so well. thank you! Hope to see this get merged soon.

@IoTThinks

Copy link
Copy Markdown
Owner

It is sure we will merge this PR for next PS release.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants