-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Important
This wiki is a task-oriented guide. The version-controlled documentation in the main repository is authoritative when a wiki page and repository document differ.
sds200-python is an alpha Python library and command-line toolkit for the
Uniden SDS100, SDS150, and SDS200 scanners. It provides the model-neutral
sdsctl command, a typed Python API, USB serial control for all supported
models, and native Ethernet control and RTSP/RTP audio for the SDS200.
The project is not affiliated with or endorsed by Uniden.
- Installation — install the package and optional features.
- Troubleshooting — diagnose USB, network, TUI, and audio problems.
- Repository README — canonical overview, examples, and project status.
- Supported scanner models — capability and hardware-validation matrix.
- Textual TUI guide — full-screen monitoring, controls, recording, and playback.
- Network audio guide — SDS200 playback, recording, Broadcastify, and Asterisk integration.
- Web dashboard guide — loopback browser monitoring, live events, audio playback, recording, and finalized-WAV playback/download.
- Home Assistant App guide — repository installation, Ingress, scanner controls, audio, persistent recordings, MQTT Discovery, and security boundaries.
- Daemon deployment and upgrade guide — systemd, destination manifests, local clients, migration, and upgrades.
| Model | USB control | Native Ethernet control | RTSP/RTP audio |
|---|---|---|---|
| SDS100 | Yes | No | No |
| SDS150 | Yes | No | No |
| SDS200 | Yes | Yes | Yes |
SDS200 USB, Ethernet control, and network audio have been validated on physical hardware. SDS100 core USB behavior has also been hardware-validated. SDS150 support is specification-backed and awaits physical-hardware validation. See the canonical supported-models guide for exact validation scope and tested firmware.
sdsctl discover
sdsctl discover --network 192.168.0.0/24 --network-onlyOnly probe networks you own or are authorized to scan.
sdsctl info
sdsctl --host SCANNER_IP infosdsctl monitor
sdsctl --host SCANNER_IP monitor
sdsctl --host SCANNER_IP tuisdsctl --host SCANNER_IP audio --play
sdsctl --host SCANNER_IP audio \
--output scanner-audio.wav \
--duration 30Install the web extra, start the daemon, then start the loopback web service in another terminal:
python -m pip install "sds200[web]"
sdsctl --log-level INFO --host SCANNER_IP daemon
sdsctl webOpen http://127.0.0.1:8000/ on the same host. The dashboard consumes daemon
state and services; it does not open a second scanner control or RTSP/RTP audio
connection. Current browser workflows include ordered live updates, explicit
audio playback, daemon-owned recording, and safe playback/download of finalized
recordings.
See the canonical web dashboard guide for security boundaries and exact behavior.
On Home Assistant OS, add
https://github.com/stevenboyd78/sds200-python under
Settings > Apps > App store > Repositories, then install sds200.
The published App uses Home Assistant Ingress for its dashboard, obtains the
configured MQTT service from Supervisor, persists recordings under /data, and
publishes UDP 50000 for SDS200 RTP audio.
See the canonical Home Assistant App guide for configuration and security details.
- Roadmap
- Project vision
- Changelog
- Operational logging
- Daemon deployment and upgrades
- Layered application configuration
- Capture and replay
- Linux udev rule
Review Troubleshooting first. Reproducible bugs and feature requests belong in GitHub Issues. Include the package version or commit, Python and operating-system versions, scanner model and firmware, transport, exact command, and complete sanitized error.
The project support scope is defined in SUPPORT.md. Report security vulnerabilities through SECURITY.md.