Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: leoherzog/WundergroundStationForwarder
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.7.0
Choose a base ref
...
head repository: leoherzog/WundergroundStationForwarder
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: main
Choose a head ref

Commits on Aug 21, 2024

  1. Copy the full SHA
    90941f1 View commit details

Commits on Sep 16, 2024

  1. Copy the full SHA
    7cb2b81 View commit details
  2. Copy the full SHA
    eda4d06 View commit details
  3. Copy the full SHA
    8534333 View commit details
  4. More Precise Cache Key Name

    leoherzog committed Sep 16, 2024
    Copy the full SHA
    a4d5613 View commit details
  5. Copy the full SHA
    b39404d View commit details
  6. Add MET (UK) WOW Destination

    Closes #27
    leoherzog committed Sep 16, 2024
    Copy the full SHA
    374b0e3 View commit details
  7. Copy the full SHA
    9ee5616 View commit details

Commits on Sep 20, 2024

  1. Copy the full SHA
    5016f55 View commit details

Commits on Oct 8, 2024

  1. Copy the full SHA
    2bc9c12 View commit details
  2. Copy the full SHA
    06ae512 View commit details
  3. Version Bump

    leoherzog committed Oct 8, 2024
    Copy the full SHA
    4e2d64f View commit details

Commits on Nov 15, 2024

  1. Send time of measurement

    vhornik authored Nov 15, 2024
    Copy the full SHA
    f404418 View commit details
  2. Merge pull request #35 from vhornik/main

    Send Time of Measurement to Windguru
    leoherzog authored Nov 15, 2024
    Copy the full SHA
    cbe6333 View commit details
  3. Version Bump

    leoherzog committed Nov 15, 2024
    Copy the full SHA
    4c97a6b View commit details

Commits on Dec 2, 2024

  1. Copy the full SHA
    767b539 View commit details
  2. Copy the full SHA
    8994c94 View commit details

Commits on Dec 14, 2024

  1. Copy the full SHA
    709e7af View commit details
  2. aprs.fi oversight bugfix

    leoherzog committed Dec 14, 2024
    Copy the full SHA
    aabe563 View commit details
  3. Version Bump

    leoherzog committed Dec 14, 2024
    Copy the full SHA
    86e2f7e View commit details

Commits on Dec 15, 2024

  1. Merge pull request #38 from leoherzog/ecowitt

    Add Ecowitt Data Source
    leoherzog authored Dec 15, 2024
    Copy the full SHA
    8bfad85 View commit details

Commits on Dec 24, 2024

  1. Switch from Ecowitt device/real_time API to device/info API

    This gives the same recent readings, but with additional metadata such as station lat/long
    leoherzog committed Dec 24, 2024
    Copy the full SHA
    3356f8b View commit details
  2. Version Bump

    leoherzog committed Dec 24, 2024
    Copy the full SHA
    5c4c4a3 View commit details

Commits on Dec 31, 2024

  1. Calculate Rainfall

    leoherzog committed Dec 31, 2024
    Copy the full SHA
    eb6ba17 View commit details
  2. Copy the full SHA
    ca68e42 View commit details

