Seite 1 von 1

openHAB3 und HTTP Binding: es werden keine Commands ausgeführt

Verfasst: 14. Dez 2021 22:39
von Timtam
Hallöchen,

ich bins mal wieder :). Folgende Situation:

Heute habe ich umgestellt von self-made Shelly-based Aufputz-Gurtwicklern auf Rademacher DuoFern Gurtwickler, deren Zentrale (Home Pilot) mittels HTTP Binding angebunden werden kann. Die Steuerung funktioniert auch einwandfrei, wie bspw. via CURL nachstellbar ist. Ich habe das HTTP-Binding auch korrekt eingebunden und sämtliche GET-Zugriffe (states) funktionieren, soweit ich das sagen kann, auch zuverlässig, zumindest schlägt es nicht fehl und wenn ich die http Binding logs aktiviere, sehe ich die GET-Requests raus und responses eingehen.
Was aber nicht funktioniert sind sämtliche commands, sprich:

Ich erstelle einen sitemap Eintrag für mein Rollershutter Item. Wenn ich auf die Knöpfe drücke, sehe ich eine Änderung im Log, aber es wird vom HTTP Binding kein Request veranlasst, jedenfalls taucht nichts in den Logs auf.
Ich verwende noch die "alte" Konfiguration via config files, weil ich blind bin und die neue OH3-Oberfläche nicht gerade zu den barrierefreisten zählt. Soweit ich das sagen kann, sind die Config Files aber soweit richtig bis 1:1 von einem englischen Forum-Post kopiert, der das selbe Problem zu lösen versucht wie ich, nur sämtliche Sachen, die Anfragen an den Home Pilot senden, scheinen gar nicht erst das Binding zu triggern. Ich bin auf OpenHAB 3.2.M5 (3.2 hat ein großes iCloud-Problem gefixt, daher laufe ich aktuell auf Testing).

Hier meine Config Files:

Code: Alles auswählen

homepilot.things:

Thing http:url:shutter [
    baseURL="http://192.168.170.20",
    refresh=5,
    commandMode="PUT",
    stateMethod="GET",
    contentType="application/json"
] {
    Channels:
        Type rollershutter : workroom [
            mode="WRITEONLY",
            commandExtension="/devices/4",
            stopValue="{\"name\":\"STOP_CMD\"}",
            downValue="{\"name\":\"POS_DOWN_CMD\"}",
            upValue="{\"name\":\"POS_UP_CMD\"}"
        ]
        Type number : workroom#position [
            stateExtension="/v4/devices/4",
            stateTransformation="JSONPATH:$.device.statusesMap.Position",
            commandTransformation="JS:RollerShutterPositionJSON.js",
            commandExtension="/devices/4"
        ]
}

Code: Alles auswählen

homepilot.items:

Rollershutter workroomRollershutter
{
  channel="http:url:shutter:workroom"
}

Number workroomRollershutterPosition
{
  channel="http:url:shutter:workroom#position"
}

Code: Alles auswählen

shutter.sitemap:

sitemap shutter label="Rollläden"
{
  Frame label="Arbeitszimmer"
  {
    Switch item=workroomRollershutter icon="rollershutter_rev"
    Setpoint item=workroomRollershutterPosition minValue=0 maxValue=100
  }
}

Code: Alles auswählen

transform/RollerShutterPositionJSON.js:

(function(position){
    try{
        var obj = {name: "GOTO_POS_CMD", value: parseInt(position)};
        return (JSON.stringify(obj));
    } catch(e) {
        return null;
    }
})(input)
Besagter englischen Forum-Post ist hier zu finden: https://community.openhab.org/t/rademac ... /103316/20

Habt ihr eine Idee?

MfG.

Timtam

Re: openHAB3 und HTTP Binding: es werden keine Commands ausgeführt

Verfasst: 22. Dez 2021 23:31
von Rondo
Die Befehle down, up und stop scheinen nicht zu stimmen. Bei mir funktioniert das mit folgender config.

Code: Alles auswählen

UID: http:url:
label: Rademacher Rollo blablablablalbalbalb
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: true
  baseURL: http://xxx.xxx.xxx.xxxx
  delay: 0
  stateMethod: GET
  refresh: 10
  commandMethod: PUT
  contentType: application/json
  timeout: 3000
  bufferSize: 2048
location: Wohnzimmer
channels:
  - id: rollershutter
    channelTypeUID: http:rollershutter
    label: Rollershutter
    description: null
    configuration:
      mode: WRITEONLY
      stateExtension: /devices/33
      commandExtension: /devices/33
      stopValue: '{"name":"STOP_CMD"}'
      downValue: '{"name":"POS_DOWN_CMD"}'
      upValue: '{"name":"POS_UP_CMD"}'
  - id: rollershutter_position
    channelTypeUID: http:number
    label: Position
    description: null
    configuration:
      mode: READWRITE
      commandTransformation: JS:RollerShutterPositionJSON.js
      stateExtension: /devices/33
      stateTransformation: JSONPATH:$..capabilities[0].value
      commandExtension: /devices/33

Gruß
Rondo

Re: openHAB3 und HTTP Binding: es werden keine Commands ausgeführt

Verfasst: 22. Dez 2021 23:34
von Rondo
Ich sehe gerade, du verwendest Gurtwickler. Diese Geräte habe ich bei mir auch im Einsatz.

Den Status kann man auch über /devices/Gerätenummer direkt abfragen. Dazu reicht der:

Code: Alles auswählen

stateTransformation: JSONPATH:$..capabilities[0].value
Welche Version ist auf dem HomePilot drauf?