Others push data to the manufacture’s internet-based service. In either case, the data is usually only publicly available on one or two platforms. This limits the owner’s ability to look at and share the data.
> *Ingalls Weather thanks the support it gets from donors. Please consider making a small donation *> [> at this link](https://ingallswx.com/donate/ )> * to help me pay for the website and access to premium weather data.*
GitHub user leoherzog created a script to automatically pull weather station data from one source to put it into another. Before I get into how to use this, I want to note that I am not very tech savvy at all.
Most things on GitHub are well beyond my abilities to use, but this one was wildly simple even for me. This is the first time I successfully used something I found on GitHub.
The script is called Wunderground Station Forwarder and can be found at [this link](https://github.com/leoherzog/WundergroundStationForwarder ). Despite the name, it can pull from multiple sources and forward to multiple sources:<thead><tr><th class="has-text-align-center" data-align="center">Sources</th><th class="has-text-align-center" data-align="center">Receivers</th></tr></thead><tbody><tr><td class="has-text-align-center" data-align="center">WeatherUnderground</td><td class="has-text-align-center" data-align="center">WeatherUnderground</td></tr><tr><td class="has-text-align-center" data-align="center">MyAcurite</td><td class="has-text-align-center" data-align="center">windy.com</td></tr><tr><td class="has-text-align-center" data-align="center">Davis WeatherLink</td><td class="has-text-align-center" data-align="center">Aeris PWSWeather</td></tr><tr><td class="has-text-align-center" data-align="center">WeatherFlow Tempest</td><td class="has-text-align-center" data-align="center">WeatherCloud</td></tr><tr><td class="has-text-align-center" data-align="center">Ambient Weather</td><td class="has-text-align-center" data-align="center">OpenWeatherMap</td></tr><tr><td class="has-text-align-center" data-align="center">NOAA CWOP</td><td class="has-text-align-center" data-align="center">NOAA CWOP</td></tr><tr><td class="has-text-align-center" data-align="center">Custom RTL_433 JSON</td><td class="has-text-align-center" data-align="center">WindGuru</td></tr><tr><td class="has-text-align-center" data-align="center">——</td><td class="has-text-align-center" data-align="center">MET (UK) WOW</td></tr></tbody>
Even though this script can send to multiple sources, I generally recommend only setting it up to send to NOAA CWOP. CWOP, or the Citizen Weather Observer Program, is the system to get weather stations publicly visible on US National Weather Service websites. Placing it on CWOP also makes it visible on other websites in the receivers list, including Windy (seen in the featured image).
My good friend [Joey Only](https://www.youtube.com/@JoeyOnly ) up in Wells, British Columbia recently had a weather station donated to him. Since I don’t have my own, I asked if he would be willing to be my guinea pig for using this script.
Joey’s weather station is set up to send data to WeatherUnderground. We have successfully set up the script to send from WeatherUnderground to CWOP. This tutorial will cover doing that because that’s how I did it, but the instructions are pretty similar to pull from other sources.###
Script setupScreenshot of the copied script in a new Google Script project. (Google)The GitHub script is meant to be copied and pasted into a new project in Google Scripts found at [this link](https://script.google.com/ ) using the user’s Google login. I did this on a desktop computer and don’t know how well it would work on mobile.
From there, just create a new project and copy the code over from GitHub into the new project’s Code.gs file. The result should look like the screenshot above.####
Configure receiving dataThe code updated to pull from IBM/WeatherUnderground with Joey’s API key and station ID redacted. (Google)Since we pulled Joey’s station data from WeatherUnderground, we changed line 10 to:<code>const datasource = 'ibm'</code>
This tells the script that it will be looking for the WeatherUnderground API key and station ID from lines 12 and 13. For other sources, use the relevant identifier provided in the comment (gray text) in line 10. Some take a login, others take an API. The necessary data for your source can be found in one of the sections contained in lines 12 to 34.
All WeatherUnderground users who send data to their service can get an API key from them for free that is compatible with this script. You can do this following the instructions [at this link](https://www.wunderground.com/member/api-keys ). Once you have the key, copy and paste it between the quotes in line 12 and paste your individual station ID between the quotes in line 13.
Your station’s latitude, longitude, and elevation are part of the data that comes over from the source. There is no need to put that into the script unless you are pulling from a custom JSON feed.
The script can only pull data from one source at a time.###
Configure sending dataThe sending data section of the script with changes made to lines 67 and 68. Joey’s CWOP ID is partially omitted. (Google)Next we tell the script where we want to send the data to. As noted above, I opted to only send this data to CWOP because many of the other sources included pull from CWOP. Joey was especially interested in Windy, which is one of the ones that uses CWOP among other sites.
We changed line 67 so the script knows we want to send to CWOP’s system so that it says:<code>const updateCWOP = true;</code>
Next we needed to acquire a CWOP site ID. To do this, register at [this NOAA link](https://madis.ncep.noaa.gov/cwop_signup.shtml ). These registrations are reviewed by a human so it can take a few hours to a couple days to get your site ID. Once you have it, update line 68 to have your six-character (two letters, four numbers) station ID within the quotes.
I don’t really know what line 69 does. I didn’t change it from null and the script is working fine.
The email from CWOP giving you your station ID will also instruct you to email them back once your data is flowing into their system to confirm the location is accurate and that it looks like it is flowing smoothly. After that, they will enter it into the database and it will begin appearing on weather maps like the [Synoptic Data Viewer](https://viewer.synopticdata.com/ ).
The script can send to multiple recipients at once, though I recommend starting with CWOP and if you want to add more about a week after it is published on CWOP you can revisit it to see what’s missing.###
Send data and confirm it is correctThe Executions page showing the action the script is taking to acquire Joey’s data and send it to CWOP. (Google)Once you have followed the steps above, click the **▷ Run** button at the top and it should be all set. From there, open the left sidebar and click **Executions**. This is the page where you will see the actions the script is taking. It will start blank or with one or two lines, but it will fill up over time.
The script pulls from Weather Underground every minute and pushes out to CWOP every five minutes.
Next we want to confirm the data is making it to CWOP. Since it won’t be on any weather maps until you confirm the location by email, I think the best way to do this is wait for about ten minutes after clicking run and then heading over to [aprs.fi](https://aprs.fi ).
APRS is a ham radio tool for tracking stations and sending messages. CWOP originally started through this system and has since expanded to include internet-only stations.
[](https://aprs.fi )The aprs.fi page showing Joey’s station location and current weather conditions. (aprs.fi)On the top right side of [aprs.fi](https://aprs.fi ), enter your CWOP site ID into the **Track callsign** section and click **search**. It should move the map to your station location and present your latest weather conditions. Zoom in to ensure the location is reasonably accurate, if it isn’t you will need to fix it on the original source.
On aprs.fi, you can also click **show weather charts** to see more detailed data on what the system is receiving from your weather station. You can also confirm your station’s location and configuration using the info in the email from CWOP but I prefer this site. Once you have confirmed this, don’t forget to email back the people at CWOP.###
Seeing your data on weather mapsA map showing temperatures at various weather stations in the B.C. Cariboo region with Joey’s station circled. (Synoptic)It will take time for your weather data to get to weather maps that pull from CWOP. A human updates their database once a week. From there it takes time for services pulling from CWOP to update their maps.
When we set up Joey’s station in October 2024 it took a couple hours after it was put into the database to reach the Synoptic Data Viewer (screenshot above). It took the same amount of time to get to the National Weather Service Weather and Hazards Viewer but it didn’t reach Windy until the next day.
Because the Google Script runs continuously on Google’s cloud, you don’t need to be running your own computer 24/7 for it to work.
If you are looking for a weather station to buy for your home, I recommend the Tempest Weather System. It is simple to set up and maintain with no moving parts and good accuracy. You can head over to their store at [this link](https://shop.tempest.earth/?ref=ingalls ) and get 10% off using the code **WEATHER10** at checkout.<a href="#8d4fe299-f410-4b24-848a-f9fb90c4c573" id="8d4fe299-f410-4b24-848a-f9fb90c4c573-link">1</a>
[Subscribe](https://ingallswx.com/?post_type=post&p=4712 )
*The featured image is the National Weather Service display of data it is receiving from Joey’s weather station via the script. (NOAA)*<li id="8d4fe299-f410-4b24-848a-f9fb90c4c573">Note that I get a small commission from Tempest purchases using my link and/or the coupon code WEATHER10. That said, I would not have joined their program if I didn’t like the product. <a href="#8d4fe299-f410-4b24-848a-f9fb90c4c573-link">↩︎</a></li>
https://ingallswx.com/2024/10/31/simple-guide-to-forward-your-weather-station-data-to-multiple-sites-online/
#GitHub #Weather
