Replace RemoteTerm meshcore poller with pyMC-Repeater#108
Merged
Conversation
Drops the RemoteTerm HTTP/WebSocket integration and the direct-device meshcore_pymc poller in favour of the pyMC-Repeater REST + SSE API. - poller/pollers/meshcore.py: complete rewrite targeting pyMC-Repeater. Periodic REST poll of /api/adverts_by_contact_type (node discovery), /api/recent_packets (SNR/link metrics), and /api/stats (health). SSE stream from /api/companion/events for real-time advert, message, and path-update events; auto-discovers companion via /api/companion/index. Auth via X-API-Key extracted from URL username (http://APIKEY@host:port). - poller/pollers/meshcore_pymc.py: deleted (superseded by the repeater). - poller/normalizers/mesh_node.py: replace normalize_remoteterm_contact() with normalize_pymc_repeater_advert() mapping pyMC-Repeater advert fields (public_key, name, gps_lat, gps_lon, last_advert_timestamp, out_path_len). - poller/main.py: remove MeshCorePymcPoller import and instantiation. - backend/routers/admin_debug.py: update meshcore probe to check /api/stats, /api/adverts_by_contact_type, and /api/recent_packets instead of RemoteTerm endpoints; switch auth to X-API-Key header; add extra_headers param to _http_get_check. - config/sources.example.yml: update meshcore entry to reference pyMC-Repeater with API-key auth instructions. https://claude.ai/code/session_01WfXRRhUewL5qjgpk6PdaSD
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
$(cat <<'EOF'
Summary
meshcore_pymcpoller in favour of the pyMC-Repeater REST + SSE APIpoller/pollers/meshcore.pyto poll/api/adverts_by_contact_type,/api/recent_packets, and/api/stats; streams real-time events from/api/companion/eventsSSE when a companion identity is configurednormalize_remoteterm_contact()withnormalize_pymc_repeater_advert()mapping pyMC-Repeater advert fields (public_key,name,gps_lat/lon,last_advert_timestamp,out_path_len)X-API-Keyheader; embed the key in the source URL ashttp://API_KEY@host:portpoller/pollers/meshcore_pymc.py(direct TCP/serial device poller, superseded by the repeater daemon)config/sources.example.ymlwith the new config formatTest plan
type: meshcoresource URL to a running pyMC-Repeater instance and verify nodes appear in the entity store/api/v1/mesh/linkspopulates from/api/recent_packetsSNR data/api/v1/mesh/statusreflects the repeater's/api/statshealthPOST /admin/debug/remote-feeds/probewithsource_type=meshcoreand verify the three checks (stats, adverts, packets) are returnedpython3 -m py_compilepasses on all modified files (already verified)https://claude.ai/code/session_01WfXRRhUewL5qjgpk6PdaSD
EOF
)
Generated by Claude Code