Notdienst Apotheke via jsonmod

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

Vorheriges Thema - Nächstes Thema

KyleK

#30
Das Abfragen der nächsten Apotheke hat heute bei mir nicht funktioniert.

Der Grund war ein zu restriktiver regulärer Ausdruck im HTTPMOD: Der heutige Token enthält nicht nur alphanumerische Zeichen, sondern auch einen slash '/'.
Damit hat der reguläre Ausdruck nicht funktioniert, und der Token wurde nicht aktualisiert.

Mit:
attr apotheke_token get2Regex randomToken\s*=\s*'(.+?)'

ist das Problem behoben :)
FHEM on Raspberry Pi 3B+
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

Sailor

Hallo Kyle

Hättest du vielleicht Lust einen vollständigen Wiki - Artikel im wiki.fhem.de zu schreiben?

Meinen Dank hättest du damit sicher!

Gruß
    Sailor
******************************
Man wird immer besser...

betateilchen

Man kann es aber auch wirklich übertreiben.

Die API ändert sich viel zu oft, als dass ein Wiki-Artikel, den danach niemand wirklich zuverlässig pflegt, dauerhaft hilfreich wäre.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

yersinia

#33
Gestern hatte der Token ein +, was als Secret in der URL zu Problemen führt.

EDIT
Ich sehe gerade, dass perl was anbietet: URI::Escape oder URI::Encode. Die Frage ist, ob dies in den Standard-Perl-Modulen auf des OS dabei ist.....
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | 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

betateilchen

In den HttpUtils.pm gibt es die Funktionen urlEncode, die sollte das gleiche können.

attr apotheke_token get2OExpr $val=urlEncode($val)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JoWiemann

Hallo,

schmeiße mal folgendes als Idee in die Runde: attr apotheke_token get2Encode UTF-8

Sollte es das nicht auch tun?

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

yersinia

Zitat von: betateilchen am 27 November 2023, 10:58:11In den HttpUtils.pm gibt es die Funktionen urlEncode, die sollte das gleiche können.

attr apotheke_token get2OExpr $val=urlEncode($val)
Nicht das ich was anderes erwartet hätte - hier nochmal die Bestätigung, dass es funktioniert.
Token heute: m0mo1mHgE+s; nach urlEncode: m0mo1mHgE%2Bs
Damit passt die JsonMod Secret-Ersetzung in dessen URL auch für reservierte Zeichen.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | 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

Danke yersinia für das Finding.

Ich hab den Code in meinem ursprünglichen Post angepasst.
FHEM on Raspberry Pi 3B+
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

yersinia

Ich hab es nur gefunden, die Lösung kommt von betateilchen.
Zitat von: KyleK am 29 November 2023, 17:55:03Ich hab den Code in meinem ursprünglichen Post angepasst.
Danke. :)
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | 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

grossmaggul

Hallo,

ich habe das gerade mal bei mir eingebaut, funktioniert einwandfrei.
Eine Frage, besteht da auch irgendwie die Möglichkeit die Notdienstapotheken der nächsten Tage abzufragen?

gm
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

yersinia

Zitat von: grossmaggul am 30 November 2023, 16:29:33Eine Frage, besteht da auch irgendwie die Möglichkeit die Notdienstapotheken der nächsten Tage abzufragen?
Was ich bisher gesehen habe ist, das du nach einem bestimmten Tag abfragen kannst wenn du
&tx_aponetpharmacy_search[search][date]=YYYY-MM-DDanhängst.
Analog zum token könntest du das als Secret mitgeben. Oder die JsonMod-DEF entsprechend anpassen.
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | 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

grossmaggul

Danke, mal sehen, ob ich das gebacken bekomme. ;D
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

grossmaggul

Irgendwie werden die Daten nicht aktualisiert, ich muss immer erst ein reread des Tokens und von "apotheke" auslösen bevor Daten kommen.
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

yersinia

Zu wenig Informationen um dir helfen zu können. KyleK's Beitrag hast du 1:1 übernommen? Zeig doch mal list(s) des/r Device(s),
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | 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