{"id":19539042,"url":"https://github.com/mzakharo/birdnetapp","last_synced_at":"2025-04-26T16:31:12.494Z","repository":{"id":48167531,"uuid":"490833764","full_name":"mzakharo/birdnetapp","owner":"mzakharo","description":"BirdNET App for RaspberryPi/BeagleBone.","archived":false,"fork":false,"pushed_at":"2024-02-05T12:13:02.000Z","size":8031,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-04T15:04:50.004Z","etag":null,"topics":["beaglebone","beaglebone-black","birdnet","birdnet-pi","influxdb","influxdb-python","influxdb2","raspberry-pi","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mzakharo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-10T19:26:46.000Z","updated_at":"2024-01-16T14:44:54.000Z","dependencies_parsed_at":"2024-11-11T02:48:29.012Z","dependency_job_id":null,"html_url":"https://github.com/mzakharo/birdnetapp","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzakharo%2Fbirdnetapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzakharo%2Fbirdnetapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzakharo%2Fbirdnetapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mzakharo%2Fbirdnetapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mzakharo","download_url":"https://codeload.github.com/mzakharo/birdnetapp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251017346,"owners_count":21523561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["beaglebone","beaglebone-black","birdnet","birdnet-pi","influxdb","influxdb-python","influxdb2","raspberry-pi","telegram","telegram-bot"],"created_at":"2024-11-11T02:37:51.725Z","updated_at":"2025-04-26T16:31:07.478Z","avatar_url":"https://github.com/mzakharo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# birdnetapp\n\nBirdNET App for Raspberry Pi/BeagleBone\n\n - 24/7 recording from a USB microphone\n - local [BirdNET](https://github.com/kahst/BirdNET-Analyzer) analysis\n - Influx2 Database support\n - Telegram alerts\n - Web App for listening \u0026 visualizing captured audio\n\n- [Grafana](https://grafana.com/get/) visualizing data from Influx2 Database:\n\n\u003cimg src=\"https://github.com/mzakharo/birdnetapp/blob/main/assets/grafana.png\" width=\"850\" height=\"360\"\u003e\n\n- Sample Telegram Notificaiton:\n\n\u003cimg src=\"https://github.com/mzakharo/birdnetapp/blob/main/assets/telegram.png\" width=\"400\" height=\"200\"\u003e\n\n\n- Web App to listen to and visualize recorded content.\n\n\n\u003cimg src=\"https://github.com/mzakharo/birdnetapp/blob/main/assets/home.jpg\" width=\"250\" height=\"500\"\u003e\u003cimg src=\"https://github.com/mzakharo/birdnetapp/blob/main/assets/details.jpg\" width=\"250\" height=\"500\"\u003e\n\n\n## Assumptions\n - User has access to an Influx2 database instance (you can get a free one at [influxdata.com](https://cloud2.influxdata.com/signup))\n - User has a telegram [bot token](https://www.thewindowsclub.com/how-to-create-a-simple-telegram-bot) and a [chat id](https://stackoverflow.com/questions/32423837/telegram-bot-how-to-get-a-group-chat-id)\n\n## Installation\n - cd `$HOME`\n ```bash\n git clone --recurse-submodules https://github.com/mzakharo/birdnetapp.git\n ```\n - Copy `config.example.yaml` to  `config.yaml`  and fill in the details according to your hardware and environment\n\n\n ### Optional: reduce SD card wear\n - setup `/tmp` as ramdisk:\n```bash\nsudo cp /usr/share/systemd/tmp.mount /etc/systemd/system/tmp.mount\nsudo systemctl enable tmp.mount\nsudo systemctl start tmp.mount\n```\n - Disable rsyslog  `sudo apt remove rsyslog`\n - Move journal to ram edit `/etc/systemd/journald.conf`:\n ```\n Storage=volatile\nRuntimeMaxUse=64M\n```\n - `sudo systemctl restart systemd-journald`\n\n## Installation (continued.)\n\n - Install requirements via `sudo apt install sox ffmpeg libasound2-dev`\n - for Beaglebone: Use BirdNET-Analyzer @ `5b6d1c3`. As this is the last model that is fast enough for this platform\n - for BeagleBone: `sudo apt instal llvm-dev libatlas-base-dev libsndfile1`\n - for BeagleBone: `pip3 install numba==0.56.4`\n - for BeagleBone: `pip3 install beaglebone/tflite_runtime-2.16.0-cp39-cp39-linux_armv7l.whl`\n - Install dependencies via `pip3 install -r requirements.txt`\n - Run the server:  `cd $HOME/birdnetapp/BirdNET-Analyzer \u0026\u0026 python3 server.py`\n - Run the app: `cd $HOME/birdnetapp \u0026\u0026 python3 main.py`\n\n - Optional: install systemd services to run on startup via `birdnet_main.service` and `birdnet_server.service`\n  ```\nsudo cp birdnet_server@.service  /lib/systemd/system/\nsudo cp birdnet_main@.service  /lib/systemd/system/\nsudo systemctl daemon-reload\nsudo systemctl enable birdnet_server@$USER.service \nsudo systemctl start birdnet_server@$USER.service \nsudo systemctl status birdnet_server@$USER.service\nsudo systemctl enable birdnet_main@$USER.service \nsudo systemctl start birdnet_main@$USER.service \nsudo systemctl status birdnet_main@$USER.service \n  ```\n\n ## Web App \n  - install deps in system: `sudo pip3 install flask tzlocal gunicorn`\n  - Serve the Web App by running `./flask.sh` \n  - Optional: install a systemd service file to run on startup via `birdnet_app@.service`\n\n  ## Influx Query for the Bar Gauge Grafana Widget \n ```influx\n  from(bucket: \"main\")\n  |\u003e range(start: v.timeRangeStart, stop: v.timeRangeStop)\n  |\u003e filter(fn: (r) =\u003e r[\"_measurement\"] == \"birdnet\")\n  |\u003e count()\n  |\u003e group()\n  |\u003e sort(desc:true)\n  |\u003e keep(columns: [\"_field\", \"_value\"])\n  |\u003e rename(columns: { _value: \"\"})\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmzakharo%2Fbirdnetapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmzakharo%2Fbirdnetapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmzakharo%2Fbirdnetapp/lists"}