Notdienst Apotheke via jsonmod

Begonnen von binford6000, 27 März 2023, 14:10:27

Vorheriges Thema - Nächstes Thema

WhyTea

Ok das war schon mal ein wichtiger Hinweis Du kein Fehler von mir übersehen wurde. Danke dafür!

Ich habe nun auch die Ursache gefunden. Ich habe Fhem angewiesen einen Proxy zu nutzen. Das war die Ursache.
Ich habe nun eine Ausnahme für .aponet.de eingetragen nu läuft es.

Gruß
Daniel

yersinia

Die token-Definition ist mal wieder geändert worden; update der RegEx notwendig:
attr NotApoToken get3Regex token(?:\W+|\s+)\"(.+?)\"ergibt derzeit gültiges token
READINGS:
  2024-11-21 07:16:54   pharmacymap     /Pharmacymap-BZ6vywlm.js
  2024-11-21 07:16:53   start-1         /_assets/vite/assets/Main.entry-DZdDTN-T.js?1732104008
  2024-11-21 07:16:53   start-2         /_assets/vite/assets/Main.entry-fydt2uR6.js?1732104008
  2024-11-21 07:16:55   token           216823d96ea25c051509d935955c130fbc72680fc1d3040fe3f8ca0e25f9cd02
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

KyleK

Hallo yersinia,

danke für den Fix. Hatte eben erst bemerkt dass der Dienst mal wieder nicht funktioniert :)
FHEM on Futro S940
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

yersinia

Ohne das sich der token-wert geändert hat, ist die pharmacymap.js verschwunden und der Token befindet sich nun in der zweiten Main.entry.js. Aus Dokumentations-/Backup-Gründen habe ich eine Kopie angelegt und adaptiert sodass der token wieder gefunden werden kann (wenn jmd das DOIF Device zur Aktualisierung verwendet, muss auch dieses entsprechend angepasst werden).

NotApoToken2:
defmod NotApoToken2 HTTPMOD none 0
attr NotApoToken2 alignTime 08:55
attr NotApoToken2 event-on-change-reading .*
attr NotApoToken2 event-on-update-reading token
attr NotApoToken2 get1FollowGet token
attr NotApoToken2 get1Header01 User-Agent: Mozilla/5.0 (X11;; Linux x86_64;; rv:133.0) Gecko/20100101 Firefox/133.0
attr NotApoToken2 get1Header02 Referer: https://www.aponet.de/apotheke/notdienstsuche
attr NotApoToken2 get1Header03 Host: www.aponet.de
attr NotApoToken2 get1Header04 DNT: 1
attr NotApoToken2 get1Name start
attr NotApoToken2 get1Poll 1
attr NotApoToken2 get1RegOpt g
attr NotApoToken2 get1Regex src=\"(.+\/Main.entry-.*(?:\?\d+)?)\"
attr NotApoToken2 get1URL https://www.aponet.de/apotheke/notdienstsuche
attr NotApoToken2 get2Header01 User-Agent: Mozilla/5.0 (X11;; Linux x86_64;; rv:133.0) Gecko/20100101 Firefox/133.0
attr NotApoToken2 get2Header02 Referer: https://www.aponet.de/apotheke/notdienstsuche
attr NotApoToken2 get2Header03 Host: www.aponet.de
attr NotApoToken2 get2Header04 DNT: 1
attr NotApoToken2 get2Name token
attr NotApoToken2 get2OExpr $val=urlEncode($val)
attr NotApoToken2 get2Poll 1
attr NotApoToken2 get2PollDelay 5
attr NotApoToken2 get2Regex token(?:\W+|\s+)\"(.+?)\"
attr NotApoToken2 get2URL https://www.aponet.de%%me%%
attr NotApoToken2 group NotApo
attr NotApoToken2 replacement2Mode reading
attr NotApoToken2 replacement2Regex %%me%%
attr NotApoToken2 replacement2Value start-2
attr NotApoToken2 room NotApo
attr NotApoToken2 stateFormat { my $lastCheck = POSIX::strftime("%d.%m. %H:%M",localtime(time_str2num(ReadingsTimestamp($name,"token","2000-01-01 00:00:00"))));;\
my $ret = '<div style="text-align: left;;">';;\
$ret .= 'Token: '.ReadingsVal($name,"token","-").' ('.$lastCheck.')';;\
$ret .= '</div>';;\
return $ret;;\
}
attr NotApoToken2 webCmd reread

Derzeitige Readings:
   READINGS:
     2024-12-26 20:02:55   start-1         /_assets/vite/assets/Main.entry-DB42wDuG.js?1735210061
     2024-12-26 20:02:55   start-2         /_assets/vite/assets/Main.entry-BO809Quc.js?1735210061
     2024-12-26 20:02:56   token           216823d96ea25c051509d935955c130fbc72680fc1d3040fe3f8ca0e25f9cd02
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

KyleK

#94
Hm, bei mir hat das Modul heute Früh um 8:28 Uhr eine neue Pharmacymap-*.js geladen, es wird auch die aktuelle Notdienst Apotheke angezeigt.


EDIT: Du hast Recht. Der Token wurde zuletzt am 24.12. von FHEM ausgelesen.
Aber er scheint noch zu funktionieren, ich bekomme jeden Tag eine neue Apotheke angezeigt.
Und: Der Token, der aktuell (29.12.24 12:14 Uhr) in der Main.entry-*.js steht, ist der gleiche, den FHEM sich am 24.12. geholt hat.


Ich bin... verwirrt.
FHEM on Futro S940
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

yersinia

Ja, der Token hat sich (noch) nicht geändert, daher funktioniert auch noch die Suche via JsonMod; aber es gibt (derzeit) keine Pharmacymap, die den Token beinhaltet. Es wird also zeitnah, wenn der Token wechselt, nicht mehr funktionieren. Ich hab in der zweiten Main.entry den Verweis auf den Token als Suchparamter an die API gefunden.

Das sieht man ganz gut an den ReadingTimestamps.

NotApoToken:
   READINGS:
     2024-12-18 09:06:03   pharmacymap     /Pharmacymap-Dt9RsFl9.js
     2024-12-29 09:08:04   start-1         /_assets/vite/assets/Main.entry-DB42wDuG.js?1735210061
     2024-12-29 09:08:04   start-2         /_assets/vite/assets/Main.entry-BO809Quc.js?1735210061
     2024-12-18 09:06:04   token           216823d96ea25c051509d935955c130fbc72680fc1d3040fe3f8ca0e25f9cd02
(pharmacymap und token sind seit dem 18.12. nicht mehr aktualisiert worden obwohl heute morgen gelaufen)

NotApoToken2:
   READINGS:
     2024-12-29 09:06:20   start-1         /_assets/vite/assets/Main.entry-DB42wDuG.js?1735210061
     2024-12-29 09:06:20   start-2         /_assets/vite/assets/Main.entry-BO809Quc.js?1735210061
     2024-12-29 09:06:20   token           216823d96ea25c051509d935955c130fbc72680fc1d3040fe3f8ca0e25f9cd02
(token Timestamp passt zu den Main.entrys)

Ich lass noch eine myUtils Funktion mit HttpUtils_NonblockingGet mitlaufen, die dann, bei Bedarf, gesprächiger ist. Wenn der Token im start-1 reading sein sollte, wird derzeit auch kein token gefunden werden...
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

Lolly

Hallo zusammen
leider klappt die Aktualisierung der Apotheken nicht mehr.

Bitte um Hilfe

mfg Lolly

caldir65

Moin,

ich schließe mich mal an, leider sind meine Kenntnisse in Programmierung sehr begrenzt, ich komme da nicht weiter ...

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 128GB SSD, Lubuntu 24.04.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee III und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

KyleK

Hiermit funktioniert es bei mir wieder:
defmod apotheke_token HTTPMOD none 0
attr apotheke_token event-on-change-reading .*
attr apotheke_token get1FollowGet token
attr apotheke_token get1Header01 User-Agent: Mozilla/5.0 (X11;; Linux x86_64;; rv:128.0) Gecko/20100101 Firefox/128.0
attr apotheke_token get1Header02 Referer: https://www.aponet.de/apotheke/notdienstsuche
attr apotheke_token get1Header03 Host: www.aponet.de
attr apotheke_token get1Header04 DNT: 1
attr apotheke_token get1Name start
attr apotheke_token get1Poll 1
attr apotheke_token get1RegOpt g
attr apotheke_token get1Regex src=\"(.+\/Main.entry-.*(?:\?\d+)?)\"
attr apotheke_token get1URL https://www.aponet.de/apotheke/notdienstsuche
attr apotheke_token get2FollowGet token
attr apotheke_token get2Header01 User-Agent: Mozilla/5.0 (X11;; Linux x86_64;; rv:128.0) Gecko/20100101 Firefox/128.0
attr apotheke_token get2Header02 Referer: https://www.aponet.de/apotheke/notdienstsuche
attr apotheke_token get2Header03 Host: www.aponet.de
attr apotheke_token get2Header04 DNT: 1
attr apotheke_token get2Name token
attr apotheke_token get2OExpr $val=urlEncode($val)
attr apotheke_token get2Poll 1
attr apotheke_token get2PollDelay 5
attr apotheke_token get2Regex tx_aponetpharmacy_search\[token\]\":\"(.+?)\"
attr apotheke_token get2URL https://www.aponet.de%%me%%
attr apotheke_token replacement2Mode reading
attr apotheke_token replacement2Regex %%me%%
attr apotheke_token replacement2Value start-2
attr apotheke_token replacement3Mode reading
attr apotheke_token webCmd :
FHEM on Futro S940
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

