Description
Currently, chirpstack-hpr adds device EUIs to the Helium route only when it catches an API Create event from ChirpStack's Redis stream. The helium_skfs_update function syncs only Session Key Filters (SKFs), not EUI filters.
This creates a problem when:
- Multiple devices are added quickly via API/script - some events may be missed
- Devices were added before chirpstack-hpr was running
- Container restarts and misses events during downtime
- Manual intervention is needed to add missing EUIs with
helium-config-service-cli
Current Behavior
- EUIs are only added on
api.DeviceService/Create event detection
helium_skfs_update runs every 5 minutes and compares helium_devices table with Helium route SKFs
- No similar sync exists for EUI filters
Expected Behavior
Add a periodic EUI sync function (similar to helium_skfs_update) that:
- Fetches all devices from ChirpStack
- Fetches all EUIs from Helium route
- Compares and adds missing EUIs
- Optionally removes EUIs for deleted devices
My Use Case
I added 17 devices via Python gRPC script and only ~13 were automatically added to the Helium route. The rest had to be added manually using helium-config-service-cli route euis add --commit.
Environment
- chirpstack-hpr: v0.1.16 (ghcr.io/ccall48/chirpstack-hpr:latest)
- ChirpStack: 4.16.0
Workaround
Currently using a separate Python script with cron to sync EUIs manually.
Thank you for this great project! 🙏
Description
Currently, chirpstack-hpr adds device EUIs to the Helium route only when it catches an
API Createevent from ChirpStack's Redis stream. Thehelium_skfs_updatefunction syncs only Session Key Filters (SKFs), not EUI filters.This creates a problem when:
helium-config-service-cliCurrent Behavior
api.DeviceService/Createevent detectionhelium_skfs_updateruns every 5 minutes and compareshelium_devicestable with Helium route SKFsExpected Behavior
Add a periodic EUI sync function (similar to
helium_skfs_update) that:My Use Case
I added 17 devices via Python gRPC script and only ~13 were automatically added to the Helium route. The rest had to be added manually using
helium-config-service-cli route euis add --commit.Environment
Workaround
Currently using a separate Python script with cron to sync EUIs manually.
Thank you for this great project! 🙏