Shelly TRV Target Temperature

It is currently not possible from HA (Shelly Native integration) to set a target temperature on Shelly TRVs (via a script, for example).
You can set:

  • Valve position (nice!)
  • Heating Mode
  • Heating Preset

But not the target temperature of a TRV.

I’ve been successfully using them via presets. It’d be nice, however, if we could also directly set the Target Temp regardless of any preset.

In Node-Red it works:

“[{“id”:“d23f18769662132d”,“type”:“api-call-service”,“z”:“32d56062f02c59a1”,“name”:“Temperturaabsenkung”,“server”:“a1aba8eb.bfd618”,“version”:5,“debugenabled”:false,“domain”:“climate”,“service”:“set_temperature”,“areaId”:[],“deviceId”:[],“entityId”:[“climate.heizkorper_bad”],“data”:”{“temperature”:“15.0”}",“dataType”:“jsonata”,“mergeContext”:"",“mustacheAltTags”:false,“outputProperties”:[],“queue”:“none”,“x”:520,“y”:2900,“wires”:[[“31089b6ba5b16848”]]},{“id”:“a1aba8eb.bfd618”,“type”:“server”,“name”:“Home Assistant”,“version”:5,“addon”:true,“rejectUnauthorizedCerts”:true,“ha_boolean”:“y|yes|true|on|home|open”,“connectionDelay”:true,“cacheJson”:true,“heartbeat”:false,“heartbeatInterval”:30,“areaSelector”:“friendlyName”,“deviceSelector”:“friendlyName”,“entitySelector”:“friendlyName”,“statusSeparator”:"at: “,“statusYear”:“hidden”,“statusMonth”:“short”,“statusDay”:“numeric”,“statusHourCycle”:“h23”,“statusTimeFormat”:“h:m”,“enableGlobalContextStore”:true}]”

Can’t you use the climate.name entity and set the target temp with that?

This is one of my scripts.

alias: Temps Bedrooms High
sequence:
  - service: climate.set_temperature
    data:
      temperature: 19
    target:
      entity_id:
        - climate.mid_back_bedroom_trv
        - climate.top_front_bedroom_trv
mode: single
2 Likes

Thank you! I’ll try that!

Thank you for the tip on using service: climate.set_temperature. I copied relevant lines into a separate script, but the visual editor indicated that I was trying to perform an action on an unknown device. I realized that you can create it graphically just as easily! You just need to select a service as an action. From there, you can navigate seamlessly. Find the “climate” service for your Shelly TRV and proceed logically and easily. All of this without having to modify any code. You define the target, and that’s the key point many overlook. Instead of addressing a device, you address a service and then set the target within the service. Everything is visually achievable. At the same time, you can set and specify the HVAC mode for temperature. Finally, I checked the YAML result and noticed the reason an unknown device was initially detected was because the device_id was a long hex sequence, not the name assigned with climate.entity, as would be logically expected. In any case, that’s how it works with a script. If it works with that, it will work with the rest too. Visual and straightforward, no need to be afraid!

And as an action in an automation, it looks like this