caldir65

Moin,

danke, damit funktioniert es auch bei mir wieder ...

Gruß, Christoph
Alte Techniker-Regel: "kaum macht man es richtig, funktioniert es auch"
------
Dell Wyse5070 ThinClient 16GBRam, 128GB SSD, Lubuntu 24.04.04LTS, fhem (aktuell), debmatic, Homematic-Devs, ConBee III und deConz, viele Shellys, Rademacher, NextCloud-Anbindung, FullyKioskBrowser+FUIP uvm.

Lolly

Moin
danke für deine Arbeit, es funktioniert bei mir auch wieder.

Gruss

WhyTea

Wenn auch verspätet, auch von mir ein dickes Danke!

cetri

Moin,

seit dem 12.01. erfolgen hier keine Updates mehr. Fehlermeldung ist "invalid server response".

list vom device:

Internals:
   API_LAST_MSG invalid server response
   API_LAST_RES 1768372237.81846
   DEF        https://www.aponet.de/apotheke/notdienstsuche?tx_aponetpharmacy_search[action]=result&tx_aponetpharmacy_search[controller]=Search&tx_aponetpharmacy_search[search][plzort]=&tx_aponetpharmacy_search[search][date]=&tx_aponetpharmacy_search[search][street]=&tx_aponetpharmacy_search[search][radius]=15&tx_aponetpharmacy_search[search][lat]=51.73454&tx_aponetpharmacy_search[search][lng]=6.28348&tx_aponetpharmacy_search[token]=[my_token]&type=1981
   FUUID      69426454-f33f-47d8-e592-826ba02ca5aac3e4
   NAME       NotApoJM
   NEXT       NEVER
   NR         322
   SECRETS    my_token
   SOURCE     https://www.aponet.de/notdienstsuche (200)
   STATE      <div style="display:table;width:100%;"><div style="display:table-row;width:100%;"><div style="display:table-cell;padding:3pt;width:50%;text-align:left;"><a href="https://www.openstreetmap.org/?mlat=51.67476&mlon=6.15944#map=18/51.67476/6.15944" rel="noopener noreferrer" target="_blank" style="font-weight:bold;">Herzogen-Apotheke OHG</a> (10.9km)<br /><a href="https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.734217%2C6.284188%3B51.67476%2C6.15944" rel="noopener noreferrer" target="_blank">Voßstr. 57<br />47574&nbsp;Goch</a></div><div style="display:table-cell;width:50%;text-align:left;">Tel.: <a href="tel:+4949282380226">+49 2823 80226</a><br />Fax: +49 2823 86296<br />eMail: <a href="mailto:info@herzogen-apotheke.de">info@herzogen-apotheke.de</a></div></div><div style="display:table-row;width:100%;"><div style="display:table-cell;padding:3pt;width:50%;text-align:left;">Von 11.01.2026 09:00</div><div style="display:table-cell;width:50%;text-align:left;">Bis 12.01.2026 09:00</div></div><div style="display:table-row;width:100%;"><div style="display:table-cell;padding:3pt;width:50%;text-align:left;"><a href="https://www.openstreetmap.org/?mlat=51.83333&mlon=6.25569#map=18/51.83333/6.25569" rel="noopener noreferrer" target="_blank" style="font-weight:bold;">Apotheke am Bahnhof</a> (11.2km)<br /><a href="https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.734217%2C6.284188%3B51.83333%2C6.25569" rel="noopener noreferrer" target="_blank">Bahnhofstraße 27<br />46446&nbsp;Emmerich am Rhein</a></div><div style="display:table-cell;width:50%;text-align:left;">Tel.: <a href="tel:+4949282292815">+49 2822 92815</a><br />Fax: +49 2822 92816<br />eMail: <a href="mailto:info@apoambahnhof-emmerich.de">info@apoambahnhof-emmerich.de</a></div></div><div style="display:table-row;width:100%;"><div style="display:table-cell;padding:3pt;width:50%;text-align:left;">Von 11.01.2026 09:00</div><div style="display:table-cell;width:50%;text-align:left;">Bis 12.01.2026 09:00</div></div><div style="display:table-row;width:100%;"><div style="display:table-cell;padding:3pt;width:50%;text-align:left;"><a href="https://www.openstreetmap.org/?mlat=51.5168063&mlon=6.3403702#map=18/51.5168063/6.3403702" rel="noopener noreferrer" target="_blank" style="font-weight:bold;">Barbara-Apotheke</a> (24.5km)<br /><a href="https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.734217%2C6.284188%3B51.5168063%2C6.3403702" rel="noopener noreferrer" target="_blank">Annastr. 1<br />47608&nbsp;Geldern</a></div><div style="display:table-cell;width:50%;text-align:left;">Tel.: <a href="tel:+4949283187277">+49 2831 87277</a><br />Fax: +49 2831 2799<br />eMail: <a href="mailto:geldern@cuypers-apotheken.de">geldern@cuypers-apotheken.de</a></div></div><div style="display:table-row;width:100%;"><div style="display:table-cell;padding:3pt;width:50%;text-align:left;">Von 11.01.2026 09:00</div><div style="display:table-cell;width:50%;text-align:left;">Bis 12.01.2026 09:00</div></div></div>
   SVN        28481 2024-02-05 22:14:33 UTC
   TYPE       JsonMod
   eventCount 3
   CONFIG:
     IN_REQUEST 0
     SOURCE     https://www.aponet.de/apotheke/notdienstsuche?tx_aponetpharmacy_search[action]=result&tx_aponetpharmacy_search[controller]=Search&tx_aponetpharmacy_search[search][plzort]=&tx_aponetpharmacy_search[search][date]=&tx_aponetpharmacy_search[search][street]=&tx_aponetpharmacy_search[search][radius]=15&tx_aponetpharmacy_search[search][lat]=51.73454&tx_aponetpharmacy_search[search][lng]=6.28348&tx_aponetpharmacy_search[token]=[my_token]&type=1981
     SECRET:
   READINGS:
     2026-01-11 09:04:55   00_city         Goch
     2026-01-11 09:04:55   00_distance     10.85197814734
     2026-01-11 09:04:55   00_email        info@herzogen-apotheke.de
     2026-01-11 09:04:55   00_end_date     12.01.2026
     2026-01-11 09:04:55   00_end_time     09:00
     2026-01-11 09:04:55   00_fax          +49 2823 86296
     2026-01-11 09:04:55   00_latitude     51.67476
     2026-01-11 09:04:55   00_longitude    6.15944
     2026-01-11 09:04:55   00_map_position https://www.openstreetmap.org/?mlat=51.67476&mlon=6.15944#map=18/51.67476/6.15944
     2026-01-11 09:04:55   00_map_route    https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.734217%2C6.284188%3B51.67476%2C6.15944
     2026-01-11 09:04:55   00_name         Herzogen-Apotheke OHG
     2026-01-11 09:04:55   00_start_date   11.01.2026
     2026-01-11 09:04:55   00_start_time   09:00
     2026-01-11 09:04:55   00_street       Voßstr. 57
     2026-01-11 09:04:55   00_tel          +49 2823 80226
     2026-01-11 09:04:55   00_zip          47574
     2026-01-11 09:04:55   01_city         Emmerich am Rhein
     2026-01-11 09:04:55   01_distance     11.15773670571
     2026-01-11 09:04:55   01_email        info@apoambahnhof-emmerich.de
     2026-01-11 09:04:55   01_end_date     12.01.2026
     2026-01-11 09:04:55   01_end_time     09:00
     2026-01-11 09:04:55   01_fax          +49 2822 92816
     2026-01-11 09:04:55   01_latitude     51.83333
     2026-01-11 09:04:55   01_longitude    6.25569
     2026-01-11 09:04:55   01_map_position https://www.openstreetmap.org/?mlat=51.83333&mlon=6.25569#map=18/51.83333/6.25569
     2026-01-11 09:04:55   01_map_route    https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.734217%2C6.284188%3B51.83333%2C6.25569
     2026-01-11 09:04:55   01_name         Apotheke am Bahnhof
     2026-01-11 09:04:55   01_start_date   11.01.2026
     2026-01-11 09:04:55   01_start_time   09:00
     2026-01-11 09:04:55   01_street       Bahnhofstraße 27
     2026-01-11 09:04:55   01_tel          +49 2822 92815
     2026-01-11 09:04:55   01_zip          46446
     2026-01-11 09:04:55   02_city         Geldern
     2026-01-11 09:04:55   02_distance     24.54334861019
     2026-01-11 09:04:55   02_email        geldern@cuypers-apotheken.de
     2026-01-11 09:04:55   02_end_date     12.01.2026
     2026-01-11 09:04:55   02_end_time     09:00
     2026-01-11 09:04:55   02_fax          +49 2831 2799
     2026-01-11 09:04:55   02_latitude     51.5168063
     2026-01-11 09:04:55   02_longitude    6.3403702
     2026-01-11 09:04:55   02_map_position https://www.openstreetmap.org/?mlat=51.5168063&mlon=6.3403702#map=18/51.5168063/6.3403702
     2026-01-11 09:04:55   02_map_route    https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.734217%2C6.284188%3B51.5168063%2C6.3403702
     2026-01-11 09:04:55   02_name         Barbara-Apotheke
     2026-01-11 09:04:55   02_start_date   11.01.2026
     2026-01-11 09:04:55   02_start_time   09:00
     2026-01-11 09:04:55   02_street       Annastr. 1
     2026-01-11 09:04:55   02_tel          +49 2831 87277
     2026-01-11 09:04:55   02_zip          47608
     2026-01-11 09:04:55   03_city         Wesel
     2026-01-11 09:04:55   03_distance     24.64419640571
     2026-01-11 09:04:55   03_email        rosen-apotheke-wesel@web.de
     2026-01-11 09:04:55   03_end_date     12.01.2026
     2026-01-11 09:04:55   03_end_time     09:00
     2026-01-11 09:04:55   03_fax          +49 281 24479
     2026-01-11 09:04:55   03_latitude     51.65766
     2026-01-11 09:04:55   03_longitude    6.61775
     2026-01-11 09:04:55   03_map_position https://www.openstreetmap.org/?mlat=51.65766&mlon=6.61775#map=18/51.65766/6.61775
     2026-01-11 09:04:55   03_map_route    https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.734217%2C6.284188%3B51.65766%2C6.61775
     2026-01-11 09:04:55   03_name         Rosen-Apotheke
     2026-01-11 09:04:55   03_start_date   11.01.2026
     2026-01-11 09:04:55   03_start_time   09:00
     2026-01-11 09:04:55   03_street       Hohe Str. 64
     2026-01-11 09:04:55   03_tel          +49 281 24545
     2026-01-11 09:04:55   03_zip          46483
     2026-01-11 09:04:55   04_city         Bocholt
     2026-01-11 09:04:55   04_distance     25.65722917502
     2026-01-11 09:04:55   04_email        info@forum-apotheke-bocholt.de
     2026-01-11 09:04:55   04_end_date     12.01.2026
     2026-01-11 09:04:55   04_end_time     09:00
     2026-01-11 09:04:55   04_fax          02871/2192816
     2026-01-11 09:04:55   04_latitude     51.8387675
     2026-01-11 09:04:55   04_longitude    6.6151554
     2026-01-11 09:04:55   04_map_position https://www.openstreetmap.org/?mlat=51.8387675&mlon=6.6151554#map=18/51.8387675/6.6151554
     2026-01-11 09:04:55   04_map_route    https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.734217%2C6.284188%3B51.8387675%2C6.6151554
     2026-01-11 09:04:55   04_name         Forum Apotheke
     2026-01-11 09:04:55   04_start_date   11.01.2026
     2026-01-11 09:04:55   04_start_time   09:00
     2026-01-11 09:04:55   04_street       Nordstr. 6
     2026-01-11 09:04:55   04_tel          02871/2192815
     2026-01-11 09:04:55   04_zip          46399
     2026-01-11 09:04:55   05_city         Moers
     2026-01-11 09:04:55   05_distance     36.10466384216
     2026-01-11 09:04:55   05_email        brunnen-apotheke-moers@t-online.de
     2026-01-11 09:04:55   05_end_date     12.01.2026
     2026-01-11 09:04:55   05_end_time     09:00
     2026-01-11 09:04:55   05_fax          +49 2841 41990
     2026-01-11 09:04:55   05_latitude     51.48456
     2026-01-11 09:04:55   05_longitude    6.61581
     2026-01-11 09:04:55   05_map_position https://www.openstreetmap.org/?mlat=51.48456&mlon=6.61581#map=18/51.48456/6.61581
     2026-01-11 09:04:55   05_map_route    https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.734217%2C6.284188%3B51.48456%2C6.61581
     2026-01-11 09:04:55   05_name         Brunnen-Apotheke
     2026-01-11 09:04:55   05_start_date   11.01.2026
     2026-01-11 09:04:55   05_start_time   09:00
     2026-01-11 09:04:55   05_street       Kurt-Schumacher-Allee 42
     2026-01-11 09:04:55   05_tel          +49 2841 41555
     2026-01-11 09:04:55   05_zip          47445
     2026-01-11 09:04:55   06_city         Neukirchen-Vluyn
     2026-01-11 09:04:55   06_distance     37.137380918590004
     2026-01-11 09:04:55   06_email        team@klompen-apoxtheke-nk.de
     2026-01-11 09:04:55   06_end_date     12.01.2026
     2026-01-11 09:04:55   06_end_time     09:00
     2026-01-11 09:04:55   06_fax          +49 2845 941941
     2026-01-11 09:04:55   06_latitude     51.43791
     2026-01-11 09:04:55   06_longitude    6.52918
     2026-01-11 09:04:55   06_map_position https://www.openstreetmap.org/?mlat=51.43791&mlon=6.52918#map=18/51.43791/6.52918
     2026-01-11 09:04:55   06_map_route    https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.734217%2C6.284188%3B51.43791%2C6.52918
     2026-01-11 09:04:55   06_name         Klompen-Apotheke
     2026-01-11 09:04:55   06_start_date   11.01.2026
     2026-01-11 09:04:55   06_start_time   09:00
     2026-01-11 09:04:55   06_street       Niederrheinallee 356
     2026-01-11 09:04:55   06_tel          +49 2845 941940
     2026-01-11 09:04:55   06_zip          47506
     2026-01-11 09:04:55   07_city         Dinslaken
     2026-01-11 09:04:55   07_distance     38.44340022728
     2026-01-11 09:04:55   07_email        info@glueckauf-dinslaken.de
     2026-01-11 09:04:55   07_end_date     12.01.2026
     2026-01-11 09:04:55   07_end_time     09:00
     2026-01-11 09:04:55   07_fax          +49 2064 498444
     2026-01-11 09:04:55   07_latitude     51.5617787
     2026-01-11 09:04:55   07_longitude    6.7644903
     2026-01-11 09:04:55   07_map_position https://www.openstreetmap.org/?mlat=51.5617787&mlon=6.7644903#map=18/51.5617787/6.7644903
     2026-01-11 09:04:55   07_map_route    https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=51.734217%2C6.284188%3B51.5617787%2C6.7644903
     2026-01-11 09:04:55   07_name         Glückauf-Apotheke Hiesfeld
     2026-01-11 09:04:55   07_start_date   11.01.2026
     2026-01-11 09:04:55   07_start_time   09:00
     2026-01-11 09:04:55   07_street       Sterkrader Straße 262
     2026-01-11 09:04:55   07_tel          +49 2064 498498
     2026-01-11 09:04:55   07_zip          46539
     2025-12-29 12:34:51   aktualisiert    Bis:
