Stream your weather station into Jumboshack
Push your backyard weather station — temperature, wind, rain, pressure, humidity — into your Jumboshack dashboard. It posts to your account over a simple HTTPS API, so there's no special weather hardware or new software to build: a tiny relay reads your station and forwards the numbers. About 20 minutes.
How it fits together
Weather station ──(WiFi)──► vendor cloud / local gateway
│
weather relay (reads the API, POSTs over HTTPS)
│
ingest.jumboshack.com/api/ingest/weather → your dashboard
Get a WiFi weather station
Any station with a cloud API or a local network gateway works. The common, well-documented ones:
| Station | How you read it | Price |
|---|---|---|
| Ambient Weather (WS-2902 etc.) | Simple REST API (application key + API key). Temp, wind, rain, pressure, humidity, UV, solar. | on Amazon |
| Ecowitt (GW1100 / GW2000 gateways) | Local network API on the gateway and an Ecowitt cloud API — no cloud dependency if you use local. | on Amazon |
| WeatherFlow Tempest | REST + UDP local broadcast. Sonic wind, haptic rain, lightning. | on Amazon |
As an Amazon Associate, Jumboshack earns from qualifying purchases. The links above are affiliate search links — if you buy through them we may earn a small commission at no extra cost to you. Prices are shown on the live listing.
Create a Jumboshack Weather device
In your Account, add a Location if needed, then
add a Device and set its module to weather. Copy the one-time token (jsk_…).
That token ties your station to your account, and its readings appear on your Weather tab.
Run the relay
A small script reads your station and POSTs its readings to
/api/ingest/weather every few minutes. Here it is for Ambient Weather (pure Python,
no dependencies) — schedule it from cron on any always-on box:
# weather-relay.py — Ambient Weather → Jumboshack Weather
import json, urllib.request
from datetime import datetime, timezone
AMBIENT_APP_KEY = "your_application_key" # dashboard.ambientweather.net → API keys
AMBIENT_API_KEY = "your_api_key"
JUMBO_TOKEN = "jsk_your_weather_device_token"
url = f"https://api.ambientweather.net/v1/devices?applicationKey={AMBIENT_APP_KEY}&apiKey={AMBIENT_API_KEY}"
d = json.load(urllib.request.urlopen(url, timeout=15))[0]["lastData"]
# map the station's fields to Jumboshack's weather field names
reading = {"station": "Backyard"}
for src, dst in (("tempf","temp_f"), ("humidity","humidity_pct"), ("windspeedmph","wind_mph"),
("windgustmph","gust_mph"), ("winddir","wind_dir_deg"), ("hourlyrainin","rain_in"),
("baromrelin","pressure_inhg"), ("uv","uv"), ("solarradiation","solar_wm2")):
if d.get(src) is not None:
reading[dst] = float(d[src])
reading["metadata"] = {"time": datetime.now(timezone.utc).isoformat(), "software_version": "weather-relay/1.0"}
req = urllib.request.Request("https://ingest.jumboshack.com/api/ingest/weather",
data=json.dumps(reading).encode(), method="POST",
headers={"Authorization": f"Bearer {JUMBO_TOKEN}", "Content-Type": "application/json"})
print(urllib.request.urlopen(req, timeout=20).read().decode())
Test it once, then schedule every 5 minutes:
# dry run first — validates + echoes what was understood, stores nothing
# (add ?validate=1 to the URL in the script, run once, then remove it)
crontab -e
*/5 * * * * /usr/bin/python3 /home/pi/weather-relay.py > /home/pi/weather.log 2>&1
http://<gateway-ip>/get_livedata_info) or the Ecowitt cloud API and map the fields
the same way. Tempest: use the WeatherFlow REST API. Home Assistant users: if your
station is already in HA, a REST-command automation can POST the same reading JSON to
/api/ingest/weather on a timer — no separate script.
Verify
Within a few minutes, open your Weather tab — each reading shows as a labeled card (with units) and a hover trend of the daily high / low / average.
Supported fields
Send any of these (all optional; units are applied automatically):
temp_f, feels_like_f, dew_point_f, humidity_pct,
wind_mph, gust_mph, wind_dir_deg, rain_in,
rain_rate_inhr, pressure_inhg, uv, solar_wm2,
temp_indoor_f, humidity_indoor_pct. Add "station":"Backyard" to
label a station (or send a stations array for several). Verify with
?validate=1 — it echoes what was understood without storing.
Troubleshooting
401? Wrong token, or the device isn't set to the weather module — re-copy from Account.- Ambient API empty? Give it a minute after generating keys; make sure the station is online in the Ambient app.
- Nothing on the Weather tab? Run the script by hand and check the response is
{"ok":true,…}; confirm the station is reporting.