diff --git a/birdnet-pipy/CHANGELOG.md b/birdnet-pipy/CHANGELOG.md index fc629fcbc..f81d751b9 100644 --- a/birdnet-pipy/CHANGELOG.md +++ b/birdnet-pipy/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.3-2 (2026-04-15) +- Remove the `TZ` add-on option. Application timezone is now auto-derived in the Web UI from the station location (latitude/longitude) via `timezonefinder`, so a separately-configured container `TZ` only ever duplicated — and occasionally conflicted with — the UI-derived zone. All app-facing timestamps (dashboard, API responses, database) and Python service stdout (`api`/`main`/`birdnet`) already honor the UI-derived zone via the logging formatter; the frontend log viewer also re-converts Icecast timestamps on read. Net effect in the HA addon log pane: Python logs keep their local-time timestamps; only Icecast's raw stdout now prints in UTC — an intentional trade for a single source of truth. Deletes the now-redundant `rootfs/etc/cont-init.d/02-timezone.sh` added in 0.5.6-2. +- Clean up the options YAML in DOCS.md and README.md. Removed `RECORDING_MODE` and `RTSP_URL` — these were documented as addon options but never wired: the app reads them from `user_settings.json` (configured via the Web UI), not from env vars. Also dropped `http_stream` from the list of modes (only `pulseaudio` and `rtsp` remain in `backend/config/constants.py`). Moved `STREAM_BITRATE` under an `env_vars:` example since it's honored by `start-icecast.sh` but has never been a first-class option in the schema. + ## 0.6.3 (2026-04-13) - Simplify ingress nginx to a single `` rewrite. Upstream now declares `` in `index.html` with Vite `base: './'` and uses relative paths for all internal URLs (built assets, axios `baseURL`, socket.io `path`). The previous seven `sub_filter` rules (href/src/`/api`/`/socket.io`) are no longer needed — one `` replacement is sufficient. - Removes incidental brittleness from byte-level `sub_filter` matches in minified JS bundles (the old `/stream/` rule had inadvertently double-prefixed the literal `api.get("/stream/config")` string). diff --git a/birdnet-pipy/DOCS.md b/birdnet-pipy/DOCS.md index 2d5f297b1..7d3a08f56 100644 --- a/birdnet-pipy/DOCS.md +++ b/birdnet-pipy/DOCS.md @@ -15,14 +15,13 @@ ## Options ```yaml -TZ: Europe/Paris # Timezone, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List -ICECAST_PASSWORD: "" # Optional: set a persistent password for the audio stream -STREAM_BITRATE: 320k # Bitrate for the mp3 stream -RECORDING_MODE: rtsp # pulseaudio | http_stream | rtsp -RTSP_URL: "" # Required if RECORDING_MODE is rtsp -data_location: /config/data # Persistent data location for BirdNET-PiPy +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) ``` ## Audio -The add-on expects audio via PulseAudio (default) or an RTSP stream configured in the BirdNET-PiPy settings. +The add-on expects audio via PulseAudio (default) or an RTSP stream. Pick the source in the BirdNET-PiPy Web UI under **Settings → Audio** after the add-on first starts. diff --git a/birdnet-pipy/README.md b/birdnet-pipy/README.md index e2a79ed04..f99fc20b2 100644 --- a/birdnet-pipy/README.md +++ b/birdnet-pipy/README.md @@ -25,12 +25,11 @@ Options can be configured through three ways: - Add-on options ```yaml -TZ: Etc/UTC # Timezone, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List -ICECAST_PASSWORD: "" # Optional: set a persistent password for the audio stream -STREAM_BITRATE: 320k # Bitrate for the mp3 stream -RECORDING_MODE: rtsp # pulseaudio | http_stream | rtsp -RTSP_URL: "" # Required if RECORDING_MODE is rtsp -data_location: /config/data # Persistent data location for BirdNET-PiPy +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 diff --git a/birdnet-pipy/config.yaml b/birdnet-pipy/config.yaml index 26c05a2da..842fee2c6 100644 --- a/birdnet-pipy/config.yaml +++ b/birdnet-pipy/config.yaml @@ -73,7 +73,6 @@ name: BirdNET-PiPy options: env_vars: [] ICECAST_PASSWORD: '' - TZ: Europe/Paris data_location: /config/data panel_icon: mdi:bird ports: @@ -85,7 +84,6 @@ schema: - name: match(^[A-Za-z0-9_]+$) value: str? ICECAST_PASSWORD: str? - TZ: str? certfile: str? cifsdomain: str? cifspassword: str? @@ -97,4 +95,4 @@ schema: ssl: bool? slug: birdnet-pipy url: https://github.com/alexbelgium/hassio-addons/tree/master/birdnet-pipy -version: "0.6.3" +version: "0.6.3-2" diff --git a/birdnet-pipy/rootfs/etc/cont-init.d/02-timezone.sh b/birdnet-pipy/rootfs/etc/cont-init.d/02-timezone.sh deleted file mode 100755 index 445a6e2f3..000000000 --- a/birdnet-pipy/rootfs/etc/cont-init.d/02-timezone.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/with-contenv bashio -# shellcheck shell=bash -set -euo pipefail - -# Use timezone defined in add-on options -bashio::log.info "Setting timezone..." -TZ_VALUE="$(bashio::config 'TZ' || true)" -TZ_VALUE="${TZ_VALUE:-Europe/Paris}" - -if [ ! -f "/usr/share/zoneinfo/${TZ_VALUE}" ]; then - bashio::log.warning "Invalid timezone '${TZ_VALUE}'. Falling back to Europe/Paris." - bashio::log.warning "See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for valid values." - TZ_VALUE="Europe/Paris" -fi - -# Apply timezone to the container -ln -sf "/usr/share/zoneinfo/${TZ_VALUE}" /etc/localtime -echo "${TZ_VALUE}" > /etc/timezone -export TZ="${TZ_VALUE}" -sed -i "1a TZ=\"${TZ_VALUE}\"" /etc/services.d/* - -# Update s6 container environment so child processes inherit the timezone -if [ -d /var/run/s6/container_environment ]; then - echo "${TZ_VALUE}" > /var/run/s6/container_environment/TZ -fi - -bashio::log.notice "Timezone set to: ${TZ_VALUE}"