Bureau of Meteorology weather data
Overview
- The aim of this lesson is to learn how to retrieve weather data from the Bureau of Meteorology (BOM) using an API (Application Programming Interface).
- An API is simply a URL that will automatically request data from a server.
- In this example we will extract rain data from the daily weather forecast.
- The daily weather forecast includes rain forecast data up to 7 days in advance.
- We will use this data for our smart rainwater tank.
- Smart rainwater tanks need to know rain events up to 7 days in advance so that they can discharge tank water before a storm arrives.
Learning Objectives
- Learn how to use the Developer tools in a Web Browser to find an API
- Learn how to use an API with HTTP Request node in Node-Red
- Learn how to extract data from a larger data sets using the function node
- Learn how to prepare data for a chart node
Obtaining BOM rain forecast data
- This lesson will demonstrate how to extract data from the Bureau of Meterology using an API (Application Programming Interface).
Find Bureau of Meteorology API for daily weather forecast data
- Open a Web Browser.
- Enter the search term weather.bom.gov.au
- Select Melbourne VIC as the weather location.
- Ensure that Development Tools is selected under Preferences for your Browser settings.
- Under the Develop menu select Connect Web Inspector.
- This will open up an addition window to show some of the inner-workings of the web page.
- In the Development Tools window click on the Network Tab.
- Refresh the web browser.
- In the window on the left search for a file named daily
- Daily holds data related to current and future weather forecasts including 7 day rain predictions.
- You can scroll in the Previous window to see all the retrieved data presented in JSON format.
- If the mouse hovers over daily the link to the API will appear.
- In this instance it is - https://api.weather.bom.gov.au/v1/locations/r1r0fs/forecasts/daily
- You can copy this link and enter it into a Web Browser to test that it works.
Retrieve BOM data using Node-Red HTTP-In node
- Create a flow in Node-Red using the nodes:
- Inject – timestamp
- http request – this will request data using the daily API
- debug – to display the output of the API in the debug window
- Double click on the HTTP request node and enter the following details.
- To copy the API request from the Web Browser use the right mouse button Copy function.
- Paste the API into notepad or a text editor to ensure that it has copied correctly.
- You may need to paste the API into a text editor on the Raspberry Pi.
- Failing this, enter the API directly.
- Ensure that the Return is a parsed JSON Object
- Give the Name - BOM daily
- Deploy the program then click on the input to the inject node to run the program.
- The output should appear in the debug window on the right.
- Click on the small expansion arrows to show more of the data content.
Collecting Day 0 rain data
- Add a function node and debug node and arrange the nodes as shown below.
- Double click on the function node and enter the following code.
- The code will extract day 0 (zero) max rainfall and place it in the variable rain.
- Name the function node Day 0 (zero) rain
- Deploy the code.
- Clear the Debug window and then click on the inject node to run the program.
- Your output will be different because it will be based on the daily weather forecast.
- This result shows that today (day 0) there will be a maximum of 2.2 mm of rain.
Collecting Day 1 rain data
- Copy the Day 0 rain function node by entering the shortcut Ctrl+C
- Enter Ctrl-V to paste a copy of the node.
- Then double click on the new function node to edit it.












