TapHome

Weathercloud

Packet Parser → HTTP
Eingereicht von
Zuletzt aktualisiert: 03. 2026
Weathercloud

Weathercloud ist eine cloudbasierte Wetterdatenplattform mit einem globalen Netzwerk von über 100.000 privaten Wetterstationen. TapHome verbindet sich über ein HTTP Packet Parser Template mit Weathercloud und ruft aktuelle Wetterdaten von der internen Web-API der Plattform ab. Die Integration ist schreibgeschützt — alle 14 Geräte im Template sind Sensoren, die Wetterdaten einer verknüpften Station anzeigen.

Diese Integration verwendet eine inoffizielle, per Reverse Engineering ermittelte API (die internen Endpunkte der Weathercloud-Webanwendung). Weathercloud bietet keine öffentliche API zum Datenabruf an. Die Endpunkte können ohne Vorankündigung geändert oder gesperrt werden.

Konfiguration

Geben Sie beim Template-Import die Device ID ein — eine zehnstellige Zahl, die die Wetterstation bei Weathercloud identifiziert. Das Template verwendet diese ID für Abfragen an app.weathercloud.net/device/values?code={DeviceID}.

Device ID ermitteln
  1. Melden Sie sich beim Weathercloud-Konto auf weathercloud.net an
  2. Öffnen Sie die Seite Devices im Profilmenü
  3. Klicken Sie auf das Settings-Symbol (Zahnrad) beim Zielgerät
  4. Wählen Sie Link device — die Weathercloud ID ist die benötigte Device ID

Die Weathercloud-API erfordert ein Session-Cookie zur Authentifizierung. Das Template sendet mit jeder Anfrage einen cookie-Header. So erhalten Sie ein gültiges Session-Cookie:

  1. Melden Sie sich bei app.weathercloud.net im Browser an
  2. Öffnen Sie die Browser-Entwicklertools (F12) und prüfen Sie die Anfrage-Header
  3. Kopieren Sie den vollständigen cookie-Wert aus einer beliebigen Anfrage an app.weathercloud.net
  4. Ersetzen Sie den Platzhalter COOKIE im Read-Script des Templates durch den tatsächlichen Cookie-String

Session-Cookies laufen nach einer Inaktivitätsperiode ab. Wenn die Integration keine Daten mehr liefert, authentifizieren Sie sich erneut und aktualisieren Sie den Cookie-Wert in TapHome.

Gerätefunktionen

Das Template stellt 14 schreibgeschützte Geräte bereit, die Felder aus einer einzigen JSON-Antwort auswerten. Alle Geräte nutzen denselben HTTP-Polling-Mechanismus mit einem Intervall von 15 Sekunden (UV Index fragt alle 2,5 Sekunden ab). Jedes Read-Script enthält Fehlerbehandlung — wenn die Antwort null ist oder "error" enthält, gibt das Gerät NaN zurück.

Temperatur und Luftfeuchtigkeit
  • Temperature & Humidity — Außentemperatur in °C und relative Luftfeuchtigkeit. Die Luftfeuchtigkeit wird in der API als 0–100 gemeldet und vom Template in ein Verhältnis von 0–1 umgerechnet.
  • Dew Point — Taupunkttemperatur in °C
  • Wind Chill — gefühlte Temperatur unter Berücksichtigung des Windkühleffekts, in °C. Optional — nicht alle Stationen melden Wind Chill.
Windmessungen
  • Wind Speed — aktuelle Windgeschwindigkeit, umgerechnet von m/s in km/h (Multiplikation mit 3,6)
  • Average Wind Speed — durchschnittliche Windgeschwindigkeit über das Meldeintervall der Station, umgerechnet von m/s in km/h
  • Wind Gust — Spitzenwindgeschwindigkeit, umgerechnet von m/s in km/h
  • Wind Direction — aktuelle Windrichtung in Grad (0–360)
  • Average Wind Direction — durchschnittliche Windrichtung in Grad
Niederschlag
  • Rain Rate — aktuelle Niederschlagsintensität in mm/h
  • Rainfall Today — kumulierter Niederschlag seit Mitternacht in mm
Atmosphärische und solare Daten
  • Atmospheric Pressure — Luftdruck in hPa
  • Solar Radiation — Sonneneinstrahlung in W/m². Optional — nur bei Stationen mit Sonnenstrahlungssensor verfügbar.
  • UV Index — UV-Strahlungsniveau als Mehrwertanzeige mit 10 benannten Stufen: 0–1 Low, 2–3 Medium, 4–5 Medium High, 6–7 High, 8–9 Very High. Optional — erfordert einen UV-Sensor an der Station.
Datenaktualität
  • Last Update Time — Unix-Zeitstempel (Sekunden) des letzten Datenuploads von der Wetterstation. Nützlich zur Überprüfung, ob die Station aktiv meldet.
Weitere Möglichkeiten

Die Weathercloud-API liefert außerdem Hitzeindex, Temperatur-Feuchte-Wind-Index (THW), Sichtweite, sekundäre Temperatur- und Feuchtigkeitssensoren sowie Innenraum-Messwerte (Temperatur, Luftfeuchtigkeit, Taupunkt, Hitzeindex — nur für den Stationsbesitzer verfügbar). Diese können in einem zukünftigen Template-Update ergänzt werden.

Fehlerbehebung

Daten werden nicht aktualisiert
  1. Prüfen Sie den Wert von Last Update Time — wenn er nicht fortschreitet, hat die Wetterstation den Upload zu Weathercloud eingestellt
  2. Überprüfen Sie, ob die Station auf app.weathercloud.net online ist — suchen Sie nach der Device ID und prüfen Sie den Zeitstempel der letzten Aktualisierung
  3. Kostenlose Weathercloud-Konten aktualisieren alle 10 Minuten. Obwohl TapHome alle 15 Sekunden abfragt, erscheinen neue Daten erst im Upload-Intervall der Station.
Alle Werte zeigen NaN
  1. Bestätigen Sie, dass die Device ID korrekt ist — es muss die zehnstellige Zahl aus den Weathercloud-Einstellungen „Link device" sein, nicht der Stationsname
  2. Prüfen Sie den cookie-Wert im Read-Script des Templates. Wenn die Session abgelaufen ist, gibt die API einen Fehler zurück und alle Geräte zeigen NaN. Authentifizieren Sie sich erneut und aktualisieren Sie das Cookie.
  3. Überprüfen Sie, ob die Station existiert und auf Weathercloud öffentlich zugänglich ist — private Stationen erfordern möglicherweise eine Authentifizierung durch den Besitzer
Einige Sensoren zeigen NaN, während andere funktionieren

Nicht alle Wetterstationen haben dieselben Sensoren. Felder wie Sonnenstrahlung (solarrad), UV-Index (uvi) und Wind Chill (chill) sind optional und hängen von der physischen Ausstattung der Station ab. Wenn die Station ein Feld nicht meldet, lässt die API es aus und das Template gibt für dieses Gerät NaN zurück.

Das Abfrageintervall des Templates beträgt 15 Sekunden, aber die Weathercloud-Daten werden nur im Upload-Intervall der Station aktualisiert (10 Minuten für kostenlose Konten, 1 Minute für kostenpflichtige). Häufigeres Abfragen liefert keine neueren Daten — es bestätigt nur den zuletzt verfügbaren Messwert.

Verfügbare Geräte

WeatherCloud Modul
Benutzerdefinierte Variablen
code (string)WeatherCloud station device ID used in API request URL (set during import)

WeatherCloud

Lesen (Modul)
#documentation https://github.com/maxime-mrl/weathercloud-js/blob/main/api-documentation.md#api-documentation
VAR request := HTTPREQUEST("/device/values?code=" + code, "GET");
request.Headers := { "Content-Type: application/x-www-form-urlencoded; charset=UTF-8", "X-Requested-With: XMLHttpRequest", "cookie: COOKIE"};
request.Method := "GET";
VAR response := SENDHTTPREQUEST(request);


IF response.IsSuccess
    VAR content := response.Content;
    responseJson := content;
    END
Durchschnittliche Windrichtung Variable Nur lesen
numeric Einheit: ° json_path

Durchschnittliche Windrichtung

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wdiravg"))
Durchschnittliche Windgeschwindigkeit Variable Nur lesen

Durchschnittliche Windgeschwindigkeit über das Meldeintervall der Station — umgerechnet von m/s in km/h

numeric Einheit: km/h json_path

Durchschnittliche Windgeschwindigkeit

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wspdavg")*3.6)
Temperatur & Luftfeuchtigkeit Temperatursensor Nur lesen

Außentemperatur (°C) und relative Luftfeuchtigkeit von der Wetterstation

numeric Einheit: °C / % json_path

Temperatur & Luftfeuchtigkeit

Luftfeuchtigkeit lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"hum")/100)
Temperatur lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"temp"))
Taupunkt Variable Nur lesen
numeric Einheit: °C json_path

Taupunkt

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"dew"))
Luftdruck Variable Nur lesen
numeric Einheit: hPa json_path

Luftdruck

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"bar"))
Niederschlagsintensität Variable Nur lesen
numeric Einheit: mm/h json_path

Niederschlagsintensität

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"rainrate"))
Niederschlag heute Variable Nur lesen
numeric Einheit: mm json_path

Niederschlag heute

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"rain"))
Sonnenstrahlung Variable Nur lesen

Sonneneinstrahlung in W/m² — nur bei Stationen mit Sonnenstrahlungssensor verfügbar

numeric Einheit: W/m² json_path

Sonnenstrahlung

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"solarrad"))
Letzte Aktualisierung Variable Nur lesen

Unix-Zeitstempel des letzten Datenuploads von der Wetterstation — nützlich zur Überprüfung der Stationsaktivität

numeric json_path

Letzte Aktualisierung

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"epoch"))
UV-Index Mehrwertschalter Nur lesen

UV-Strahlungsniveau — 0-1 Niedrig, 2-3 Mittel, 4-5 Mittel-Hoch, 6-7 Hoch, 8-9 Sehr hoch

integer multi_value
Werte / Zustände: 0 - Low · 1 - Low · 2 - Medium · 3 - Medium · 4 - Medium High · 5 - Medium High · 6 - High · 7 - High · 8 - Very High · 9 - Very High

UV-Index

Schaltzustand lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, round(PARSEJSON(responseJson,"uvi")))
Windrichtung Variable Nur lesen
numeric Einheit: ° json_path

Windrichtung

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wdir"))
Windböe Variable Nur lesen

Spitzenwindgeschwindigkeit — umgerechnet von m/s in km/h

numeric Einheit: km/h json_path

Windböe

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wspdhi")*3.6)
Windkühle Variable Nur lesen

Gefühlte Temperatur unter Berücksichtigung des Windkühleffekts — nicht alle Stationen melden diesen Wert

numeric Einheit: °C json_path

Windkühle

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"chill"))
Windgeschwindigkeit Variable Nur lesen

Aktuelle Windgeschwindigkeit — umgerechnet von m/s in km/h

numeric Einheit: km/h json_path

Windgeschwindigkeit

Lesen
IF(ISNULL(responseJson) | responseJson = "error", NaN, PARSEJSON(responseJson,"wspd")*3.6)
Verbindung: Packet Parser → HTTP
Mögliche Verbesserungen (9)
  • Heat Index — Perceived temperature accounting for humidity. Optional field, unit °C.
  • Temperature-Humidity-Wind Index — Combined feel-like index considering temperature, humidity, and wind. Optional field, unit °C.
  • Visibility — Visibility in 100m units (divide by 100 for km). Optional field.
  • Secondary Temperature — Secondary temperature sensor reading. Optional field, unit °C.
  • Secondary Humidity — Secondary humidity sensor reading. Optional field, unit %.
  • Indoor Temperature — Indoor temperature — requires owner authentication. Unit °C.
  • Indoor Humidity — Indoor humidity — requires owner authentication. Unit %.
  • Indoor Dew Point — Indoor dew point — requires owner authentication. Unit °C.
  • Indoor Heat Index — Indoor heat index — requires owner authentication. Unit °C.

Quellen

  • Weathercloud API Documentation (unofficial, reverse-engineered)
    github.com 2026-03-28
  • Weathercloud FAQ & Setup Guide