Commits on Jan 1, 2025

  1. Variable Bugfix

    leoherzog committed Jan 1, 2025
    Copy the full SHA
    4ff648f View commit details
  2. Copy the full SHA
    b8a09e7 View commit details
  3. Copy the full SHA
    149100e View commit details
  4. Add Null Check for OWM

    leoherzog committed Jan 1, 2025
    Copy the full SHA
    c96bf0c View commit details
  5. Copy the full SHA
    159818f View commit details
  6. Copy the full SHA
    ea57c79 View commit details
  7. Version Bump

    leoherzog committed Jan 1, 2025
    Copy the full SHA
    0aec58e View commit details
  8. Merge pull request #42 from leoherzog/acurite-rainfall-fix

    Fix for Acurite Datasource Precipitation Accumulation
    leoherzog authored Jan 1, 2025
    Copy the full SHA
    e207a29 View commit details
  9. Reorganize Windchill Calculators into One Function

    Matches the Heat Index approach
    leoherzog committed Jan 1, 2025
    Copy the full SHA
    cb2c617 View commit details
  10. Version Bump

    leoherzog committed Jan 1, 2025
    Copy the full SHA
    6c95e02 View commit details
  11. Copy the full SHA
    2d963ff View commit details
  12. Version Bump

    leoherzog committed Jan 1, 2025
    Copy the full SHA
    b31fd58 View commit details
  13. Copy the full SHA
    12317c0 View commit details
  14. Copy the full SHA
    d435e2c View commit details
  15. Version Bump

    leoherzog committed Jan 1, 2025
    Copy the full SHA
    7d9c31d View commit details

Commits on Jan 16, 2025

  1. 3
    Copy the full SHA
    7308213 View commit details

Commits on Mar 3, 2025

  1. Copy the full SHA
    6ebb196 View commit details
  2. Version Bump

    leoherzog committed Mar 3, 2025
    Copy the full SHA
    9df0390 View commit details
Showing with 323 additions and 70 deletions.
  1. +53 −29 README.md
  2. +270 −41 code.gs
