r/homeassistant • u/xDaftTurtle • 4h ago
๐ผ๏ธ Show & Tell I turned my security cameras into a backyard bird counter with BirdNET-Go, and put the results on e-ink frames
Left: a Seeed EE02 in a custom frame, showing everything heard today as a specimen sheet. Right: an OpenPaper 7 showing the latest bird as a folio plate.
My cameras already had microphones, so I wondered whether I could use their audio to find out which birds visit the garden. It turns out you can, and it works really well!
The audio side
- BirdNET-Go runs as a Home Assistant App on my pi4 8GB. It's a Go port of BirdNET, the bird-call model from the Cornell Lab of Ornithology, and it runs fully locally. No audio leaves the house.
- Instead of a USB mic, it listens to the RTSP streams from my cameras, which are generic HiLook/Hikvision models blocked from the internet. In BirdNET-Go's audio settings you add each stream URL, for these cameras
rtsp://user:pass@camera-ip:554/Streaming/Channels/101(or102for the sub-stream), and it pulls the audio from each one. I'm using 2 cameras, (front yard and backyard).
The display side
I wanted something nicer than a list in a dashboard, so I wrote a widget for Tesserae, my self-hosted e-ink dashboard project. It reads BirdNET-Go's API and shows today's birds in a few ways:
- a field log with times and call counts
- a day chart of who called in which hour
- a "latest visitor" page
- a full-bleed plate of the last bird heard, with caption styles like the folio plate on the right, a museum label, cyanotype, postage stamp, woodblock print and cameo
- a cluster of everything heard today, printed like a page from an old field guide: the specimen sheet on the left, or a numbered plate with a key, a wreath, a field notebook with taped-in birds, or a museum specimen drawer
The pictures are public-domain plates by Gould, Audubon, Lear and others where one exists for the species. Optionally, fal.ai paints the missing birds in a style you pick, at about US$0.04 a bird; the ones in the photo are painted as watercolours after Audubon. Each bird is painted once and kept, and a page in Tesserae lets you repaint, restore or delete them. It works on colour, greyscale and black-and-white panels.
If you don't have BirdNET-Go yet, the widget runs a demo garden for your location, so you can see the layouts first.
- Tesserae: https://github.com/dmellok/tesserae
- Website: [https://tesserae.ink](tesserae.ink)
- Bird widget: https://github.com/dmellok/tesserae-widget-backyard-birds
- BirdNET-Go: https://github.com/tphakala/birdnet-go
The specimen-sheet look is inspired by Fugleramme by Arne Giacomo, a dedicated BirdNET-Go bird frame for the Raspberry Pi with hand-cut 1800s illustrations. It's worth a look if you want a standalone frame.
Happy to answer questions about the camera audio setup. I'm sure there are better ways to tune it, and I'd love to hear what's worked for others.