Ich kenne mich mit Postman aber auch nicht aus, da muss ich Dich leider allein lassen.
Gelöst: OH3 Grünbeck SC18
- udo1toni
- Beiträge: 15442
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 Grünbeck SC18
Letztlich solltest Du das über das http Binding machen, wobei die Vorarbeit (also herausfinden, was Du senden musst und was Du dann empfängst) eher mit einem Werkzeug wie Postman erledigen solltest, von openHAB aus gerät das sonst zum Trial-and-Error, mit der klaren Tendenz zu Error.
Ich kenne mich mit Postman aber auch nicht aus, da muss ich Dich leider allein lassen.
Ich kenne mich mit Postman aber auch nicht aus, da muss ich Dich leider allein lassen.
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.11, LXC)
- lenschith
- Beiträge: 315
- Registriert: 11. Dez 2020 22:36
Re: OH3 Grünbeck SC18
Schade, ich habe jetzt alles versucht was mir in den Sinn gekommen ist, aber leider erhalte ich keine Ausgabe. Dann werde ich das vorerst nicht weiter verfolgen. Ich habe keine Idee mehr und das Internet hat mir an dieser stelle nicht die richtige Infos gegeben wie ich das machen kann. Hört sich in den Foren so leicht 
Trotzdem vielen Dank.
Gruß Lenschi
Trotzdem vielen Dank.
Gruß Lenschi
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED
-
HansDampf
- Beiträge: 34
- Registriert: 23. Jul 2020 15:01
Re: OH3 Grünbeck SC18
Falls hier jemand schon eine implementierung hat. Bitte mal posten, hätte auch interesse
- udo1toni
- Beiträge: 15442
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 Grünbeck SC18
Ich habe keinen Zugriff auf ein solches System, aber nach der Doku sollte es wirklich nicht weiter schwer sein. Einzig die Sache mit der ID scheint mir fehlerträchtig - die muss halt die korrekte sein. Laut Doku hast Du die mal selbst festgelegt, im Zweifel müsstest Du sie aber auch über die Weboberfläche einsehen können, weil die ID in jeder Antwort enthalten ist (also auch wenn Du konventionell über den Browser auf die Anlage zugreifst).
In der Doku wird das Addon httpRequester für Firefox genutzt, leider ist das Addon nicht mehr verfügbar, ich habe aber den HTTP Request Maker gefunden, der evtl. auch ausreichend sein könnte - In Deinem Screenshot sieht es so aus, als habe Postman das Zeichen & durch %26 und = durch %3D ersetzt, was an dieser Stelle falsch ist.
In der Doku wird das Addon httpRequester für Firefox genutzt, leider ist das Addon nicht mehr verfügbar, ich habe aber den HTTP Request Maker gefunden, der evtl. auch ausreichend sein könnte - In Deinem Screenshot sieht es so aus, als habe Postman das Zeichen & durch %26 und = durch %3D ersetzt, was an dieser Stelle falsch ist.
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.11, LXC)
- lenschith
- Beiträge: 315
- Registriert: 11. Dez 2020 22:36
Re: OH3 Grünbeck SC18
Hallo Udo,
das Tool habe ich auch schon probiert aber mit dem selben Ergebnis. Ich habe im Chrome die Konsole geöffnet und folgende Einträge gefunden. Evtl. hilft das weiter.
das Tool habe ich auch schon probiert aber mit dem selben Ergebnis. Ich habe im Chrome die Konsole geöffnet und folgende Einträge gefunden. Evtl. hilft das weiter.
So sieht das aus wenn ich die Seite direkt vom Browser öffne Im Postman sind die Zeichen in der Konsolenausgabe korrekt und werden nicht konvertiert. Mit dem HTTPrequestMaker bekomme ich keine Ausgabe und auch keine Logausgabe.//Falls keine id in den Coockies gespeicher ist wird eine zufällige id erstellt und in den coockies gespeichert
if (getCookie("id") == "")setCookie("id",parseInt( Math.random() * ( (9999+1) - 1000 )));
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED
- udo1toni
- Beiträge: 15442
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 Grünbeck SC18
Nein?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.11, LXC)
- lenschith
- Beiträge: 315
- Registriert: 11. Dez 2020 22:36
Re: OH3 Grünbeck SC18
Ich habe mich nach langer Zeit mal wieder an das Problem gemacht und bin auch einen Schritt weiter aber irgendwie scheitere ich dennoch. Aber vielleicht hat ja nochmal jemand einen Tipp. Ich habe es mittlerweile geschafft über den Postman an die gewünschten Daten zu kommen, bin mir allerdings nicht ganz klar wie ich diese jetzt in OH3 mit dem HTTP Binding erhalten bzw. wie ich diese dann mittels XPATH in die Channels bekomme.
Ich frage die Daten im Body an.
HTTP Binding:
Ich habe das Thing mit dem HTTP Binding angelegt aber ich bekomme keine Daten, habe ich was falsch eingetragen?
Ich habe auch einen Channel konfiguriert und mit der XPATH Transformation versucht die Daten zu extrahieren aber da bleib das Item leider leer.
Als State Foramt %s
HTTP Binding:
Ich habe das Thing mit dem HTTP Binding angelegt aber ich bekomme keine Daten, habe ich was falsch eingetragen?
Code: Alles auswählen
data=getXML("id="+getCookie("id")+"&show=D_Y_2_01|D_A_1_3|D_D_1|D_D_2|D_C_4_2|D_A_1_6|D_A_1_1|D_A_1_2|D_A_2_2|D_A_3_1|D_A_3_2|D_Y_1|D_A_1_3|D_A_2_3|D_Y_5~",1);Code: Alles auswählen
[name()='data']/*[name()='D_Y_2_01']/Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED
- udo1toni
- Beiträge: 15442
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 Grünbeck SC18
Wenn Du weißt, was Du senden musst, wäre der nächste Schritt, einen Channel anzulegen, in dem die gesamte Antwort ankommt (ein String Channel). Ich gehe stark davon aus, dass Du ohnehin nur lesen kannst. Auf der anderen Seite bekommst Du aber mehrere Werte im XML angeliefert, es wäre also ohnehin sinnvoll, einen Channel zum Empfang der Daten zu verwenden und die Daten erst anschließend zu extrahieren. Also einfach ein String Channel ohne alles anlegen und zunächst mit einem String Item verbinden.
Jetzt kannst Du prüfen, ob Daten ankommen.
Wenn daten kommen, kannst Du im nächsten Schritt weitere Items mit dem selben Channel verlinken. Dies müssen nicht unbedingt String Items sein!
Im Link selbst hast Du dann die Möglichkeit, XPATH als Profile zu konfigurieren (immer vorausgesetzt, dass XPATH auch installiert ist).
Jetzt kannst Du prüfen, ob Daten ankommen.
Wenn daten kommen, kannst Du im nächsten Schritt weitere Items mit dem selben Channel verlinken. Dies müssen nicht unbedingt String Items sein!
Im Link selbst hast Du dann die Möglichkeit, XPATH als Profile zu konfigurieren (immer vorausgesetzt, dass XPATH auch installiert ist).
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.11, LXC)
- lenschith
- Beiträge: 315
- Registriert: 11. Dez 2020 22:36
Re: OH3 Grünbeck SC18
Danke für die super schnelle Antwort. Ich habe einen Channel erstellt und mit einem Item verlinkt aber ich bekomme da keine Daten rein.
Ich kann die Anfrage nur über den Body mitsenden, hab ich da im Openhab was falsch konfiguriert?
Die Anfrage wurde unter Fallback Encoding angegeben? Im Log sehe ich leider auch keine Daten kommen.
Die Anfrage wurde unter Fallback Encoding angegeben? Im Log sehe ich leider auch keine Daten kommen.
Code: Alles auswählen
2022-10-24 06:17:10.541 [INFO ] [nding.http.internal.HttpThingHandler] - Using the secure client for thing 'http:url:Gruenbeck_TEST'.
2022-10-24 06:17:31.879 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'HTTPURLThing_GruenbeckXMLimport' changed from NULL to Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB4.3.3 in einem Docker Container auf RPI5-8GB, AVM: Fritz!Box 7590 - SMART301/302 - Comet, SMART200/210, SMART440, Alexa, Shelly, Tasmota, ESP Easy, WLED
- udo1toni
- Beiträge: 15442
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 Grünbeck SC18
Ich denke, Du hast die Abfrage falsch eingetragen.
Kennst Du die Code-Anzeige? Das ist der rechte Karteireiter im Thing mit dem Titel Code.
Ich habe mal versucht, das Thing nachzubauen und so zu konfigurieren, wie ich denke, dass es korrekt ist:
Keine Ahnung, ob Du Credentials angeben musst, aus den vorherigen Posts habe ich das nicht rausgeleesen, entsprechend habe ich hier nichts eingetragen und somit taucht auch der entsprechende Parameter im Code nicht auf.
Wichtig ist aber: Die base URL ist der grundsätzliche Zugriff auf das Gerät. Im Prinzip könnte man auch die gesamte URL eintragen, hier möchte ich aber davon abweichen, damit wir im Channel gezielt die state Extension setzen können. Bei jedem Zugriff wird die base URL exakt so, wie sie ist, vor die commandExtension bzw. stateExtension gehängt.
Die state Method ist POST und als content Type habe ich text/xml angegeben. Vermutlich wäre raw korrekt, aber das steht uns nicht zur Verfügung. Dieser Parameter wäre also ein potenzieller Knopf, um auszuprobieren, ob es mit einem anderen Wert funktioniert, falls es nicht direkt klappt.
Als Refresh habe ich 60 angegeben, das heißt eine Abfrage pro Minute. Evtl. könnte man auch einen (wesentlich) höheren Wert nehmen, z.B. 300 für fünf Minuten, die Daten der Anlage sind ja nicht so volatil. timeout wäre die Zeit, die openHAB dem entfernten System gibt, um zu antworten. Auch dieser Wert könnte testweise wesentlich erhöht werden, um auszuschließen, dass die Antwort einfach nicht rechtzeitig eintrifft.
Nun zum Channel: Dort ist als Modus READONLY angegeben, die stateExtension steht auf mux_http, das ist der Teil, den ich bei der base URL entfernt habe. Und da wir den Status per POST abfragen, gibt es auch noch den stateContent, das ist der Teil, der per POST gesendet wird, um eine Antwort zu bekommen (Fallback-Encoding ist definitiv nicht der korrekte Parameter dafür).
Du kannst den Code auch einfach über den bestehenden Code des Things kopieren, wenn Du die Parameter nicht manuell anpassen willst. Lediglich die Thing UID muss passen.
Ich bin aber kein Experte, was das http Binding betrifft, ist also ein wenig stochern im Nebel
Kennst Du die Code-Anzeige? Das ist der rechte Karteireiter im Thing mit dem Titel Code.
Ich habe mal versucht, das Thing nachzubauen und so zu konfigurieren, wie ich denke, dass es korrekt ist:
Code: Alles auswählen
UID: http:url:gruenbeck
label: Grünbeck per http
thingTypeUID: http:url
configuration:
authMode: BASIC
ignoreSSLErrors: false
baseURL: http://10.10.1.35/
delay: 0
stateMethod: POST
refresh: 60
commandMethod: GET
contentType: text/xml
timeout: 5000
bufferSize: 2048
channels:
- id: xmldata
channelTypeUID: http:string
label: Daten
description: ""
configuration:
mode: READONLY
stateExtension: mux_http
stateContent: data=getXML("id="+getCookie("id")+"&show=D_Y_2_01|D_A_1_3|D_D_1|D_D_2|D_C_4_2|D_A_1_6|D_A_1_1|D_A_1_2|D_A_2_2|D_A_3_1|D_A_3_2|D_Y_1|D_A_1_3|D_A_2_3|D_Y_5~",1);
Wichtig ist aber: Die base URL ist der grundsätzliche Zugriff auf das Gerät. Im Prinzip könnte man auch die gesamte URL eintragen, hier möchte ich aber davon abweichen, damit wir im Channel gezielt die state Extension setzen können. Bei jedem Zugriff wird die base URL exakt so, wie sie ist, vor die commandExtension bzw. stateExtension gehängt.
Die state Method ist POST und als content Type habe ich text/xml angegeben. Vermutlich wäre raw korrekt, aber das steht uns nicht zur Verfügung. Dieser Parameter wäre also ein potenzieller Knopf, um auszuprobieren, ob es mit einem anderen Wert funktioniert, falls es nicht direkt klappt.
Als Refresh habe ich 60 angegeben, das heißt eine Abfrage pro Minute. Evtl. könnte man auch einen (wesentlich) höheren Wert nehmen, z.B. 300 für fünf Minuten, die Daten der Anlage sind ja nicht so volatil. timeout wäre die Zeit, die openHAB dem entfernten System gibt, um zu antworten. Auch dieser Wert könnte testweise wesentlich erhöht werden, um auszuschließen, dass die Antwort einfach nicht rechtzeitig eintrifft.
Nun zum Channel: Dort ist als Modus READONLY angegeben, die stateExtension steht auf mux_http, das ist der Teil, den ich bei der base URL entfernt habe. Und da wir den Status per POST abfragen, gibt es auch noch den stateContent, das ist der Teil, der per POST gesendet wird, um eine Antwort zu bekommen (Fallback-Encoding ist definitiv nicht der korrekte Parameter dafür).
Du kannst den Code auch einfach über den bestehenden Code des Things kopieren, wenn Du die Parameter nicht manuell anpassen willst. Lediglich die Thing UID muss passen.
Ich bin aber kein Experte, was das http Binding betrifft, ist also ein wenig stochern im Nebel
openHAB5.0.1 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime) (Proxmox 9.0.11, LXC)