Hauptmenü

Neueste Beiträge

#1
MQTT / Aw: sonos2mqtt 3 von 4 Devices...
Letzter Beitrag von Flanders - 10 März 2026, 11:44:34
Ich habe die Bridge über set attributeTemplate sonos2mqtt_bridge_compfort erstellt.


define SonosBridge MQTT2_DEVICE
attr SonosBridge IODev myMosquitto
attr SonosBridge bridgeRegexp sonos/(RINCON_[A-Z0-9]+)[:/].* "$1"
attr SonosBridge devStateIcon 0:10px-kreis-rot 1:10px-kreis-gelb 2:10px-kreis-gruen
attr SonosBridge devicetopic sonos
attr SonosBridge getList Favorites:noArg Favorites {sonos2mqtt($NAME,$EVENT)}
attr SonosBridge icon mqtt_bridge_2
attr SonosBridge model sonos2mqtt_bridge
attr SonosBridge readingList sonos/connected:.* connected\
  homeassistant/music_player/RINCON_([0-9A-Z]+)/sonos/config:.* { $TOPIC =~ m,(RINCON_[0-9A-Z]+),;; { "config_$1"=>$EVENT }}\
  sonos/status/[^/]+/avtransport:.* {}\
  sonos/status/[^/]+/renderingcontrol:.* {}
attr SonosBridge room MQTT2_DEVICE,Sonos
attr SonosBridge setList PauseAll:noArg $DEVICETOPIC/cmd/pauseall\
CheckSubscription:noArg $DEVICETOPIC/cmd/check-subscriptions
attr SonosBridge stateFormat connected
attr SonosBridge userReadings favlist:Favorites.* {sonos2mqtt_ur($name,'favlist')},\
grouplist:Favorites.* {sonos2mqtt_ur($name,'grouplist')}

setstate SonosBridge 2
setstate SonosBridge 2026-03-10 06:57:30 IODev myMosquitto
setstate SonosBridge 2026-03-09 14:24:27 attrTemplateVersion 20210303
setstate SonosBridge 2026-03-10 07:57:18 connected 2
setstate SonosBridge 2026-03-10 08:25:30 state PauseAll


define myMosquitto MQTT2_CLIENT 127.0.0.1:1885
attr myMosquitto autocreate simple
attr myMosquitto clientId fhem2
attr myMosquitto clientOrder MQTT_GENERIC_BRIDGE MQTT2_DEVICE
attr myMosquitto disable 0
attr myMosquitto group MQTT
attr myMosquitto room MQTT2_DEVICE
attr myMosquitto username andreas

setstate RINCON_F0FXXXXXXXXXXXX00 STOPPED
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 CopyrightInfo © 2003-2026, Sonos, Inc. All rights reserved.
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 DisplaySoftwareVersion 18.1
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 Flags 0
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 HTAudioIn 0
setstate RINCON_F0XXXXXXXXXC0

define RINCON_F0FXXXXXXXXXXXX00 MQTT2_DEVICE RINCON_F0FXXXXXXXXXXXX00
attr RINCON_F0FXXXXXXXXXXXX00 alias Mobil2
attr RINCON_F0FXXXXXXXXXXXX00 devStateIcon {sonos2mqtt($name,'devStateIcon')}
attr RINCON_F0FXXXXXXXXXXXX00 devicetopic sonos
attr RINCON_F0FXXXXXXXXXXXX00 icon Sonos2mqtt_icon-S27
attr RINCON_F0FXXXXXXXXXXXX00 jsonMap volume_Master:volume mute_Master:mute
attr RINCON_F0FXXXXXXXXXXXX00 model sonos2mqtt_speaker
attr RINCON_F0FXXXXXXXXXXXX00 readingList $DEVICETOPIC/RINCON_F0FXXXXXXXXXXXX00/ZoneInfo:.* { json2nameValue($EVENT) }\
$DEVICETOPIC/RINCON_F0FXXXXXXXXXXXX00:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/status/(.*)/avtransport:.* { sonos2mqtt_reading($NAME,$EVENT,$TOPIC) }\
sonos/RINCON_F0FXXXXXXXXXXXX00/control:.* { json2nameValue($EVENT) }\
sonos/RINCON_F0FXXXXXXXXXXXX00/Favorites:.* { json2nameValue($EVENT) }
attr RINCON_F0FXXXXXXXXXXXX00 room MQTT2_DEVICE,Sonos
attr RINCON_F0FXXXXXXXXXXXX00 setList alarm:textField { sonos2mqtt_alarm($NAME,$EVENT) }\
input:Queue {sonos2mqtt($NAME,$EVENT)}\
joinGroup: {sonos2mqtt($NAME,$EVENT)}\
leaveGroup:noArg {sonos2mqtt($NAME,$EVENT)}\
mute:true,false {sonos2mqtt($NAME,$EVENT)}\
next:noArg {sonos2mqtt($NAME,$EVENT)}\
notify:textField {sonos2mqtt($NAME,$EVENT)}\
pause:noArg {sonos2mqtt($NAME,$EVENT)}\
play:noArg {sonos2mqtt($NAME,$EVENT)}\
playUri:textField {sonos2mqtt($NAME,$EVENT)}\
previous:noArg {sonos2mqtt($NAME,$EVENT)}\
sayText:textField {sonos2mqtt($NAME,$EVENT)}\
setAVTUri:textField {sonos2mqtt($NAME,$EVENT)}\
sleep:selectnumbers,0,15,120,0,lin {sonos2mqtt($NAME,$EVENT)}\
snoozeAlarm:textField { sonos2mqtt($NAME,$EVENT) }\
speak:textField {sonos2mqtt($NAME,$EVENT)}\
stop:noArg {sonos2mqtt($NAME,$EVENT)}\
toggle:noArg {sonos2mqtt($NAME,$EVENT)}\
volume:slider,0,1,100 {sonos2mqtt($NAME,$EVENT)}\
volumeDown:noArg {sonos2mqtt($NAME,$EVENT)}\
volumeUp:noArg {sonos2mqtt($NAME,$EVENT)}\
x_raw_payload:textField {sonos2mqtt($NAME,$EVENT)}
attr RINCON_F0FXXXXXXXXXXXX00 stateFormat transportState
attr RINCON_F0FXXXXXXXXXXXX00 userReadings Master:groupName.* {(split(' \+',ReadingsVal($name,'groupName','')))[0]},\
isMaster:coordinatorUuid.* {ReadingsVal($name,'coordinatorUuid','') eq ReadingsVal($name,'uuid','')?1:0},\
inGroup:groupName.* {ReadingsVal($name,'groupName','') =~ / \+ /?1:0},\
inCouple:coordinatorUuid.* {(ReadingsVal($name,'coordinatorUuid','') ne ReadingsVal($name,'uuid','') and (index(ReadingsVal($name,'groupName',''), ReadingsVal($name,'name','')) != -1))?1:0},\
Input:currentTrack_TrackUri.* {sonos2mqtt_ur($name,'Input')}
setstate RINCON_F0FXXXXXXXXXXXX00 STOPPED
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 CopyrightInfo © 2003-2026, Sonos, Inc. All rights reserved.
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 DisplaySoftwareVersion 18.1
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 Flags 0
setstate RINCON_F0FXXXXXXXXXXXX00 2026-03-10 07:09:43 HTAudioIn 0
setstate RINCON_F0XXXXXXXXXC0
#2
Automatisierung / Aw: DbLog schreibt nicht laufe...
Letzter Beitrag von MartinD - 10 März 2026, 11:30:45
Soll DbLog in die Tabelle "current" schreiben?
Bis jetzt hat er immer in "history" geschrieben.

Jetzt sieht es so aus:
MariaDB [fhem]> SELECT TIMESTAMP, DEVICE, READING, VALUE FROM current ORDER BY TIMESTAMP DESC LIMIT 20;
+---------------------+--------------+-----------------------------+-----------+
| TIMESTAMP           | DEVICE       | READING                     | VALUE     |
+---------------------+--------------+-----------------------------+-----------+
| 2026-03-10 11:26:29 | SE_10k       | pvIn                        | 0.093     |
| 2026-03-10 11:26:29 | SE_10k       | BatIn                       | 0.47      |
| 2026-03-10 11:26:29 | SE_10k       | PV_DC                       | 0.688     |
| 2026-03-10 11:26:29 | SE_10k       | BatOut                      | 0         |
| 2026-03-10 10:53:11 | MD_SolarEdge | BatIn                       | 0.41      |
| 2026-03-10 10:53:11 | MD_SolarEdge | BatOut                      | 0         |
| 2026-03-10 09:33:03 | SE_10k       | BatNet                      | 2.630     |
| 2026-03-10 09:33:03 | SE_10k       | BatHaus                     | 2.630     |
| 2026-03-10 09:33:03 | SE_10k       | B_Status                    | Discharge |
| 2026-03-10 09:33:03 | SE_10k       | Haus_Last_kW                | 4.02      |
| 2026-03-10 09:33:03 | SE_10k       | Hausverbrauch               | 4.273     |
| 2026-03-10 09:33:03 | SE_10k       | BatOUT_TOTAL_kWh            | 930.46    |
| 2026-03-10 09:33:03 | SE_10k       | B_State_of_Energy           | 41.5      |
| 2026-03-10 09:33:03 | SE_10k       | B_State_of_Health           | 99.0      |
| 2026-03-10 09:33:03 | SE_10k       | B_Available_Energy          | 9.53      |
| 2026-03-10 09:33:03 | SE_10k       | B_Average_Temperature       | 17.5      |
| 2026-03-10 09:33:03 | SE_10k       | B_Instantaneous_Power       | -2.63     |
| 2026-03-10 09:33:03 | SE_10k       | B_State_of_Energy_in_kWh    | 3.95      |
| 2026-03-10 09:33:03 | SE_10k       | Energiebezug_HM_Meter_kWh   | 875.10    |
| 2026-03-10 09:33:03 | SE_10k       | Energie_FeedIN_HM_Meter_kWh | 182.90    |
+---------------------+--------------+-----------------------------+-----------+
#3
Sprachsteuerung / Aw: [37_echodevice] Amazon Ech...
Letzter Beitrag von locodriver - 10 März 2026, 10:48:07
Die Datei taucht leider nicht auf. Die Ausgabe auf der Konsole sieht nach Befehlsausführung so aus:

pi@raspberrypi:~ $ sudo npm install --prefix /opt/fhem/cache/alexa-cookie alexa-cookie2

up to date, audited 103 packages in 7s

18 packages are looking for funding
  run `npm fund` for details

2 low severity vulnerabilities

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

Das Verzeichnis hat sich nicht verändert und die Änderungszeit der Ordner und Dateien ist weiterhin am 5.3.

npm fund gibt folgendes:

pi@raspberrypi:/opt/fhem/cache/alexa-cookie $ npm fund
alexa-cookie
├─┬ https://opencollective.com/express
│ │ └── express@4.22.1, http-errors@2.0.1
│ ├── https://github.com/sponsors/sindresorhus
│ │   └── merge-descriptors@1.0.3, is-plain-obj@3.0.0
│ ├── https://github.com/sponsors/ljharb
│ │   └── qs@6.14.2, side-channel@1.1.0, object-inspect@1.13.4, side-channel-list@1.0.0, side-channel-map@1.0.1, call-bound@1.0.4, function-bind@1.1.2, get-intrinsic@1.3.0, gopd@1.2.0, has-symbols@1.1.0, side-channel-weakmap@1.0.2
│ └── https://github.com/sponsors/feross
│     └── safe-buffer@5.2.1
├── https://github.com/sponsors/RubenVerborgh
│   └── follow-redirects@1.15.11
└── https://github.com/sponsors/jonschlinkert
    └── picomatch@2.3.1

sudo npm audit fix --force gibt das:

pi@raspberrypi:/opt/fhem/cache/alexa-cookie $ sudo npm audit fix --force
npm WARN using --force Recommended protections disabled.
npm WARN audit Updating alexa-cookie2 to 1.0.3, which is a SemVer major change.
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated source-map-url@0.4.1: See https://github.com/lydell/source-map-url#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated source-map-resolve@0.5.3: See https://github.com/lydell/source-map-resolve#deprecated

added 96 packages, removed 6 packages, changed 7 packages, and audited 193 packages in 35s

17 packages are looking for funding
  run `npm fund` for details

# npm audit report

braces  <3.0.3
Severity: high
Uncontrolled resource consumption in braces - https://github.com/advisories/GHSA-grv7-fg5c-xmjg
fix available via `npm audit fix --force`
Will install alexa-cookie2@5.0.3, which is a breaking change
node_modules/braces
  micromatch  <=4.0.7
  Depends on vulnerable versions of braces
  node_modules/micromatch
    http-proxy-middleware  <=2.0.7-beta.1
    Depends on vulnerable versions of micromatch
    node_modules/http-proxy-middleware
      alexa-cookie2  <=3.4.3
      Depends on vulnerable versions of http-proxy-middleware
      node_modules/alexa-cookie2



4 high severity vulnerabilities

To address all issues (including breaking changes), run:
  npm audit fix --force
pi@raspberrypi:/opt/fhem/cache/alexa-cookie $

und beim 2. Mal:

pi@raspberrypi:/opt/fhem/cache/alexa-cookie $ sudo npm audit fix --force
npm WARN using --force Recommended protections disabled.
npm WARN audit Updating alexa-cookie2 to 5.0.3, which is a SemVer major change.

added 6 packages, removed 96 packages, changed 7 packages, and audited 103 packages in 17s

18 packages are looking for funding
  run `npm fund` for details

# npm audit report

cookie  <0.7.0
cookie accepts cookie name, path, and domain with out of bounds characters - https://github.com/advisories/GHSA-pxg6-pf52-xh8x
fix available via `npm audit fix --force`
Will install alexa-cookie2@1.0.3, which is a breaking change
node_modules/cookie
  alexa-cookie2  >=2.0.0
  Depends on vulnerable versions of cookie
  node_modules/alexa-cookie2

2 low severity vulnerabilities

To address all issues (including breaking changes), run:
  npm audit fix --force

