⚠ Open Request : ✨ [birdnet-pi] Ongoing work (opened 2024-05-01) by @alexbelgium
Home assistant add-on: birdnet-pi
Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!
About
birdnet-pi is an AI solution for continuous avian monitoring and identification originally developed by @mcguirepr89 on github (https://github.com/mcguirepr89/BirdNET-Pi), whose work is continued by @Nachtzuster and other developers on an active fork (https://github.com/Nachtzuster/BirdNET-Pi)
Features of the addon :
- Robust base image provided by linuxserver
- Working docker system thanks to https://github.com/gdraheim/docker-systemctl-replacement
- Uses HA pulseaudio server
- Uses HA tmpfs to store temporary files in ram and avoid disk wear
- Exposes all config files to /config to allow remanence and easy access
- Allows to modify the location of the stored bird songs (preferably to an external hdd)
- Supports ingress, to allow secure remote access without exposing ports
Configuration
Install, then start the addon a first time Webui can be found at http://homeassistant:80.
You'll need a microphone : either use one connected to HA or the audio stream of a rstp camera.
Options can be configured through three ways :
- Addon options
BIRDSONGS_FOLDER: folder to store birdsongs file # It should be an ssd if you want to avoid clogging of analysis
BIRDS_ONLINE_INFO: uses either allaboutbird (US birds in english) or ebird (universal and translated) to provide online information
SPECIES_CONVERTER: if yes, you need to put in the file /config/convert_species_list.txt the list of species you want to convert (example : Falco subbuteo_Faucon hobereau;Falco tinnunculus_Faucon Crécerelle). It will convert on the fly the specie when detected
TZ: Etc/UTC specify a timezone to use, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
pi_password: set the user password to access the web terminal
localdisks: sda1 #put the hardware name of your drive to mount separated by commas, or its label. ex. sda1, sdb1, MYNAS...
networkdisks: "//SERVER/SHARE" # optional, list of smb servers to mount, separated by commas
cifsusername: "username" # optional, smb username, same for all smb shares
cifspassword: "password" # optional, smb password
cifsdomain: "domain" # optional, allow setting the domain for the smb share
-
Config.yaml Additional variables can be configured using the config.yaml file found in /config/db21ed7f_birdnet-pi/config.yaml using the Filebrowser addon
-
Config_env.yaml Additional environment variables can be configured there
Installation
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
Savebutton 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
Integration with HA
You can use apprise to send notifications with mqtt, then act on those using HomeAssistant Further informations : https://wander.ingstar.com/projects/birdnetpi.html
Using ssl
Option 1 : Install let's encrypt addon, generate certificates. They are by default certfile.pem and keyfile.pem stored in /ssl. Just enable ssl from the addon option and it will work.
Option 2 : enable port 80, define your BirdNET-Pi URL as https. Certificate will be automatically generated by caddy
Improve detections
Gain for card
Using alsamixer in the Terminal tab, make sure that the sound level is high enough but not too high (not in the red part) https://github.com/mcguirepr89/BirdNET-Pi/wiki/Adjusting-your-sound-card
Ferrite
Adding ferrite beads lead in my case to worst noise
Microphone comparison
Recommended microphones (full discussion here):
- Clippy EM272 (https://www.veldshop.nl/en/smart-clippy-em272z1-mono-omni-microphone.html) + ugreen aux to usb connector
- Boya By-LM40
Conclusion, using mic from Dahua is good enough, EM272 is optimal, but Boya by-lm40 is a very good compromise as birndet model analysis the 150-15000Hz range
Denoise (Full discussion here)
Denoise is frowned upon by serious researchers. However it does seem to significantly increase quality of detection ! Here is how to do it in HA :
- Using Portainer addon, go in the hassio_audio container, and modify the file /etc/pulse/system.pa to add the line
load-module module-echo-cancel - Go in the Terminal addon, and type
ha audio restart - Select the echo cancelled device as input device in the addon options
Common issues
Not yet available
Support
Create an issue on github

