The app derives its timezone from station lat/lng via timezonefinder (Settings → Location in the Web UI), so a separate addon-level TZ only ever created mismatch with the UI-derived zone. All app-facing timestamps (dashboard, API, DB) and Python service stdout (api/main/birdnet) already honor the UI zone via logging_config.py's formatter, and the frontend log viewer re-converts Icecast timestamps on read. Net effect in the HA addon log pane: Python services still show the correct local time; only Icecast's raw stdout now prints in UTC (accepted trade for a single source of truth). Deletes rootfs/etc/cont-init.d/02-timezone.sh added in 0.5.6-2. Also cleans up the options YAML in DOCS.md/README.md: drops RECORDING_MODE and RTSP_URL (never wired — app reads them from user_settings.json), drops http_stream from the modes list, and moves STREAM_BITRATE under an env_vars: example since it's honored by start-icecast.sh but not a schema option. Bumped to 0.6.3-2 (addon-only, no upstream app change).
3.0 KiB
Home assistant add-on: BirdNET-PiPy
BirdNET-PiPy is a self-hosted system that uses the BirdNET deep-learning model to identify birds from their sounds, with a modern web dashboard for monitoring detections. This add-on packages the upstream project for Home Assistant with ingress support.
About
- Upstream project: https://github.com/Suncuss/BirdNET-PiPy
- This add-on runs the BirdNET-PiPy backend services, Icecast audio stream, and Vue.js frontend in a single container.
Installation
- Add my add-ons repository to your home assistant instance (in supervisor addons store at top right, or click button below if you have configured my HA)
- Install this add-on.
- Start the add-on.
- Check the logs of the add-on to see if everything went well.
Configuration
Install, then start the add-on a first time. Open the Web UI from Home Assistant (Ingress) or directly at http://<host>:8011 (or the port you configure).
Configure location, audio source, and other settings in the BirdNET-PiPy UI after the container starts.
Options can be configured through three ways:
- Add-on options
ICECAST_PASSWORD: "" # Optional: persistent password for the Icecast audio stream
data_location: /config/data # Persistent data location (under /config, /share, or /data)
env_vars: # Optional: extra environment variables
- name: STREAM_BITRATE
value: 320k # Icecast mp3 stream bitrate (default 320k)
-
Config.yaml Additional variables can be configured using the config.yaml file found in
/config/birdnet-pipy/config.yamlusing the Filebrowser add-on. -
Config_env.yaml Additional environment variables can be configured there.
Mounting Drives
This add-on supports mounting both local drives and remote SMB shares:
- Local drives: See Mounting Local Drives in Addons
- Remote shares: See Mounting Remote Shares in Addons
Custom Scripts and Environment Variables
This add-on supports custom scripts and environment variables through the addon_config mapping:
- Custom scripts: See Running Custom Scripts in Addons
- env_vars option: Use the add-on
env_varsoption to pass extra environment variables (uppercase or lowercase names). See https://github.com/alexbelgium/hassio-addons/wiki/Add-Environment-variables-to-your-Addon-2 for details.
Notes
- Audio input uses Home Assistant's PulseAudio server by default.
- Ingress is enabled; direct access is available on the configured port.