Shelly BLU Gateway Gen3
The following components are available in Shelly BLU Gateway Gen3:
- System
- WiFi
- Bluetooth Low Energy
- Cloud
- MQTT
- Outbound Websocket
- Up to 10 instances of Script
- BluGw
- BluTrv
BluTrv
Methods
BluTrv.GetStatus
Request:
Property | Type | Description |
---|---|---|
| number | Id of the BluTrv component instance |
Response:
Find the BluTrv.GetStatus response properties in status section
BluTrv.GetConfig
Request:
Property | Type | Description |
---|---|---|
| number | Id of the BluTrv component instance |
Response:
Find the BluTrv.GetConfig response properties in config section
BluTrv.SetConfig
Request:
Property | Type | Description |
---|---|---|
| number | Id of the BluTrv component instance |
| object | Configuration that the method takes |
Response:
Property | Type | Description |
---|---|---|
| boolean |
BluTrv.Delete
Request:
Property | Type | Description |
---|---|---|
| number | Id of the BluTrv component instance |
Response:
null
on success or error
BluTrv.Call
Request:
Property | Type | Description |
---|---|---|
| number | Id of the BluTrv component instance |
| string | required RPC method to invoke on the TRV device |
| object | optional RPC parameters to invoke the selected method with |
Response:
Result of the RPC call. Response may be delayed up to one minute although normally should be recieved within 10 seconds.
BluTrv.GetRemoteStatus
Request:
Property | Type | Description |
---|---|---|
| number | Id of the BluTrv component instance |
Response:
Object containing remote device status, see example below.
BluTrv.GetRemoteConfig
Request:
Property | Type | Description |
---|---|---|
| number | Id of the BluTrv component instance |
Response:
Object containing remote device config, see example below.
BluTrv.GetRemoteDeviceInfo
Request:
Property | Type | Description |
---|---|---|
| number | Id of the BluTrv component instance |
Response:
Object containing remote device info, see example below.
BluTrv.UpdateFirmware
Request:
Property | Type | Description |
---|---|---|
| number | Id of the BluTrv component instance |
| boolean | optional Defaults to |
| string | optional If not specified TRV device will be updated with the latest firmware, also depending on the bootloader flag |
Response:
null
on success or error
BluTrv.CheckForUpdates
Request
This method doesn't take any arguments.
Response
Property | Type | Description |
---|---|---|
| string | Version of the latest firmware in the repository |
Associations
The Shelly BLU Gateway Gen3
supports Associtions of BLUTRV devices with the gateway and BTHome temperature and/or window sensors (BLUHT, BLUDW) with a BLUTRV device. The Associations procedure can be started by pressing the pair button on the gateway, through an RPC from the BLE
namespace or can be automatically triggered if already associted BLUTRV device enters pairing mode.
Status
Property | Type | Description |
---|---|---|
| number | Id of the BluTrv component instance |
| number | TRV device target temperature in Celsius from remote status |
| number | TRV device current temperature in Celsius from remote status |
| number | TRV device valve position percentage from remote status |
| array of strings | Descriptive names of possible errors on the TRV device from remote status |
| number | Last received RSSI of the TRV device |
| number | Last received battery percentage of the TRV device |
| number | Last received packet_id from the TRV device |
| number | Last received packet from the TRV device timestamp |
| boolean | Is TRV device paired with the gateway (should laways be true) |
| boolean | Is TRV device RPC capable (should laways be true) |
| number | The value of the 6-bit state counter received from the TRV device. When changed remote state (config, status and device_info) is updated and change is reflected here. -1 if no data is yet received from the TRV device |
The properties target_C
, current_C
, pos
and errors
are advised only for Home Assistant integration purposes and are not the recommended way to track TRV device status. They are included in BluTrv.GetStatus
response and will trigger status changes but that is not true for other TRV device status properties. To obtain full TRV device status you still need to call BluTrv.GetRemoteStatus
when rsv
changes.
Configuration
Property | Type | Description |
---|---|---|
| number | Id of the BluTrv component instance |
| string | read-only The bluetooth address of the TRV device |
| string or null | User defined name of the BluTrv component |
| string or null | Encrytion key of the BluTrv compoennt. Must be set if Device is encypted |
| string | read-only Linked BTHome TRV device (internal use) |
| array of strings | read-only Associated Temperature sensor from a BLUH&T device. Can be at most one |
| array of strings | read-only Associated Window sensors from BLUDoorWindow device. Can be many |
| object or null | Object for storing meta data (internal use) |
Webhook Events
There are two events related to the BluTrv
component that can trigger webhooks:
blutrv.temperature_change
- produced when the temperature reported in thecurrent_C
field of remote status of the component changes with more than 0.5 degrees Celsius.
blutrv.temperature_change
supports two attributes, that can be used to compose conditional webhooks:
Property | Type | Description |
---|---|---|
| number | New temperature in Celsius |
| number | New temperature in Fahrenheit |
blutrv.position_change
- produced when the valve position reported in the remote status of the component changes with more than 5 percent.
blutrv.position_change
supports one attribute, that can be used to compose conditional webhooks:
Property | Type | Description |
---|---|---|
| number | New valve position in percent |
Examples
BluTrv.GetStatus example
- BluTrv.GetStatus HTTP GET Request
- BluTrv.GetStatus Curl Request
- BluTrv.GetStatus Mos Request
http://192.168.33.1/rpc/BluTrv.GetStatus?id=200
curl -X POST -d '{"id":1,"method":"BluTrv.GetStatus","params":{"id":200}}' http://${SHELLY}/rpc
mos --port ${PORT} call BluTrv.GetStatus '{"id":200}'
Response
- BluTrv.GetStatus HTTP GET Response
- BluTrv.GetStatus Curl Response
- BluTrv.GetStatus Mos Response
{
"id": 200,
"target_C": 4.3,
"current_C": 24.7,
"pos": 0,
"errors": [
"not_calibrated"
],
"rssi": -41,
"battery": 100,
"packet_id": 64,
"last_updated_ts": 1736161958,
"paired": true,
"rpc": true,
"rsv": 19
}
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": {
"id": 200,
"target_C": 4.3,
"current_C": 24.7,
"pos": 0,
"errors": [
"not_calibrated"
],
"rssi": -41,
"battery": 100,
"packet_id": 64,
"last_updated_ts": 1736161958,
"paired": true,
"rpc": true,
"rsv": 19
}
}
{
"id": 200,
"target_C": 4.3,
"current_C": 24.7,
"pos": 0,
"errors": [
"not_calibrated"
],
"rssi": -41,
"battery": 100,
"packet_id": 64,
"last_updated_ts": 1736161958,
"paired": true,
"rpc": true,
"rsv": 19
}
BluTrv.GetConfig example
- BluTrv.GetConfig HTTP GET Request
- BluTrv.GetConfig Curl Request
- BluTrv.GetConfig Mos Request
http://192.168.33.1/rpc/BluTrv.GetConfig?id=200
curl -X POST -d '{"id":1,"method":"BluTrv.GetConfig","params":{"id":200}}' http://${SHELLY}/rpc
mos --port ${PORT} call BluTrv.GetConfig '{"id":200}'
Response
- BluTrv.GetConfig HTTP GET Response
- BluTrv.GetConfig Curl Response
- BluTrv.GetConfig Mos Response
{
"id": 200,
"addr": "28:68:47:f0:2a:b9",
"name": null,
"key": null,
"trv": "bthomedevice:200",
"temp_sensors": [
"bthomesensor:200"
],
"dw_sensors": [],
"meta": null
}
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": {
"id": 200,
"addr": "28:68:47:f0:2a:b9",
"name": null,
"key": null,
"trv": "bthomedevice:200",
"temp_sensors": [
"bthomesensor:200"
],
"dw_sensors": [],
"meta": null
}
}
{
"id": 200,
"addr": "28:68:47:f0:2a:b9",
"name": null,
"key": null,
"trv": "bthomedevice:200",
"temp_sensors": [
"bthomesensor:200"
],
"dw_sensors": [],
"meta": null
}
BluTrv.SetConfig example
- BluTrv.SetConfig HTTP GET Request
- BluTrv.SetConfig Curl Request
- BluTrv.SetConfig Mos Request
http://192.168.33.1/rpc/BluTrv.SetConfig?id=200&config={"name":"mytrv"}
curl -X POST -d '{"id":1,"method":"BluTrv.SetConfig","params":{"id":200,"config":{"name":"mytrv"}}}' http://${SHELLY}/rpc
mos --port ${PORT} call BluTrv.SetConfig '{"id":200,"config":{"name":"mytrv"}}'
Response
- BluTrv.SetConfig HTTP GET Response
- BluTrv.SetConfig Curl Response
- BluTrv.SetConfig Mos Response
{
"restart_required": false
}
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": {
"restart_required": false
}
}
{
"restart_required": false
}
BluTrv.Delete example
- BluTrv.Delete HTTP GET Request
- BluTrv.Delete Curl Request
- BluTrv.Delete Mos Request
http://192.168.33.1/rpc/BluTrv.Delete?id=200
curl -X POST -d '{"id":1,"method":"BluTrv.Delete","params":{"id":200}}' http://${SHELLY}/rpc
mos --port ${PORT} call BluTrv.Delete '{"id":200}'
Response
- BluTrv.Delete HTTP GET Response
- BluTrv.Delete Curl Response
- BluTrv.Delete Mos Response
null
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": null
}
null
BluTrv.Call example
- BluTrv.Call HTTP GET Request
- BluTrv.Call Curl Request
- BluTrv.Call Mos Request
http://192.168.33.1/rpc/BluTrv.Call?id=200&method="TRV.SetTarget"¶ms={"id":0,"target_C":22}
curl -X POST -d '{"id":1,"method":"BluTrv.Call","params":{"id":200,"method":"TRV.SetTarget","params":{"id":0,"target_C":22}}}' http://${SHELLY}/rpc
mos --port ${PORT} call BluTrv.Call '{"id":200,"method":"TRV.SetTarget","params":{"id":0,"target_C":22}}'
Response
- BluTrv.Call HTTP GET Response
- BluTrv.Call Curl Response
- BluTrv.Call Mos Response
null
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": null
}
null
BluTrv.GetRemoteStatus example
- BluTrv.GetRemoteStatus HTTP GET Request
- BluTrv.GetRemoteStatus Curl Request
- BluTrv.GetRemoteStatus Mos Request
http://192.168.33.1/rpc/BluTrv.GetRemoteStatus?id=200
curl -X POST -d '{"id":1,"method":"BluTrv.GetRemoteStatus","params":{"id":200}}' http://${SHELLY}/rpc
mos --port ${PORT} call BluTrv.GetRemoteStatus '{"id":200}'
Response
- BluTrv.GetRemoteStatus HTTP GET Response
- BluTrv.GetRemoteStatus Curl Response
- BluTrv.GetRemoteStatus Mos Response
{
"v": 17,
"ts": 1728654569,
"status": {
"sys": {
"time": "16:49",
"unixtime": 1728654568,
"last_sync_ts": 1728654544,
"offset": 10800,
"uptime": 686741,
"ram_size": 29736,
"ram_free": 11896,
"cfg_rev": 5,
"state_rev": 17
},
"temperature:0": {
"id": 0,
"tC": 23.71,
"tF": 74.69,
"errors": []
},
"trv:0": {
"id": 0,
"pos": 0,
"steps": 5938,
"current_C": 24.09,
"target_C": 22,
"override": {
"started_at": 1728654567
},
"schedule_rev": 0,
"errors": [
"not_calibrated"
]
}
}
}
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": {
"v": 17,
"ts": 1728654569,
"status": {
"sys": {
"time": "16:49",
"unixtime": 1728654568,
"last_sync_ts": 1728654544,
"offset": 10800,
"uptime": 686741,
"ram_size": 29736,
"ram_free": 11896,
"cfg_rev": 5,
"state_rev": 17
},
"temperature:0": {
"id": 0,
"tC": 23.71,
"tF": 74.69,
"errors": []
},
"trv:0": {
"id": 0,
"pos": 0,
"steps": 5938,
"current_C": 24.09,
"target_C": 22,
"override": {
"started_at": 1728654567
},
"schedule_rev": 0,
"errors": [
"not_calibrated"
]
}
}
}
}
{
"v": 17,
"ts": 1728654569,
"status": {
"sys": {
"time": "16:49",
"unixtime": 1728654568,
"last_sync_ts": 1728654544,
"offset": 10800,
"uptime": 686741,
"ram_size": 29736,
"ram_free": 11896,
"cfg_rev": 5,
"state_rev": 17
},
"temperature:0": {
"id": 0,
"tC": 23.71,
"tF": 74.69,
"errors": []
},
"trv:0": {
"id": 0,
"pos": 0,
"steps": 5938,
"current_C": 24.09,
"target_C": 22,
"override": {
"started_at": 1728654567
},
"schedule_rev": 0,
"errors": [
"not_calibrated"
]
}
}
}
BluTrv.GetRemoteConfig example
- BluTrv.GetRemoteConfig HTTP GET Request
- BluTrv.GetRemoteConfig Curl Request
- BluTrv.GetRemoteConfig Mos Request
http://192.168.33.1/rpc/BluTrv.GetRemoteConfig?id=200
curl -X POST -d '{"id":1,"method":"BluTrv.GetRemoteConfig","params":{"id":200}}' http://${SHELLY}/rpc
mos --port ${PORT} call BluTrv.GetRemoteConfig '{"id":200}'
Response
- BluTrv.GetRemoteConfig HTTP GET Response
- BluTrv.GetRemoteConfig Curl Response
- BluTrv.GetRemoteConfig Mos Response
{
"v": 17,
"ts": 1728654569,
"config": {
"sys": {
"device": {
"name": ""
},
"location": {
"lat": 43.0866,
"lon": 25.2695
},
"ui": {
"lock": false,
"t_units": "C",
"flip": false,
"brightness": 7
},
"ble": {
"interval_ms": 73,
"beacon_count": 4
},
"cfg_rev": 5
},
"temperature:0": {
"id": 0,
"offset_C": 0
},
"trv:0": {
"id": 0,
"enable": true,
"min_valve_position": 0,
"default_override_target_C": 8,
"flags": []
}
}
}
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": {
"v": 17,
"ts": 1728654569,
"config": {
"sys": {
"device": {
"name": ""
},
"location": {
"lat": 43.0866,
"lon": 25.2695
},
"ui": {
"lock": false,
"t_units": "C",
"flip": false,
"brightness": 7
},
"ble": {
"interval_ms": 73,
"beacon_count": 4
},
"cfg_rev": 5
},
"temperature:0": {
"id": 0,
"offset_C": 0
},
"trv:0": {
"id": 0,
"enable": true,
"min_valve_position": 0,
"default_override_target_C": 8,
"flags": []
}
}
}
}
{
"v": 17,
"ts": 1728654569,
"config": {
"sys": {
"device": {
"name": ""
},
"location": {
"lat": 43.0866,
"lon": 25.2695
},
"ui": {
"lock": false,
"t_units": "C",
"flip": false,
"brightness": 7
},
"ble": {
"interval_ms": 73,
"beacon_count": 4
},
"cfg_rev": 5
},
"temperature:0": {
"id": 0,
"offset_C": 0
},
"trv:0": {
"id": 0,
"enable": true,
"min_valve_position": 0,
"default_override_target_C": 8,
"flags": []
}
}
}
BluTrv.GetRemoteDeviceInfo example
- BluTrv.GetRemoteDeviceInfo HTTP GET Request
- BluTrv.GetRemoteDeviceInfo Curl Request
- BluTrv.GetRemoteDeviceInfo Mos Request
http://192.168.33.1/rpc/BluTrv.GetRemoteDeviceInfo?id=200
curl -X POST -d '{"id":1,"method":"BluTrv.GetRemoteDeviceInfo","params":{"id":200}}' http://${SHELLY}/rpc
mos --port ${PORT} call BluTrv.GetRemoteDeviceInfo '{"id":200}'
Response
- BluTrv.GetRemoteDeviceInfo HTTP GET Response
- BluTrv.GetRemoteDeviceInfo Curl Response
- BluTrv.GetRemoteDeviceInfo Mos Response
{
"v": 17,
"ts": 1728654569,
"device_info": {
"id": "shellyblutrv-ecd5b5a7db28",
"mac": "ECD5B5A7DB28",
"fw_id": "20241004-125638/main@4b7c4712+",
"bl_ver": 1,
"app": "BluTRV",
"model": "BluTRV",
"batch": "1",
"ver": "0.0.1a1"
}
}
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": {
"v": 17,
"ts": 1728654569,
"device_info": {
"id": "shellyblutrv-ecd5b5a7db28",
"mac": "ECD5B5A7DB28",
"fw_id": "20241004-125638/main@4b7c4712+",
"bl_ver": 1,
"app": "BluTRV",
"model": "BluTRV",
"batch": "1",
"ver": "0.0.1a1"
}
}
}
{
"v": 17,
"ts": 1728654569,
"device_info": {
"id": "shellyblutrv-ecd5b5a7db28",
"mac": "ECD5B5A7DB28",
"fw_id": "20241004-125638/main@4b7c4712+",
"bl_ver": 1,
"app": "BluTRV",
"model": "BluTRV",
"batch": "1",
"ver": "0.0.1a1"
}
}
BluTrv.UpdateFirmware example
- BluTrv.UpdateFirmware HTTP GET Request
- BluTrv.UpdateFirmware Curl Request
- BluTrv.UpdateFirmware Mos Request
http://192.168.33.1/rpc/BluTrv.UpdateFirmware?id=200
curl -X POST -d '{"id":1,"method":"BluTrv.UpdateFirmware","params":{"id":200}}' http://${SHELLY}/rpc
mos --port ${PORT} call BluTrv.UpdateFirmware '{"id":200}'
Response
- BluTrv.UpdateFirmware HTTP GET Response
- BluTrv.UpdateFirmware Curl Response
- BluTrv.UpdateFirmware Mos Response
null
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": null
}
null
BluTrv.CheckForUpdates example
- BluTrv.CheckForUpdates HTTP GET Request
- BluTrv.CheckForUpdates Curl Request
- BluTrv.CheckForUpdates Mos Request
http://192.168.33.1/rpc/BluTrv.CheckForUpdates
curl -X POST -d '{"id":1,"method":"BluTrv.CheckForUpdates"}' http://${SHELLY}/rpc
mos --port ${PORT} call BluTrv.CheckForUpdates
Response
- BluTrv.CheckForUpdates HTTP GET Response
- BluTrv.CheckForUpdates Curl Response
- BluTrv.CheckForUpdates Mos Response
{
"fw_id": "20241004-125638/main@4b7c4712+"
}
{
"id": 1,
"src": "shellyblugwg3-3030f9ed6698",
"params": {
"fw_id": "20241004-125638/main@4b7c4712+"
}
}
{
"fw_id": "20241004-125638/main@4b7c4712+"
}