{
  "schema": "roesenberger.net/station.json",
  "schema_version": 2,
  "schema_changes": "2 (15.10.2026): ergänzt um inventory (automatisch erfasst, collected_at_utc), manual (verified_at), host, hosting, backup, sensors_not_available, data.history/records; bestehende Felder unverändert.",
  "generated_at_utc": "2026-10-22T12:55:49Z",
  "last_verified": "2026-10-14",
  "station": {
    "name": "Wetter im KGV Familienwohl Bochum",
    "type": "private Wetterstation",
    "operator": "Markus Roesenberger (privat, kein Angebot des KGV Familienwohl e.V.)",
    "location": "Kleingartenverein KGV Familienwohl e.V., Bochum, Nordrhein-Westfalen, Deutschland",
    "latitude": 51.49069,
    "longitude": 7.317501,
    "altitude_m": 115,
    "timezone": "Europe/Berlin",
    "website": "https://roesenberger.net/",
    "description_page": "https://roesenberger.net/about/",
    "technical_page": "https://roesenberger.net/technik/",
    "weather_underground_id": "IBOCHU148"
  },
  "hardware": {
    "gateway": {
      "manufacturer": "Ecowitt",
      "model": "GW3000",
      "radio_frequency_mhz": 868,
      "in_use_since": "2026-10-14",
      "builtin_sensors": ["Innentemperatur", "Innenluftfeuchte", "Luftdruck (absolut)"],
      "previous_model": {"model": "Ecowitt GW1100", "in_use_until": "2026-10-14"}
    },
    "sensors": [
      {
        "model": "Ecowitt WH69",
        "type": "7-in-1-Außensensor",
        "measures": ["Temperatur", "Luftfeuchte", "Windgeschwindigkeit", "Windböen", "Windrichtung", "Niederschlag (Wippe)", "Sonnenstrahlung", "UV-Index"]
      },
      {
        "model": "Ecowitt WH57",
        "type": "Blitzsensor",
        "measures": ["Anzahl erkannter Blitze", "geschätzte Entfernung des letzten Blitzes"]
      },
      {
        "model": "Ecowitt WH51",
        "type": "Bodenfeuchtesensor",
        "measures": ["Bodenfeuchte in %"],
        "in_use_since": "2026-10-14",
        "note": "Werkskalibrierung, ein Messpunkt im Garten"
      }
    ]
  },
  "software": {
    "weewx": {"version": "5.5.2", "url": "https://weewx.com/"},
    "skin": {"name": "New Belchertown", "version": "2.1.1", "url": "https://github.com/uajqq/weewx-belchertown-new"},
    "data_reception": [
      {"name": "weewx-interceptor", "version": "0.53", "note": "lokal angepasst (zusätzliche Ecowitt-Felder Blitz/Leck, Korrektur für leere Blitzwerte)", "mode": "ecowitt-client (Empfänger sendet die Messwerte an WeeWX)", "url": "https://github.com/matthewwall/weewx-interceptor"},
      {"name": "weewx-ecowittGateway", "version": "1.0.0", "mode": "Dienst, fragt den Empfänger lokal ab (Blitz, Bodenfeuchte)", "url": "https://github.com/weewx-contrib/weewx-ecowittGateway"}
    ],
    "extensions": [
      {"name": "weewx-mqtt", "version": "0.24", "purpose": "Live-Übertragung aktueller Werte (MQTT über WebSockets)"},
      {"name": "weewx-GTS", "version": "1.2", "purpose": "Grünlandtemperatursumme und Wachstumsgradtage"},
      {"name": "weewx-DWD (weatherforecasts)", "purpose": "Vorhersagen (DWD MOSMIX, Open-Meteo) und Warnungen"},
      {"name": "Skyfield almanac", "version": "0.7", "purpose": "astronomische Angaben"},
      {"name": "Skymap almanac", "version": "0.7", "purpose": "Himmelskarte"},
      {"name": "xaggs", "version": "1.0", "purpose": "Extremwerte und Mittel je Kalendertag"},
      {"name": "lastrain", "version": "0.2", "purpose": "letzter Regen"},
      {"name": "weewx-csv", "version": "0.11", "purpose": "aktuelle Werte im CSV-Format"}
    ],
    "charts": "Highcharts",
    "database": {"type": "SQLite", "schema": "wview_extended", "archive_interval_seconds": 60},
    "operating_system": "Debian GNU/Linux 13 (trixie) in einem unprivilegierten LXC-Container",
    "host": "Proxmox VE 9 (eigener Heimserver)",
    "python": "3.13.5",
    "publication": "Seiten werden von WeeWX jede Minute erzeugt und per FTPS auf einen Webspace hochgeladen"
  },
  "inventory": {
    "source": "automatisch, nur lesend erfasst (WeeWX-Version, Erweiterungen mit installiert/aktiv/verwendet, Betriebssystem, Prozessor, Empfängermodell und -firmware, empfangene Sensortypen); keine Kennungen, Adressen oder Zugangsdaten",
    "collected_at_utc": "2026-10-21T23:10:01Z",
    "status": "ok",
    "weewx_version": "5.5.2",
    "cpu_model": "11th Gen Intel(R) Core(TM) i5-11400T @ 1.30GHz",
    "archive_interval_seconds": 60,
    "receiver": {"model": "Ecowitt GW3000", "firmware": "1.2.4", "sensors": [{"model": "Ecowitt WH69", "received": true}, {"model": "Ecowitt WH57", "received": true}, {"model": "Ecowitt WH51", "received": true}]},
    "extensions": [{"name": "Belchertown", "version": "1.3.1", "installed": true, "active": false, "used_for": null, "note": null}, {"name": "Emkubed", "version": "0.6", "installed": true, "active": true, "used_for": "Daten für eine Wetter-App", "note": null}, {"name": "GTS", "version": "1.2", "installed": true, "active": true, "used_for": "Vegetationswerte", "note": null}, {"name": "GW1000", "version": "0.6.3", "installed": true, "active": false, "used_for": null, "note": null}, {"name": "Skyfield almanac", "version": "0.7", "installed": true, "active": true, "used_for": "Astronomie", "note": null}, {"name": "Skymap almanac", "version": "0.7", "installed": true, "active": true, "used_for": "Himmelskarte", "note": null}, {"name": "csv", "version": "0.11", "installed": true, "active": true, "used_for": "CSV-Ausgabe", "note": null}, {"name": "interceptor", "version": "0.53", "installed": true, "active": true, "used_for": "Hauptdatenweg (Upload des Empfängers)", "note": "Version laut Moduldatei; Erweiterungsliste nennt 0.60; Datei lokal angepasst"}, {"name": "lastrain", "version": "0.2", "installed": true, "active": true, "used_for": "letzter Regen", "note": null}, {"name": "mqtt", "version": "0.24", "installed": true, "active": true, "used_for": "Live-Werte der Website", "note": null}, {"name": "new-belchertown", "version": "2.1.1", "installed": true, "active": true, "used_for": "Website", "note": null}, {"name": "twitter", "version": "0.15", "installed": true, "active": false, "used_for": null, "note": null}, {"name": "weatherforecasts", "version": null, "installed": true, "active": true, "used_for": "Vorhersagen und Warnungen", "note": null}, {"name": "wxgraphic", "version": "0.6.8", "installed": true, "active": true, "used_for": "Wettergrafik", "note": null}, {"name": "xaggs", "version": "1.0", "installed": true, "active": true, "used_for": "historische Tageswerte", "note": null}, {"name": "weewx-ecowittGateway", "version": "1.0.0", "installed": true, "active": true, "used_for": "Blitz und Bodenfeuchte vom Empfänger", "note": "von Hand installiert, nicht in der Erweiterungsliste"}, {"name": "sunduration", "version": null, "installed": true, "active": true, "used_for": "Sonnenscheindauer", "note": "Modul in bin/user, ohne Versionsangabe"}],
    "reports_active": ["Emkubed", "WXgraphic", "lastrain", "maschinenlesbar", "new-belchertown"],
    "meaning": "installed = laut Erweiterungsliste bzw. Datei vorhanden; active = in der Konfiguration eingebunden; used_for = wofür sie auf dieser Station genutzt wird (null = nicht belegt)"
  },
  "manual": {
    "verified_at": "2026-10-14",
    "fields": ["station", "hardware", "host_hardware", "hosting", "backup", "data_provenance", "uploads", "sensors_not_available"],
    "note": "von Hand gepflegt und am angegebenen Tag am laufenden System bzw. an der Station bestätigt; die Erzeugungszeit dieser Datei bedeutet keine erneute Prüfung"
  },
  "host_hardware": "Lenovo ThinkCentre M70q Gen 2, Intel Core i5-11400T, 32 GB Arbeitsspeicher, 1 TB NVMe",
  "hosting": "Seiten statisch von WeeWX erzeugt und per FTPS auf einen Webspace bei Host Europe (Apache) übertragen; Live-Werte zusätzlich über MQTT (WebSockets)",
  "backup": {
    "database": "lokale Sicherung der Wetterdatenbank viermal täglich mit gestaffelter Aufbewahrung",
    "configuration": "wöchentliche Sicherung der WeeWX-Konfiguration (90 Tage), Konfiguration zusätzlich unter Versionsverwaltung",
    "container": "tägliche Sicherung des ganzen WeeWX-Containers auf einen eigenen Backup-Server (separate Festplatte)",
    "additional_copy": "täglicher Spiegel der lokalen Datenbanksicherungen auf dieselbe separate Festplatte",
    "offsite_copy": false,
    "note": "eine unabhängige Zweitkopie auf einem anderen Gerät bzw. an einem anderen Ort besteht derzeit nicht"
  },
  "sensors_not_available": ["Bodentemperatur", "Blattnässe", "Luftqualität/Feinstaub", "Schneehöhe"],
  "data": {
    "current": "https://roesenberger.net/api/weather.json",
    "station": "https://roesenberger.net/api/station.json",
    "history": "https://roesenberger.net/api/history.json",
    "records": "https://roesenberger.net/api/records.json",
    "compatible_urls": ["https://roesenberger.net/weather.json", "https://roesenberger.net/station.json"],
    "freshness": "Aktualität anhand measured_at_utc in weather.json und der eigenen Uhrzeit prüfen; status.state gilt zum Erzeugungszeitpunkt",
    "llms_txt": "https://roesenberger.net/llms.txt",
    "sitemap": "https://roesenberger.net/sitemap.xml",
    "update_interval_seconds": 60,
    "units": "metrisch (°C, hPa, km/h, mm, W/m²)"
  },
  "data_provenance": {
    "own_measurements_since": "2022-02-15",
    "archive_since": "1970-01-01",
    "before_own_measurements": "stündliche Modelldaten aus meteoblue history+, keine Messungen dieser Station",
    "replacement_periods": [
      {"from": "2025-11-30", "to": "2026-05-16", "source": "Ersatzdaten der Station LueDo248", "note": "Halbstundenwerte laut Herkunftstabelle bis 10.05.2026 00:00, ab 10.05.2026 Halbstundenexport der eigenen Station; Details je Tag in history.json"}
    ],
    "gap_filling": "kurze Ausfälle aus den Aufzeichnungen der eigenen Station bei Ecowitt.net und Weather Underground",
    "evapotranspiration": "von WeeWX nach FAO-56 (Penman-Monteith) berechnet; bis September 2026 Werte der DWD-Station Bochum",
    "forecasts": "Deutscher Wetterdienst (MOSMIX) und Open-Meteo – Modellwerte, keine Messungen",
    "details": "https://roesenberger.net/about/"
  },
  "uploads": ["Weather Underground (IBOCHU148)", "PWSweather", "Weathercloud", "Met Office WOW", "Ecowitt.net"]
}
