Http-binding: "WriteOnly"-channel

Using OH3.4-release.

I’m trying to send a POST-Request from an item, which doesn’t get fired and I just don’t know why! :wink:

use case: evcc is running on the same host and I’d like to force an vehicle-recognition on it.

So, my http-thing looks like this:

UID: http:url:evcc
label: HTTP-evcc
thingTypeUID: http:url
configuration:
  authMode: BASIC
  ignoreSSLErrors: false
  baseURL: http://localhost:7070/api
  delay: 0
  ignoreSSLError: true
  stateMethod: GET
  refresh: 5
  commandMethod: POST
  contentType: text/plain
  timeout: 3000
  bufferSize: 4096

my channel looks like this:

channels:
  - id: VehicleOn_0
    channelTypeUID: http:number
    label: Einfahrt erkanntes Fahrzeug
    description: vehicle in LP1[0]
    configuration:
      mode: WRITEONLY
      commandExtension: loadpoints/0/vehicle/%2$s
      escapedUrl: false
  - id: Zielenergie_0
    channelTypeUID: http:number
    label: Einfahrt Ziel Energie
    description: targetenergy in LP1[0]
    configuration:
      mode: READWRITE
      escapedUrl: false
      stateExtension: state
      commandExtension: loadpoints/0/targetenergy/%2$s
      stateTransformation: JSONPATH:$.result.loadpoints[0].targetEnergy

as there’s no API-state giving back the ID of the recognized vehicle, I’m using “WRITEONLY” here

I set the http-binding to TRACE-logging and:

So, what happens is, if I change the item linked to “Zielenergie_0”:

2023-01-03 12:37:15.222 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'evcc_EinfahrtZielenergy' received command 1
2023-01-03 12:37:15.224 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'evcc_EinfahrtZielenergy' predicted to become 1
2023-01-03 12:37:15.243 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'evcc_EinfahrtZielenergy' changed from 0 to 1 
...
2023-01-03 12:37:15.248 [TRACE] [.HttpDynamicStateDescriptionProvider] - returning new stateDescription for http:url:evcc:Zielenergie_0
2023-01-03 12:37:15.302 [TRACE] [nding.http.internal.HttpThingHandler] - Sending to 'http://localhost:7070/api/loadpoints/0/targetenergy/1': Method = {POST}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.46.v20220331, Content-Type: text/plain}, Content = {1}
2023-01-03 12:37:15.317 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://localhost:7070/api/loadpoints/0/targetenergy/1': Code = {200}, Headers = {Content-Encoding: gzip, Content-Type: application/json; charset=UTF-8, Vary: Accept-Encoding, Date: Tue, 03 Jan 2023 11:37:15 GMT, Content-Length: 37}, Content = {{"result":1}
}

so, everything is good - evcc now also shows the new value for targetEnergy.

If I change the item linked to “VehicleOn_0”, there’s no POST-request:

2023-01-03 12:38:05.507 [INFO ] [openhab.event.ItemCommandEvent      ] - Item 'evcc_EinfahrtErkanntesAuto' received command 1
2023-01-03 12:38:05.510 [INFO ] [penhab.event.ItemStatePredictedEvent] - Item 'evcc_EinfahrtErkanntesAuto' predicted to become 1
2023-01-03 12:38:05.513 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'evcc_EinfahrtErkanntesAuto' changed from 0 to 1
...
2023-01-03 12:38:05.514 [TRACE] [.HttpDynamicStateDescriptionProvider] - returning new stateDescription for http:url:evcc:VehicleOn_0
2023-01-03 12:38:08.131 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://localhost:7070/api/state' with timeout 3000ms
2023-01-03 12:38:08.133 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://localhost:7070/api/state': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.46.v20220331}, Content = {null}
2023-01-03 12:38:08.140 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://localhost:7070/api/state': Code = {200}, Headers = {Content-Encoding: gzip, Content-Type: application/json; charset=UTF-8, Vary: Accept-Encoding, Date: Tue, 03 Jan 2023 11:38:08 GMT, Content-Length: 611}, Content = {{"result":{"auth":{"vehicles":null},"batteryConfigured":true,"batteryPower":12,"batterySoC":5,"bufferSoC":75,"currency":"EUR","gridConfigured":true,"gridPower":1191,"homePower":2144,"loadpoints":[{"chargeCurrent":0,"chargeCurrents":[0,0,0],"chargeDuration":0,"chargePower":0,"chargeRemainingDuration":-1,"chargeRemainingEnergy":24444.444444444445,"chargeTotalImport":1542.569,"chargedEnergy":0,"charging":false,"connected":true,"connectedDuration":0,"enabled":false,"maxCurrent":16,"minCurrent":6,"minSoC":0,"mode":"pv","phaseAction":"inactive","phaseRemaining":0,"phasesActive":3,"phasesConfigured":null,"phasesEnabled":3,"pvAction":"inactive","pvRemaining":0,"targetEnergy":1,"targetSoC":100,"title":"Warp","vehicleCapacity":22,"vehicleDetectionActive":false,"vehicleFeatureOffline":true,"vehicleIcon":"car","vehiclePresent":true,"vehicleRange":0,"vehicleSoC":0,"vehicleTargetSoC":0,"vehicleTitle":"Fiat 500e"}],"prioritySoC":66,"pvConfigured":true,"pvPower":941,"residualPower":600,"savingsAmount":0,"savingsEffectivePrice":0.319,"savingsGridCharged":0,"savingsSelfConsumptionCharged":0,"savingsSelfConsumptionPercent":0,"savingsSince":1671801014,"savingsTotalCharged":0,"siteTitle":"Zuhause","sponsor":"binderth","tariffFeedIn":0.065,"tariffGrid":0.319,"vehicles":["Kia EV6","Fiat 500e"],"version":"0.110.1"}}
}

There’s nothing indicating, that http-binding even started POSTing the new value to the evcc-API? What do I miss here?