<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>InfraNode Changelog</title>
    <link>https://infranode.dev/changelog/</link>
    <description>Neue Datenquellen, neue Städte, Verhaltensänderungen und Abkündigungen der InfraNode-API.</description>
    <language>de</language>
    <lastBuildDate>Sat, 25 Jul 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://infranode.dev/changelog/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>[Neu] Abfahrtstafel: stop_id heißt jetzt trip_stop_id</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-25-abfahrtstafel-stop-id-heisst-jetzt-trip-stop-id</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <description>In den Abfahrts- und Ankunftstafeln der Bahnhöfe hieß das Feld bisher stop_id, obwohl es einen einzelnen Halt einer konkreten Zugfahrt bezeichnet und keine Haltestelle. Der Name kollidierte mit der Haltestellen-ID der Live-Abfahrten unter /live/{slug}/transit/departures, die eine DELFI-ID im Format de:AGS:id erwartet. Wer den Wert von einem Endpunkt zum anderen weiterreichte, bekam verlässlich einen 400. Das Feld heißt deshalb jetzt trip_stop_id; stop_id trägt denselben Wert weiter und ist abgekündigt. Die Fehlermeldung des Live-Endpunkts benennt die Verwechslung jetzt ausdrücklich und sagt, wo gültige Haltestellen-IDs herkommen.</description>
    </item>
    <item>
      <title>[Neu] Einheitliche Feldnamen über alle Datenarten</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-25-einheitliche-feldnamen-ueber-alle-datenarten</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <description>Gleiche Konzepte heißen jetzt überall gleich, in snake_case und englisch: post_code, street, house_number, place, name, start, end, distance_km, power_kw, lat und lon. Betroffen sind unter anderem Ladesäulen (bisher plz und ort), Energie-Anlagen (plz, leistung_kw, einheit_typ), Bahnhöfe (zip), Krankenhäuser (zip, city), Köln-Veranstaltungen (strasse, hausnummer, plz) und innerstädtische Baustellen (bezeichnung, beginn, ende, art). Die Verkehrsmeldungen der Autobahn-API tragen zusätzlich is_blocked als echtes Boolean, start_timestamp, delay_minutes, average_speed_kmh, abnormal_traffic_type, name, description_text sowie bbox mit lat und lon aus dem bisherigen Komma-String extent. Innerstädtische Baustellen in Köln bekommen mit event_type_label den Klartext zum bisherigen Zahlencode, direkt aus der Werteliste des Dienstes. Der Bahnhofs-Katalog nennt die DB-Bahnhofskategorie jetzt station_category, weil category in anderen Datenarten ein Textlabel trägt und nicht eine Zahl. Alle Änderungen sind additiv, die bisherigen Felder bleiben vorerst mit identischem Wert erhalten.</description>
    </item>
    <item>
      <title>[Abkündigung] Abkündigung: alte Feldnamen und camelCase-Rohfelder</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-25-abkuendigung-alte-feldnamen-und-camelcase-rohfelder</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <description>Die bisherigen Namen plz, zip, strasse, hausnummer, ort, city, bezeichnung, beginn, ende, art, dist_km, leistung_kw, einheit_typ und das stop_id der Bahnhofs-Tafeln (jetzt trip_stop_id), das category im Bahnhofs-Katalog (jetzt station_category) sowie die camelCase-Rohfelder der Autobahn-Verkehrsmeldungen (isBlocked, startTimestamp, delayTimeValue, averageSpeed, abnormalTrafficType, extent) sind abgekündigt. Sie tragen weiter denselben Wert wie ihre kanonischen Entsprechungen und werden frühestens 30 Tage nach diesem Eintrag entfernt. Wer sie nutzt, stellt bis dahin auf die neuen Namen um.</description>
    </item>
    <item>
      <title>[Behoben] Abfahrtszeiten tragen jetzt eine Zeitzone</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-25-abfahrtszeiten-tragen-jetzt-eine-zeitzone</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <description>planned_time in den Abfahrts- und Ankunftstafeln kam bisher ohne Zeitzone (2026-07-25T10:01:00) und war damit mehrdeutig. Der Wert ist Bahnhofszeit und trägt jetzt die passende Zone (2026-07-25T10:01:00+02:00). Ebenfalls behoben: leere Adressangaben in den Köln-Veranstaltungen kamen als Leerstring statt als null, und Postleitzahlen mit führender Null konnten ihre Null verlieren.</description>
    </item>
    <item>
      <title>[Neu] Spritpreise: Adresse je Tankstelle</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-25-spritpreise-adresse-je-tankstelle</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <description>Die Einzel-Tankstellen im Spritpreis-Payload tragen jetzt zusätzlich street, house_number, post_code und place, also die an die MTS-K gemeldete Adresse. Damit ist eine Tankstelle auch ohne Karte benennbar. post_code ist immer ein fünfstelliger String, führende Nullen bleiben erhalten (01067). Meldet die Quelle keine eigene Hausnummer, steht sie oft im Straßennamen (&quot;Rödingsmarkt 14&quot;); sie wird dann abgetrennt, sodass street und house_number getrennt ankommen. Tankstellen ohne jede Hausnummer behalten house_number null. Rein additiv, bestehende Felder bleiben unverändert.</description>
    </item>
    <item>
      <title>[Neu] Spritpreise: Koordinaten je Tankstelle (Kartendarstellung)</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-25-spritpreise-koordinaten-je-tankstelle-kartendarstellung</guid>
      <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
      <description>Die Einzel-Tankstellen im Spritpreis-Payload tragen jetzt zusätzlich lat und lon, also die Koordinate der Tankstelle selbst. Damit lassen sich die Tankstellen direkt auf einer Karte darstellen, ohne Zusatz-Lookup. Rein additiv, bestehende Felder bleiben unverändert; liefert die Quelle keine Koordinate, sind lat und lon null.</description>
    </item>
    <item>
      <title>[Geändert] Köln: Parkdaten jetzt direkt von der Stadt Köln (Mobilithek)</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-23-koeln-parkdaten-jetzt-direkt-von-der-stadt-koeln-mobilithek</guid>
      <pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate>
      <description>Köln kam bisher über den ParkenDD-Aggregator, dessen Köln-Feed seit 2021 eingefroren ist und daher keine Daten mehr lieferte. Die Parkdaten kommen jetzt direkt von der Stadt Köln über die Mobilithek (DATEX II, Belegung und Stammdaten gejoint, DL-DE/Zero 2.0, Tier A): 41 Parkhäuser mit Live-Belegung, Kapazität, Name und Koordinaten.</description>
    </item>
    <item>
      <title>[Neu] Parken in 14 weiteren Städten (DB BahnPark, bundesweit)</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-20-parken-in-14-weiteren-staedten-db-bahnpark-bundesweit</guid>
      <pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate>
      <description>Der /parking-Endpunkt deckt jetzt 14 zusätzliche Städte ab: Berlin, Bochum, Bonn, Bremen, Düsseldorf, Duisburg, Erfurt, Essen, Hannover, Mainz, Saarbrücken, Schwerin, Stuttgart und Wiesbaden. Quelle sind die bahnhofsnahen Parkeinrichtungen der DB BahnPark (DB API Marketplace, DL-DE/BY 2.0, Tier A). Es handelt sich um einen statischen Katalog (Standort, Name, Gesamtkapazität, lot_type=&quot;station&quot;): eine numerische Live-Belegung (free) liefert die Quelle nicht, das Feld bleibt daher null. Städte mit eigener Live-Parkquelle (z.B. Köln, Frankfurt, Hamburg) sind unverändert.</description>
    </item>
    <item>
      <title>[Geändert] OSM-POIs jetzt aus wöchentlichem Precompute (stabiler)</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-19-osm-pois-jetzt-aus-woechentlichem-precompute-stabiler</guid>
      <pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
      <description>Die POI- und OSM-Infrastruktur-Datenarten (pois, playgrounds, drinking-water, public-toilets, markets, parcel-lockers, post-offices, post-boxes, public-wifi, recycling-centres, government-offices, education) werden ab sofort aus einem periodischen Precompute des OSM-Deutschland-Extrakts (wöchentlich) bedient statt live abgefragt. Envelope, Felder und Lizenz (ODbL, Tier B) bleiben unverändert; total_available nennt weiterhin den echten Gesamtbestand. Vorteil: keine Abhängigkeit von einer öffentlichen Live-Instanz mehr, dadurch deutlich stabiler. Ist der Bestand einer Stadt noch nicht berechnet, antwortet die Route mit 200 source_status=&quot;no_data&quot; statt eines Fehlers.</description>
    </item>
    <item>
      <title>[Neu] Innerstädtische Baustellen für Rostock</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-17-innerstaedtische-baustellen-fuer-rostock</guid>
      <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
      <description>Die Datenart Baustellen/Verkehrsereignisse deckt jetzt auch Rostock ab (OpenData.HRO, CC0). Je Baustelle werden Maßnahme, Sparte, Straße, Abschnitt, Zeitraum und Verkehrsbeeinträchtigung geliefert.</description>
    </item>
    <item>
      <title>[Neu] Ratsdokumente jetzt auch für Magdeburg und Osnabrück</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-17-ratsdokumente-jetzt-auch-fuer-magdeburg-und-osnabrueck</guid>
      <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
      <description>Die Datenart council-papers deckt neben Köln, Leipzig, Münster, Dresden und Düsseldorf jetzt auch Magdeburg (DL-DE/Zero-2.0) und Osnabrück (CC-BY-4.0) ab, beide über die standardisierte OParl-Schnittstelle. Abrufbar unter /api/v1/cities/{stadt}/council-papers sowie per MCP über get_city_resource.</description>
    </item>
    <item>
      <title>[Neu] Bike-Sharing für Kiel (SprottenFlotte)</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-17-bike-sharing-fuer-kiel-sprottenflotte</guid>
      <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
      <description>Kiel ist beim Bike- und Scooter-Sharing ergänzt: die SprottenFlotte läuft über Donkey Republic (GBFS 3.0) und liefert jetzt Stationen und Verfügbarkeiten wie bei den übrigen Sharing-Städten. Die Daten stehen unter CC0. Damit unterstützt der GBFS-Adapter erstmals auch die GBFS-Version 3.0 (mehrsprachige Namensfelder, num_vehicles_available).</description>
    </item>
    <item>
      <title>[Neu] Baumkataster für Hamburg und Kiel</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-17-baumkataster-fuer-hamburg-und-kiel</guid>
      <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
      <description>Das Baumkataster deckt jetzt neben Berlin auch Hamburg und Kiel ab. Hamburg liefert das Straßenbaumkataster (Landesbetrieb Geoinformation und Vermessung, DL-DE/BY-2.0), Kiel die Bäume auf städtischem Grund (CC-BY-4.0). Je Baum werden Standort, Art und Kronendurchmesser ausgeliefert.</description>
    </item>
    <item>
      <title>[Neu] Hochwasserwarnungen für Hannover, Kiel und Magdeburg</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-17-hochwasserwarnungen-fuer-hannover-kiel-und-magdeburg</guid>
      <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
      <description>Die Hochwasserwarnungen decken jetzt auch Hannover (Pegel Herrenhausen, Leine), Kiel (Kiel-Holtenau, Ostsee, sturmflutrelevant) und Magdeburg (Niegripp, Elbe) ab. Je Pegel werden Warnstufe, Wasserstand und Zeitstempel geliefert. Quelle sind die Länderübergreifenden Hochwasserportale (LHP).</description>
    </item>
    <item>
      <title>[Behoben] Amtliche Wetterwarnungen wieder verfügbar (neue Bezugsquelle)</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-16-amtliche-wetterwarnungen-wieder-verfuegbar-neue-bezugsquelle</guid>
      <pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate>
      <description>Der DWD hat die alte WarnApp-Schnittstelle abgeschaltet, der Endpunkt für amtliche Wetterwarnungen lieferte deshalb kurzzeitig 503. Die Warnungen kommen jetzt über die Bright-Sky-Alerts-API und damit weiterhin dieselben amtlichen DWD-Daten. Die Warnstufen 1 bis 4 werden aus der CAP-severity abgeleitet; Hitze- und UV-Warnungen stehen wie bisher separat in special_warnings und zählen nicht in max_level. Beachte: start und end der Einzelwarnungen sind jetzt ISO-8601-Zeitstempel statt Epoch-Millisekunden.</description>
    </item>
    <item>
      <title>[Behoben] Live-ÖPNV-Abfahrten: Delay-only-Updates und Steig-IDs funktionieren jetzt</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-16-live-oepnv-abfahrten-delay-only-updates-und-steig-ids-funkti</guid>
      <pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate>
      <description>Der Endpunkt für Live-Abfahrten je Halt lieferte fast überall no_data: der bundesweite GTFS-RT-Feed trägt meist nur Verspätungen ohne absolute Abfahrtszeit, und genau solche Einträge wurden verworfen. Jetzt werden sie ehrlich ausgeliefert (delay_s/delay_min gesetzt, departure_time und minutes_until = null) und folgen nach den zeitbehafteten Abfahrten, die es z.B. in Berlin über den VBB-Feed gibt. Außerdem darf stop_id jetzt Parent- oder Steig-Ebene sein (de:AGS:nr oder de:AGS:nr:bereich:steig), beide werden aufgelöst.</description>
    </item>
    <item>
      <title>[Neu] Ratsdokumente: kompletter Datenbestand für 5 Städte (112.000+ Dokumente)</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-16-ratsdokumente-kompletter-datenbestand-fuer-5-staedte-112-000</guid>
      <pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate>
      <description>Die neue Datenart council-papers liefert Ratsinformationen (Vorlagen, Anträge, Beschlüsse) über die standardisierte OParl-Schnittstelle für Köln, Leipzig, Münster, Dresden und Düsseldorf. Der historische Rückbezug ist jetzt komplett: über 112.000 Dokumente ab 2020, davon allein 48.000+ aus Leipzig. Neue Dokumente werden laufend ergänzt. Abrufbar unter /api/v1/cities/{stadt}/council-papers sowie per MCP über get_city_resource.</description>
    </item>
    <item>
      <title>[Geändert] Doku: neue Navigation mit Aufgaben-Gruppen und mobilem Drawer</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-11-doku-neue-navigation-mit-aufgaben-gruppen-und-mobilem-drawer</guid>
      <pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate>
      <description>Das Doku-Menü ist neu gegliedert in Loslegen, Grundlagen, API-Referenz, KI &amp; Integrationen und Projekt. Die API-Referenz zeigt jetzt sprechende Namen statt operationIds (die operationId erscheint beim Überfahren), Live-Endpunkte stehen in ihrer Themenkategorie mit LIVE-Badge statt in einer eigenen Sektion. Das Badge markiert Echtzeitdaten unabhängig vom Pfad, also auch Spritpreise, Parkhaus-Belegung, Bahn-Abfahrten oder Ladesäulen-Status. Auf Mobilgeräten öffnet ein Menü-Button in der Kopfleiste einen Drawer, in dem nur die aktive Gruppe aufgeklappt ist. Alle Seiten und URLs bleiben unverändert.</description>
    </item>
    <item>
      <title>[Geändert] Parken: Frische-Schutz gegen eingefrorene Upstreams</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-07-parken-frische-schutz-gegen-eingefrorene-upstreams</guid>
      <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
      <description>Für die ParkenDD-Städte gilt jetzt ein Frische-Wächter: Liefert ein Upstream seit mehr als 48 Stunden keine neuen Belegungszeiten, gibt der Endpunkt no_data zurück statt veralteter Werte. Das verhindert, dass monatealte Parkstände wie aktuelle aussehen. Ein fehlender oder unlesbarer Zeitstempel zählt defensiv nicht als eingefroren.</description>
    </item>
    <item>
      <title>[Neu] Radzählstellen: Düsseldorf ergänzt (8 Städte)</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-04-radzaehlstellen-duesseldorf-ergaenzt-8-staedte</guid>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
      <description>bike-counts liefert jetzt auch die Radzählstellen der Landeshauptstadt Düsseldorf. Damit deckt die Datenart acht Städte ab. Lizenz DL-DE/BY 2.0.</description>
    </item>
    <item>
      <title>[Geändert] Städtevergleich: sechs weitere Datenarten</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-04-staedtevergleich-sechs-weitere-datenarten</guid>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
      <description>Der Vergleich mehrerer Städte in einem Aufruf umfasst jetzt zusätzlich Kennzahlen (indicators), Demografie, Arbeitslosenquote, Tourismus, Ladebelegung und Wetterwarnungen, ergänzend zu Wetter und Luftqualität.</description>
    </item>
    <item>
      <title>[Neu] Baustellen und Sperrungen: Dresden und Leipzig</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-04-baustellen-und-sperrungen-dresden-und-leipzig</guid>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
      <description>road-events liefert jetzt Baustellen und Sperrungen für Dresden und Leipzig aus dem sächsischen SPERRINFOSYS. Lizenz DL-DE/BY 2.0.</description>
    </item>
    <item>
      <title>[Neu] InfraNode als ChatGPT-GPT und GPT-Action</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-04-infranode-als-chatgpt-gpt-und-gpt-action</guid>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
      <description>InfraNode ist jetzt als Custom-GPT im GPT Store verfügbar und lässt sich über eine kuratierte Actions-OpenAPI als GPT-Action einbinden, keylos und per URL-Import. Details unter /chatgpt/.</description>
    </item>
    <item>
      <title>[Neu] Live-Ladebelegung für alle 84 Städte</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-03-live-ladebelegung-fuer-alle-84-staedte</guid>
      <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
      <description>Neue Datenart charging-status: die Echtzeit-Belegung öffentlicher Ladepunkte je Stadt (frei, belegt, lädt, außer Betrieb), aufbereitet aus dem eRound-Feed (CC0). Ergänzt die statischen Ladesäulen-Standorte.</description>
    </item>
    <item>
      <title>[Geändert] MCP-Server auf 12 schlanke Tools konsolidiert</title>
      <link>https://infranode.dev/changelog/</link>
      <guid isPermaLink="false">infranode-changelog-2026-07-02-mcp-server-auf-12-schlanke-tools-konsolidiert</guid>
      <pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate>
      <description>Der gehostete MCP-Server bündelt die 67 Datenarten jetzt in 12 Tools; die Long-Tail-Datenarten laufen über get_city_resource(slug, resource). Bestehende Aufrufe bleiben abgedeckt, die Tool-Liste ist deutlich kürzer.</description>
    </item>
  </channel>
</rss>
