http Binding und Abfrage einer URL unter openHAB 4

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

EnergieAndi
Beiträge: 3
Registriert: 5. Apr 2024 07:03
Answers: 0

Re: http Binding und Abfrage einer URL unter openHAB 4

Beitrag von EnergieAndi »

Leider funktioniert es noch nicht. Doch bereits nur nach Anlegen des Channels, also ohne Link zu einem Item habe ich folgende Fehlermeldung:
2024-04-05 15:23:24.061 [WARN ] [form.CascadedValueTransformationImpl] - Transformation ignore, failed to parse $.[?(@.id == 'ZPUFG')].value: The transformation pattern must consist of the type and the pattern separated by a colon
Also nur mit diesem Code:

Code: Alles auswählen

channels:
  - id: Switch_Channel
    channelTypeUID: http:switch
    label: Schalter
    description: ""
    configuration:
      onValue: "true"
      mode: READONLY
      offValue: "false"
      stateTransformation: $.[?(@.id == 'ZPUFG')].value
Eigentlich kommt als Ergebnis der Json-Transformation nur true oder false raus - und das ist ja bei onValue und offValue konfiguriert.
In welchem Feld kann ich die in der Fehlermeldung genannten type und pattern eingeben?? Wie muss das aussehen?

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: http Binding und Abfrage einer URL unter openHAB 4

Beitrag von udo1toni »

Da fehlt JSONPATH: vornedran. Schau Dir bitte noch mal die Definition an, die ich weiter oben gepostet habe...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

EnergieAndi
Beiträge: 3
Registriert: 5. Apr 2024 07:03
Answers: 0

Re: http Binding und Abfrage einer URL unter openHAB 4

Beitrag von EnergieAndi »

Oh ja. Das der Fehler. Oh bin ich glücklich. Vielen, vielen Dank.

asd
Beiträge: 7
Registriert: 17. Jul 2020 16:04
Answers: 0

Re: http Binding und Abfrage einer URL unter openHAB 4

Beitrag von asd »

Hallo,

ich habe folgendes Problem mit den http Binding / OpenHAB 4.2.1.

Ich würde gerne Daten meiner Wetterstation von AWEKAS abrufen. Mit Hilfe eines persönlichen Keys und der API-Beschreibung kann im mir im Browser alle Daten im JSON-Format anzeigen lassen.

Mein persönlicher Key enthält mehrmals auch das Zeichen %. Das http Binding für automatisch "escaping" durch und ersetzt dabei % in der URL durch %25.

Z.B. wir %7 zu %257

Dadurch wird der Key und damit auch die URL verändert. Diese verändert URL funktioniert leider nicht mehr.

Gibt es für dieses Problem eine Lösung?

lg

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: http Binding und Abfrage einer URL unter openHAB 4

Beitrag von udo1toni »

Mein erster Versuch wäre, das % doppelt zu schreiben.
Da hier offensichtlich URL Encoding das "Problem" ist, könnte man stattdessen das Prozentzeichen durch %25 ersetzen (das ist der Escape Code für % im URL Encoding).
Es ist natürlich möglich, dass der Key noch weitere Zeichen enthält, die encodiert werden müssen. Vermutlich der schnellste Weg, das abzugleichen: https://de.wikipedia.org/wiki/URL-Encoding.
Es gibt auch Tools, die das encodieren/decodieren für Dich übernehmen können, z.B. https://meyerweb.com/eric/tools/dencoder/, wobei Dir an dieser Stelle natürlich klar sein muss, dass Du potentiell Deinen Key ins Internet herausposaunst...
Es gibt auch verschiedene Optionen, das offline zu erledigen, dazu wird dann eine Funktion aufgerufen, die das Encodieren übernimmt. Ein Kommandozeilen Tool (wie eigentlich von GNU/Linux für alle möglichen Probleme gewohnt) gibt es wohl nicht - die Aufgabe ist anscheinend zu einfach...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

asd
Beiträge: 7
Registriert: 17. Jul 2020 16:04
Answers: 0

Re: http Binding und Abfrage einer URL unter openHAB 4

Beitrag von asd »

Das einzige Sonderzeichen im Key ist %.

Das URL Encoding habe ich per Hand gemacht, ist aber sicher korrekt.

Im Browser funktioniert der Versuch mit einfach % und % verdoppelt (dein Tip) udn zeigt die JSON Daten an.

Das http Binding ersetzt bei %% aber stur %25%25. Kopiere ich dann die URL aus dem Logsfile in den Browser für das zu einer invaliden Abfrage.

Es liegt also am http Binding. Es ist die Frage ob man im http Binding das escaping unterdrücken kann.

asd
Beiträge: 7
Registriert: 17. Jul 2020 16:04
Answers: 0

Re: http Binding und Abfrage einer URL unter openHAB 4

Beitrag von asd »

Ich habe im AWEKAS Forum das Problem thematisiert und von dort den entscheidenden Hinweis zur Lösung bekommen.

Der AWEKAS Key ist bereits Encoded und das Escaping ist bereits durchgeführt.

D.h. man muss den Key decoden z.B. mit https://www.urldecoder.org.

Der decoded Key wird dann in die URL beim http Binding hinter den "key=" eingefügt. Das http Binding für nun wieder das Encoding durch.

Dadurch ist das einlesen der AWEKAS Wetterstationsdaten in Openhab problemlos möglich.

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: http Binding und Abfrage einer URL unter openHAB 4

Beitrag von udo1toni »

Das war mir tatsächlich auch noch eingefallen, ich fand es aber zu abwegig...
hätte ich mal...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten