Skip to content
stevenboyd78 edited this page Aug 10, 2026 · 5 revisions

sds200-python Wiki

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.

Start here

Supported scanners

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.

Common tasks

Find scanners

sdsctl discover
sdsctl discover --network 192.168.0.0/24 --network-only

Only probe networks you own or are authorized to scan.

Show scanner information

sdsctl info
sdsctl --host SCANNER_IP info

Start monitoring

sdsctl monitor
sdsctl --host SCANNER_IP monitor
sdsctl --host SCANNER_IP tui

Play or record SDS200 network audio

sdsctl --host SCANNER_IP audio --play

sdsctl --host SCANNER_IP audio \
  --output scanner-audio.wav \
  --duration 30

Run the daemon-backed web dashboard

Install 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 web

Open 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.

Install the Home Assistant App

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, stores recordings in writable Home Assistant media storage, and publishes UDP 50000 for SDS200 RTP audio. The default recording library is /media/sdsctl/recordings; the media-relative recording_directory option can select another location below /media.

See the canonical Home Assistant App guide for configuration and security details.

Project documentation

Getting help

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.

Clone this wiki locally