[SOLVED] Do not know how to define http item

I am trying to define items using the http binding, but I can’t find how to do this. Retrieving items is not a problem but setting an item I am not able to…

Here is all the information that I have:

retrieve info:
  http://toon/happ_thermstat?action=getThermostatInfo
answer:
  {"result":"ok", "currentTemp":"2010", "currentSetpoint":"2000", "currentInternalBoilerSetpoint":"24", "programState":"1", "activeState":"0", "nextProgram":"1", "nextState":"2", "nextTime":"1548626400","nextSetpoint":"1600","randomConfigId":"168242560","errorFound":"255","connection":"0","burnerInfo":"0","otCommError":"0","currentModulationLevel":"0"}
set state:
  http://toon/happ_thermstat?action=changeSchemeState&state=2&temperatureState=1

So these definitions work:

http.cfg:
ToonCacheTherm.url=http://192.168.3.175/happ_thermstat?action=getThermostatInfo
ToonCacheTherm.updateInterval=10000
toon.items:
Number ToonTemperature "Kamer temperatuur" { http="<[ToonCacheTherm:10000:JSONPATH($.currentTemp)]" }
Number ToonState  { http="<[ToonCacheTherm:10000:JSONPATH($.activeState)]" }

But these do not:

/* 
From the documentation
IN http="<[<url>:<refreshintervalinmilliseconds>:<transformationrule>]"
OUT http=">[<command>:<httpmethod>:<url>:<postcontent>]"
*/ 

Number SetState1 { http=">[CHANGED:GET:http://192.168.3.175/happ_thermstat?action=changeSchemeState&state=2&temperatureState=%2$" }
Number SetState2 { http="<[ToonCacheTherm:10000:JSONPATH($.activeState)] >[CHANGED:GET:http://192.168.3.175/happ_thermstat?action=changeSchemeState&state=2&temperatureState=%2$" }

So basically what I would like is to retrieve and set as follows:

Retrieve STATE from getThermostatInfo and json transfrom
Set STATE using: http://toon/happ_thermstat?action=changeSchemeState&state=2&temperatureState=STATE

At the moment I am not sure if that is at all possible but I am sure that I do not know how :frowning:

I just went ahead and solved it in another way. Still curious about the http binding solution though.

toon.items
Number KamerTemperature "Kamer temperatuur" { http="&lt;[ToonCacheTherm:10000:JSONPATH($.currentTemp)]" }
Number ToonTemperature "Kamer temperatuur" { http="&lt;[ToonCacheTherm:10000:JSONPATH($.currentSetpoint)]" }
Number ToonState { http="&lt;[ToonCacheTherm:10000:JSONPATH($.activeState)]" }
Number ToonProgramAan { http="&lt;[ToonCacheTherm:10000:JSONPATH($.programState)]" }


toon.rules
rule "Set point change"
when Item ToonTemperature changed 
then
    sendHttpGetRequest("http://toon.familie-dokter.lan/happ_thermstat?action=setSetpoint&Setpoint="+ ToonTemperature.state.toString)
end

rule "Switch Program state"
when Item ToonProgramAan changed 
then
          sendHttpGetRequest("http://toon.familie-dokter.lan/happ_thermstat?action=changeSchemeState&state=" + ToonProgramAan.state.toString)           
end

rule "Switch state"
when Item ToonState changed
then
    sendHttpGetRequest("http://toon.familie-dokter.lan/happ_thermstat?action=changeSchemeState&state=2&temperatureState=" + ToonState.state.toString)    
end


toon.sitemap
sitemap toon label="Toon" {
    Frame label="Thermostaat" icon="thermostat" {
        Setpoint item=ToonTemperature label="Gewenste Temperatuur [%d °C]" icon="temperature" minValue=00 maxValue=3000 step=50
        Text item=KamerTemperature label="Huidige Temperatuur [%d °C]" icon="temperature"
        Text item=ToonProgramAan mappings=[0="Uit", 1="Aan"]
        Selection item=ToonState label="State" mappings=[0="Comfort", 1="Thuis", 2="Slapen", 3="Weg"]
        Chart item=KamerTemperature period=W refresh=300
    }
  }

Hey @dries_dokter, did you try out Rooted (locally accessible) Toon?

@DaanMeijer I have not , but thank you for triggering me: will have a look this weekend!