82 changes: 53 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@ This code is built to be hosted on the free [Google Apps Script](https://develop
- [Davis WeatherLink](https://weatherlink.com/),
- [WeatherFlow Tempest](https://tempestwx.com/),
- [Ambient Weather](https://ambientweather.net/),
- [Ecowitt](https://ecowitt.net/),
- [aprs.fi (CWOP)](https://aprs.fi/), or
- a custom data source in [RTL_433 JSON format](https://www.triq.org/rtl_433/DATA_FORMAT.html),

@@ -17,7 +18,8 @@ and periodically sends it on to
- [Aeris PWSWeather](https://pwsweather.com/),
- [WeatherCloud](https://weathercloud.com/),
- [OpenWeatherMap](https://openweathermap.org/stations),
- [WindGuru](https://www.windguru.cz/map/station/), and/or
- [WindGuru](https://www.windguru.cz/map/station/),
- [MET (UK) WOW](https://wow.metoffice.gov.uk/) and/or
- [NOAA CWOP](https://madis.ncep.noaa.gov/madis_cwop.shtml).

## Setup
@@ -37,7 +39,7 @@ and periodically sends it on to

- Set the `datasource` to `ibm` on line 10
- Set your `ibmAPIKey` on line 12
- Set your `ibmStationId` on line 13
- Set your `ibmStationID` on line 13
</details>
<details>
<summary>MyAcurite</summary>
@@ -67,7 +69,7 @@ and periodically sends it on to

- Set the `datasource` to `weatherflow` on Line 10
- Set your `weatherflowPUT` on line 24
- Set your `weatherflowSationId` on Line 25
- Set your `weatherflowSationID` on Line 25
</details>
<details>
<summary>Ambient Weather</summary>
@@ -78,22 +80,32 @@ and periodically sends it on to
- Set your `ambientWeatherStationName` on line 27
- Set your `ambientWeatherApiKey` on Line 28
</details>
<details>
<summary>Ecowitt</summary>

Uses the [Ecowitt.net](https://www.ecowitt.net/) API.

- Set the `datasource` to `ecowitt` on Line 10
- Set your `ecowittAPIKey` from your [Ecowitt.net Private Center](https://www.ecowitt.net/home/user) on Line 30
- Set your `ecowittApplicationKey` from your [Ecowitt.net Private Center](https://www.ecowitt.net/home/user) on Line 32
- Set your `ecowittMacAddress` (find in your [Device List](https://www.ecowitt.net/home/manage)) on Line 32
</details>
<details>
<summary>aprs.fi (CWOP)</summary>

Uses the [aprs.fi API](https://aprs.fi/page/api) to fetch APRS packet data from a CWOP station.

- Set the `datasource` to `aprs` on Line 10
- Set your `aprsStationID` on line 30
- Set your `aprsApiKey` on Line 31 from [your aprs.fi account](https://aprs.fi/account/)
- Set your `aprsStationID` on line 34
- Set your `aprsApiKey` on Line 35 from [your aprs.fi account](https://aprs.fi/account/)
</details>
<details>
<summary>Custom Data Source</summary>

Send weather station readings from any system in [RTL_433 JSON format](https://www.triq.org/rtl_433/DATA_FORMAT.html).

- Set the `datasource` to `custom` on Line 10
- Set your station's latitude and longitude on lines 33 and 34 in decimal degrees
- Set your station's latitude and longitude on lines 37 and 38 in decimal degrees
- Click `Deploy ▼` → New deployment → '⚙' → Web app, and change 'Who has access' to 'Anyone' and press 'Deploy'
- Begin HTTP POSTing JSON data to the `https://script.google.com/macros/...` URL provided in the confirmation dialog
</details>
@@ -105,27 +117,28 @@ and periodically sends it on to

To send to [Wunderground](https://support.weather.com/s/article/PWS-Upload-Protocol):

- Set `updateWunderground` to `true` on Line 38
- Set your `wundergroundAPIKey` on Line 39
- Set your `wundergroundStationId` on line 40
Your Station ID and Station Keys are on [your Wunderground Stations list](https://www.wunderground.com/member/devices).
- Set `updateWunderground` to `true` on Line 42
- Set your `wundergroundStationID` on Line 43
- Set your `wundergroundStationKey` on line 44
</details>
<details>
<summary>Windy.com</summary>

To send to [Windy.com](https://community.windy.com/topic/8168/report-your-weather-station-data-to-windy):

- Set `updateWindy` to `true` on Line 42
- Set your `windyAPIKey` on Line 43
- Set your `windyStationId` on line 44. It's likely `0`, `1`, `2`, etc.
- Set `updateWindy` to `true` on Line 46
- Set your `windyAPIKey` on Line 47
- Set your `windyStationID` on line 48. It's likely `0`, `1`, `2`, etc.
</details>
<details>
<summary>Aeris PWSWeather</summary>

To send to [PWSWeather](https://dashboard.pwsweather.com/):

- Set `updatePWSWeather` to `true` on Line 46
- Set your `pwsWeatherAPIKey` from your station's profile page on line 47
- Set your `pwsWeatherStationID` on Line 48
- Set `updatePWSWeather` to `true` on Line 50
- Set your `pwsWeatherAPIKey` from your station's profile page on line 51
- Set your `pwsWeatherStationID` on Line 52
</details>
<details>
<summary>WeatherCloud</summary>
@@ -134,19 +147,19 @@ and periodically sends it on to

Retrieve your station's ID and API Key by going to [your Devices](https://app.weathercloud.net/devices), then clicking Settings → 🔌 Link on your station.

- Set `updateWeatherCloud` to `true` on Line 50
- Set your `weathercloudAPIKey` on Line 51
- Set your `weathercloudID` on Line 52
- Set whether or not you have a WeatherCloud Pro or Premium account with `hasWeatherCloudPro` as `true` or `false` on line 53
- Set `updateWeatherCloud` to `true` on Line 54
- Set your `weathercloudAPIKey` on Line 55
- Set your `weathercloudID` on Line 56
- Set whether or not you have a WeatherCloud Pro or Premium account with `hasWeatherCloudPro` as `true` or `false` on line 57
</details>
<details>
<summary>OpenWeatherMap</summary>

Creation of a new OpenWeatherMap station must be done by API, not on the OpenWeatherMap website. More information is available in [the OpenWeatherMap Station API documentation](https://openweathermap.org/stations#create_station). The basic concept for what must be done is available in the `createNewOWMStation_()` function. Remove the `_` character from the name of that function to make it selectable from the `▷ Run` button in the toolbar. If you do so, make sure you note your new station's ID and other details in the log (available in the Executions tab in the sidebar after running!), then:

- Set `updateOpenWeatherMap` to `true` on Line 55
- Set `openWeatherMapAPIKey` to your [API Key](https://home.openweathermap.org/api_keys) on Line 56
- Set your `openWeatherMapStationId` to [your OpenWeatherMap station's `external_id`](https://openweathermap.org/stations#create_station) on line 57
- Set `updateOpenWeatherMap` to `true` on Line 59
- Set `openWeatherMapAPIKey` to your [API Key](https://home.openweathermap.org/api_keys) on Line 60
- Set your `openWeatherMapStationId` to [your OpenWeatherMap station's `external_id`](https://openweathermap.org/stations#create_station) on line 61
</details>
<details>
<summary>WindGuru</summary>
@@ -155,21 +168,32 @@ and periodically sends it on to

Start by [registering a new "Other / Upload API" station](https://stations.windguru.cz/register.php?id_type=16), then:

- Set `updateWindGuru` to `true` on Line 59
- Set `windGuruStationUID` to your chosen [station UID](https://stations.windguru.cz/) on Line 60
- Set your `windGuruStationPassword` to your chosen [station API password](https://stations.windguru.cz/) (note, not your _account's_ password) on line 61
- Set `updateWindGuru` to `true` on Line 63
- Set `windGuruStationUID` to your chosen [station UID](https://stations.windguru.cz/) on Line 64
- Set your `windGuruStationPassword` to your chosen [station API password](https://stations.windguru.cz/) (note, not your _account's_ password) on line 65
</details>
<details>
<summary>Met (UK) WOW</summary>

Send to [The Met Office's Weather Observations Website](https://wow.metoffice.gov.uk/):

Start by [registering a new Site](https://wow.metoffice.gov.uk/sites/create). During registration, one of the fields in your Site's options is "Authentication Key". Choose any 6-Digit number. Then:

- Set `updateWOW` to `true` on Line 67
- Set `wowSiteID` to the generated [Site ID](https://wow.metoffice.gov.uk/sites) on Line 68
- Set `wowAuthKey` to your chosen [6-Digit Authentication Key](https://wow.metoffice.gov.uk/sites) that you chose when creating or editing the Site on line 69
</details>
<details>
<summary>NOAA Citizen Weather Observer Program (CWOP)</summary>

Send to [CWOP](https://madis.ncep.noaa.gov/madis_cwop.shtml). Start by [registering for a new station](https://madis.ncep.noaa.gov/madis_cwop.shtml), then when you receive your email:

- Set `updateCWOP` to `true` on Line 63
- Set `cwopStationIDOrHamCallsign` to your assigned CWOP station ID that you received via email on Line 64
- If you are using your ham radio callsign as your station ID and you have received a validation code from NOAA CWOP support, set `cwopValidationCode` to your validation code on Line 65
- Set `updateCWOP` to `true` on Line 71
- Set `cwopStationIDOrHamCallsign` to your assigned CWOP station ID that you received via email on Line 72
- If you are using your ham radio callsign as your station ID and you have received a validation code from NOAA CWOP support, set `cwopValidationCode` to your validation code on Line 73
</details>

4. Run the "Schedule" function with the `▷ Run` button in the toolbar. You're done! You can see it periodically running in the `☰▶` Executions tab on the left sidebar. This code is executed on Google's servers and does not require a computer to remain on.
4. Run the "Schedule" function (not the "doPost" function) by selecting "Schedule" in the dropdown and pressing the `▷ Run` button in the toolbar. You're done! You can see it periodically running in the `☰▶` Executions tab on the left sidebar. This code is executed on Google's servers and does not require a computer to remain on.

If you ever make changes to the API keys or enabled services, just run the **Schedule** function again.

Loading