LinkedGo Smart HVAC Thermostat
LinkedGo Smart HVAC Thermostat is a Powered By Shelly device that automatically controls heating, cooling, and air circulation. It allows adjusting temperature and humidity, supports both Celsius and Fahrenheit units, and offers multiple operation modes. The device can also manage fan speed and connect to external sensors for more accurate temperature and humidity monitoring.
For more information about the original LinkedGo Smart HVAC Thermostat consult: https://www.linkedgo-e.com/
The following components are available in LinkedGo Smart HVAC Thermostat:
Supported virtual components:
Supported BTHome components:
Virtual Component Configuration
The LinkedGo Smart HVAC 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 the active unit (°C or °F). |
target_temperature | number | read/write | Sets the desired temperature in the active unit (°C or °F). |
fan_speed | enum | read/write | Adjusts the fan speed (auto, low, medium, high). |
anti_freeze | boolean | read/write | Turn on/off the anti-freeze mode. |
working_mode | enum | read/write | Adjusts the working mode (cool, dry, heat, etc.) |
current_humidity | number | read | Reports the current humidity in percentage (0-100%). |
target_humidity | number | read/write | Adjusts the desired humidity in percentage (40-75%). |
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 |
| string | Defines the current operating mode of the thermostat.
|
| 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": "st-802-54320440a210",
"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": 25.1,
"source": "sys",
"last_update_ts": 1761227676
}
{
"id": 1,
"src": "st-802-54320440a210",
"params": {
"value": 25.1,
"source": "sys",
"last_update_ts": 1761227676
}
}
{
"value": 25.1,
"source": "sys",
"last_update_ts": 1761227676
}
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": "st-802-54320440a210",
"params": null
}
null
How to set the fan speed (to medium)
- Enum.Set HTTP GET Request
- Enum.Set Curl Request
- Enum.Set Mos Request
http://192.168.33.1/rpc/Enum.Set?owner="service:0"&role="fan_speed"&value="medium"
curl -X POST -d '{"id":1,"method":"Enum.Set","params":{"owner":"service:0","role":"fan_speed","value":"medium"}}' http://${SHELLY}/rpc
mos --port ${PORT} call Enum.Set '{"owner":"service:0","role":"fan_speed","value":"medium"}'
Response
- Enum.Set HTTP GET Response
- Enum.Set Curl Response
- Enum.Set Mos Response
null
{
"id": 1,
"src": "st-802-54320440a210",
"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": "st-802-54320440a210",
"params": null
}
null
How to change the working mode (to heat)
- Enum.Set HTTP GET Request
- Enum.Set Curl Request
- Enum.Set Mos Request
http://192.168.33.1/rpc/Enum.Set?owner="service:0"&role="working_mode"&value="heat"
curl -X POST -d '{"id":1,"method":"Enum.Set","params":{"owner":"service:0","role":"working_mode","value":"heat"}}' http://${SHELLY}/rpc
mos --port ${PORT} call Enum.Set '{"owner":"service:0","role":"working_mode","value":"heat"}'
Response
- Enum.Set HTTP GET Response
- Enum.Set Curl Response
- Enum.Set Mos Response
null
{
"id": 1,
"src": "st-802-54320440a210",
"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": 41,
"source": "sys",
"last_update_ts": 1761228276
}
{
"id": 1,
"src": "st-802-54320440a210",
"params": {
"value": 41,
"source": "sys",
"last_update_ts": 1761228276
}
}
{
"value": 41,
"source": "sys",
"last_update_ts": 1761228276
}
How to change the target humidity (at 65%)
- 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_humidity"&value=65
curl -X POST -d '{"id":1,"method":"Number.Set","params":{"owner":"service:0","role":"target_humidity","value":65}}' http://${SHELLY}/rpc
mos --port ${PORT} call Number.Set '{"owner":"service:0","role":"target_humidity","value":65}'
Response
- Number.Set HTTP GET Response
- Number.Set Curl Response
- Number.Set Mos Response
null
{
"id": 1,
"src": "st-802-54320440a210",
"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": 1,
"humidity_offset": 0,
"temp_unit": "C",
"thermostat_mode": "auto",
"id": 0
}
{
"id": 1,
"src": "st-802-54320440a210",
"params": {
"temp_offset": 1,
"humidity_offset": 0,
"temp_unit": "C",
"thermostat_mode": "auto",
"id": 0
}
}
{
"temp_offset": 1,
"humidity_offset": 0,
"temp_unit": "C",
"thermostat_mode": "auto",
"id": 0
}