FHEM Forum

FHEM - Energiemanagement und Energieerzeugung => Wallboxen und E-Fahrzeuge => Thema gestartet von: Sany am 20 Dezember 2025, 13:33:45

Titel: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Sany am 20 Dezember 2025, 13:33:45
Hallo zusammen,

in dieser trüben Jahreszeit kommt quasi nix von der PV, um den Autoakku nennenswert zu laden. Nun kann ich ja direkt den Hausstrom nutzen, ist aber nicht lukrativ. Ganz in der Nähe habe ich einen Discountmarkt, der immerhine für 29ct Ladestrom anbietet. 11KW, aber nur 2 Stecker. Und wenn es so grau ist, stehen da auch öfter E-Autos und laden...
Hier https://forum.fhem.de/index.php?topic=142825.msg1350198#msg1350198 (https://forum.fhem.de/index.php?topic=142825.msg1350198#msg1350198) wurde schon eine Lösung gezeigt, die bei mir aber nicht funktioniert, das diese Ladesäule zwar angezigt wird, aber keine aktuellen Daten dazu. Ich habe dann rumgesucht und bin auf das hier gestossen: https://community.home-assistant.io/t/status-of-enbw-charging-stations/409573 (https://community.home-assistant.io/t/status-of-enbw-charging-stations/409573)
Es beschreibt, wie über die öffentliche Ladekarte von EnbW eine Station ausgelesen werden kann. Dazu benötigt man die stationID der gewünschten Station sowie den API-Key. Beides erhält man, wenn man die Abfrage der gewünschten Station im Browser mit den Entwicklertools mitverfolgt. Der Vorgang ist im ersten Post der HA-Beschreibung genau erklärt.

Die Rückgabe der Abfrage ist ein umfangreiches JSON. Mein Versuch mit JSONMOD hat nichts gebracht, per HTTPMOD ist es aber gelungen. Hier mal meine Abfrage:

defmod Ladestation HTTPMOD https://enbw-emp.azure-api.net/emobility-public-api/api/v1/chargestations/XXXXXX 0
attr Ladestation event-on-change-reading availableChargePoints,unknownStateChargePoints,chargePoints_0._status,chargePoints_0._state_updatedTime
attr Ladestation icon electric_car_charger
attr Ladestation reading104JSON chargePoints_01_state_updatedAt
attr Ladestation reading104Name chargePoints_01_state_updatedAt
attr Ladestation reading105OExpr FmtDateTime($val / 1000)
attr Ladestation reading105JSON chargePoints_01_state_updatedAt
attr Ladestation reading105Name chargePoints_01_state_updatedTime
attr Ladestation reading109JSON chargePoints_02_evseId
attr Ladestation reading109Name chargePoints_02_evseId
attr Ladestation reading120JSON stationId
attr Ladestation reading120Name stationId
attr Ladestation reading128JSON unknownStateChargePoints
attr Ladestation reading128Name unknownStateChargePoints
attr Ladestation reading137JSON chargePoints_01_evseId
attr Ladestation reading137Name chargePoints_01_evseId
attr Ladestation reading139JSON chargePoints_02_state_updatedAt
attr Ladestation reading139Name chargePoints_02_state_updatedAt
attr Ladestation reading140OExpr FmtDateTime($val / 1000)
attr Ladestation reading140JSON chargePoints_02_state_updatedAt
attr Ladestation reading140Name chargePoints_02_state_updatedTime
attr Ladestation reading141JSON chargePoints_02_status
attr Ladestation reading141OMap OCCUPIED:belegt, AVAILABLE:_frei_
attr Ladestation reading141Name chargePoints_02_status
attr Ladestation reading164JSON chargePoints_01_status
attr Ladestation reading164OMap OCCUPIED:belegt, AVAILABLE:_frei_
attr Ladestation reading164Name chargePoints_01_status
attr Ladestation reading167JSON numberOfChargePoints
attr Ladestation reading167Name numberOfChargePoints
attr Ladestation reading170JSON availableChargePoints
attr Ladestation reading170Name availableChargePoints
attr Ladestation replacement4Mode key
attr Ladestation replacement4Regex %%key%%
attr Ladestation replacement4Value key
attr Ladestation requestHeader1 Content-Type: application/json
attr Ladestation requestHeader2 Referer: https://www.enbw.com/
attr Ladestation requestHeader3 Origin: https://www.enbw.com
attr Ladestation requestHeader4 Ocp-Apim-Subscription-Key: %%key%%
attr Ladestation requestHeader5 User-Agent: Firefox
attr Ladestation requestHeader6 Content-Length: 0
attr Ladestation room Volvo
attr Ladestation showBody 0
attr Ladestation showError 1
attr Ladestation showMatched 0
attr Ladestation stateFormat availableChargePoints / numberOfChargePoints\
<br>\
unknown: unknownStateChargePoints
Edit: Typo im Code korrigiert nach betateilchens Hinweis (reading140OExpr etc)


Die XXXXXX in der DEF-Zeile ist die StationID. Den API-Key dann mit
set Ladestation storeKeyValue key abcdefg12345
abspeichern. Der wird dann per Replacement in den Header eingebaut.

Kan natürlich sein, das bei einer anderen Station das zurückgegebene JSON auch anders aussieht. Dann empfiehlt es sich, mittels
extractAllJSON



einfach alles zurückgeben zu lassen und dann auszusortieren, was man nicht braucht.
Der Zeitstempel, ab wann ein Ladepunkt frei/belegt ist (chargePoints_0X_state_updatedAt) , kommt als UNIX Zeitangabe in 1000stel. Den gebe ich formatiert als chargePoints_01_state_updatedTime im lesbaren Format aus. Ebenso wird OCCUPIED zu belegt und AVAILABLE zu _frei_ gemapped.

Das AbfrageIntervall ist auf 0, damit nicht zyklich abgefragt wird.
Wenn ich vorhabe, zu laden, dann schicke ich per Signal ein "Wort" an mein fhem, damit wird die Abfrage freigegeben, und zwar nur zu den Öffnungszeiten (z.B. Sonn/Feiertag ist zu). Wenn beide belegt sind frage ich minütlich ab, ansonsten alle 5min. Damit erfahre ich quasi in Echtzeit, wenn ein Ladepunkt frei wurde. Kann natürlich sein, dass der auch gleich wieder belegt ist. Die Info aber per Push über Signal auf die Armbanduhr ist bequemer, als immer wieder eine App zu öffnen. Mein Auto ist auch in fhem und wenn dieses meldet, dass ein Ladekabel angeschlossen wurde (also habe ich es an die Ladestation angeschlossen) wird die Abfrage wieder gestoppt.
Damit halten sich die Abfragen in Grenzen, andererseits ist das ja nix anderes, als auf deren Website rumzuklicken, was vermutlich viele tun.....

