Shelly TRV gets current room temperature from Openhab

How can I tell the Shelly TRV in openhab the current room temperature, which is received by me in openhab via any IoT?
I have seen that you can activate an endpoint in the sensor settings.
My idea would be to send this to the TRV at certain intervals using the HTTP binding. But how do I get the temperature variable into the HTTP GET command?

I would be very grateful for an example.

But the Shelly TRV already has a temperature sensor… it knows the temperature of the room it is in.

This might be errorprone as it measures the temperature next to the radiator, not the room temp.

I am not at home, so can’t prove next statement.
If I am not wrong, Shelly TRV‘s have an advanced channel for external temperature readings. If this is correct, link a temperature item to it and send your readings to it.

Edit: Checked, it does not have that channel…

You’re correct, found a discussion in the Facebook page for shelly customers.

They refer to the api documentation but when I checked it just now I found no reference to the TRV.
Might be a question of time before they update it.

It might be a candidate for a feature request….

The Shelly Binding definitely does not provide this channel.
Would indeed be desirable for the future.
The TRV has its own temperature sensor, of course, but in my case the TRV is mounted at a corner where warm air collects and extreme temperature deviations occur that I cannot solve with an offset.
There is the possibility to communicate the temperature to the TRV via the HTTP API. I just need some advice on how to do this with the HTTP binding.


For sure. I think I found the right docs too:
https://shelly-api-docs.shelly.cloud/gen1/#shelly-trv-overview

Control + f and ext_t will bet several end points.

I do it via a rule triggered when the room temperature item changes and executing this short script:

> val theURLtoCall = "http://192.168.101.68/ext_t?temp="
> // Strip out the  unit from the state
> var temp = (newState as Number).floatValue
> sendHttpGetRequest(theURLtoCall + temp)