# Warmup Binding
This binding integrates Warmup (opens new window) Wi‑Fi–enabled thermostats via the API at https://my.warmup.com/ (opens new window).
Devices known to work with the binding:
Device expected to work with the binding:
Devices that might work with the binding:
- Other similar looking devices marketed under different brands, mentioned in the API
Any Warmup device must be registered at https://my.warmup.com/ (opens new window) prior to use, or connected through the MyHeating app (opens new window).
The API is not publicly documented. The binding’s API implementation is derived from the implementations at https://github.com/alyc100/SmartThingsPublic/blob/master/devicetypes/alyc100/warmup-4ie.src/warmup-4ie.groovy (opens new window) and https://github.com/alex-0103/warmup4IE/blob/master/warmup4ie/warmup4ie.py (opens new window), and has been enhanced by inspecting the GraphQL endpoint (opens new window).
# Supported Things
The Warmup binding supports the following Thing types:
| Bridge | Label | Description |
|---|---|---|
my-warmup | My Warmup Account | The account credentials for my.warmup.com (opens new window), which acts as an API to the Warmup device(s) |
| Thing | Label | Description |
|---|---|---|
room | Room | A room containing an individual Warmup Wi‑Fi–connected device that controls a heating circuit. |
Room The device is optimised for controlling underfloor heating (electric or hydronic), although it can also control central heating circuits. The device reports the temperature from one of two sensors: either a floor temperature probe or the air temperature at the device. It appears to be possible to configure two devices in a primary/secondary configuration, but it is not clear how this might be represented by the API and has not been implemented.
# Discovery
Once credentials are successfully added to the bridge, any rooms (devices) detected will be added as Things to the Inbox.
# Thing Configuration
# my-warmup Bridge Configuration
| config parameter | type | description | required | default |
|---|---|---|---|---|
| username | String | Username for my.warmup.com (opens new window) | true | |
| password | String | Password for my.warmup.com (opens new window) | true | |
| refreshInterval | Integer | Interval in seconds between automatic refreshes | true | 300 |
# room Thing Configuration
Rooms are configured automatically with a serial number upon discovery, or can be added manually using the "Device Number" from the device, excluding the last 3 characters. Changing the target temperature results in a temporary override to that temperature for the duration configured on the Thing. This defaults to 60 minutes.
| config parameter | type | description | required | default |
|---|---|---|---|---|
| serialNumber | String | Device serial number, excluding the last 3 characters | true | |
| overrideDuration | Integer | Duration in minutes of override when target temperature is changed | true | 60 |
# Channels
| channel | type | description | read-only |
|---|---|---|---|
| currentTemperature | Number:Temperature | Currently reported temperature | true |
| targetTemperature | Number:Temperature | Target temperature | false |
| overrideRemaining | Number:Time | Remaining duration of the configured override | true |
| fixedTemperature | Number:Temperature | Target temperature for fixed mode | false |
| energyToday | Number:Energy | Today's current energy consumption | true |
| runMode | String | Current operating mode of the thermostat; options listed below | false |
| frostProtectionMode | Switch | Toggles between the "Frost Protection" run mode and the previously active run mode (typically Fixed or Schedule) | false |
| airTemperature | Number:Temperature | Currently reported air temperature at the device | true |
| floor1Temperature | Number:Temperature | Currently reported temperature from floor probe 1 on the device | true |
| floor2Temperature | Number:Temperature | Currently reported temperature from floor probe 2 on the device | true |
# Run Mode Statuses
These run modes are defined for the API.
The descriptions are based on inspection of the device behaviour and are not sourced from documentation.
Only the value schedule is writable; this reverts the device to the program/schedule configured on the device.
The value fixed can be set by commanding the fixedTemperature channel. The value override can be set by commanding the targetTemperature channel.
| api value | UI name | description |
|---|---|---|
| not_set | Not Set | Unknown |
| off | Off | Device turned off |
| schedule | Schedule | Device target temperature running to a programmed schedule |
| override | Override | Target temperature overridden for the remaining duration in overrideRemaining |
| fixed | Fixed | Device target temperature set to a constant fixed value |
| anti_frost | Frost Protection | Device target temperature set to 7°C |
| holiday | Holiday | Device target temperature set to a constant fixed value for duration of holiday |
| fil_pilote | Fil Pilote | Unknown |
| gradual | Gradual | Unknown |
| relay | Relay | Unknown |
| previous | Previous | Unknown |
# Rule Actions
# setOverride(temperature, duration)
Sets a temporary temperature override on the device.
Parameters:
| Name | Type | Description |
|---|---|---|
| temperature | QuantityType | Override temperature. Must be between 5°C and 30°C |
| duration | QuantityType | Duration of the override. Must be between 0 and 1440 minutes (24 hours) |
Example:
# Full Example
# .things file
Bridge warmup:my-warmup:MyWarmup [ username="test@example.com", password="test", refreshInterval=300 ]
{
room bathroom "Home - Bathroom" [ serialNumber="AABBCCDDEEFF", overrideDuration=60 ]
}
# .items file
Number:Temperature bathroom_temperature "Temperature [%.1f °C]" <temperature> (GF_Bathroom, Temperature) ["Measurement", "Temperature"] {channel="warmup:room:MyWarmup:bathroom:currentTemperature"}
Number:Temperature bathroom_setpoint "Setpoint [%.1f °C]" <temperature> (GF_Bathroom) ["Setpoint", "Temperature"] {channel="warmup:room:MyWarmup:bathroom:targetTemperature"}
Number:Time bathroom_overrideRemaining "Override Remaining [%d minutes]" (GF_Bathroom) {channel="warmup:room:MyWarmup:bathroom:overrideRemaining"}
String bathroom_runMode "Run Mode [%s]" (GF_Bathroom) {channel="warmup:room:MyWarmup:bathroom:runMode"}
Switch bathroom_frostProtection "Frost Protection Mode" (GF_Bathroom) {channel="warmup:room:MyWarmup:bathroom:frostProtectionMode"}
# Sitemap
Text label="Bathroom" {
Text item=bathroom_temperature
Setpoint item=bathroom_setpoint step=0.5
Text item=bathroom_overrideRemaining
Text item=bathroom_runMode
Switch item=bathroom_frostProtection
}