Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!
BirdNET-Go is an AI solution for continuous avian monitoring and identification developed by @tphakala
This addon is based on their docker image.
Install, then start the addon a first time. Webui can be found at http://homeassistant:8080. You'll need a microphone : either use one connected to HA or the audio stream of a rstp camera.
The audio clips folder can be stored on an external or SMB drive by mounting it from the addon options, then specifying the path instead of "clips/". For example, "/mnt/NAS/Birdnet/"
Options can be configured through three ways :
- Addon options
ALSA_CARD : number of the card (0 or 1 usually), see https://github.com/tphakala/birdnet-go/blob/main/doc/installation.md#deciding-alsa_card-value
TZ: Etc/UTC specify a timezone to use, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
COMMAND : realtime --rtsp url # allows to provide arguments to birdnet-go
-
Config.yaml Additional variables can be configured using the config.yaml file found in /config/db21ed7f_birdnet-go/config.yaml using the Filebrowser addon
-
Config_env.yaml Additional environment variables can be configured there
The installation of this add-on is pretty straightforward and not different in comparison to installing any other add-on.
-
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.
-
Click the
Save
button to store your configuration. -
Set the add-on options to your preferences
-
Start the add-on.
-
Check the logs of the add-on to see if everything went well.
-
Open the webUI and adapt the software options
Home Assistant Integration instructions are found here, Birdnet-Go Addon: Home Assistant Integration
VLC opens a TCP port but the stream is udp. Because of this will need to configure Birdnet-Go to use udp. Adjust the config.yaml file to udp or use the birdnet-go command line option:
--rtsptransport udp --rtsp rtsp://192.168.1.21:8080/stream.sdp
Run vlc without an interface using one of these commands:
# This should work for most devices
/usr/bin/vlc -I dummy -vvv alsa://hw:0,0 --no-sout-all --sout-keep --sout '#transcode{acodec=mpga}:rtp{sdp=rtsp://:8080/stream.sdp}'
# Try this if the first command does not work
/usr/bin/vlc -I dummy -vvv alsa://hw:4,0 --no-sout-all --sout-keep --sout '#rtp{sdp=rtsp://:8080/stream.sdp}'
Run arecord -l
to get microphone hardware info
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC3220 Analog [ALC3220 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: S7 [SteelSeries Arctis 7], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: Nano [Yeti Nano], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 4: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
hw:4,0 = card 4: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
Systemd service file example. Adjust the user:group accordingly. If you want to run as root, you will likely need to run vlc-wrapper instead of vlc.
[Unit]
Description=VLC Birdnet RTSP Server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
StandardOutput=journal
ExecStart=/usr/bin/vlc -I dummy -vvv alsa://hw:0,0 --sout '#transcode{acodec=mpga}:rtp{sdp=rtsp://:8080/stream.sdp}'
User=someone
Group=somegroup
[Install]
WantedBy=multi-user.target
Not yet available
Create an issue on github