JsonMod response 403 - Ergebnis im Browser aber OK

Begonnen von mthome, 29 Mai 2023, 06:18:56

Vorheriges Thema - Nächstes Thema

kurt6908

Hallo,

vielen Dank ... jetzt funzt es wieder.

Kleine Korrektur in der Hilfe

Zitatdefines the device and set the source (file:/|http://|https://).

für das Modul wäre aus meiner Sicht jetzt wünscheswert ;=)

Viele Grüße

Kurt

3* Raspberry Pi (2 über LTE/VPN), 5* Cul, 3* FS20, 4* FHT, 6* HM, Somfy, Solarlog, WMBus/EnergyCam, AVM FritzBox, 3* AVM Powerline, Alexa, Tasmota/MQTT, Rademacher DuoFern, EPEver HiPower/ModBus, go-eCharger

herrmannj

#31
Zitatpraktisch auch, wenn man Deinem Code Glauben schenken darf.
leider nur relativ, nicht absolut.

Korrekt wäre das so:
https://en.wikipedia.org/wiki/File_URI_scheme

absolut:
file:///home/bla
file:/home/bla

relativ (nicht norm aber gebräuchlich)
file:log/bla
file:./log/bla

Die Fälle #1,#3,#4 funktionieren auch genau so.

Wenn das ne große Sache für euch ist, kann ich das nochmal anpassen. Den "file://log" gibt es offiziell nicht, den setze ich dann auf relativ um. (Aus file://log/bla wird file:log/bla , ergo relativ)


betateilchen

Naja, vorher hat es halt mit 2 // auch mit /tmp/file.json funktioniert, das tut es jetzt nicht mehr.

Entscheide Dich einfach für EINE einheitliche Syntax oder gib nicht einfach kommentarlos eine 404 aus, die niemand interpretieren kann, nur weil das device plötzlich die Datei nicht mehr findet. Vielleicht wäre eine Logmeldung sinnvoll, die auf die 3 /// hinweist, die neuerdings gebraucht werden.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

herrmannj

#33
ich habe fall #2 ergänzt und file-uri Beispiele (abs+rel) in die Doku genommen

dadoc

Hallo zusammen,
seit einem Jahr hole ich mit einem "kunstvollen" Konstrukt Wetterdaten der spanischen Wetterbehörde aemet per JSONMOD ab. Seit ein paar Tagen klappt das nicht mehr, s.u. Ich habe m.W. nichts verändert, außer apache2 und php7 vom Raspi zu deinstallieren, auf dem auch fhem läuft. Aber das sollte AFAIK keine Auswirkungen auf JSONMOD haben?
Mit estemp hole ich periodisch eine URL ab, die die eigentlichen Wetterdaten enthält (API Key gekürzt mit ...):
Internals:
  API_LAST_MSG read from https://opendata.aemet.es:443 timed out
  API_LAST_RES 1689256534.00405
  DEF        https://opendata.aemet.es/opendata/api/prediccion/especifica/municipio/diaria/07021/?api_key= eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJtLmtuYXB...
  FUUID      62dff765-f33f-04c7-33d8-14908c3a406dd351
  NAME      estemp
  NEXT      2023-07-13 16:00:00
  NR        363
  SOURCE    https://opendata.aemet.es/opendata/api/prediccion/especifica/municipio/diaria/07021/?api_key= eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJtLmtuYXB... ()
  STATE      ???
  SVN        27660 2023-06-06 20:03:18 UTC
  TYPE      JsonMod
  eventCount 4
  CONFIG:
    IN_REQUEST 1
    SOURCE    https://opendata.aemet.es/opendata/api/prediccion/especifica/municipio/diaria/07021/?api_key= eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJtLmtuYXB...
    SECRET:
  READINGS:
    2023-07-10 00:24:00  aemet_url2      https://opendata.aemet.es/opendata/sh/c6ca4b1d
    2023-07-10 00:24:00  aemet_validity_status exito
Attributes:
  disable    0
  httpHeader X-API-Key: [KEY]
  httpTimeout 50
  interval  */4 * * * *
  readingList single(jsonPath('datos'), 'aemet_url2', 'N/A');
single(jsonPath('descripcion'), 'aemet_validity_status', 'N/A');

  room      Wetter,aemet

Resultat ist wie zu sehen
API_LAST_MSG
read from https://opendata.aemet.es:443 timed out
Rufe ich die URL aus der DEF manuell im Browser auf, klappt alles.
Habe jetzt nach fhem Update die neuen Pfad-Beispiele in der Device Help gesehen:
Define
define <name> JsonMod <http[s]:example.com:/somepath/somefile.json>
Soll das wirklich so, also ohne Slashes?
Geht bei mir jedenfalls auch nicht (URL Error als Response).
Habt Ihr eine Ahnung, was sich da geändert haben könnte bzw. ob das auf meiner Seite ist oder bei aemet?
Danke & Grüße
Martin

Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

betateilchen

#35
Die Frage wäre in einem neuen Thread besser aufgehoben gewesen.
Und das vorzugsweise im richtigen Unterforum zu JsonMod.

Und um Dir weiterhelfen zu können, könnte ein ausführliches Log beim Verbindungsversuch hilfreich sein.
Ist da wirklich ein Leerzeichen bei der Angabe des api_keys?
Funktioniert der direkte Aufruf Deiner URL im Browser?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

dadoc

Zitat von: betateilchen am 13 Juli 2023, 16:12:34Die Frage wäre in einem neuen Thread besser aufgehoben gewesen.
Und das vorzugsweise im richtigen Unterforum zu JsonMod.
Stimmt, sorry. Dachte nur, dass sei evtl. dasselbe Problem wie das des TS.
ZitatIst da wirklich ein Leerzeichen bei der Angabe des api_keys?
Ja. Ich hatte es nicht bemerkt, da die Zeile im WebUI genau da umbricht ... War ein neuer API-Code, den ich vor ein paar Tagen angefordert hatte, als es nicht mehr funktionierte.
ZitatFunktioniert der direkte Aufruf Deiner URL im Browser?
Ja, und zwar sowohl ohne als auch mit initialem Leerzeichen im API Code (?api_key=%20eyJhbGciOiJI). Im JSONMOD Modul scheint es aber nur ohne das Leerzeichen zu funktionieren, wie ich gerade ausprobiert habe. Insofern ist jetzt wieder alles so wie es soll - Danke für den Hinweis!
[/quote]
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods