Autor Thema: Notdienst Apotheke  (Gelesen 21003 mal)

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7449
Antw:Notdienst Apotheke
« Antwort #90 am: 02 Dezember 2020, 00:18:57 »
Die entspr. Regex ergänzen
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Offline wendeling

  • Full Member
  • ***
  • Beiträge: 375
Antw:Notdienst Apotheke
« Antwort #91 am: 02 Dezember 2020, 00:50:55 »
Hallo , habe es jetzt mit den Apothekenfinder gelöst .

Vielen Dank für die Hilfe

Gruß
Wendelin

Offline meier81

  • Full Member
  • ***
  • Beiträge: 287
Antw:Notdienst Apotheke
« Antwort #92 am: 27 Dezember 2020, 09:23:16 »
Hi und guten Morgen,

hab mal ne Frage bezüglich dem Apotheken-Notdienst über das Template "pharmacy_emergency_service_germany".

Hab das soweit alles definiert und es läuft auch soweit, aktualisieren tue ich es jeden Morgen um 8:30 da um die Uhrzeit bei uns der Wechsel der Apotheken ist.

Ich bekomme aber immer einen Error-Eintrag im Log, dieser lautet:

2020.12.27 08:30:00.061 3: Notdienst_Apotheke: error while parsing JSON data: malformed JSON string, neither tag, array, object, number, string or atom, at character offset 0 (before "<!DOCTYPE HTML PUBLI...") at lib/FHEM/HTTPMOD/Utils.pm line 668.
Ein List meines Devices:

Internals:
   BUSY       0
   DEF        http://apothekenfinder.mobi/interface/json.php?device=web&source=not&search=67098 0
   FUUID      5fe1b6e9-f33f-c2d2-80f0-0056be89f6c71fd9
   FVERSION   98_HTTPMOD.pm:0.233300/2020-12-12
   Interval   0
   MainURL    http://apothekenfinder.mobi/interface/json.php?device=web&source=not&search=67098
   ModuleVersion 4.0.16 - 5.12.2020
   NAME       Notdienst_Apotheke
   NOTIFYDEV  global
   NR         247
   NTFY_ORDER 50-Notdienst_Apotheke
   STATE      Rathaus-Apotheke, 06326 1535, Weinstr. 44 in 67146 Deidesheim
   TYPE       HTTPMOD
   value     
   HttpUtils:
     NAME       
     addr       https://apothekenfinder.mobi:443
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl https://apothekenfinder.mobi/interface/json.php?device=web&source=not&search=67098
     header     Accept-Encoding: gzip, deflate
Accept-Language: de-DE,de;;q=0.9,en-US;;q=0.8,en;;q=0.7,fr;;q=0.6
User-Agent: Lynx/2.8.8dev.3 libwww-FM/2.14 SSL-MM/1.4.1
Referer: http://apothekenfinder.mobi/
X-Requested-With: XMLHttpRequest
Connection: keep-alive
     host       apothekenfinder.mobi
     httpheader HTTP/1.1 200 OK
Date: Sun, 27 Dec 2020 07:30:12 GMT
Server: Apache
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 884
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /interface/json.php?device=web&source=not&search=67098
     protocol   https
     redirects  0
     timeout    60
     url        https://apothekenfinder.mobi/interface/json.php?device=web&source=not&search=67098
     sslargs:
   QUEUE:
   READINGS:
     2020-12-27 08:30:01   Beginn          2020-12-27 08:30:00
     2020-12-27 08:30:01   Breitengrad     49.407193
     2020-12-27 08:30:01   Ende            2020-12-28 08:30:00
     2020-12-27 08:30:01   Entfernung      6.70
     2020-12-27 08:30:01   Laengengrad     8.186982
     2020-12-27 08:30:01   Name            Rathaus-Apotheke
     2020-12-27 08:30:01   Ort             Deidesheim
     2020-12-27 08:30:01   Plz             67146
     2020-12-27 08:30:01   Strasse         Weinstr. 44
     2020-12-27 08:30:01   Telefax         06326 7437
     2020-12-27 08:30:01   Telefon         06326 1535
     2020-12-22 10:06:52   attrTemplateVersion 20201129
   REQUEST:
     context    reading
     data       
     header     Accept-Encoding: gzip, deflate
Accept-Language: de-DE,de;;q=0.9,en-US;;q=0.8,en;;q=0.7,fr;;q=0.6
User-Agent: Lynx/2.8.8dev.3 libwww-FM/2.14 SSL-MM/1.4.1
Referer: http://apothekenfinder.mobi/
X-Requested-With: XMLHttpRequest
Connection: keep-alive
     ignoreredirects 0
     num        0
     priority   1
     retryCount 0
     type       update
     url        https://apothekenfinder.mobi/interface/json.php?device=web&source=not&search=67098
   defptr:
     readingBase:
       Beginn     reading
       Breitengrad reading
       Ende       reading
       Entfernung reading
       Laengengrad reading
       Name       reading
       Ort        reading
       Plz        reading
       Strasse    reading
       Telefax    reading
       Telefon    reading
     readingNum:
       Beginn     07
       Breitengrad 10
       Ende       08
       Entfernung 11
       Laengengrad 09
       Name       01
       Ort        04
       Plz        03
       Strasse    02
       Telefax    06
       Telefon    05
     readingOutdated:
     requestReadings:
       update:
         Beginn     reading 07
         Breitengrad reading 10
         Ende       reading 08
         Entfernung reading 11
         Laengengrad reading 09
         Name       reading 01
         Ort        reading 04
         Plz        reading 03
         Strasse    reading 02
         Telefax    reading 06
         Telefon    reading 05
Attributes:
   model      pharmacy_emergency_service_germany
   reading01Encode UTF-8
   reading01JSON result_01_name
   reading01Name Name
   reading02JSON result_01_street
   reading02Name Strasse
   reading03JSON result_01_plz
   reading03Name Plz
   reading04JSON result_01_place
   reading04Name Ort
   reading05JSON result_01_number
   reading05Name Telefon
   reading06JSON result_01_fax
   reading06Name Telefax
   reading07JSON result_01_start
   reading07Name Beginn
   reading07OExpr FmtDateTime($val)
   reading08JSON result_01_end
   reading08Name Ende
   reading08OExpr FmtDateTime($val)
   reading09JSON result_01_lng
   reading09Name Laengengrad
   reading10JSON result_01_lat
   reading10Name Breitengrad
   reading11JSON result_01_distance
   reading11Name Entfernung
   readingEncode UTF-8
   requestHeader2 Accept-Encoding: gzip, deflate
   requestHeader3 Accept-Language: de-DE,de;;q=0.9,en-US;;q=0.8,en;;q=0.7,fr;;q=0.6
   requestHeader4 User-Agent: Lynx/2.8.8dev.3 libwww-FM/2.14 SSL-MM/1.4.1
   requestHeader5 Referer: http://apothekenfinder.mobi/
   requestHeader6 X-Requested-With: XMLHttpRequest
   requestHeader7 Connection: keep-alive
   room       Testbereich->Testdevices
   showBody   0
   stateFormat Name, Telefon, Strasse in Plz Ort
   timeout    60
   userattr   get01Encode get01JSON get01Name get02ExtractAllJSON:0,1 getURL requestHeader requestHeader1

Hat da jemand eine Idee?

Gruß Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb und Grafana || HB-RF-ETH || SIGNALduino 433MHz (V4.2.0-dev210628) || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus KM100 || div. Tasmota-Devices

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7449
Antw:Notdienst Apotheke
« Antwort #93 am: 27 Dezember 2020, 12:02:22 »
Das kommt weil er ein redirect auf sich selbst zuerst macht:

2020.12.27 11:55:01 4: apotheke: Read callback: request type was update retry 0,

header: HTTP/1.1 301 Moved Permanently

Date: Sun, 27 Dec 2020 10:55:13 GMT

Server: Apache

Location: https://apothekenfinder.mobi/interface/json.php?device=web&source=not&search=67098

Content-Length: 298

Keep-Alive: timeout=15, max=100

Connection: Keep-Alive

Content-Type: text/html; charset=iso-8859-1, body length 298
2020.12.27 11:55:01 5: apotheke: Read callback: body

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://apothekenfinder.mobi/interface/json.php?device=web&source=not&search=67098">here</a>.</p>
</body></html>
Und dieses Zwischenergebnis kann er nicht parsen.

Ich weiss nicht, wie es zu vermeiden.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1770
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7449
Antw:Notdienst Apotheke
« Antwort #95 am: 27 Dezember 2020, 13:09:19 »
Tatsächlich, das hatte ich übersehen! Ich muss das template auch anpassen. Danke.

EDIT: eingecheckt.
« Letzte Änderung: 27 Dezember 2020, 13:16:50 von amenomade »
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1770
Antw:Notdienst Apotheke
« Antwort #96 am: 27 Dezember 2020, 13:11:01 »
Ich bin gerade einigermaßen schockiert, dass HTTPMOD mit (standardkonformen) Redirects nicht richtig umgehen kann?!

Offline amenomade

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7449
Antw:Notdienst Apotheke
« Antwort #97 am: 27 Dezember 2020, 14:08:14 »
Ja, eigentlich sollte er, wenn enabaleRedirects gesetzt ist, gar nicht versuchen das JSON der 301 Seite zu parsen. ABer gut...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Offline meier81

  • Full Member
  • ***
  • Beiträge: 287
