Http binding - limit of requests per time

I use the new OH3 http binding and have configured a thing with 100+ channels. All channels trigger a http request synchronously to an ESP8266 attached to my heater. Since all requests are issued synchronously, they overload the ESP.
Is there a way to limit the number of channels that are polled per time slot ?

This is just a few lines from the .things file.

Thing http:url:vitowifi "VitoWifi" @ "BadOG" [baseURL="http://192.168.1.61/", commandMethod="POST", headers="no" refresh=10]   {
    Channels:
        Type number : Channel_Vito_Betriebsmodus                "Vito_Betriebsmodus"                [ stateExtension="read?DP=0xb000&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)", commandExtension="write?DP=0xb000&Type=Mode&Value=%2$s" ]
        Type number : Channel_Vito_ManuellerModus               "Vito_ManuellerModus"               [ stateExtension="read?DP=0xb020&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)", commandExtension="write?DP=0xb020&Type=Mode&Value=%2$s" ]
        Type number : Channel_Vito_Freigabe_WasserElektro       "Vito_Freigabe_WasserElektro"       [ stateExtension="read?DP=0x6015&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)", commandExtension="write?DP=0x6015&Type=Mode&Value=%2$s" ]
        Type number : Channel_Vito_Freigabe_Kuehlung            "Vito_Freigabe_Kuehlung"            [ stateExtension="read?DP=0x71fe&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)", commandExtension="write?DP=0x71fe&Type=Mode&Value=%2$s" ]
        Type number : Channel_Vito_Status_Verdichter            "Vito_Status_Verdichter"            [ stateExtension="read?DP=0x0400&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)" ]
        Type number : Channel_Vito_Status_Primaerquelle         "Vito_Status_Primaerquelle"         [ stateExtension="read?DP=0x0402&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)" ]
        Type number : Channel_Vito_Status_Sekundaerquelle       "Vito_Status_Sekundaerquelle"       [ stateExtension="read?DP=0x0404&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)" ]
        Type number : Channel_Vito_Status_Durchlauferh_Stufe1   "Vito_Status_Durchlauferh_Stufe1"   [ stateExtension="read?DP=0x0408&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)" ]
        Type number : Channel_Vito_Status_Durchlauferh_Stufe2   "Vito_Status_Durchlauferh_Stufe2"   [ stateExtension="read?DP=0x0409&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)" ]
        Type number : Channel_Vito_Status_Pumpe_Heizkreis_A1    "Vito_Status_Pumpe_Heizkreis_A1"    [ stateExtension="read?DP=0x040d&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)" ]
        Type number : Channel_Vito_Status_Zusatzausgang_ZPumpe  "Vito_Status_Zusatzausgang_ZPumpe"  [ stateExtension="read?DP=0x0410&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)" ]
        Type number : Channel_Vito_Status_Umschaltventil_H_WW   "Vito_Status_Umschaltventil_H_WW"   [ stateExtension="read?DP=0x0414&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)" ]
        Type number : Channel_Vito_Status_Speicherladepumpe     "Vito_Status_Speicherladepumpe"     [ stateExtension="read?DP=0x0416&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)" ]
        Type number : Channel_Vito_Status_Kaeltekreisumkehr     "Vito_Status_Kaeltekreisumkehr"     [ stateExtension="read?DP=0x049c&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)" ]
        Type number : Channel_Vito_Status_Sammelmeldung         "Vito_Status_Sammelmeldung"         [ stateExtension="read?DP=0x0411&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)" ]

        Type number : Channel_Vito_Aussentemperatur             "Vito_Aussentemperatur"             [ stateExtension="read?DP=0x0101&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ]
        Type number : Channel_Vito_AussentemperaturRegelung     "Vito_AussentemperaturRegelung"     [ stateExtension="read?DP=0x0952&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ]
        Type number : Channel_Vito_Brauchwassertemperatur_oben  "Vito_Brauchwassertemperatur_oben"  [ stateExtension="read?DP=0x6007&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ]
        Type number : Channel_Vito_HysterreseWW_WP              "Vito_HysterreseWW_WP"              [ stateExtension="read?DP=0x0101&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ]
        Type number : Channel_Vito_HysterreseWW_Elektro         "Vito_HysterreseWW_Elektro"         [ stateExtension="read?DP=0x6008&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ]
        Type number : Channel_Vito_Brauchwassertemperatur_soll  "Vito_Brauchwassertemperatur_soll"  [ stateExtension="read?DP=0x6000&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x6000&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_Brauchwassertemperatur2_soll "Vito_Brauchwassertemperatur2_soll" [ stateExtension="read?DP=0x600C&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x600C&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_RaumtemperaturSoll           "Vito_RaumtemperaturSoll"           [ stateExtension="read?DP=0x2000&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x2000&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_Red_RaumtemperaturSoll       "Vito_Red_ RaumtemperaturSoll"      [ stateExtension="read?DP=0x2001&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x2001&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_PartyRaumtemperaturSoll      "Vito_PartyRaumtemperaturSoll"      [ stateExtension="read?DP=0x2022&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x2022&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_HeizkennlinieNiveau          "Vito_HeizkennlinieNiveau"          [ stateExtension="read?DP=0x2006&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x2006&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_HeizkennlinieSteigung        "Vito_HeizkennlinieSteigung"        [ stateExtension="read?DP=0x2007&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x2007&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_Brauchwassertemperatur_soll  "Vito_Brauchwassertemperatur_soll"  [ stateExtension="read?DP=0x6000&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x6000&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_TemperaturDifferenz_Heizung  "Vito_TemperaturDifferenz_Heizung"  [ stateExtension="read?DP=0x7003&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x7003&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_KuehlkennlinieNiveau         "Vito_KuehlkennlinieNiveau"         [ stateExtension="read?DP=0x7110&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x7110&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_KuehlkennlinieSteigung       "Vito_KuehlkennlinieSteigung"       [ stateExtension="read?DP=0x7111&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x7111&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_MinVLTemp_Kuehlung           "Vito_MinVLTemp_Kuehlung"           [ stateExtension="read?DP=0x7103&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x7103&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_TemperaturDifferenz_Heizung  "Vito_TemperaturDifferenz_Heizung"  [ stateExtension="read?DP=0x7003&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x7003&Type=TempL&Value=%2$s" ]
        Type number : Channel_Vito_TemperaturDifferenz_Kuehlung "Vito_TemperaturDifferenz_Kuehlung" [ stateExtension="read?DP=0x7004&Type=TempL", stateTransformation="REGEX:(^[-+]?[0-9]+\\.[0-9]+)" ,commandExtension="write?DP=0x7004&Type=TempL&Value=%2$s" ]

}

Unfortunately not at the moment. But you have a point there. I’ll try to figure out how I can implement that, it’s not fully straightforward. Can you enter an issue on GitHub for that? Thanks.

If you want to test: update org.openhab.binding.http https://janessa.me/esh/org.openhab.binding.http-3.1.0-SNAPSHOT.jar. There is a new configuration option delay which allows you to set a delay (in ms) between two consecutive requests. I would suggest to start with something like 50 or so and see if it works for you. Please make sure that (number of different URLs)*delay is smaller than the refresh time, otherwise the request queue will grow until the meomory is exhausted.

Thank you, that was unexpectedly fast :slight_smile:

tried installing it, but I failed. I tried on the openhab-cli console:
update org.openhab.binding.http https://janessa.me/esh/org.openhab.binding.http-3.1.0-SNAPSHOT.jar
but that gave me this error “Multiple bundles matching org.openhab.binding.http”

I also tried putting the file into /usr/share/openhab/addons and set ownership with
sudo chown -hR openhab:openhab org.openhab.binding.http-3.1.0-SNAPSHOT.jar
No error, but how can I tell if it is updated? In the GUI, it shows still v3.0.0

Since I use textual config, what is the name of the parameter ? Is it per channel or per thing ? I would try
Thing http:url:vitowifi "VitoWifi" @ "BadOG" [baseURL="http://192.168.1.61/", commandMethod="POST", refresh=10, delay=1000] { ...

Edit: yes, I did restart OH several times :wink:

Huh? Multiple bundles match? That‘s very unexpected. Remove it from the addons folder and show list -s | grep -i http. Do you have the bundle for http1 lurking around somewhere?

Per thing, delay and 1000 means „one second“.

list -s | grep -i http gave
147 │ Active │ 80 │ 3.0.0 │ org.openhab.core.io.http
148 │ Active │ 80 │ 3.0.0 │ org.openhab.core.io.http.auth
213 │ Active │ 80 │ 4.1.42.Final │ io.netty.codec-http
253 │ Active │ 80 │ 3.0.0 │ org.openhab.binding.http
254 │ Waiting │ 80 │ 3.1.0.202012231920 │ org.openhab.binding.http

resolved ? I uninstalled the 3.0.0 via the GUI, restarted OH and now it shows:
147 │ Active │ 80 │ 3.0.0 │ org.openhab.core.io.http
148 │ Active │ 80 │ 3.0.0 │ org.openhab.core.io.http.auth
253 │ Resolved │ 80 │ 3.0.0 │ org.openhab.binding.http
254 │ Resolved │ 80 │ 3.1.0.202012231920 │ org.openhab.binding.http

I think it installed now. Several restarts later it now shows openhab> list -s | grep -i http
147 │ Active │ 80 │ 3.0.0 │ org.openhab.core.io.http
148 │ Active │ 80 │ 3.0.0 │ org.openhab.core.io.http.auth
254 │ Active │ 80 │ 3.1.0.202012231920 │ org.openhab.binding.http

But the http binding does not show up in the GUI. Is this by design ?

Manually installed (i.e. through addons folder) do not show up in the list. The update command above should have updated the installed bundle. Nevertheles, this seems to be the correct bundle. Does it work?

:grinning:
works like a charm.

Thing http:url:vitowifi "VitoWifi" @ "BadOG" [baseURL="http://192.168.1.61/", commandMethod="POST", delay="1000", refresh="37", timeout="1000"]   {
    Channels:
        Type number : Channel_Vito_Betriebsmodus                "Vito_Betriebsmodus"                [ stateExtension="read?DP=0xb000&Type=Mode", stateTransformation="REGEX:(^[-+]?[0-9]+)", commandExtension="write?DP=0xb000&Type=Mode&Value=%2$s" ]

...

}

It just took me some time to realize it does because if you have no Items linked to the channels, they don’t show up in the logs.

2020-12-24 14:21:08.898 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0xb000&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.902 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0xb020&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.904 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x6015&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.908 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x0400&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.917 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x0402&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.919 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x71fe&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.924 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x0408&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.925 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x0404&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.927 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x040d&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.929 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x0410&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.929 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x0409&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.934 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x0414&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.936 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x0416&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.943 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x049c&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.944 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x0411&Type=Mode' with timeout 1000ms

2020-12-24 14:21:08.945 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x0101&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.948 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x0952&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.950 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x6007&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.954 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x6008&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.962 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x6000&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.963 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x600C&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.967 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x2000&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.967 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x2001&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.971 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x2022&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.974 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x2006&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.979 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x7003&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.983 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x7110&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.984 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x2007&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.986 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x7111&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.988 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x7103&Type=TempL' with timeout 1000ms

2020-12-24 14:21:08.993 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Requesting refresh (retry=false) from 'http://192.168.1.61/read?DP=0x7004&Type=TempL' with timeout 1000ms

2020-12-24 14:21:09.797 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0xb000&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:09.874 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0xb000&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {2

2020-12-24 14:21:10.799 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0xb020&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:10.870 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0xb020&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {0

2020-12-24 14:21:11.801 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x6015&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:11.873 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x6015&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {0

2020-12-24 14:21:12.803 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x0400&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:12.883 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x0400&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {1

2020-12-24 14:21:13.805 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x0402&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:13.880 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x0402&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {0

2020-12-24 14:21:14.808 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x71fe&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:14.886 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x71fe&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {0

2020-12-24 14:21:15.811 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x0408&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:15.883 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x0408&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {0

2020-12-24 14:21:16.813 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x0404&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:16.886 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x0404&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {1

2020-12-24 14:21:17.816 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x040d&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:17.891 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x040d&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {1

2020-12-24 14:21:18.819 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x0409&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:18.892 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x0409&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {0

2020-12-24 14:21:19.822 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x0410&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:19.899 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x0410&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {0

2020-12-24 14:21:20.824 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x0414&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:20.902 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x0414&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {0

2020-12-24 14:21:21.826 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x0416&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:21.909 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x0416&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {1

2020-12-24 14:21:22.831 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x049c&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:22.901 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x049c&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {1

2020-12-24 14:21:23.834 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x0411&Type=Mode': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:23.914 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x0411&Type=Mode': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 2, Connection: close}, Content = {0

2020-12-24 14:21:24.838 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x0101&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:24.916 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x0101&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 5, Connection: close}, Content = {9.80

2020-12-24 14:21:25.841 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x0952&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:25.930 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x0952&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 6, Connection: close}, Content = {25.60

2020-12-24 14:21:26.843 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x6007&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:26.922 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x6007&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 5, Connection: close}, Content = {1.10

2020-12-24 14:21:27.846 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x6008&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:27.933 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x6008&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 6, Connection: close}, Content = {70.00

2020-12-24 14:21:28.851 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x6000&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:28.932 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x6000&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 6, Connection: close}, Content = {50.00

2020-12-24 14:21:29.854 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x600C&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:29.941 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x600C&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 6, Connection: close}, Content = {60.00

2020-12-24 14:21:30.856 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x2000&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:30.931 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x2000&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 6, Connection: close}, Content = {21.20

2020-12-24 14:21:31.858 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x2001&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:31.936 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x2001&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 6, Connection: close}, Content = {16.00

2020-12-24 14:21:32.861 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x2022&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:32.940 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x2022&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 6, Connection: close}, Content = {22.00

2020-12-24 14:21:33.864 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x2006&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:33.941 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x2006&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 6, Connection: close}, Content = {-3.10

2020-12-24 14:21:34.867 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x7003&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:34.953 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x7003&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 5, Connection: close}, Content = {7.00

2020-12-24 14:21:35.871 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x7110&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:35.953 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x7110&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 5, Connection: close}, Content = {3.00

2020-12-24 14:21:36.874 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x2007&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:36.957 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x2007&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 5, Connection: close}, Content = {0.50

2020-12-24 14:21:37.876 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x7111&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:37.958 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x7111&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 5, Connection: close}, Content = {0.20

2020-12-24 14:21:38.879 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x7103&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:38.963 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x7103&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 6, Connection: close}, Content = {19.00

2020-12-24 14:21:39.882 [TRACE] [ttp.internal.http.RefreshingUrlCache] - Sending to 'http://192.168.1.61/read?DP=0x7004&Type=TempL': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.20.v20190813}, Content = {null}

2020-12-24 14:21:39.969 [TRACE] [p.internal.http.HttpResponseListener] - Received from 'http://192.168.1.61/read?DP=0x7004&Type=TempL': Code = {200}, Headers = {Content-Type: text/plain, Content-Length: 5, Connection: close}, Content = {5.00

Thank you !