Problem OH3 http Binding

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

dirkabel
Beiträge: 40
Registriert: 2. Mai 2022 12:35

Problem OH3 http Binding

Beitrag von dirkabel »

Hallo Smarthome-Freunde,

ich wollte nun auch endlich mal von Openhab2 auf 3 wechseln. Habe aber sehr viele selbstgebaute Komponenten über ein ebenfalls selbst gebautes WebGateway über das http Binding angebunden.
Nach anfänglichen Schwierigkeiten bin ich nun zumindest in der Lage, alle Werte zu lesen. Wenn ich im http Binding die Rollos als Rollershutter anlege, werden sie allerdings nur als undefinded angezeigt. Daher erstmal so wie unten. Ich kann aber keinen einzigen Parameter schreiben. Die gleiche Syntax funktioniert auf dem alten System einwandfrei und auch per Direktaufruf im Browser.

Unten angehängt findet ihr meine Things-Datei. Auch ein, in der OpenHab Weboberfläche angelegte things channel und items funktioniert nicht.

Vllt könnt ihr mir helfen und den notwendigen Tipp geben.

LG Dirk

Code: Alles auswählen

Thing http:url:canbus "Canbus Module"
   [
        baseURL="http://192.168.0.133",
        bufferSize=6000,
        refresh=30
   ] 
   {
       Channels:
        // Modul 09 Esszimmer
        Type string : MOD09_ROL00 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Rollo[0]", CommandExtension="/ok.htm?Modul9.Rollo0=%2$s" ]
        Type string : MOD09_ROL01 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Rollo[1]", CommandExtension="/ok.htm?Modul9.Rollo1=%2$s" ]
        Type stringa : MOD09_ROL02 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Rollo[2]", CommandExtension="/ok.htm?Modul9.Rollo2=%2$s" ]   

        Type dimmer : MOD09_DIM00 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Dimmer[0]", CommandExtension="/ok.htm?Modul9.Dimmer0=%2$s" ]
        Type dimmer : MOD09_DIM01 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Dimmer[1]", CommandExtension="/ok.htm?Modul9.Dimmer1=%2$s" ]
        Type dimmer : MOD09_DIM02 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Dimmer[2]", CommandExtension="/ok.htm?Modul9.Dimmer2=%2$s" ]

        Type string : MOD09_REL00 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[0]", CommandExtension="/ok.htm?Modul9.Relais0=%2$s" ]
        Type string : MOD09_REL01 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[1]", CommandExtension="/ok.htm?Modul9.Relais1=%2$s" ]
        Type string : MOD09_REL02 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[2]", CommandExtension="/ok.htm?Modul9.Relais2=%2$s" ]
        Type string : MOD09_REL03 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[3]", CommandExtension="/ok.htm?Modul9.Relais3=%2$s" ]
        Type string : MOD09_REL04 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[4]", CommandExtension="/ok.htm?Modul9.Relais4=%2$s" ]
        Type string : MOD09_REL05 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[5]", CommandExtension="/ok.htm?Modul9.Relais5=%2$s" ]
        Type string : MOD09_REL06 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[6]", CommandExtension="/ok.htm?Modul9.Relais6=%2$s" ]
        Type string : MOD09_REL07 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[7]", CommandExtension="/ok.htm?Modul9.Relais7=%2$s" ]
        Type string : MOD09_REL08 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[8]", CommandExtension="/ok.htm?Modul9.Relais8=%2$s" ]
        Type string : MOD09_REL09 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[9]", CommandExtension="/ok.htm?Modul9.Relais9=%2$s" ]
        Type string : MOD09_REL10 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[10]", CommandExtension="/ok.htm?Modul9.Relais10=%2$s" ]
        Type string : MOD09_REL11 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[11]", CommandExtension="/ok.htm?Modul9.Relais11=%2$s" ]
        Type string : MOD09_REL12 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Relais[12]", CommandExtension="/ok.htm?Modul9.Relais12=%2$s" ]

        Type number : MOD09_KEY00 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Taste[0]", CommandExtension="/ok.htm?Modul9.Taste0=%2$s" ]
        Type number : MOD09_KEY01 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Taste[1]", CommandExtension="/ok.htm?Modul9.Taste1=%2$s" ]
        Type number : MOD09_KEY02 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Taste[2]", CommandExtension="/ok.htm?Modul9.Taste2=%2$s" ]
        Type number : MOD09_KEY03 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Taste[3]", CommandExtension="/ok.htm?Modul9.Taste3=%2$s" ]
        Type number : MOD09_KEY04 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Taste[4]", CommandExtension="/ok.htm?Modul9.Taste4=%2$s" ]
        Type number : MOD09_KEY05 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Taste[5]", CommandExtension="/ok.htm?Modul9.Taste5=%2$s" ]
        Type number : MOD09_KEY06 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Taste[6]", CommandExtension="/ok.htm?Modul9.Taste6=%2$s" ]
        Type number : MOD09_KEY07 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Taste[7]", CommandExtension="/ok.htm?Modul9.Taste7=%2$s" ]
        Type number : MOD09_KEY08 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Taste[8]", CommandExtension="/ok.htm?Modul9.Taste8=%2$s" ]

        Type number : MOD09_TEM00 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Temperature", mode="READONLY"  ]

        Type string : MOD09_CON00 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[0]", mode="READONLY"  ]
        Type string : MOD09_CON01 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[1]", mode="READONLY"  ]
        Type string : MOD09_CON02 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[2]", mode="READONLY"  ]
        Type string : MOD09_CON03 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[3]", mode="READONLY"  ]
        Type string : MOD09_CON04 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[4]", mode="READONLY"  ]
        Type string : MOD09_CON05 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[5]", mode="READONLY"  ]
        Type string : MOD09_CON06 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[6]", mode="READONLY"  ]
        Type string : MOD09_CON07 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[7]", mode="READONLY"  ]
        Type string : MOD09_CON08 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[8]", mode="READONLY"  ]
        Type string : MOD09_CON09 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[9]", mode="READONLY"  ]
        Type string : MOD09_CON10 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[10]", mode="READONLY"  ]
        Type string : MOD09_CON11 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[11]", mode="READONLY"  ]
        Type string : MOD09_CON12 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[12]", mode="READONLY"  ]
        Type string : MOD09_CON13 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[13]", mode="READONLY"  ]
        Type string : MOD09_CON14 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[14]", mode="READONLY"  ]
        Type string : MOD09_CON15 [stateExtension="/json.cgx", stateTransformation="JSONPATH:$.Modul[9].Contact[15]", mode="READONLY"  ]
}
von J-N-K » 3. Mai 2022 19:32
Hätte ich mal sofort in den openHAB Code statt in meinen geguckt, hätte ich auch gesehen, dass da ein Bug vorliegt. Das kann so nicht funktionieren. Ich empfehle die HTTP-Binding Version aus SmartHome/J zu benutzen, die müsste funktionieren.
Gehe zur vollständigen Antwort

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

Re: Problem OH3 http Binding

Beitrag von udo1toni »

Hast Du JSONPATH installiert?

Rollershutter benötigen - nun ja - rollershutter Channel. Du hast jedoch nur string, number und dimmer verwendet. Der dritte Channel ist komplett ungültig, da es keinen Type stringa gibt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

dirkabel
Beiträge: 40
Registriert: 2. Mai 2022 12:35

Re: Problem OH3 http Binding

Beitrag von dirkabel »

Hallo,
ja JSONPATH ist natürlich installiert, LESEN klappt ja auch einwandfrei. Nur SCHREIBEN nicht.

Die rollershutter sind als string eingebunden, weil rollershutter ja eben ein UNDEF liefert, wie ich schrieb.

Das a ist hier darein gerutscht.

dirkabel
Beiträge: 40
Registriert: 2. Mai 2022 12:35

Re: Problem OH3 http Binding

Beitrag von dirkabel »

thumbnail_1651497818113.jpg
Das klappt ja auch nicht mit passendem Icon.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Problem OH3 http Binding

Beitrag von udo1toni »

Im Bild ist das eine andere CommandExtension.

Wie sieht denn ein vollständiges JSON Objekt aus, welches von json.cgx geliefert wird?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: Problem OH3 http Binding

Beitrag von udo1toni »

Wo ich gerade noch mal auf die Konfiguration schaue...

es muss commandExtension heißen, nicht CommandExtension... Kleines C...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

dirkabel
Beiträge: 40
Registriert: 2. Mai 2022 12:35

Re: Problem OH3 http Binding

Beitrag von dirkabel »

Danke für den Hinweis!
Habe ich korrigiert, löst aber mein Problem leider nicht.

Das per web gebaute item mit seinem channel klappt ja auch nicht. Ich weiß echt nicht, es da schief läuft.
Es wird alles angezeigt in der Oberfläche, incl. der zugeordneten items. Die kann ich auch anzeigen, Werte stimmen und ändern sich, ich kann dir nur aus OH nicht setzen...

Im Browser funktioniert z.B.
http://192.168.0.133/ok.htm?Modul9.Rollo0=50
Das ganze geht auch mit json.cgx.

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

Re: Problem OH3 http Binding

Beitrag von udo1toni »

Siehst Du im Logging was? Brauchst Du GET oder POST? Das kann man im Thing selbst umstellen (Advanced Options)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

dirkabel
Beiträge: 40
Registriert: 2. Mai 2022 12:35

Re: Problem OH3 http Binding

Beitrag von dirkabel »

Nichts im Logging, außer, dass der geänderte Wert zugewiesen wurde.
Brauche GET, das ist ja auch die Vorgabe.

Hier mal noch das JSON EINES MODULS

Code: Alles auswählen

{Relais=["OFF","OFF","OFF","OFF","OFF","OFF","OFF","OFF","OFF","OFF","OFF","OFF","OFF"], Dimmer=[0,0,0], Rollo=[50,0,0], Contact=["OPEN","OPEN","OPEN","OPEN","OPEN","OPEN","OPEN","OPEN","OPEN","OPEN","OPEN","OPEN","OPEN","OPEN","OPEN","OPEN"], Taste=[0,0,0,0,0,1,0,0,0], Temperature=35}

Das ganze gibt es dann 17x Plus noch die Heizungsdaten.
Wobei dass ja nur für das Lesen eine Rolle spielt.
Aber ich kann wegen nicht rollershutter oder switch verwenden, das liefert nur UNDEF.

Alles sehr merkwürdig.

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

Re: Problem OH3 http Binding

Beitrag von udo1toni »

dirkabel hat geschrieben: 2. Mai 2022 18:29 Wobei dass ja nur für das Lesen eine Rolle spielt.
Aber ich kann wegen nicht rollershutter oder switch verwenden, das liefert nur UNDEF.
Das kann aber eigentlich nicht sein.

Dein JSON ist kein gültiges JSON...
Zum Einen müssen die Schlüsselworte in Anführungszeichen, zum Anderen wird die Zuweisung mit einem Doppelpunkt markiert, nicht mit einem Gleichheitszeichen.
Eventuell hat das Auswirkungen beim Lesen der Daten.

Du kannst das Logging für das http Binding auch auf DEBUG setzen, um im Detail zu sehen, was openHAB tut.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten