Connect to BirdWeather to get detections and species name

Get detections and species names from BirdWeather using the token provided by Tim as the BirdWeather ID

Inspired and adapted from https://becausebirds.com/project-track-backyard-birds-on-a-digital-counter/

My BirdNET-Pi installation has been running since February 2023 and has picked up a lot of great detections and recordings. The station logs all the data locally, but you can optionally submit your detections to BirdWeather. BirdWeather’s API makes this project possible as it lets you request the data needed for the display.

This flow uses the API to get the detection number of the last 24 hours and the name of the last detected species and transmit it to your MQTTP broker for display later or storage in a database.

[{"id":"56f468673944b324","type":"tab","label":"Flow 3","disabled":false,"info":"","env":[]},{"id":"8e32e0382db875c3","type":"http request","z":"56f468673944b324","name":"bird detections","method":"GET","ret":"obj","paytoqs":"ignore","url":"https://app.birdweather.com/api/v1/stations/[USE YOUR KEY]/stats","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":200,"y":260,"wires":[["281c9adbe5a011d9"]]},{"id":"281c9adbe5a011d9","type":"change","z":"56f468673944b324","name":"birds","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.detections","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":350,"y":260,"wires":[["2090b0a782354ac5","f951e3003ee751d9"]]},{"id":"2090b0a782354ac5","type":"mqtt out","z":"56f468673944b324","name":"","topic":"detections","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"5fc6518ec7e47158","x":510,"y":260,"wires":[]},{"id":"b238ebdf4f5f3ca0","type":"debug","z":"56f468673944b324","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":710,"y":440,"wires":[]},{"id":"86d444c5e1aef56c","type":"mqtt in","z":"56f468673944b324","name":"","topic":"detections","qos":"2","datatype":"auto-detect","broker":"5fc6518ec7e47158","nl":false,"rap":false,"inputs":0,"x":500,"y":400,"wires":[["b238ebdf4f5f3ca0"]]},{"id":"f951e3003ee751d9","type":"delay","z":"56f468673944b324","name":"","pauseType":"delay","timeout":"15","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":480,"y":180,"wires":[["901a2bc49bfb7009"]]},{"id":"854a6c824d711a07","type":"inject","z":"56f468673944b324","name":"start","props":[],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":90,"y":360,"wires":[["8e32e0382db875c3"]]},{"id":"901a2bc49bfb7009","type":"http request","z":"56f468673944b324","name":"bird species","method":"GET","ret":"obj","paytoqs":"ignore","url":"https://app.birdweather.com/api/v1/stations/[USE YOUR KEY]/detections/?limit=1","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":650,"y":180,"wires":[["1852c5d77724f6d1"]]},{"id":"1852c5d77724f6d1","type":"change","z":"56f468673944b324","name":"birds","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.detections.species.scientificName","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":830,"y":180,"wires":[["7569e633d8a3d9ea","8929c18df3ab77ba"]]},{"id":"7569e633d8a3d9ea","type":"mqtt out","z":"56f468673944b324","name":"","topic":"species","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"5fc6518ec7e47158","x":840,"y":260,"wires":[]},{"id":"ec08e6210645e428","type":"mqtt in","z":"56f468673944b324","name":"","topic":"species","qos":"2","datatype":"auto-detect","broker":"5fc6518ec7e47158","nl":false,"rap":false,"inputs":0,"x":490,"y":460,"wires":[["b238ebdf4f5f3ca0"]]},{"id":"8929c18df3ab77ba","type":"delay","z":"56f468673944b324","name":"","pauseType":"delay","timeout":"45","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":480,"y":80,"wires":[["8e32e0382db875c3"]]},{"id":"6c4ccb9982523789","type":"comment","z":"56f468673944b324","name":"","info":"Adapted from https://becausebirds.com/project-track-backyard-birds-on-a-digital-counter/","x":300,"y":340,"wires":[]},{"id":"5fc6518ec7e47158","type":"mqtt-broker","name":"raspi_mqttp_bird","broker":"192.168.1.59","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}]

Flow Info

Created 1 year ago
Rating: not yet rated

Owner

Actions

Rate:

Node Types

Core
  • change (x2)
  • comment (x1)
  • debug (x1)
  • delay (x2)
  • http request (x2)
  • inject (x1)
  • mqtt in (x2)
  • mqtt out (x2)
  • mqtt-broker (x1)
Other
  • tab (x1)

Tags

  • BirdWeather
  • BirdNetPi
  • MQTTP
Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option