Skip to content

Latest commit

 

History

History
 
 

birdnet-pi

Home assistant add-on: birdnet-pi

Donate Donate

Version Ingress Arch

Codacy Badge GitHub Super-Linter Builder

Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!

Stargazers repo roster for @alexbelgium/hassio-addons

downloads evolution

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 by two ways :

  • Ingress from HA (no password but some functions don't work)
  • Direct access with http://homeassistant:port, port being the one defined in the birdnet.conf. The username when asked for a password is birdnet, the password is the one that you can define in the birdnet.con (blank by default). This is different than the password from the addon options, which is the one that must be used to access the web terminal

Web terminal access : uesrname pi, password : as defined in the addon options

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
MQTT_DISABLED : if true, disables automatic mqtt publishing. Only valid if there is a local broker already available
LIVESTREAM_BOOT_ENABLED: start livestream from boot, or from settings
PROCESSED_FOLDER_ENABLED : if enabled, you need to set in the birdnet.conf (or the setting of birdnet) the number of last wav files that will be saved in the temporary folder "/tmp/Processed" within the tmpfs (so no disk wear) in case you want to retrieve them. This amount can be adapted from the addon options
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.

  1. 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) Open your Home Assistant instance and show the add add-on repository dialog with a specific repository URL pre-filled.
  2. Install this add-on.
  3. Click the Save button to store your configuration.
  4. Set the add-on options to your preferences
  5. Start the add-on.
  6. Check the logs of the add-on to see if everything went well.
  7. Open the webUI and adapt the software options

Integration with HA


Apprise

You can use apprise to send notifications with mqtt, then act on those using HomeAssistant Further informations : https://wander.ingstar.com/projects/birdnetpi.html

Automatic mqtt

If mqtt is installed, the addon automatically updates the birdnet topic with each detected species

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

Aux to usb adapters

Based on my test, only adapters using KT0210 (such as Ugreen's) work. I couldn't get adapters based on ALC to be detected.

Microphone comparison

Recommended microphones (full discussion here):

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 0-15000Hz range

image

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

High pass

Should be avoided as the model uses the whole 0-15khz range

Common issues

Not yet available

Support

Create an issue on github


illustration