Antw:Notdienst Apotheke
« Antwort #98 am: 27 Dezember 2020, 16:56:24 »
Super, danke euch, hab ich eben mal geändert, ist ja morgen auch in den Templates dabei  ;).


Gruß zurück nach Gütersloh aus der Pfalz ;D
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb und Grafana || HB-RF-ETH || SIGNALduino 433MHz (V4.2.0-dev210628) || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus KM100 || div. Tasmota-Devices

Offline yersinia

  • Hero Member
  • *****
  • Beiträge: 1089
    • Cyanide & Happiness
Antw:Notdienst Apotheke
« Antwort #99 am: 23 September 2021, 16:47:22 »
Für alle, die den Standort der Apotheke auf einer Karte angezeigt haben wollen, können sich mit OSM einen Kartenlink generieren (raw):
attr DEVICE userReadings OSMLink { my $ret = "https:\/\/www.openstreetmap.org\/?";;\
$ret .= "mlat=".ReadingsVal($name,"Breitengrad","0");;\
$ret .= "&mlon=".ReadingsVal($name,"Laengengrad","0");;\
$ret .= "#map=18";;\
$ret .= "\/".ReadingsVal($name,"Breitengrad","0");;\
$ret .= "\/".ReadingsVal($name,"Laengengrad","0");;\
return $ret;; }
erzeugt ein userReading OSMLink wie diesen:
   2021-09-23 16:45:17   OSMLink         https://www.openstreetmap.org/?mlat=51.1873547&mlon=10.0575891#map=18/51.1873547/10.0575891Entspricht diesem link: https://www.openstreetmap.org/?mlat=51.1873547&mlon=10.0575891#map=18/51.1873547/10.0575891
viele Grüße, yersinia
----
FHEM 6.0 (SVN) on RPi 4B with RasPi OS Buster (perl 5.28.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@aculfw | 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
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline Wolle02

  • Sr. Member
  • ****
  • Beiträge: 570
Antw:Notdienst Apotheke
« Antwort #100 am: 25 September 2021, 14:28:07 »
Für alle, die den Standort der Apotheke auf einer Karte angezeigt haben wollen, können sich mit OSM einen Kartenlink generieren (raw):
attr DEVICE userReadings OSMLink { my $ret = "https:\/\/www.openstreetmap.org\/?";;\
$ret .= "mlat=".ReadingsVal($name,"Breitengrad","0");;\
$ret .= "&mlon=".ReadingsVal($name,"Laengengrad","0");;\
$ret .= "#map=18";;\
$ret .= "\/".ReadingsVal($name,"Breitengrad","0");;\
$ret .= "\/".ReadingsVal($name,"Laengengrad","0");;\
return $ret;; }
erzeugt ein userReading OSMLink wie diesen:
   2021-09-23 16:45:17   OSMLink         https://www.openstreetmap.org/?mlat=51.1873547&mlon=10.0575891#map=18/51.1873547/10.0575891Entspricht diesem link: https://www.openstreetmap.org/?mlat=51.1873547&mlon=10.0575891#map=18/51.1873547/10.0575891

.... und wer lieber GoogleMaps verwendet für den wäre hier der passende Code:

attr DEVICE userReadings GoogleLink {my $ret = "https:\/\/www.google.com\/maps\/search\/?api=1";;\
    $ret .= "&query=".ReadingsVal($name,"Breitengrad","0");;\
    $ret .= ",".ReadingsVal($name,"Laengengrad","0");;\
    return $ret;; }
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline yersinia

  • Hero Member
  • *****
  • Beiträge: 1089
    • Cyanide & Happiness
Antw:Notdienst Apotheke
« Antwort #101 am: 28 September 2021, 12:23:53 »
Alternativ:
attr DEVICE userReadings GoogleLink {my $ret = "https:\/\/www.google.com\/maps\/search\/";;\
    $ret .= ReadingsVal($name,"Breitengrad","0");;\
    $ret .= ",".ReadingsVal($name,"Laengengrad","0");;\
    $ret .= "\/\@".ReadingsVal($name,"Breitengrad","0");;\
    $ret .= ",".ReadingsVal($name,"Laengengrad","0");;\
    $ret .= ",18z";;\
    return $ret;; }
Erzeugt diesen Link mit Zentrierung und Zoom: https://maps.google.com/maps/search/51.1873547,10.0575891/@51.1873547,10.0575891,18z
viele Grüße, yersinia
----
FHEM 6.0 (SVN) on RPi 4B with RasPi OS Buster (perl 5.28.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@aculfw | 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