Attributes:
   disable    1
   event-on-change-reading .*
   group      NotApo
   icon       message_medicine
   interval   3 9 * * *
   osm_engine fossgis_osrm_car
   readingList multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_name"), property('.name'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_street"), property('.strasse'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_zip"), property('.plz'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_city"), property('.ort'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_tel"), property('.telefon'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_fax"), property('.fax'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_email"), property('.email'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_distance"), property('.distanz'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_longitude"), property('.longitude'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_latitude"), property('.latitude'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_start_date"), property('.startdatum'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_start_time"), property('.startzeit'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_end_date"), property('.enddatum'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_end_time"), property('.endzeit'));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_map_position"), concat("https:\/\/www.openstreetmap.org\/?mlat=", property('.latitude'), "&mlon=", property('.longitude'), "#map=18\/", property('.latitude'), "\/", property('.longitude')));
multi(jsonPath("\$.results.apotheken.apotheke.[*]"), concat(sprintf('%02d', count()),"_map_route"), concat("https:\/\/www.openstreetmap.org\/directions?engine=", AttrVal($name,"osm_engine","fossgis_osrm_car"), "&route=", AttrVal("global","latitude","0"), "%2C", AttrVal("global","longitude","0"), "%3B" , property('.latitude'), "%2C", property('.longitude')));
   room       ZZ_NotApo
   stateFormat { my $ret .= "<div style=\"display:table;width:100%;\">"; #table
for(my $i = 0;$i <= 2;$i++) {
my $id = sprintf('%02d', $i);
$ret .= "<div style=\"display:table-row;width:100%;\">"; #row
$ret .= "<div style=\"display:table-cell;padding:3pt;width:50%;text-align:left;\">"; #cell
$ret .= "<a href=\"".ReadingsVal($name,$id."_map_position","https:\/\/www.osm.org");
$ret .= "\" rel=\"noopener noreferrer\" target=\"_blank\" style=\"font-weight:bold;\">".ReadingsVal($name,$id."_name","?")."</a>";
$ret .= " (".sprintf("%.1f", ReadingsNum($name,$id."_distance",0))."km)<br \/>";
$ret .= "<a href=\"".ReadingsVal($name,$id."_map_route","https:\/\/www.osm.org")."\" rel=\"noopener noreferrer\" target=\"_blank\">";
$ret .= ReadingsVal($name,$id."_street","")."<br /\>";
$ret .= ReadingsVal($name,$id."_zip","")."&nbsp;".ReadingsVal($name,$id."_city","");
$ret .= "</a>";
$ret .= "</div>"; #/cell
$ret .= "<div style=\"display:table-cell;width:50%;text-align:left;\">"; #cell
my $numberlink = ReadingsVal($name,$id."_tel","");
$numberlink =~ s/\s+//g;
$numberlink =~ s/\///g;
$ret .= "Tel.: <a href=\"tel:+49".substr($numberlink, 1)."\">".ReadingsVal($name,$id."_tel","")."</a><br />";
if(ref(ReadingsVal($name,$id."_fax","")) ne 'ARRAY') {
$ret .= "Fax: ".ReadingsVal($name,$id."_fax","");
}
$ret .= "<br />";
$ret .= "eMail: <a href=\"mailto:".ReadingsVal($name,$id."_email","")."\">".ReadingsVal($name,$id."_email","")."</a>";
$ret .= "</div>"; #/cell
$ret .= "</div>"; #/row
$ret .= "<div style=\"display:table-row;width:100%;\">"; #row
$ret .= "<div style=\"display:table-cell;padding:3pt;width:50%;text-align:left;\">"; #cell
$ret .= "Von ".ReadingsVal($name,$id."_start_date","")." ".ReadingsVal($name,$id."_start_time","");
$ret .= "</div>"; #/cell
$ret .= "<div style=\"display:table-cell;width:50%;text-align:left;\">"; #cell
$ret .= "Bis ".ReadingsVal($name,$id."_end_date","")." ".ReadingsVal($name,$id."_end_time","");
$ret .= "</div>"; #/cell
$ret .= "</div>"; #/row
}
$ret .= "</div>"; #/table
return $ret;
}
   update-on-start 0
   userReadings aktualisiert
   userattr   osm_engine:graphhopper_car,fossgis_osrm_car,fossgis_valhalla_car,graphhopper_bicycle,fossgis_osrm_bike,fossgis_valhalla_bicycle,graphhopper_foot,fossgis_osrm_foot,fossgis_valhalla_foot
   webCmd     reread

