🐦 BirdWatchAI Manual Part 5 · Configuration Community Feed
Part 5

Configuration Reference

Every setting that matters, organized by what it controls. The desktop app shows these in a tabbed βš™ Settings dialog; the server shows them on a Blazor /settings page. The names and defaults are the same on both editions unless noted.

Sensitive fields are encrypted All passwords and API keys are encrypted on disk. On the desktop app they live in Data\config.json; on the server they live in data/config.json inside the data folder you mounted into the container.

Desktop app settings

Open with βš™ Settings. The dialog has twelve tabs; click Save to apply or Cancel to discard.

Camera (RTSP)

SettingDefaultPurpose
Camera Nameβ€”Friendly name (e.g. "Backyard Feeder"); shown in the title bar and used as your public feeder name
Camera IP Address192.168.1.100The camera's network address
RTSP Port554Streaming port
RTSP Username / Passwordβ€”Camera account credentials
RTSP URLautoBuilt from the above, or paste a full URL. Build/Test buttons here.
Analysis Stream URLautoOptional low-res stream for software motion (Tapo: /stream2 used automatically)
Use ONVIF motion detectionOnUse the camera's hardware motion events (recommended for Tapo)
TAPO Reboot (TP-Link email/password)β€”Cloud login enabling remote camera reboot

Bird Identification

SettingDefaultPurpose
AI ModelBird Model (965)Local classifier; or SpeciesNet (2,498, experimental)
Minimum Confidence Threshold35%Only detections above this are recorded
Use Test ModeOffGenerates fake detections for testing β€” leave off for real use

Monitoring

SettingDefaultPurpose
Check Interval (seconds)2How often the app samples for motion
Motion Threshold5% of pixels that must change to count as motion
Cooldown Period (seconds)3Minimum gap between detections
Monitor daylight hours onlyOn (7–20)Pauses overnight; set start/end hours
Auto-reconnectOnRetry dropped connections automatically
Periodic reconnect (minutes)0 (off)Force a fresh connection every N minutes
Feeder Zip Code / GPSβ€”Location for weather, rarity, daylight. GPS optional (with "Pick on Map")
Temperature UnitFahrenheitΒ°F or Β°C

Advanced

SettingDefaultPurpose
Snapshot FolderData\SnapshotsWhere photos/videos are saved
Save snapshots locallyOnKeep image files on disk
Max Snapshots Per Day500Daily cap
Auto-delete old snapshotsOffOptionally purge after N days (default 30)
Enable video recordingOnRecord a clip per detection (duration, pre-buffer)
Best frame extractionOnPick the clearest frame from the clip for ID
Object Detector (YOLOv8)OnCrop to the bird; filter non-bird motion
Save below-threshold detectionsOffKeep uncertain ones in a ForReview folder
Check for updates on startupOnNotify when a newer version is available
Auto-connect & start on startupOffBegin monitoring automatically at launch

Other tabs (summary)

Server settings

On the server edition, settings live on the Blazor /settings page. They're grouped into the same logical sections as the desktop app, but presented in one long scrollable page with anchored sub-sections rather than tabs. All settings persist to data/config.json in your mounted data folder.

Live-reload Most settings re-configure their services on save without restarting the container. Stream URL changes and camera-type changes trigger a clean reconnect in-place. You don't usually need to docker restart birdwatch after a settings change.

Major sections

Notification channels

Email (SMTP) β€” both editions

  1. Enable email notifications.
  2. Set the SMTP server and port (Gmail: smtp.gmail.com / 587), keep SSL / TLS on.
  3. Enter your sending email + password and one or more recipients (comma-separated).
  4. Click Send Test Email.
Gmail needs an "App Password" Don't use your normal Gmail password. Enable 2-Step Verification on your Google account, then create a 16-character App Password (Google Account β†’ Security β†’ App passwords β†’ Mail) and use that here.

ntfy push β€” both editions

ntfy is a free, open-source push service that needs no account.

  1. Install the ntfy app on your phone.
  2. In settings, enable ntfy, keep the server https://ntfy.sh, and choose a unique topic name (e.g. birdwatch-myfeeder-12345).
  3. Subscribe to the same topic in the phone app.
  4. Click Send Test Notification.

Pushover β€” desktop only

Pushover delivers instant push notifications (with the photo) to your phone, tablet, or desktop. Low-cost one-time purchase per platform after a free trial.

  1. Create an account at pushover.net and install the app.
  2. Create an application at pushover.net/apps/build.
  3. In Settings β†’ Pushover, enable it and paste your Application API Token and User Key.
  4. Click πŸ“± Send Test Notification.
Custom sound Upload a custom sound named BirdWatch in Pushover to give bird alerts their own distinctive tone.

Windows desktop notifications β€” desktop only

Native Windows 10 / 11 toast pop-ups. Fast and local β€” no internet round-trip. Settings β†’ NTFY & Windows tab.

Photo frame β€” desktop only

BirdWatchAI can push snapshots (and optionally videos) straight to a digital photo frame, turning it into a live bird gallery. In Settings β†’ Photo Frame:

You can also send any single detection on demand via the history right-click menu β†’ πŸ–Ό Send to Photo Frame.

Summary reports β€” both editions

Reports roll up your activity into a tidy digest with statistics, charts, and snapshots. Enable any of Daily / Weekly / Monthly with a chosen schedule, the recipient email(s), and the delivery method (Email / Pushover / Both on desktop; Email / ntfy on server). Reports are skipped automatically when there were no detections in the period.

Community sharing

Sharing is controlled in Settings β†’ Community on both editions. The most important control is the Share Level, which precisely governs what leaves your machine:

LevelWhat is shared
0 β€” OffNothing is shared
1Species + timestamp only (plus confidence, rarity, and temperature when available)
2The above + your ZIP code (or GPS coordinates if you've enabled GPS instead of ZIP)
3The above + the snapshot image
4The above + the video clip
You stay anonymous Your feeder is identified only by a random Device Key (a UUID) β€” never linked to your name or email. Your public identity is just the Feeder Display Name (which mirrors your Camera Name). Location is shared only at Level 2 and above, and GPS is used in place of ZIP only if you explicitly enable GPS coordinates.

Other options on the tab:

Detection tuning β€” when defaults aren't right

The factory defaults work for most installs, but if you're getting too many false positives, missing real birds, or finding the AI keeps misidentifying things, here's what knob to turn:

SymptomKnobDirection
Too many "false" detections (squirrels, wind) Motion Threshold; YOLOv8 detector Raise threshold; keep YOLOv8 on
Missing real birds Motion Threshold; Cooldown Lower threshold; lower cooldown
Wrong species often Camera placement; Best-frame extraction; Min confidence Get the camera closer; keep best-frame on; raise confidence to 40–50%
Bursts of duplicates of the same bird Cooldown Raise to 10–30 s
App ignores some real birds (low confidence) Min confidence; "Save below-threshold detections" Lower min confidence; enable the for-review folder and confirm manually

On the desktop, the πŸ“ˆ Telemetry window plots motion %, temperature, and your two thresholds against detection markers β€” the easiest way to pick a Motion Threshold that's just below real visits and above background sway.