Ohne fhem ist chargefinder.com auch eine schöne Möglichkeit. Wenn man seine Station ausgwählt hat und diese angezeigt wird dann einen Link zum Startbildschirm hinzufügen (Android) und die Seite öffnet sich gleich mit der ausgewählten Station.
Wie immer, viele Möglichkeiten, möge jeder so machen, wie er will ;)


Gruß



Sany

Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 21 Dezember 2025, 13:27:36
Zitat von: Sany am 20 Dezember 2025, 13:33:45Mein Versuch mit JSONMOD hat nichts gebracht,

Funktioniert aber auch mit JsonMod in einem Zweizeiler 🙃

defmod gh JsonMod system://curl -H "Referer: https://www.enbw.com/" -H "Origin: https://www.enbw.com" -H "Ocp-Apim-Subscription-Key: d495..." -H "Content-Type: application/json" https://enbw-emp.azure-api.net/emobility-public-api/api/v1/chargestations/180532
attr gh readingList complete()
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 21 Dezember 2025, 18:45:32
Zitat von: Sany am 20 Dezember 2025, 13:33:45per HTTPMOD ist es aber gelungen. Hier mal meine Abfrage:

Du solltest aber besser die aktuellen Attribute von HTTPMOD verwenden und nicht die uralten.
Dann läuft auch das Log nicht mit Warnungen voll:

2025.12.21 13:15:15 1: Ladestation: the attribute reading105Expr should no longer be used. Please use reading105OExpr instead
2025.12.21 13:15:15 1: Ladestation: the attribute reading140Expr should no longer be used. Please use reading140OExpr instead
2025.12.21 13:15:16 1: Ladestation: the attribute reading141Map should no longer be used. Please use reading141OMap instead
2025.12.21 13:15:16 1: Ladestation: the attribute reading164Map should no longer be used. Please use reading164OMap instead
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Sany am 21 Dezember 2025, 23:26:02
ZitatFunktioniert aber auch mit JsonMod in einem Zweizeiler 🙃
Prima, dann gibts ja noch einen Weg. Ich hab immer nur irgendwelche Authorization-Fehler bekommen, hab das dann aber nicht weiterverfolgt.

Es werden mit Jsonmod dann wohl auch ein paar mehr Zeilen, wenn man nur die gewünschten Readings haben möchte. Aber auch hier: das Ziel ist das Ziel.


 
ZitatDu solltest aber besser die aktuellen Attribute von HTTPMOD verwenden und nicht die uralten.
Dann läuft auch das Log nicht mit Warnungen vo
Ah, vielen Dank für den Hinweis. Ich habe allerdings nix im Log. Verbose ist nicht gesetzt, also default.
Ich korrigier das im ersten Post.
Ich meine ich hab mit dem reading140 angefangen, daher wohl der Typo mit dem "weggelassenen" O. das fiel mir bei den weiteren dann auch nicht mehr auf. O:-)



Gruß



Sany
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 22 Dezember 2025, 09:20:19
Zitat von: Sany am 21 Dezember 2025, 23:26:02Ich hab immer nur irgendwelche Authorization-Fehler bekommen

Passiert, wenn man die Header für Origin und Referer weglässt, hatte ich anfangs auch.

Zitat von: Sany am 21 Dezember 2025, 23:26:02Es werden mit Jsonmod dann wohl auch ein paar mehr Zeilen, wenn man nur die gewünschten Readings haben möchte.

Naja, prinzipiell eine Zeile pro reading mehr.
Hier mal exemplarisch für zwei readings, eines mit "single" (Stations-Info) und eines mit "multi" (beliebige Anzahl Anschlüsse an der Station), die alle 15 Minuten abgefragt werden.

defmod Ladepunkt_Gotthard JsonMod system://curl -H "Referer: https://www.enbw.com/" -H "Origin: https://www.enbw.com" -H "Ocp-Apim-Subscription-Key: d49..." -H "Content-Type: application/json" https://enbw-emp.azure-api.net/emobility-public-api/api/v1/chargestations/180532

attr Ladepunkt_Gotthard devStateIcon AVAILABLE:10px-kreis-gruen\
OCCUPIED:10px-kreis-rot
attr Ladepunkt_Gotthard interval 1/15 * * * *
attr Ladepunkt_Gotthard readingList single(jsonPath('$.additionalInfo'),'location','?')\
multi(jsonPath('$.chargePoints.[*]'),concat('port_',count()),property('state.value'))
attr Ladepunkt_Gotthard stateFormat port_0\
port_1

liefert

Bildschirmfoto 2025-12-22 um 09.14.56.png

und für vier Stationen auf einen Blick:

Bildschirmfoto 2025-12-22 um 09.08.52.png


Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: satprofi am 23 Dezember 2025, 13:58:41
Hallo.
Dank an betateilchen für die Hilfe. Frage dazu, ich schaffe es nicht eine Beschriftung bei den Punkten zu generieren. Würde gerne den Port beschriftet haben, AC DC . jede änderung beim stateformat zeigt mir nur mehr text an
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: TomLee am 23 Dezember 2025, 16:53:17
Hallo,

jede Beschriftung braucht eine eigene Zeile:

attr Ladepunkt_Gotthard stateFormat Beschriftung0: \
port_0\
Beschriftung1: \
port_1

Gruß Thomas
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 25 Februar 2026, 10:32:49
Nachdem ich die Abfrage inzwischen selbst verwende, will ich hier kurz darauf hinweisen, dass die von EnBW gelieferten Statusdaten der Ladestationen nicht immer korrekt sind.

Insbesondere dann nicht, wenn es sich nicht um EnBW-eigene Ladestellen handelt.
Vermutlich kann aber EnBW da gar nix für, die greifen die Daten auch nur aus einer Datenbank ab.



Edit:

Aktuell teste ich mit der TomTom-API zur Abfrage von Ladestationen per JsonMod.
Macht bisher einen guten Eindruck und die Daten, die ich von dort bekomme, passen auch zum tatsächlichen Zustand der hier im Ort vorhandenen drei Ladestationen, verglichen mit den Verfügbarkeitsdaten der jeweiligen Betreiber.
Man benötigt zwar einen API key, den gibt es aber kostenfrei.
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 07 März 2026, 16:05:54
Jetzt bräuchte es eigentlich nur noch zweierlei:
- Eine Funktion, mit der die Attribute an die Anzahl der Ladepunkte angepasst werden. Manuell ist das eine Quälerei, insbesondere bei mehreren Ladepunkten. Mal sehen, ob ich das mit XPath hinbekomme, das sollte eigentlich gehen. JsonMod geht besser an der Stelle, so wie von betateilchen gezeigt.