Jetzt ist die "alexa-cookie.js" vorhanden.
Die Rechte habe ich auch angepasst.

Ein NPM login new bricht mit

Es ist ein Fehler aufgetreten!! Bitte das FHEM Log pruefen.

ab.
Im alexa log steht:

[10.3.2026, 10:44:11] refreshing token
[10.3.2026, 10:44:12] failed to refresh token: Error: connect ECONNREFUSED 2a01:4f8:221:1b5a::f2:443

und im fhem log nichts.

BTW: wie komme ich auf eine "höhere" Nodeversion? Mt dem normalen Update bleibt es bei Version 18.20.4.
#4
DOIF / Aw: [gelöst] Wochentagsteueru...
Letzter Beitrag von Damian - 10 März 2026, 09:38:45
Zitat von: Dave2526 am 10 März 2026, 08:58:15
Zitat von: Damian am 10 März 2026, 07:49:53[[aufstehzeit_reiner:Zeit] - ([aufstehzeit_reiner:Zeit]+[00:15])|12345]

Danke! Hätte schwören könen das ich es so auch mal probiert hab aber da war dann bestimmt irgenwo eine Klammer falsch.... Manchmal sieht man den Wald vor lauter Bäumen nicht mehr...
Es gibt tatsächlich in der Commandref dbzgl. einen Fehler:

Zitatdefine di_light DOIF ([([Fixtime]-[01:00]-int(rand(300))) - ([Fixtime]+[01:00]+int(rand(300)))]|7])
(set lampe on)
DOELSE
(set lampe off)

#5
DOIF / Aw: [gelöst] Wochentagsteueru...
Letzter Beitrag von yersinia - 10 März 2026, 09:33:16
Zitat von: Damian am 10 März 2026, 07:49:53[[aufstehzeit_reiner:Zeit] - ([aufstehzeit_reiner:Zeit]+[00:15])|12345]
Und wenn du FHEMs holiday Modul nutzt und automatisch jene Feiertage, die auf Mo-Fr fallen, zusätzlich zum Wochenende auslassen möchtest, kannst du
[[aufstehzeit_reiner:Zeit] - ([aufstehzeit_reiner:Zeit]+[00:15])|8]setzen.
#6
Automatisierung / Aw: Ideensuche: Webseiten peri...
Letzter Beitrag von yersinia - 10 März 2026, 09:23:35
Mit dem DOIF-Perl-Modus hatte ich mich bisher nicht (mangels Bedarf bzw anderer Lösungswege) weiter beschäftigt.
Zitat von: Damian am 09 März 2026, 17:15:39Spätestens im DOIF-Perl kannst du auch dynamisch mit set_Exec Ausführungen verzögern.
Das war der entscheidende Hinweis, damit hab ich jetzt ein Device gebaut, welches die timer setzt. Jetzt werde ich das mal testen.
{
if([([06:50]+int(rand(300)))-([20:10]-int(rand(300)))|8]) {
my $devspec = "TYPE=HTTPMOD:FILTER=NAME=Produkt_.*";
my $timerName = "";
my $seconds = 0;
my $perlcode = '';
foreach my $dev (::devspec2array($devspec)) {
$timerName = "rereadTimer_".$dev;
$seconds = sprintf("%d", ($seconds + 45 + rand(30)));
$perlcode = 'fhem_set("'.$dev.' reread")';
set_Exec($timerName, $seconds, $perlcode);
}
$timerName = "restart_$SELF";
$seconds = sprintf("%d", ($seconds + 4600 + rand(400)));
$perlcode = 'fhem_set("$SELF block_01")';
set_Exec($timerName, $seconds, $perlcode);
}
}
Danke nochmals für den Input.
#7
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von 300P - 10 März 2026, 09:18:12
Genau sowas hatte ich mir danach vorgestellt- Danke !!
#8
DOIF / Aw: Wochentagsteuerung innerha...
Letzter Beitrag von Dave2526 - 10 März 2026, 08:58:15
Zitat von: Damian am 10 März 2026, 07:49:53[[aufstehzeit_reiner:Zeit] - ([aufstehzeit_reiner:Zeit]+[00:15])|12345]

Danke! Hätte schwören könen das ich es so auch mal probiert hab aber da war dann bestimmt irgenwo eine Klammer falsch.... Manchmal sieht man den Wald vor lauter Bäumen nicht mehr...
#9
Wallboxen und E-Fahrzeuge / Aw: Ladestation (öffentlich) Z...
Letzter Beitrag von betateilchen - 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.
#10
FHEM Code changes / Revision 30925: controls_fhem....
Letzter Beitrag von System - 10 März 2026, 08:40:29
Revision 30925: controls_fhem.txt: fhemupdate checkin

controls_fhem.txt: fhemupdate checkin

Source: Revision 30925: controls_fhem.txt: fhemupdate checkin