yersinia

Bei verbose=5 bekomm' ich einen anderen HTTP code, anbei der Logauszug:
2026.01.14 10:10:54 5: HttpUtils url=<hidden> NonBlocking via https
2026.01.14 10:10:54 4: IP: www.aponet.de -> 78.46.239.148
2026.01.14 10:10:54 5: HttpUtils request header:
GET /apotheke/notdienstsuche?tx_aponetpharmacy_search[action]=result&tx_aponetpharmacy_search[controller]=Search&tx_aponetpharmacy_search[search][plzort]=&tx_aponetpharmacy_search[search][date]=&tx_aponetpharmacy_search[search][street]=&tx_aponetpharmacy_search[search][radius]=15&tx_aponetpharmacy_search[search][lat]=XX&tx_aponetpharmacy_search[search][lng]=XXXX&tx_aponetpharmacy_search[token]=216823d96ea25c051509d935955c130fbc72680fc1d3040fe3e8ca0e25f9cd02&type=1981 HTTP/1.0
Host: www.aponet.de
User-Agent: fhem
Accept-Encoding: gzip,deflate

Accept: application/json
Accept-Charset: utf-8, iso-8859-1

2026.01.14 10:10:54 4: <hidden>: HTTP response code 301
2026.01.14 10:10:54 4: HttpUtils <hidden>: Redirect to <hidden>
2026.01.14 10:10:54 5: HttpUtils url=<hidden> NonBlocking via https
2026.01.14 10:10:54 4: IP: www.aponet.de -> 78.46.239.148
2026.01.14 10:10:54 5: HttpUtils request header:
GET /notdienstsuche HTTP/1.0
Host: www.aponet.de
User-Agent: fhem
Accept-Encoding: gzip,deflate