- Eine Funktion, die aus einer gegebenen Adresse die StationID herausfindet, ohne dass man jeweils den Netzwerkmonitor anwerfen muss. Das sollte einfach gehen über das OpenChargeMap-API https://www.openchargemap.org/develop/api. Bei genauerer Betrachtung kann man wahrscheinlich alle Daten daher holen, ohne über den Weg EnBW zu gehen.

Auch die Anzeige mit den roten und grünen Punkten ist noch noch nicht optimal, weil sie sehr unterschiedlich breit sein kann.
Ein schönes Beispiel ist die Ladestation Vahrn in Südtirol, ganz nahe an der Brennerautobahn mit 20 Ladepunkten jeweils bis 400 kW. Als Beispiel zum Spielen hier mal der Body der Antwort.

Übrigens ist diese Station für Italienreisende sehr zu empfehlen, fast immer etwas frei.

LG

pah


P.S.: Beim Beispiel von betateilchen dachte ich "Donnerwetter, eine Ladestation am Gotthard?"...

{
    "grouped": false,
    "operator": "SMATRICS EnBW Italia",
    "operatorCode": "ITSMA",
    "priceGroup": "ENBW_GROUP",
    "shortAddress": "Via Forch 5 / Forchstraße 5, 39040 Varna / Vahrn, IT",
    "lat": 46.760054,
    "lon": 11.638077,
    "numberOfChargePoints": 20,
    "availableChargePoints": 17,
    "unknownStateChargePoints": 2,
    "stationId": 1955461,
    "viewPort": {
        "lowerLeftLat": 46.760054,
        "lowerLeftLon": 11.638077,
        "upperRightLat": 46.760054999999994,
        "upperRightLon": 11.638077999999998
    },
    "distanceToMyPositionInKm": null,
    "plugTypes": ["CCS"],
    "plugTypeNames": ["CCS (Typ 2)"],
    "favorite": false,
    "maxPowerInKw": 400.0,
    "alwaysOpen": true,
    "handicappedAccessible": null,
    "payment": true,
    "authenticationMethods": [
        "OTHERS",
        "MOBILITY_PLUS_CHARGE_CARD",
        "REMOTE"
    ],
    "hiddenWithActiveProfile": null,
    "stationSummary": "Ladesäule IT*SMA*EIT8873757",
    "additionalInfo": "Hub Brixen-Vahrn",
    "restrictions": null,
    "openingHours": null,
    "openingTimes": {
        "regularHours": [],
        "twentyFourSeven": true,
        "closedOnHolidays": null,
        "nextOpeningTime": null,
        "nextClosingTime": null
    },
    "chargePoints": [
        {
            "evseId": "IT*SMA*EIT8873757*101DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772861207419,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*102DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772894402567,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*111DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772879369826,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 300.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*112DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772891538220,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 300.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*201DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772883600725,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*202DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772893379700,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*301DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772878496003,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*302DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772813100767,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*401DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772893977935,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*402DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772883664961,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*501DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772624157115,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*502DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772813903715,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*601DC",
            "status": "UNKNOWN",
            "state": {
                "updatedAt": 1772727694885,
                "value": "UNKNOWN"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*602DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772812049333,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 400.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*701DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772818646315,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 300.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*702DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772871986887,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 300.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*801DC",
            "status": "OCCUPIED",
            "state": {
                "updatedAt": 1772894621676,
                "value": "OCCUPIED"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 300.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*802DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772893379700,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 300.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*901DC",
            "status": "UNKNOWN",
            "state": {
                "updatedAt": 1772727694885,
                "value": "UNKNOWN"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 300.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        },
        {
            "evseId": "IT*SMA*EIT8873757*902DC",
            "status": "AVAILABLE",
            "state": {
                "updatedAt": 1772888433811,
                "value": "AVAILABLE"
            },
            "connectors": [
                {
                    "chargePlugTypeGroup": "CCS",
                    "plugTypeName": "CCS (Typ 2)",
                    "maxPowerInKw": 300.0,
                    "cableAttached": true,
                    "tariffInfo": {
                        "tariffGroup": "DC_CHARGER",
                        "tariffDescription": "Preis je DC kWh: Ab 0,39 € \nmit Blockiergebühr*",
                        "paymentText": "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt."
                    }
                }
            ],
            "stationNumber": null,
            "chargePointNumber": null,
            "chargePointLabel": null,
            "handicappedAccessible": null
        }
    ],
    "tariffInformations": [
        "Es gilt ausschließlich der oben angezeigte Preis ungeachtet hiervon möglicherweise abweichender Angaben des Betreibers, insbesondere in dessen unten ersichtlichen Betreiber-Informationen oder an der Ladesäule. Alle Preise inkl. gesetzlicher MwSt.",
        "*Bitte unsere Blockiergebühr beachten\nDC: Ab 240 Minuten 0,10 € pro Minute\nAC: Ab 240 Minuten 0,10 € pro Minute\nMaximal: bis 12,00 €"
    ],
    "supportInfo": {"supportHotLine": null},
    "parkingFeeDescriptions": "*Bitte unsere Blockiergebühr beachten\nDC: Ab 240 Minuten 0,10 € pro Minute\nAC: Ab 240 Minuten 0,10 € pro Minute\nMaximal: bis 12,00 €",
    "pricingInfo": {
        "priceType": "GLOBAL_MIN",
        "chargePerKwhInCent": 39,
        "freeParkingInMinutes": 240,
        "blockingFeePerMinuteInCent": 10,
        "maxBlockingFeePerChargingInCent": 1200
    }
}

Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 08 März 2026, 10:52:19
So, mit

attr Ladestation_xxx readingList\
single(jsonPath('$.additionalInfo'),'location','?')\
single(jsonPath('$.numberOfChargePoints'),'cports')\
single(jsonPath('$.availableChargePoints'),'cports_avail')\
single(jsonPath('$.unknownStateChargePoints'),'cports_unknown')\
multi(jsonPath('$.chargePoints.[*]'),concat('port_',count()),property('state.value'))

attr Ladestation_xxx stateFormat {my $n=ReadingsVal("$name","cports",0);;my $ret="<table>";;for(my $i=0;;$i<$n;;$i++){my $s=ReadingsVal("$name","port_$i","UNKNOWN");;my $t=($s=~/^A/)?"A":(($s=~/^O/)?"O":"U");;$ret.="<tr><td>$t</td></tr>\n"};;$ret.="</table>";;$ret}
gibt es schon einmal eine vertikale Tabelle mit A/O/U-Einträgen. Ich würde jetzt gerne in jeder Zeile noch mehr Informationen hinzufügen - allerdings scheitere ich noch daran, 1.mehrere Properties des Ladepunktes in eine Zeile einzutragen und 2. einen Datenpunkt (z.B. maximale Ladeleistung) aus dem unter "chargePoints" liegenden Array "connectors" abzufragen. Mit
multi(jsonPath('$.chargePoints.[*]'),concat('portPower_',count()),property('connectors[0].maxPowerInKw.value')) geht es jedenfalls nicht.

Vlt. kann das jemand beisteuern, der sich mit JsonMod besser auskennt.

LG

pah
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 08 März 2026, 11:04:01
Zitat von: Prof. Dr. Peter Henning am 07 März 2026, 16:05:54P.S.: Beim Beispiel von betateilchen dachte ich "Donnerwetter, eine Ladestation am Gotthard?"...

Natürlich, kurz vor der Einfahrt in den Tunnel.
Was glaubst Du, wie die E-Loks sonst da durchkommen? 8)
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 08 März 2026, 11:26:10
Zitat von: Prof. Dr. Peter Henning am 08 März 2026, 10:52:19allerdings scheitere ich noch daran, 1.mehrere Properties des Ladepunktes in eine Zeile einzutragen

readingList single(concat("addInfo:",jsonPath('$.additionalInfo')," / stationId:",jsonPath('$.stationId')),'combiReading','?')
Punkt 2 ist komplizierter. JsonMod hat noch einige funktionale Lücken und ich fürchte, verschachtelte arrays gehören dazu.
Mal sehen, ob mir dazu was einfällt.
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 08 März 2026, 11:43:40
Zitat von: betateilchen am 08 März 2026, 11:26:10Punkt 2 ist komplizierter. JsonMod hat noch einige funktionale Lücken und ich fürchte, verschachtelte arrays gehören dazu.
Mal sehen, ob mir dazu was einfällt.

Schau mal, ob Dir das weiterhilft:

multi(jsonPath('$.chargePoints.[*].connectors.0'),concat('test_',count()),property('maxPowerInKw'))

Da es offenbar an der Station keine chargepoints mit mehr als einem connector gibt, liefert das zumindest korrekte Ergebnisse.


Edit: angenommen, es gäbe am chargepoint 2 (oder mehr) connectors, dann könnte man die multi-Zeile einfach mehrfach angeben und die Nummer des connectors (.0) hochzählen. Dann natürlich den readingName auch entsprechend anpassen.

Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 08 März 2026, 12:48:02
Zitat von: Prof. Dr. Peter Henning am 07 März 2026, 16:05:54Das sollte einfach gehen über das OpenChargeMap-API https://www.openchargemap.org/develop/api. Bei genauerer Betrachtung kann man wahrscheinlich alle Daten daher holen, ohne über den Weg EnBW zu gehen.

Die API liefert hier (natürlich ohne gesetzte Filter) genau eine von drei vorhandenen öffentlichen Ladesäulen.
So richtig hilfreich scheint das nicht zu sein.
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 08 März 2026, 12:57:16
Zitat von: betateilchen am 08 März 2026, 11:43:40Edit: angenommen, es gäbe am chargepoint 2 (oder mehr) connectors, dann könnte man die multi-Zeile einfach mehrfach angeben und die Nummer des connectors (.0) hochzählen. Dann natürlich den readingName auch entsprechend anpassen.
Im Prinzip müsste es möglich sein, das "count()" mehrstufig anzulegen.

LG

pah
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 08 März 2026, 14:41:09
Zitat von: Prof. Dr. Peter Henning am 08 März 2026, 12:57:16Im Prinzip müsste es möglich sein, das "count()" mehrstufig anzulegen.

Das ist die Sache mit den verschachtelten arrays...

Noch cooler wäre aber sowas:

jsonPath('$.[chargePoints].[connectors]')
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 08 März 2026, 17:10:44
Immerhin geht das hier:
multi(jsonPath('$.chargePoints.[*]'),concat('test_',count()),concat(property('state.value'),',  ',property('connectors.0.maxPowerInKw'),'kW, ',property('connectors.0.tariffInfo.tariffGroup'),', ',property('connectors.0.tariffInfo.tariffDescription')))
Man könnte also tatsächlich für jeden Ladepunkt eine schöne Zeile machen. Heute aber nicht mehr, hier ist gleich Wahlparty.

Ach ja, noch etwas: Zumindest in Vahrn sind das Doppelsäulen mit je ZWEI Kabeln, jedes wird als eigener Connector angezeigt. Wir können also ziemlich sicher davon ausgehen, dass das connectors-array nur eine Rolle spielt, wenn wirklich an einem Ladepunkt unterschiedliche Stecker angeboten werden.

LG

pah
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 09 März 2026, 05:13:45
Hier die Tabelle:attr Ladestation_xxx readingList single(jsonPath('$.additionalInfo'),'location','?') single(jsonPath('$.numberOfChargePoints'),'cports') single(jsonPath('$.availableChargePoints'),'cports_avail')  single(jsonPath('$.unknownStateChargePoints'),'cports_unknown') multi(jsonPath('$.chargePoints.[*]'),concat('port_',count()),concat(property('state.value'),'|',property('connectors.0.maxPowerInKw'),'|',property('connectors.0.tariffInfo.tariffGroup'),'|',property('connectors.0.tariffInfo.tariffDescription')))

attr Ladestation_xxx stateFormat {my $n=ReadingsVal("$name","cports",0);;my $ret="<table border=\"1\"><tr><td>Status</td><td>Leistung</td><td>Typ</td><td>Preis ab</td></tr>";;for(my $i=0;;$i<$n;;$i++){my @s=split('\|',ReadingsVal("$name","port_$i","UNKNOWN|||"));;my $t1=($s[0]=~/^A/)?"frei":(($s[0]=~/^O/)?"belegt":"?");;my $t2=$s[1].'kW';;my $t3=($s[2]=~/^D/)?"DC":(($s[2]=~/^A/)?"AC":"?");;$s[3]=~/(\d,\d\d) €/;;my $t4="$1  €";;$ret.="<tr><td>$t1</td><td>$t2</td><td>$t3</td><td>$t4</td></tr>\n"};;$ret.="</table>";;$ret}

LG

pah
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: rabehd am 09 März 2026, 13:24:53
Danke für die Arbeit!

{my $n=ReadingsVal("$name","cports",0);;my $ret="<table border=\"1\"><tr><td>Status</td><td>Leistung</td><td>Typ</td><td>Preis ab</td></tr>";;for(my $i=0;;$i<$n;;$i++){my @s=split('\|',ReadingsVal("$name","port_$i","UNKNOWN|||"));;my $t1=($s[0]=~/^A/)?"frei":(($s[0]=~/^O/)?"belegt":"?");;my $t2=$s[1].'kW';;my $t3=($s[2]=~/^D/)?"DC":(($s[2]=~/^A/)?"AC":"?");;$s[3]=~/(\d,\d\d) €/;;my $t4="$1  €";;$ret.="<tr><td>$t1</td><td>$t2</td><td>$t3</td><td>$t4</td></tr>\n"};;$ret.="</table>";;$ret}Das meldet mir einen Syntaxfehler.

{my $n=ReadingsVal("$name","cports",0);;my $ret="<table border=\"1\"><tr><td>Status</td><td>Leistung</td><td>Typ</td><td>Preis ab</td></tr>";;for(my $i=0;$i<$n;$i++){my @s=split('\|',ReadingsVal("$name","port_$i","UNKNOWN|||"));;my $t1=($s[0]=~/^A/)?"frei":(($s[0]=~/^O/)?"belegt":"?");;my $t2=$s[1].'kW';;my $t3=($s[2]=~/^D/)?"DC":(($s[2]=~/^A/)?"AC":"?");;$s[3]=~/(\d,\d\d) €/;;my $t4="$1  €";;$ret.="<tr><td>$t1</td><td>$t2</td><td>$t3</td><td>$t4</td></tr>\n"};;$ret.="</table>";;$ret}So funktioniert es

Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 09 März 2026, 14:06:21
Zitat von: rabehd am 09 März 2026, 13:24:53Danke für die Arbeit!
...
Das meldet mir einen Syntaxfehler.

Vermutlich kommt es darauf an, wo Du den Code eingibst und ob dort die Anzahl der Semikolon passt.
Bei mir funktioniert Peters Code einwandfrei, wenn ich in in das große Eingabefeld hinter dem + Zeichen paste.
Welchen Syntaxfehler bekommst Du denn?

Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 09 März 2026, 14:39:29
Zitat von: betateilchen am 09 März 2026, 14:06:21Vermutlich kommt es darauf an, wo Du den Code eingibst und ob dort die Anzahl der Semikolon passt.
Sehe ich auch so.

LG

pah
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: rabehd am 09 März 2026, 15:11:19
Zitat von: betateilchen am 09 März 2026, 14:06:21Bei mir funktioniert Peters Code einwandfrei, wenn ich in in das große Eingabefeld hinter dem + Zeichen paste.
bei mir nicht, aber egal, für mich gelöst und anschließend angepasst.
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 09 März 2026, 16:53:16
Zitat von: rabehd am 09 März 2026, 13:24:53Das meldet mir einen Syntaxfehler.
Wundert mich etwas. Wenn man den Code in die Kommandozeile eingeben will, statt in das textField-long Editierfeld, muss man die Semikola verdoppeln. Aber eben auch im "for"-Befehl.
{for(my $i=0;$i<10;$i++){Log 1,"xyz"}}liefert einen Fehler
{for(my $i=0;;$i<10;;$i++){Log 1,"xyz"}}wird ausgeführt.

LG

pah
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 09 März 2026, 16:54:45
Zitat von: betateilchen am 08 März 2026, 12:48:02Die API liefert hier (natürlich ohne gesetzte Filter) genau eine von drei vorhandenen öffentlichen Ladesäulen.
So richtig hilfreich scheint das nicht zu sein.
Stimmt, das Dingens kennt nicht die Hälfte der Ladestationen.

LG

pah
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: rabehd am 09 März 2026, 16:59:09
Ich habe es nicht in die Kommandozeile eingegeben, sondern in das Feld mit dem Plus-Zeichen.
Zitat von: betateilchen am 09 März 2026, 14:06:21, wenn ich in in das große Eingabefeld hinter dem + Zeichen
Was meinst Du damit? Die Kommandozeile? Haben ich Dich mißverstanden?
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 09 März 2026, 19:01:27
Zitat von: rabehd am 09 März 2026, 16:59:09Ich habe es nicht in die Kommandozeile eingegeben, sondern in das Feld mit dem Plus-Zeichen.
Zitat von: betateilchen am 09 März 2026, 14:06:21, wenn ich in in das große Eingabefeld hinter dem + Zeichen
Was meinst Du damit? Die Kommandozeile? Haben ich Dich mißverstanden?


Siehe Anhang.

Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 10 März 2026, 08:19:31
Das "Pluszeichen" gibt es nicht in jedem Style (bei mir z.B. auch nicht). Ist irgendwann in Style f18 als Erweiterung hinzugekommen, bläst die Kommandozeile zu einem Texteingabefeld auf. Dass sich das dann offenbar etwas anders verhält, als die einzelne Zeile, ist unschön.

Bei dem EnBW-API frage ich mich, ob man nicht einen bestimmten Kartenausschnitt an Hand der Koordinaten holen und alle darin befindlichen Ladestationen ausgraben kann.

LG

pah
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 10 März 2026, 08:52:22
Da die Eingabe ja nun in allen Fällen "irgendwie" erfolgreich verlaufen ist, wenn man die Anzahl der Strichpunkte entsprechend des Eingabeortes wählt, ist der Punkt jetzt für mich durch.


Zitat von: Prof. Dr. Peter Henning am 10 März 2026, 08:19:31Bei dem EnBW-API frage ich mich, ob man nicht einen bestimmten Kartenausschnitt an Hand der Koordinaten holen und alle darin befindlichen Ladestationen ausgraben kann.

Das mache ich in der TomTom-api so. Entweder zwei Ecken eines Kartenausschnitts angeben oder einen Standort und einen Radius. Allerdings ist diese Abfrage im eigenen Code nicht kostenfrei möglich. Man kann aber die Abfrage auf der Webseite mit den entsprechenden Werten "testen" und bekommt dann die echten Daten mit den passenden Ladestationen inkl. deren ID zurück.

{
  "summary": {
    "numResults": 3,
    "totalResults": 3
  },
  "results": [
    {
      "id": "d2362dd8-982a-4deb-81e7-24316535b510",
      "name": "EWE Go",
      "position": {
        "lat": 53.5227498,
        "lon": 9.3983364
      },
      "chargingStations": [
        {
          "id": "68190014-a652-11ed-92df-42010aa40fc0",
          "chargingPoints": [
            {
              "capabilities": [
                "RemoteStartStopCapable",
                "RfidReader"
              ],
              "connectors": [
                {
                  "id": "2",
                  "currentA": 32,
                  "currentType": "AC3",
                  "ratedPowerKW": 22,
                  "type": "IEC62196Type2Outlet",
                  "voltageV": 230
                }
              ],
              "id": "DE*2GO*E0727*2",
              "evseId": "DE*2GO*E0727*2",
              "physicalReference": "DE2GOE07272",
              "status": "Available"
            },
            {
              "capabilities": [
                "RemoteStartStopCapable",
                "RfidReader"
              ],
              "connectors": [
                {
                  "id": "1",
                  "currentA": 32,
                  "currentType": "AC3",
                  "ratedPowerKW": 22,
                  "type": "IEC62196Type2Outlet",
                  "voltageV": 230
                }
              ],
              "id": "DE*2GO*E0727*1",
              "evseId": "DE*2GO*E0727*1",
              "physicalReference": "DE2GOE07271",
              "status": "Occupied"
            }
          ]
        }
      ],
      "address": {
        "countryCode": "DE",
        "countryCodeISO3": "DEU",
        "country": "Deutschland",
        "countrySubdivision": "Niedersachsen",
        "countrySubdivisionName": "Niedersachsen",
        "countrySubdivisionCode": "NI",
        "countrySecondarySubdivision": "Stade",
        "freeformAddress": "Schwingestraße 1, 21717 Fredenbeck",
        "localName": "Fredenbeck",
        "municipality": "Fredenbeck",
        "municipalitySubdivision": "Klein Fredenbeck",
        "postalCode": "21717",
        "streetNumber": "1",
        "streetName": "Schwingestraße"
      },
      "phone": "+49 441 36152300",
      "openingHours": {
        "mode": "nextSevenDays",
        "timeRanges": [
          {
            "startTime": {
              "date": "2026-02-25",
              "hour": 0,
              "minute": 0
            },
            "endTime": {
              "date": "2026-03-04",
              "hour": 0,
              "minute": 0
            }
          }
        ]
      },
      "timeZone": {
        "ianaId": "Europe/Berlin"
      },
      "brands": [
        {
          "id": "EGGW6FYY",
          "name": "EWE Go"
        }
      ],
      "paymentOptions": [
        {
          "method": "subscription",
          "brands": [
            {
              "id": "VI653JTD",
              "name": "Virta"
            },
            {
              "id": "DCAVE45G",
              "name": "Digital Charging Solutions - ChargeNow Laadkaart"
            },
            {
              "id": "PL26DTVW",
              "name": "Plugsurfing"
            },
            {
              "id": "BCWLNYNJ",
              "name": "Blink Charging Mobile App"
            },
            {
              "id": "FPMN6H7V",
              "name": "Freshmile Pass"
            },
            {
              "id": "ZUVKF4UX",
              "name": "Zunder"
            },
            {
              "id": "CCFDRTS3",
              "name": "Corpay Card"
            },
            {
              "id": "EFKJYRY5",
              "name": "E-Flux"
            },
            {
              "id": "MEZPINNS",
              "name": "Maingau Energie - EinfachStromLaden"
            },
            {
              "id": "ED2K344F",
              "name": "EDI - D'Ieteren Energy"
            },
            {
              "id": "TEFNCFWO",
              "name": "Tap Electric"
            },
            {
              "id": "AVJP4LQI",
              "name": "AVIA"
            },
            {
              "id": "CPYSV722",
              "name": "Chargemap Pass"
            },
            {
              "id": "EC",
              "name": "eSolutions Charging",
              "restricted": true
            },
            {
              "id": "SR6TVFLW",
              "name": "Shell Recharge"
            },
            {
              "id": "ECPJT2IC",
              "name": "Eneco Charging Pass"
            },
            {
              "id": "EG7KPQFB",
              "name": "EWE Go"
            },
            {
              "id": "EMNNC7AA",
              "name": "EnBW mobility+"
            },
            {
              "id": "CHLYKLEE",
              "name": "ChargePoint"
            },
            {
              "id": "OEXM3ZBP",
              "name": "Octopus Electroverse"
            },
            {
              "id": "MY",
              "name": "MyEasyCharge",
              "restricted": true
            },
            {
              "id": "STS6RMDI",
              "name": "stations-e"
            },
            {
              "id": "COLJRQID",
              "name": "ConnectNed"
            },
            {
              "id": "ECFNCTW6",
              "name": "Ecotap"
            },
            {
              "id": "MOW4N2XL",
              "name": "Mobiflow"
            },
            {
              "id": "TCIJ4G2V",
              "name": "Travel Card - Travelcard Laadpas"
            },
            {
              "id": "LC7CMLML",
              "name": "LOGPAY - CHARGE&FUEL CARD"
            },
            {
              "id": "ECK67WYK",
              "name": "EVBox Charge"
            },
            {
              "id": "CEEZIX3N",
              "name": "CenEnergy"
            },
            {
              "id": "DMB3NZFY",
              "name": "DKV Mobility - DKV CARD +CHARGE"
            },
            {
              "id": "SCIIWIQC",
              "name": "Smart Charge (AU)"
            },
            {
              "id": "GJKYXQXS",
              "name": "GP Joule Connect GmbH"
            }
          ]
        }
      ],
      "nearbyPois": [
        {
          "categoryId": "7332"
        },
        {
          "categoryId": "7314"
        },
        {
          "categoryId": "7315"
        },
        {
          "categoryId": "9361"
        }
      ],
      "accessType": "Public",
      "vehicleConstraint": {
        "types": [
          "Truck",
          "Car"
        ],
        "categories": [
          "N1"
        ]
      }
    },



    {
      "id": "0fd714cf-50b7-4d7a-9a5e-f6dfce49cb53",
      "name": "Volkswagen Group",
      "position": {
        "lat": 53.5234535,
        "lon": 9.4031232
      },
      "chargingStations": [
        {
          "id": "f336a528-7690-11eb-a714-42010a840003",
          "chargingPoints": [
            {
              "capabilities": [
                "RemoteStartStopCapable",
                "RfidReader"
              ],
              "connectors": [
                {
                  "id": "DE*GCE*EDCCM206042_0",
                  "currentA": 55,
                  "currentType": "DC",
                  "ratedPowerKW": 22,
                  "type": "IEC62196Type2CCS",
                  "voltageV": 500
                }
              ],
              "id": "DE*GCE*EDCCM206042",
              "evseId": "DE*GCE*EDCCM206042",
              "status": "Available"
            },
            {
              "capabilities": [
                "RemoteStartStopCapable",
                "RfidReader"
              ],
              "connectors": [
                {
                  "id": "DE*GCE*EACCM206041_0",
                  "currentA": 16,
                  "currentType": "AC3",
                  "ratedPowerKW": 11,
                  "type": "IEC62196Type2Outlet",
                  "voltageV": 230
                }
              ],
              "id": "DE*GCE*EACCM206041",
              "evseId": "DE*GCE*EACCM206041",
              "status": "Available"
            }
          ]
        }
      ],
      "address": {
        "countryCode": "DE",
        "countryCodeISO3": "DEU",
        "country": "Deutschland",
        "countrySubdivision": "Niedersachsen",
        "countrySubdivisionName": "Niedersachsen",
        "countrySubdivisionCode": "NI",
        "countrySecondarySubdivision": "Stade",
        "freeformAddress": "Hauptstraße 22, 21717 Fredenbeck",
        "localName": "Fredenbeck",
        "municipality": "Fredenbeck",
        "postalCode": "21717",
        "streetNumber": "22",
        "streetName": "Hauptstraße"
      },
      "phone": "+49 800 43347328",
      "openingHours": {
        "mode": "nextSevenDays",
        "timeRanges": [
          {
            "startTime": {
              "date": "2026-02-25",
              "hour": 0,
              "minute": 0
            },
            "endTime": {
              "date": "2026-03-04",
              "hour": 0,
              "minute": 0
            }
          }
        ]
      },
      "timeZone": {
        "ianaId": "Europe/Berlin"
      },
      "brands": [
        {
          "id": "VO2DWRZE",
          "name": "Volkswagen"
        }
      ],
      "paymentOptions": [
        {
          "method": "subscription",
          "brands": [
            {
              "id": "DEGFMIOO",
              "name": "Duferco Energia - D-Mobility"
            },
            {
              "id": "VI653JTD",
              "name": "Virta"
            },
            {
              "id": "DCAVE45G",
              "name": "Digital Charging Solutions - ChargeNow Laadkaart"
            },
            {
              "id": "PL26DTVW",
              "name": "Plugsurfing"
            },
            {
              "id": "BCWLNYNJ",
              "name": "Blink Charging Mobile App"
            },
            {
              "id": "FPMN6H7V",
              "name": "Freshmile Pass"
            },
            {
              "id": "CCFDRTS3",
              "name": "Corpay Card"
            },
            {
              "id": "MEZPINNS",
              "name": "Maingau Energie - EinfachStromLaden"
            },
            {
              "id": "QEJLA5RN",
              "name": "Q8 Electric App"
            },
            {
              "id": "ED2K344F",
              "name": "EDI - D'Ieteren Energy"
            },
            {
              "id": "TEFNCFWO",
              "name": "Tap Electric"
            },
            {
              "id": "AVJP4LQI",
              "name": "AVIA"
            },
            {
              "id": "CPYSV722",
              "name": "Chargemap Pass"
            },
            {
              "id": "EC",
              "name": "eSolutions Charging",
              "restricted": true
            },
            {
              "id": "SR6TVFLW",
              "name": "Shell Recharge"
            },
            {
              "id": "ECPJT2IC",
              "name": "Eneco Charging Pass"
            },
            {
              "id": "EG7KPQFB",
              "name": "EWE Go"
            },
            {
              "id": "EMNNC7AA",
              "name": "EnBW mobility+"
            },
            {
              "id": "CHLYKLEE",
              "name": "ChargePoint"
            },
            {
              "id": "NCXAAZIJ",
              "name": "NEXTCHARGE card"
            },
            {
              "id": "OEXM3ZBP",
              "name": "Octopus Electroverse"
            },
            {
              "id": "EM5LPXEB",
              "name": "emyon"
            },
            {
              "id": "MY",
              "name": "MyEasyCharge",
              "restricted": true
            },
            {
              "id": "COLJRQID",
              "name": "ConnectNed"
            },
            {
              "id": "ECFNCTW6",
              "name": "Ecotap"
            },
            {
              "id": "MOW4N2XL",
              "name": "Mobiflow"
            },
            {
              "id": "TCIJ4G2V",
              "name": "Travel Card - Travelcard Laadpas"
            },
            {
              "id": "LC7CMLML",
              "name": "LOGPAY - CHARGE&FUEL CARD"
            },
            {
              "id": "CEEZIX3N",
              "name": "CenEnergy"
            },
            {
              "id": "DMB3NZFY",
              "name": "DKV Mobility - DKV CARD +CHARGE"
            },
            {
              "id": "SCIIWIQC",
              "name": "Smart Charge (AU)"
            },
            {
              "id": "GJKYXQXS",
              "name": "GP Joule Connect GmbH"
            }
          ]
        }
      ],
      "nearbyPois": [
        {
          "categoryId": "9376"
        },
        {
          "categoryId": "7315"
        }
      ],
      "accessType": "Public",
      "vehicleConstraint": {
        "types": [
          "Truck",
          "Car"
        ],
        "categories": [
          "N1",
          "N2"
        ]
      }
    },
    {
      "id": "f18ee928-83e9-4c49-8b69-423317ad0d2b",
      "name": "EnBW",
      "position": {
        "lat": 53.525,
        "lon": 9.4151001
      },
      "chargingStations": [
        {
          "id": "2cc06bd6-7c3b-11ef-bd65-42010aa40043",
          "chargingPoints": [
            {
              "capabilities": [
                "CreditCardPayable",
                "RemoteStartStopCapable",
                "RfidReader"
              ],
              "connectors": [
                {
                  "id": "IEC_62196_T2_COMBO",
                  "currentA": 188,
                  "currentType": "DC",
                  "ratedPowerKW": 150,
                  "type": "IEC62196Type2CCS",
                  "voltageV": 920
                }
              ],
              "id": "DE*EBW*E910089*2",
              "evseId": "DE*EBW*E910089*2",
              "physicalReference": "910089",
              "status": "Available"
            },
            {
              "capabilities": [
                "CreditCardPayable",
                "RemoteStartStopCapable",
                "RfidReader"
              ],
              "connectors": [
                {
                  "id": "IEC_62196_T2_COMBO",
                  "currentA": 188,
                  "currentType": "DC",
                  "ratedPowerKW": 150,
                  "type": "IEC62196Type2CCS",
                  "voltageV": 920
                }
              ],
              "id": "DE*EBW*E910089*1",
              "evseId": "DE*EBW*E910089*1",
              "physicalReference": "910089",
              "status": "Available"
            }
          ]
        }
      ],
      "address": {
        "countryCode": "DE",
        "countryCodeISO3": "DEU",
        "country": "Deutschland",
        "countrySubdivision": "Niedersachsen",
        "countrySubdivisionName": "Niedersachsen",
        "countrySubdivisionCode": "NI",
        "countrySecondarySubdivision": "Stade",
        "freeformAddress": "Hauptstraße 66, 21717 Fredenbeck",
        "localName": "Fredenbeck",
        "municipality": "Fredenbeck",
        "municipalitySubdivision": "Groß Fredenbeck",
        "postalCode": "21717",
        "streetNumber": "66",
        "streetName": "Hauptstraße"
      },
      "phone": "+49 721 6300",
      "openingHours": {
        "mode": "nextSevenDays",
        "timeRanges": [
          {
            "startTime": {
              "date": "2026-02-25",
              "hour": 0,
              "minute": 0
            },
            "endTime": {
              "date": "2026-03-04",
              "hour": 0,
              "minute": 0
            }
          }
        ]
      },
      "timeZone": {
        "ianaId": "Europe/Berlin"
      },
      "brands": [
        {
          "id": "ENXH5LT7",
          "name": "EnBW"
        }
      ],
      "paymentOptions": [
        {
          "method": "subscription",
          "brands": [
            {
              "id": "DEGFMIOO",
              "name": "Duferco Energia - D-Mobility"
            },
            {
              "id": "VI653JTD",
              "name": "Virta"
            },
            {
              "id": "DCAVE45G",
              "name": "Digital Charging Solutions - ChargeNow Laadkaart"
            },
            {
              "id": "PL26DTVW",
              "name": "Plugsurfing"
            },
            {
              "id": "BCWLNYNJ",
              "name": "Blink Charging Mobile App"
            },
            {
              "id": "FPMN6H7V",
              "name": "Freshmile Pass"
            },
            {
              "id": "ZUVKF4UX",
              "name": "Zunder"
            },
            {
              "id": "CCFDRTS3",
              "name": "Corpay Card"
            },
            {
              "id": "EFKJYRY5",
              "name": "E-Flux"
            },
            {
              "id": "MEZPINNS",
              "name": "Maingau Energie - EinfachStromLaden"
            },
            {
              "id": "ED2K344F",
              "name": "EDI - D'Ieteren Energy"
            },
            {
              "id": "TEFNCFWO",
              "name": "Tap Electric"
            },
            {
              "id": "AVJP4LQI",
              "name": "AVIA"
            },
            {
              "id": "CPYSV722",
              "name": "Chargemap Pass"
            },
            {
              "id": "EC",
              "name": "eSolutions Charging",
              "restricted": true
            },
            {
              "id": "SR6TVFLW",
              "name": "Shell Recharge"
            },
            {
              "id": "ECPJT2IC",
              "name": "Eneco Charging Pass"
            },
            {
              "id": "EG7KPQFB",
              "name": "EWE Go"
            },
            {
              "id": "EMNNC7AA",
              "name": "EnBW mobility+"
            },
            {
              "id": "CHLYKLEE",
              "name": "ChargePoint"
            },
            {
              "id": "OEXM3ZBP",
              "name": "Octopus Electroverse"
            },
            {
              "id": "EM5LPXEB",
              "name": "emyon"
            },
            {
              "id": "MY",
              "name": "MyEasyCharge",
              "restricted": true
            },
            {
              "id": "ENPHAMHL",
              "name": "enviaM"
            },
            {
              "id": "COLJRQID",
              "name": "ConnectNed"
            },
            {
              "id": "ECFNCTW6",
              "name": "Ecotap"
            },
            {
              "id": "MOW4N2XL",
              "name": "Mobiflow"
            },
            {
              "id": "TCIJ4G2V",
              "name": "Travel Card - Travelcard Laadpas"
            },
            {
              "id": "LC7CMLML",
              "name": "LOGPAY - CHARGE&FUEL CARD"
            },
            {
              "id": "ECK67WYK",
              "name": "EVBox Charge"
            },
            {
              "id": "EDKFIOVZ",
              "name": "E.ON Drive"
            },
            {
              "id": "CEEZIX3N",
              "name": "CenEnergy"
            },
            {
              "id": "DMB3NZFY",
              "name": "DKV Mobility - DKV CARD +CHARGE"
            },
            {
              "id": "SCIIWIQC",
              "name": "Smart Charge (AU)"
            },
            {
              "id": "GJKYXQXS",
              "name": "GP Joule Connect GmbH"
            }
          ]
        }
      ],
      "nearbyPois": [
        {
          "categoryId": "7332"
        },
        {
          "categoryId": "7315"
        },
        {
          "categoryId": "9361"
        }
      ],
      "accessType": "Public",
      "vehicleConstraint": {
        "types": [
          "Truck",
          "Car"
        ],
        "categories": [
          "N1",
          "N2"
        ]
      }
    }
  ]
}

Für die drei Regionen, in denen ich regelmäßig nach Ladestationen suche, habe ich das jeweils einmal manuell gemacht und mir so die benötigten IDs der Ladestationen zusammengesammelt, die ich dann in FHEM abfrage.
Die Abfrage einer Ladestation selbst ist dann wieder kostenfrei möglich.

defmod evGotthard_ac JsonMod https://api.tomtom.com/search/2/chargingAvailability.json?chargingAvailability=0fd714cf-50b7-4d7a-9a5e-f6dfce49cb53&connectorSet=IEC62196Type2Outlet&key=[apikey]

liefert:

2026-03-10 08:48:55 chargingAvailability 0fd714cf-50b7-4d7a-9a5e-f6dfce49cb53
2026-03-10 08:48:55 connectors.0.availability.current.available 1
2026-03-10 08:48:55 connectors.0.availability.current.occupied 0
2026-03-10 08:48:55 connectors.0.availability.current.outOfService 0
2026-03-10 08:48:55 connectors.0.availability.current.reserved 0
2026-03-10 08:48:55 connectors.0.availability.current.unknown 0
2026-03-10 08:48:55 connectors.0.availability.perPowerLevel.0.available 1
2026-03-10 08:48:55 connectors.0.availability.perPowerLevel.0.occupied 0
2026-03-10 08:48:55 connectors.0.availability.perPowerLevel.0.outOfService 0
2026-03-10 08:48:55 connectors.0.availability.perPowerLevel.0.powerKW 11
2026-03-10 08:48:55 connectors.0.availability.perPowerLevel.0.reserved 0
2026-03-10 08:48:55 connectors.0.availability.perPowerLevel.0.unknown 0
2026-03-10 08:48:55 connectors.0.total 1
2026-03-10 08:48:55 connectors.0.type IEC62196Type2Outlet


Die beiden an dieser Ladesäule vorhanden ports, einer AC, einer DC, frage ich übrigens separat ab, da in einem kombinierten JSON die Reihenfolge im Array zufällig wäre und ein erhöhter Auswertungsaufwand nötig wäre. Deshalb steckt der Steckertyp schon als Parameter mit in der URL.
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: Prof. Dr. Peter Henning am 10 März 2026, 14:39:23
Es gibt auch noch Open Streetmap. Allerdings zeigen die nicht alle Ladestationen. Visualisierungsoberfläche hier: https://mapcomplete.org/charging_stations.html

LG

pah
Titel: Aw: Ladestation (öffentlich) Zustandabfrage per HTTPMOD
Beitrag von: betateilchen am 10 März 2026, 20:09:26
Übrigens ist auch die EnBW API ein ganzes Stück weit weg von "Echtzeit-Informationen".
Es gibt da teilweise einen Zeitversatz von bis zu einer Stunde, was die Statusanzeige einer Ladestation angeht.