LinkedGo Smart Floor Heating Thermostat
LinkedGo Smart Floor Heating Thermostat is a Powered By Shelly device designed to automatically control underfloor heating systems. It allows adjusting temperature and humidity, supports both Celsius and Fahrenheit units, and includes safety features such as child lock and anti-freeze protection. The device can also connect to external sensors for more accurate temperature and humidity monitoring.
For more information about the original LinkedGo Smart Floor Heating Thermostat consult: LinkedGo Floor Heating Thermostat.
The following components are available in LinkedGo Smart Floor Heating Thermostat:
Supported virtual components:
Supported BTHome components:
Virtual Component Configuration
The LinkedGo Smart Floor Heating Thermostat has the following virtual components:
| Virtual Component | Type | Access | Description |
|---|---|---|---|
enable | boolean | read/write | Enables the thermostat's functions. |
current_temperature | number | read | Reports the current temperature in Celsius (0-100°C). |
target_temperature | number | read/write | Adjusts the desired temperature in Celsius (5-30°C). |
anti_freeze | boolean | read/write | Turn on/off the anti-freeze mode. |
current_humidity | number | read | Reports the current humidity in percentage (0-100%). |
child_lock | boolean | read/write | Enables the child lock. |
Service Configuration
See the Service Configuration Example section for a full example.
| Property | Type | Description |
|---|---|---|
| number | Manual calibration offset (in °C or °F depending on temp_offset = +1. |
| number | Manual calibration offset applied to humidity readings. Adds/subtracts a correction to the measured humidity percentage to correct sensor deviation. Example: if the device reports 40 % humidity but the actual humidity is 45 %, sethumidity_offset = +5. |
| string | Defines the temperature unit system for display and internal calculations — Celsius |
| array | Defines the minimum and maximum allowed temperature setpoints. |
| number | Defines the temperature hysteresis value in °C — the allowed deviation from the target temperature before switching heating back on. |
| boolean | Determines whether the thermostat restores its previous state or resets to its default state after a power cycle. |
| number | Defines the anti-freeze temperature threshold in °C. |
| number | Service id. |
Method Examples
How to enable the thermostat's functions
- Boolean.Set HTTP GET Request
- Boolean.Set Curl Request
- Boolean.Set Mos Request
http://192.168.33.1/rpc/Boolean.Set?owner="service:0"&role="enable"&value=true
curl -X POST -d '{"id":1,"method":"Boolean.Set","params":{"owner":"service:0","role":"enable","value":true}}' http://${SHELLY}/rpc
mos --port ${PORT} call Boolean.Set '{"owner":"service:0","role":"enable","value":true}'
Response
- Boolean.Set HTTP GET Response
- Boolean.Set Curl Response
- Boolean.Set Mos Response
null
{
"id": 1,
"src": "st1820-84fce6368860",
"params": null
}
null
How to check the current temperature
- Number.GetStatus HTTP GET Request
- Number.GetStatus Curl Request
- Number.GetStatus Mos Request
http://192.168.33.1/rpc/Number.GetStatus?owner="service:0"&role="current_temperature"
curl -X POST -d '{"id":1,"method":"Number.GetStatus","params":{"owner":"service:0","role":"current_temperature"}}' http://${SHELLY}/rpc
mos --port ${PORT} call Number.GetStatus '{"owner":"service:0","role":"current_temperature"}'
Response
- Number.GetStatus HTTP GET Response
- Number.GetStatus Curl Response
- Number.GetStatus Mos Response
{
"value": 27.9,
"source": "sys",
"last_update_ts": 1761635139
}
{
"id": 1,
"src": "st1820-84fce6368860",
"params": {
"value": 27.9,
"source": "sys",
"last_update_ts": 1761635139
}
}
{
"value": 27.9,
"source": "sys",
"last_update_ts": 1761635139
}
How to change the target temperature (at 28°C)
- Number.Set HTTP GET Request
- Number.Set Curl Request
- Number.Set Mos Request
http://192.168.33.1/rpc/Number.Set?owner="service:0"&role="target_temperature"&value=28
curl -X POST -d '{"id":1,"method":"Number.Set","params":{"owner":"service:0","role":"target_temperature","value":28}}' http://${SHELLY}/rpc
mos --port ${PORT} call Number.Set '{"owner":"service:0","role":"target_temperature","value":28}'
Response
- Number.Set HTTP GET Response
- Number.Set Curl Response
- Number.Set Mos Response
null
{
"id": 1,
"src": "st1820-84fce6368860",
"params": null
}
null
How to turn on the anti-freeze mode
- Boolean.Set HTTP GET Request
- Boolean.Set Curl Request
- Boolean.Set Mos Request
http://192.168.33.1/rpc/Boolean.Set?owner="service:0"&role="anti_freeze"&value=true
curl -X POST -d '{"id":1,"method":"Boolean.Set","params":{"owner":"service:0","role":"anti_freeze","value":true}}' http://${SHELLY}/rpc
mos --port ${PORT} call Boolean.Set '{"owner":"service:0","role":"anti_freeze","value":true}'
Response
- Boolean.Set HTTP GET Response
- Boolean.Set Curl Response
- Boolean.Set Mos Response
null
{
"id": 1,
"src": "st1820-84fce6368860",
"params": null
}
null
How to check the current humidity
- Number.GetStatus HTTP GET Request
- Number.GetStatus Curl Request
- Number.GetStatus Mos Request
http://192.168.33.1/rpc/Number.GetStatus?owner="service:0"&role="current_humidity"
curl -X POST -d '{"id":1,"method":"Number.GetStatus","params":{"owner":"service:0","role":"current_humidity"}}' http://${SHELLY}/rpc
mos --port ${PORT} call Number.GetStatus '{"owner":"service:0","role":"current_humidity"}'
Response
- Number.GetStatus HTTP GET Response
- Number.GetStatus Curl Response
- Number.GetStatus Mos Response
{
"value": 28,
"source": "sys",
"last_update_ts": 176163538
}
{
"id": 1,
"src": "st1820-84fce6368860",
"params": {
"value": 28,
"source": "sys",
"last_update_ts": 176163538
}
}
{
"value": 28,
"source": "sys",
"last_update_ts": 176163538
}
How to enable the child lock
- Boolean.Set HTTP GET Request
- Boolean.Set Curl Request
- Boolean.Set Mos Request
http://192.168.33.1/rpc/Boolean.Set?owner="service:0"&role="child_lock"&value=true
curl -X POST -d '{"id":1,"method":"Boolean.Set","params":{"owner":"service:0","role":"child_lock","value":true}}' http://${SHELLY}/rpc
mos --port ${PORT} call Boolean.Set '{"owner":"service:0","role":"child_lock","value":true}'
Response
- Boolean.Set HTTP GET Response
- Boolean.Set Curl Response
- Boolean.Set Mos Response
null
{
"id": 1,
"src": "st1820-84fce6368860",
"params": null
}
null
Service Configuration Example
- Service.GetConfig HTTP GET Request
- Service.GetConfig Curl Request
- Service.GetConfig Mos Request
http://192.168.33.1/rpc/Service.GetConfig?id=0
curl -X POST -d '{"id":1,"method":"Service.GetConfig","params":{"id":0}}' http://${SHELLY}/rpc
mos --port ${PORT} call Service.GetConfig '{"id":0}'
Response
- Service.GetConfig HTTP GET Response
- Service.GetConfig Curl Response
- Service.GetConfig Mos Response
{
"temp_offset": 0,
"humidity_offset": 0,
"temp_unit": "C",
"temp_range": [
5,
50
],
"temp_hysteresis": 2,
"power_down_memory": true,
"temp_anti_freeze": 8,
"id": 0
}
{
"id": 1,
"src": "st1820-84fce6368860",
"params": {
"temp_offset": 0,
"humidity_offset": 0,
"temp_unit": "C",
"temp_range": [
5,
50
],
"temp_hysteresis": 2,
"power_down_memory": true,
"temp_anti_freeze": 8,
"id": 0
}
}
{
"temp_offset": 0,
"humidity_offset": 0,
"temp_unit": "C",
"temp_range": [
5,
50
],
"temp_hysteresis": 2,
"power_down_memory": true,
"temp_anti_freeze": 8,
"id": 0
}