Accept: application/json
Accept-Charset: utf-8, iso-8859-1

2026.01.14 10:10:54 4: <hidden>: HTTP response code 200
2026.01.14 10:10:54 5: HttpUtils <hidden>: Got data, length: 125864
2026.01.14 10:10:54 5: HttpUtils response header:
HTTP/1.0 200 OK
Alt-Svc: h3=":443"; ma=2592000
Cache-Control: private, no-store
Content-Encoding: gzip
Content-Language: de-DE
Content-Type: text/html; charset=utf-8
Date: Wed, 14 Jan 2026 09:10:54 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Set-Cookie: PHPSESSID=7be4abf78a4a02fd4fda5f77e76104cd; path=/; secure; HttpOnly; SameSite=Strict
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Vary: Accept-Encoding
Via: 1.1 Caddy
2026.01.14 10:10:54 4: [NotApoJM] api encoding is utf-8, designated encoder is utf-8-strict
2026.01.14 10:10:54 5: [NotApoJM] start json decoding
HTTP Status Code 301 deutet auf eine falsche Adresse hin - speziell:
2026.01.14 10:10:54 4: <hidden>: HTTP response code 301
2026.01.14 10:10:54 4: HttpUtils <hidden>: Redirect to <hidden>
2026.01.14 10:10:54 5: HttpUtils url=<hidden> NonBlocking via https
2026.01.14 10:10:54 4: IP: www.aponet.de -> 78.46.239.148
2026.01.14 10:10:54 5: HttpUtils request header:
GET /notdienstsuche HTTP/1.0
Demnach muss die device DEF von
https://www.aponet.de/apotheke/notdienstsuche?[...]nach
https://www.aponet.de/notdienstsuche?[...]geändert werden.

