Wyze-Bridge
Translates Wyze's proprietary camera protocol to local RTSP streams without requiring RTSP firmware on the cameras. Enables Wyze cameras in Frigate.
Where it runs
- Host: Nexus (
192.168.1.226) - Web UI: http://192.168.1.226:5050
- RTSP streams:
rtsp://192.168.1.226:8556/<stream-path> - WebRTC: http://192.168.1.226:8889
- Not managed by Komodo — camera stack is deployed manually (same policy as Frigate)
- Compose file:
wyze-bridge/docker-compose.ymlin homelab-docker repo
Cameras
| Wyze App Name | Stream Path | RTSP URL | Status |
|---|---|---|---|
| Garage Cam | garage-cam |
rtsp://192.168.1.226:8556/garage-cam |
Active in Frigate as garage |
| Back Yard Cam | back-yard-cam |
rtsp://192.168.1.226:8556/back-yard-cam |
Discovered, not yet in Frigate (see issue #93) |
| Henrys Room | henrys-room |
rtsp://192.168.1.226:8556/henrys-room |
Discovered, not yet in Frigate (see issue #93) |
Ports
| Port | Purpose |
|---|---|
5050 |
Web UI |
8556 |
RTSP streams (host-side; mapped from container port 8554, offset to avoid conflict with Frigate's 8554) |
8889 |
WebRTC (host-side; mapped from container port 8888) |
Frigate Integration
Wyze-Bridge provides the RTSP streams that Frigate uses as camera sources. When Frigate starts, it connects to the RTSP URLs above; wyze-bridge then initiates the connection to the physical Wyze camera on demand.
- Streams are on-demand — cameras connect when first requested (e.g., on Frigate startup)
- If a camera shows offline at startup, wyze-bridge retries automatically
- RTSP auth is disabled (
WB_AUTH=false) — LAN-only use
Secrets
Credentials are stored encrypted in the repo as wyze-bridge/.env.enc (SOPS +
age). The plaintext .env is never committed.
Required variables (see .env.example):
| Variable | Description |
|---|---|
WYZE_EMAIL |
Wyze account email |
WYZE_PASSWORD |
Wyze account password |
API_ID |
Wyze API key ID (from developer console) |
API_KEY |
Wyze API key (from developer console) |
TOTP_KEY |
TOTP secret — only needed if account has 2FA enabled |
The API key + ID are required since Wyze mandated them in May 2024. Generate at https://developer-api-console.wyze.com/
Bootstrap on new machine
- Decrypt secrets:
sops --decrypt /home/matt/repos/homelab-docker/wyze-bridge/.env.enc \ > /home/matt/repos/homelab-docker/wyze-bridge/.env chmod 600 /home/matt/repos/homelab-docker/wyze-bridge/.env - Create token cache directory:
sudo mkdir -p /mnt/server/containers/wyze-bridge/tokens - Start:
cd /home/matt/repos/homelab-docker/wyze-bridge && docker compose up -d
Re-encrypting secrets after changes
On Nexus, after editing .env:
cd /home/matt/repos/homelab-docker
sops --encrypt wyze-bridge/.env > wyze-bridge/.env.enc
git add wyze-bridge/.env.enc && git commit -m "chore: update encrypted wyze-bridge secrets"
Renovate note
mrlt8/wyze-bridge publishes semver tags — Renovate will open auto-update PRs
when new versions are released. Because this stack is not managed by Komodo,
deploy updates manually after merging:
ssh matt@192.168.1.226 "cd /home/matt/repos/homelab-docker/wyze-bridge && docker compose pull && docker compose up -d"
Troubleshooting
# Container logs
ssh matt@192.168.1.226 "docker logs wyze-bridge --tail 50"
# Follow live logs (useful when a camera is coming online)
ssh matt@192.168.1.226 "docker logs wyze-bridge -f"
# Restart the container
ssh matt@192.168.1.226 "cd /home/matt/repos/homelab-docker/wyze-bridge && docker compose restart"
# Verify RTSP stream is reachable (requires ffprobe)
ffprobe -v quiet -show_streams rtsp://192.168.1.226:8556/garage-cam
Automation
Infrastructure
Services
- Dashy
- Bookstack
- Tandoor
- Home Assistant
- Pinchflat
- FreshRSS
- Frigate
- Wyze-Bridge
- Mosquitto
- Dispatcharr
- Proxmox LXC Services
Operations
- How to Update Apps
- Backup & Restore Strategy
- Maintenance Schedule
- Useful Commands
- Restore Proxmox Containers
- NAS NFS Share for LXC
- SSH Public Key onto Nexus