Seite 1 von 6

Problem OH3 http Binding

Verfasst: 2. Mai 2022 14:13
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"  ]
}

Re: Problem OH3 http Binding

Verfasst: 2. Mai 2022 14:51
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.

Re: Problem OH3 http Binding

Verfasst: 2. Mai 2022 15:08
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.

Re: Problem OH3 http Binding

Verfasst: 2. Mai 2022 15:27
von dirkabel
thumbnail_1651497818113.jpg
Das klappt ja auch nicht mit passendem Icon.

Re: Problem OH3 http Binding

Verfasst: 2. Mai 2022 15:38
von udo1toni
Im Bild ist das eine andere CommandExtension.

Wie sieht denn ein vollständiges JSON Objekt aus, welches von json.cgx geliefert wird?

Re: Problem OH3 http Binding

Verfasst: 2. Mai 2022 15:50
von udo1toni
Wo ich gerade noch mal auf die Konfiguration schaue...

es muss commandExtension heißen, nicht CommandExtension... Kleines C...

Re: Problem OH3 http Binding

Verfasst: 2. Mai 2022 16:35
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.

Re: Problem OH3 http Binding

Verfasst: 2. Mai 2022 18:15
von udo1toni
Siehst Du im Logging was? Brauchst Du GET oder POST? Das kann man im Thing selbst umstellen (Advanced Options)

Re: Problem OH3 http Binding

Verfasst: 2. Mai 2022 18:29
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.

Re: Problem OH3 http Binding

Verfasst: 2. Mai 2022 19:45
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.