Funktioniert bei mir jdfs wieder:
2026.01.14 10:17:36 5: HttpUtils url=<hidden> NonBlocking via https
2026.01.14 10:17:36 4: IP: www.aponet.de -> 78.46.239.148
2026.01.14 10:17:36 5: HttpUtils request header:
GET /notdienstsuche?tx_aponetpharmacy_search[action]=result&tx_aponetpharmacy_search[controller]=Search&tx_aponetpharmacy_search[search][plzort]=&tx_aponetpharmacy_search[search][date]=&tx_aponetpharmacy_search[search][street]=&tx_aponetpharmacy_search[search][radius]=15&tx_aponetpharmacy_search[search][lat]=XX&tx_aponetpharmacy_search[search][lng]=XX&tx_aponetpharmacy_search[token]=216823d96ea25c051509d935955c130fbc72680fc1d3040fe3e8ca0e25f9cd02&type=1981 HTTP/1.0
Host: www.aponet.de
User-Agent: fhem
Accept-Encoding: gzip,deflate

Accept: application/json
Accept-Charset: utf-8, iso-8859-1

2026.01.14 10:17:37 4: <hidden>: HTTP response code 200
2026.01.14 10:17:37 5: HttpUtils <hidden>: Got data, length: 3630
2026.01.14 10:17:37 5: HttpUtils response header:
HTTP/1.0 200 OK
Alt-Svc: h3=":443"; ma=2592000
Cache-Control: private, no-store
Content-Encoding: gzip
Content-Language: de-DE
Content-Type: application/json
Date: Wed, 14 Jan 2026 09:17:37 GMT
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Vary: Accept-Encoding
Via: 1.1 Caddy
Content-Length: 1193
2026.01.14 10:17:37 4: [NotApoJM] api encoding is , designated encoder is utf-8-strict
2026.01.14 10:17:37 5: [NotApoJM] start json decoding
2026.01.14 10:17:37 5: [NotApoJM] finished json decoding
2026.01.14 10:17:37 5: [NotApoJM] start do readings
2026.01.14 10:17:37 5: [NotApoJM] start JsonPath
2026.01.14 10:17:37 5: [NotApoJM] finished do readings
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl