[Testversion] GeoSphereAPI für Weather – Wetterdaten für Österreich

Begonnen von 50watt, 18 Oktober 2026, 19:04:24

Vorheriges Thema - Nächstes Thema

50watt

Hier eine neue API-Anbindung für das FHEM-Weather-Modul. Ich freue mich über weitere Tester.

GeoSphereAPI bringt österreichische Stationsmesswerte, Stundenprognosen und daraus abgeleitete Tagesprognosen, einen 15-Minuten-Niederschlagsnowcast und standortbezogene Wetterwarnungen in FHEM. Die Nutzung erfolgt ohne API-Schlüssel. Enthalten sind eine automatische Stationswahl unter Berücksichtigung von Entfernung und Höhenlage sowie nachvollziehbare Angaben zu Datenalter und Gültigkeit.

Die Daten stammen von GeoSphere Austria, dem österreichischen nationalen Dienst für Meteorologie, Klimatologie, Geologie und Geophysik. Die öffentlich-rechtliche Bundesanstalt ist aus ZAMG und Geologischer Bundesanstalt entstanden.

Aktuelle Testversion: 0.2.10

Funktionen

  • Stationsmesswerte für Temperatur, Luftfeuchtigkeit, Luftdruck, Wind und Böen, Niederschlag, Taupunkt, Globalstrahlung und Sonnenscheindauer – abhängig von der verfügbaren Stationsausstattung.
  • Automatische Stationswahl nach Entfernung, Höhenunterschied und Verfügbarkeit aktueller Messwerte; alternativ manuelle Auswahl über ein Attribut-Dropdown.
  • Stundenprognosen bis ungefähr 60 Stunden mit offiziellen GeoSphere-Wettersymbolen.
  • Abgeleitete Tagesprognosen mit Temperatur-Minimum/-Maximum, Niederschlagsmengen und Sonnenscheindauer.
  • Optionaler Niederschlagsnowcast mit Viertelstundenwerten für die kommenden rund drei Stunden.
  • Optionale Wetterwarnungen für die Standortkoordinaten.
  • Getrennte Status- und Gültigkeitsreadings für die einzelnen Datenquellen.
  • Readings zur verwendeten Standortquelle, ausgewählten Station, Entfernung und Höhendifferenz.

Installation und Updates

Die folgenden Befehle in der FHEMWEB-Kommandozeile jeweils einzeln ausführen:

update all https://raw.githubusercontent.com/50watt/fhem-geosphere/main/controls_geosphere.txt

Nur nach erfolgreichem Download von lib/FHEM/APIs/Weather/GeoSphereAPI.pm FHEM neu starten:

shutdown restart

Ein Reload des Weather-Moduls allein lädt einen bereits geladenen API-Provider nicht zuverlässig neu.

Bei einem bestehenden Device kann nach dem Neustart zunächst noch die gespeicherte Versionsnummer angezeigt werden. Nach der nächsten Datenaktualisierung sollte das Reading apiVersion den Wert 0.2.10 enthalten.

Definition – Variante 1: globale FHEM-Koordinaten

Zuerst die Konfiguration des globalen Devices prüfen:

list global

Unter Attributes müssen latitude und longitude vorhanden sein. altitude ist optional, verbessert aber die automatische Stationswahl.

Falls die Werte fehlen, können sie jeweils mit einem eigenen FHEMWEB-Befehl gesetzt werden. Beispiel für den öffentlichen Standort Wien/Hohe Warte:

attr global latitude 48.2486

attr global longitude 16.3564

attr global altitude 198

Die Beispielwerte bitte durch den tatsächlichen Standort der eigenen FHEM-Installation ersetzen. Globale Standortattribute können auch von anderen Modulen verwendet werden.

Definition mit globalem Standort und automatischer Stationswahl:

define wetter_geosphere Weather API=GeoSphereAPI interval=300 lang=de

Definition – Variante 2: Standort direkt im Weather-Device

Diese Variante lässt die globalen Standortattribute unverändert:

define wetter_geosphere Weather API=GeoSphereAPI location=48.2486,16.3564 interval=300 lang=de

Breitengrad und Längengrad werden mit Dezimalpunkt, ohne Leerzeichen und in dieser Reihenfolge angegeben.

Für einen vom globalen Standort abweichenden Ort kann dessen Höhe zusätzlich am Device gesetzt werden:

attr wetter_geosphere geoSphereAltitude 198

Definition – Variante 3: feste Station und Niederschlagsnowcast

Dieses vollständige Beispiel verwendet die Station Wien/Hohe Warte mit der Stationsnummer 11035 und aktiviert den Niederschlagsnowcast:

define wetter_geosphere Weather API=GeoSphereAPI,station:11035,nowcast:1 location=48.2486,16.3564 interval=300 lang=de

Von den drei Definitionsvarianten bitte nur die zum eigenen Anwendungsfall passende verwenden.

Optionale Attribute

Stunden- und Tagesprognosen:

attr wetter_geosphere forecast hourly,daily

Anzahl der angezeigten Prognosestunden begrenzen:

attr wetter_geosphere forecastLimit 24

Standortbezogene Wetterwarnungen:

attr wetter_geosphere alerts 1

Die Stationswahl erfolgt standardmäßig automatisch. Nach dem Laden der Stationsmetadaten kann über das Attribut geoSphereStation alternativ eine Station aus dem Dropdown ausgewählt werden.

Erster Datenabruf

Nach einem neuen define im bereits laufenden FHEM den ersten Abruf als eigenen Befehl starten:

set wetter_geosphere update

Bis zu diesem ersten Abruf kann der Status Initialized angezeigt werden. Nach erfolgreicher Aktualisierung werden unter anderem folgende Readings erwartet:

apiVersion  0.2.10
status      ok

Bei Verwendung der globalen Koordinaten steht locationSource auf global. Bei einer in der Definition angegebenen location steht es auf device.

Neu in Version 0.2.10

Ungültige Standort-, Höhen-, Stations-, API-Options- oder Timeout-Angaben werden nun innerhalb des Providers abgefangen und dürfen FHEM nicht mehr beenden.

Die konkrete Ursache wird in den Readings state, status und lastError ausgegeben. Bei einer unvollständigen Standortangabe beispielsweise:

GeoSphere: configuration error: location must be latitude,longitude; for example location=48.2486,16.3564

Nach Korrektur einer dynamischen Einstellung wird die Konfiguration beim folgenden Update erneut geprüft. Das Device kann dadurch ohne FHEM-Neustart wieder anlaufen. Eine Änderung am Weather-Kern ist dafür nicht erforderlich.

Aktueller Stand und bekannte Grenzen

Die API läuft bei mir in Wien mit der Station Hohe Warte. Weitere Rückmeldungen, insbesondere zu anderen Stationen und Höhenlagen, wären hilfreich. Die Entwicklung wurde durch KI unterstützt; Maintainer und Ansprechpartner bin ich unter 50watt.

Tagesprognosen werden aus den verfügbaren Stundenwerten abgeleitet. Unvollständige Tage sind als partial gekennzeichnet. Regenmengen sind keine Niederschlagswahrscheinlichkeit. Gefühlte Temperatur und ein aktueller beobachteter Wetterzustand werden derzeit nicht ergänzt.

Vor der Verwendung in Automationen sollten die Status- und Gültigkeitsreadings der jeweiligen Datenquelle geprüft werden.

Quellcode, Installation und ausführliche Dokumentation auf GitHub

Bei Problemen bitte API-, FHEM- und Perl-Version, betroffene Readings sowie relevante Fehlermeldungen angeben. Private Koordinaten und vollständige Konfigurationen sind dafür nicht erforderlich.

Viele Grüße
50watt
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

Icinger

Mit der Station Stockerau (10km von mir) klappts auch einwandfrei.

stationAvailableReadings
temperature,humidity,pressure,wind,wind_direction,wind_gust,rain10min_mm,stationPressure,dewPoint,globalRadiation,sunshineDuration_s

Da bei uns eine Wetterscheide ist, kann ich leider die Regenvorhersage nicht wirklich ernst nehmen.
Oft genug sitze ich bei Sonnenschein im Garten und 4km weiter in der nächsten Ortschaft geht die Welt unter :(

lg, Stefan

Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

50watt

Servus Stefan,

danke fürs Testen! Freut mich, dass es auch mit der Station Stockerau funktioniert.

Die Stationsmesswerte und die Regenprognose kommen aus unterschiedlichen Quellen: Der Nowcast wird für die eingestellten Standortkoordinaten abgefragt, nicht für die ausgewählte Station. Aber auch das 1-km-Raster kann solche lokalen Unterschiede natürlich nicht zuverlässig auflösen.

Gerade Erfahrungen an solchen Standorten sind fürs Testen interessant. Falls dir einmal etwas bei Zeitangaben, Status oder Readings auffällt, gerne hier melden.

lg, 50watt
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

50watt

Update: GeoSphereAPI 0.2.9

Version 0.2.9 behebt leere
wind_condition-Events. Diese konnten insbesondere bei Nordwind mit 0°, Windstille oder fehlenden Windwerten Warnungen im DbLog-Wetterparser auslösen.

Die Korrektur erfolgt ausschließlich in der GeoSphereAPI. Änderungen am Weather-Kern oder an bestehenden Geräten sind nicht erforderlich.

Update über FHEMWEB:

update all https://raw.githubusercontent.com/50watt/fhem-geosphere/main/controls_geosphere.txt
shutdown restart

Nach der ersten Wetteraktualisierung sollte
apiVersion den Wert
0.2.9 anzeigen.

https://github.com/50watt/fhem-geosphere
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

satprofi

Zitat von: 50watt am 18 Oktober 2026, 19:04:24Bei Problemen bitte API-/FHEM-/Perl-Version, betroffene Readings und relevante Fehlermeldungen angeben.

Viele Grüße
50watt

definieren vom weather killt mir fhem

Unknown command apiVersion

fhem update durchgeführt
gruss
-----------------------------------------------------------------------
beelink miniPC -Ubuntu - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,Zigbee2MQTT,Shelly,
Tasmota,LD382A,Telegram

50watt

Danke für die Rückmeldung.

`apiVersion` ist ein Reading und kein FHEM-Kommando. Deshalb führt die alleinige Eingabe von `apiVersion` zu:

Unknown command apiVersion

Bitte nach dem Update zunächst `shutdown restart` ausführen.

Für die eigentliche Ursache benötige ich noch:

- die vollständige eingegebene define-/defmod-Zeile
Zum Gegencheck bitte zunächst nur die minimale Definition verwenden:

define WetterAT Weather API=GeoSphereAPI interval=300 lang=de

Nach erfolgreicher Anlage steht `apiVersion` in der Reading-Liste des Devices. Alternativ kann es mit folgendem FHEMWEB-Befehl geprüft werden:

{ReadingsVal("WetterAT","apiVersion","nicht vorhanden")}

Falls FHEM dabei wieder beendet wird, bitte den entsprechenden Logabschnitt posten. Ohne diese Fehlermeldung lässt sich noch nicht erkennen, ob die Ursache im Provider, im Weather-Modul oder in der Definition liegt.
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

satprofi

Hallo.
Definition mit beispiel, fhem startet sofort neu, diese zeile steht nur drinn

GeoSphereAPI: location must be latitude,longitude

edit
habe jetzt mit define WetterAT Weather zumindest das device anlegen können.
readings gibts nach update keine.
gruss
-----------------------------------------------------------------------
beelink miniPC -Ubuntu - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,Zigbee2MQTT,Shelly,
Tasmota,LD382A,Telegram

50watt

Danke für deine Rückmeldung. Ich konnte das Problem inzwischen reproduzieren: Wenn GeoSphereAPI keine gültigen Koordinaten erhält, beendet ein ungefangener Perl-Fehler derzeit den FHEM-Prozess. Das darf natürlich nicht passieren und wird korrigiert.

Bis dahin bitte den Standort ausdrücklich angeben, zum Beispiel:
define WetterAT Weather API=GeoSphereAPI location=48.2213,16.3157 interval=300 lang=de
Alternativ müssen latitude und longitude im global-Device gültig gesetzt sein. Danke fürs Testen – dein Hinweis hat einen echten Fehler sichtbar gemacht.
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x

satprofi

Klappt, danke. Bitte im 1. post korrigieren.
werde mich damit später befassen.
LG
gruss
-----------------------------------------------------------------------
beelink miniPC -Ubuntu - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,Zigbee2MQTT,Shelly,
Tasmota,LD382A,Telegram

50watt

Hallo satprofi,

vielen Dank für deine Rückmeldungen und fürs Testen. Damit konnte ich den Fehler reproduzieren und beheben.

Die Ursache war eine ungültige oder noch nicht vollständig aufgelöste Standortkonfiguration. Die dabei erzeugte Fehlermeldung wurde vom Provider nicht abgefangen und konnte deshalb den gesamten FHEM-Prozess beenden.

Mit GeoSphereAPI Version 0.2.10 werden Konfigurationsfehler jetzt abgefangen. FHEM bleibt aktiv und die Ursache erscheint in den Readings state, status und lastError.

Update bitte in der FHEMWEB-Kommandozeile als einzelne Befehle ausführen:

update all https://raw.githubusercontent.com/50watt/fhem-geosphere/main/controls_geosphere.txt

Nach erfolgreichem Download:

shutdown restart

Anschließend kann das Device beispielsweise mit einem expliziten Standort angelegt werden:

define WetterAT Weather API=GeoSphereAPI location=48.2486,16.3564 interval=300 lang=de

Bei einem neu angelegten Device bitte den ersten Abruf noch manuell starten:

set WetterAT update

Alternativ können die globalen FHEM-Koordinaten verwendet werden:

define WetterAT Weather API=GeoSphereAPI interval=300 lang=de

Die dafür erforderlichen Attribute findest du in der Detailansicht von global. Sie heißen:

latitude
longitude
altitude

Falls sie noch nicht gesetzt sind, beispielsweise:

attr global latitude 48.2486
attr global longitude 16.3564
attr global altitude 198

Die Werte sind nur ein Beispiel für Wien/Hohe Warte und sollten durch den eigenen Standort ersetzt werden. Änderungen an den globalen Attributen können auch andere FHEM-Module betreffen.

Nach dem ersten erfolgreichen Abruf sollte in der Reading-Liste stehen:

apiVersion  0.2.10
status      ok

Auch eine fehlerhafte Definition wie

define WetterAT Weather API=GeoSphereAPI location=48.2486 interval=300 lang=de

darf FHEM jetzt nicht mehr beenden. Stattdessen wird beispielsweise folgende verständliche Meldung ausgegeben:

GeoSphere: configuration error: location must be latitude,longitude; for example location=48.2486,16.3564

Der Fix wurde außerdem mit ungültigen Standort-, Höhen- und Timeout-Angaben getestet. Der FHEM-Prozess blieb dabei jeweils aktiv und erholte sich nach Korrektur der Konfiguration ohne Neustart.

Wenn du es noch einmal probieren könntest, würde mir eine kurze Rückmeldung helfen, ob es nun auch auf deinem System stabil funktioniert.

PS: Erster Post ist korrigiert
RaspberryPi, EnOcean PI
Sonos Play1, Connect
Eltako FT55, FSB61, FAM12, FSR12-4x