Homescout Ingest
Overview
Ingest Homescout output artifacts and answer analysis questions using command-line tools without changing the underlying data. Focus on JSON and JSONL files, including gzip-compressed history and speedtest archives.
Workflow
- •Locate the output directory.
- •Use the user-provided path or look up
output_dirin the Homescout config. - •Treat the directory as read-only.
- •Use the user-provided path or look up
- •Identify the available files.
- •
current.jsonfor the latest snapshot. - •
history/YYYY-MM-DD.jsonl(or.jsonl.gz) for scan history. - •
speedtests.jsonlplusspeedtests/YYYY-MM-DD.jsonl(or.jsonl.gz) for speedtest history.
- •
- •Choose the correct data source for the question.
- •"Right now" questions:
current.json. - •"Over time" device or scan questions:
history/*.jsonl(.gz). - •Speedtest trends or degradations:
speedtests*.jsonl(.gz).
- •"Right now" questions:
- •Parse with jq and standard CLI tools.
- •Use
jqfor JSON/JSONL,rgfor filtering text, andgzip -cdfor.gzfiles.
- •Use
- •Summarize results with timestamps and counts.
- •Include UTC timestamps and the file range you used.
Quick Commands
- •Inspect latest snapshot metadata:
- •
jq '.metadata' current.json
- •
- •List devices currently offline:
- •
jq -r '.devices[] | select(.status=="offline") | [.ip,.hostname,.last_seen] | @tsv' current.json
- •
- •Count devices by status:
- •
jq -r '.devices[].status' current.json | sort | uniq -c
- •
- •Pull scan duration and average response time:
- •
jq '.metadata.scan_duration_ms, .stats.avg_response_time_ms' current.json
- •
- •Read history JSONL (plain):
- •
jq -r '.metadata.timestamp' history/2026-02-04.jsonl
- •
- •Read history JSONL (gzipped):
- •
gzip -cd history/2026-02-04.jsonl.gz | jq -r '.metadata.timestamp'
- •
- •Inspect speedtests:
- •
jq -r '[.timestamp,.download_mbps,.upload_mbps,.latency_ms,.degraded] | @tsv' speedtests.jsonl
- •
Analysis Recipes
- •Find new devices in a specific day:
- •
jq -r 'select(.stats.new_devices_this_scan > 0) | [.metadata.timestamp,.stats.new_devices_this_scan] | @tsv' history/2026-02-04.jsonl
- •
- •Detect devices that went offline since last scan:
- •Compare
current.jsonwith the last history entry for status changes.
- •Compare
- •Track a specific MAC or IP across history:
- •
rg -n '"mac":"AA:BB:CC' history/2026-02-*.jsonl - •For gzipped files:
gzip -cd history/2026-02-04.jsonl.gz | rg -n '"mac":"AA:BB:CC'
- •
- •Identify slow responders in current scan:
- •
jq -r '.devices[] | select(.response_time_ms >= 200) | [.ip,.response_time_ms] | @tsv' current.json
- •
- •Summarize speedtest degradations:
- •
jq -r 'select(.degraded==true) | [.timestamp,.download_mbps,.upload_mbps] | @tsv' speedtests.jsonl
- •
Schema Reference
- •Read
references/output_schema.mdfor the snapshot, device, and speedtest field definitions.
Guardrails
- •Do not modify or delete output files unless explicitly requested.
- •Handle
.jsonl.gzwithgzip -cdto avoid altering archives. - •Treat timestamps as UTC and preserve them in summaries.