deconz-rest-plugin-v2 icon indicating copy to clipboard operation
deconz-rest-plugin-v2 copied to clipboard

Current thermostat resource items and proposed candidates

Open SwoopX opened this issue 3 years ago • 17 comments

Currently supported resource items:

State items

  • state/errorcode The error code given by the device.
  • state/floortemperature The measured floor temperatore (in contrast to air temperature).)
  • state/heating Determines heating state for ELKO Super TR thermostat.
  • state/mountingmodeactive The current mounting mode state.
  • state/on True when device is on; false when off.
  • state/temperature The current temperature in °C * 100.
  • state/valve The open percentage of the thermostat valve.
  • state/windowopen The current window state detected by the thermostat.

Config items

  • config/coolsetpoint Target cooling temperature of a thermostat.
  • config/displayflipped Displayed content is normal or upside down.
  • config/externalsensortemp The temperature measured by an external sensor, can be used for regulation or displayed on screen.
  • config/externalwindowopen The window state detected by an external sensor.
  • config/fanmode Specifies the current speed of the fan for sensors.
  • config/heatsetpoint Target temperature of a thermostat.
  • config/hostflags The configuration flags for Eurotronic Spirit
  • config/lastchange_amount Specifies the delta between the current active setpoint and the previous active setpoint.
  • config/lastchange_source Determine whether changes to setpoints were initiated by manual interaction, scheduled programming or some other source.
  • config/lastchange_time Specifies the time in UTC at which the setpoint change was recorded.
  • config/locked Locks or unlocks the device. This item has to be understood as child-lock.
  • config/mode Mode of the device.
  • config/mountingmode Determines if the device has entered the mounting state.
  • config/offset Relative offset to the main measured value.
  • config/preset
  • config/schedule On-device heating schedules.
  • config/schedule_on Determines if on-device schedules for setting the heatsetpoint are currently used or if the thermostat is operated manually.
  • config/setvalve
  • config/swingmode Indicates the position of Louver on the AC.
  • config/temperaturemeasurement

Overview of supported resource items by device

Stelpro smt402ad

  • config/externalsensortemp
  • config/heatsetpoint
  • config/mode
  • config/offset
  • state/on
  • state/temperature
  • state/valve

Danfoss Ally

  • config/displayflipped
  • config/externalsensortemp
  • config/externalwindowopen
  • config/heatsetpoint
  • config/locked
  • config/mountingmode
  • config/offset
  • config/schedule
  • config/schedule_on
  • state/errorcode
  • state/mountingmodeactive
  • state/on
  • state/temperature
  • state/valve
  • state/windowopen

Namron 4512737, 4512738

  • config/heatsetpoint
  • config/mode
  • config/offset
  • config/schedule
  • config/schedule_on
  • state/on
  • state/temperature

Sinope Th1124zb

  • config/externalsensortemp
  • config/heatsetpoint
  • config/mode
  • config/offset
  • config/schedule
  • config/schedule_on
  • state/on
  • state/temperature

Eurotronic Spirit SPZB0001

  • config/displayflipped
  • config/heatsetpoint
  • config/locked
  • config/mode
  • config/offset
  • state/on
  • state/temperature
  • state/valve

eCozy thermostat

  • config/heatsetpoint
  • config/lastchange_amount
  • config/lastchange_source
  • config/lastchange_time
  • config/offset
  • config/schedule
  • config/schedule_on
  • state/on
  • state/temperature
  • state/valve

Proposed candidates

Danfoss Ally and derivatives

Already included in PR 6175

  • config/heatavailable -> Indicate if central heating is active. Set to true when heating period ends to prevent unnecessary valve adjustments.
  • config/loadbalancing -> Thermostat runs stand alone (false) or shares load with others in the same room (true).
  • config/radiatorcovered -> Radiator is standing freely (false) or is covered (true). Set this to true for Danfoss Ally to use external temp sensor.
  • config/windowopendetectionenabled -> Turns the window open detection feature on or off.

Not yet part of a PR

  • config/adaptationrun -> String, supposed to start or cancel thermostat calibration.
  • config/adaptationsetting -> String, supposed to configure when thermostat calibration shall start.
  • state/adaptationstatus -> String, supposed to provide the current thermostat calibration status.
  • state/loadestimate -> Int16, the current load value. This is required to appropriately use and calculate the load balancing feature.
  • config/meanloadroom -> Int16, the average load over all thermostats in a room. This is required to appropriately use and calculate the load balancing feature.

Bosch Thermostat II

Not yet part of a PR

  • config/displayedtemperature -> String, supposed set which temperature to display (measured vs. setpoint).
  • config/displayontime -> Uint8, set how long the display shall be active (can also be used generically).
  • config/displaybrightness -> Uint8, set the brightness of the display (can also be used generically).

SwoopX avatar Sep 03 '22 18:09 SwoopX

state/windowopen Not better to use config/windowsopen ? It's an internal setting, managed by the device, that is enabled or not by the user.

config/locked can make conflict with doorlock, less problem with "childlock"

Some tuya TRV have (at least) 2 heatpoint, one for the day and one for night.

Smanar avatar Sep 04 '22 10:09 Smanar

state/windowopen Not better to use config/windowsopen ? It's an internal setting, managed by the device, that is enabled or not by the user.

Erm, no? It's a state and cannot be set.

config/locked can make conflict with doorlock, less problem with "childlock"

Thermostats are longer part of the code than door locks. The description was taken from the respective attribute and changing that would be a breaking change to all thermostats using it. Door locks are supposed to use this as well from my perspective.

Some tuya TRV have (at least) 2 heatpoint, one for the day and one for night.

Sorry, I don't know anything about that.

SwoopX avatar Sep 04 '22 22:09 SwoopX

Erm, no? It's a state and cannot be set.

Arf, ok so it s not same for tuya device, on all of them it's a setting not a return, if it's on it s the device itself that stop the heating according to a delay and a temperature drop.

Smanar avatar Sep 05 '22 14:09 Smanar

There is also a config/windowopen_set already, the variable is wrongly named RConfigWindowOpen ;)

const char *RConfigWindowOpen = "config/windowopen_set";

Used in https://github.com/dresden-elektronik/deconz-rest-plugin/pull/6054

I have a few questions about the window items:

  • state/windowopen The current window state detected by the thermostat.

    Q: This is read-only if I understand right?

  • config/externalwindowopen The window state detected by an external sensor.

    Q: Why not state/externalwindowopen, is this supposed to be configured by an API client, or implicitly handled by the thermostat?

  • config/windowopen_set Enable or disable the window open detection.

    Q: This already exists and seems to have the same purpose as config/windowopendetectionenabled, which has a better name.

  • config/windowopendetectionenabled Turns the window open detection feature on or off.

    Q1: Does the thermostat itself detect that a window is open with an open/close or temperature sensor? Q2: If this is set to false, the state/windowopen is garbage or should be set to null, or does it have still a valid value which just isn't used by the thermostat?

manup avatar Sep 06 '22 11:09 manup

The answer is yes 😄

  • config/externalwindowopen you actively write an attribute on the device for that. Iirc, this allows overriding the internal measurement done by a different attribute
  • config/windowopendetectionenabled when using this item, the device itself is capable to detect an open window, and this item is supposed to turn the feature on and off. If I recall correctly, state/windowopen doesn't just get updated anymore, but retains its last value.

SwoopX avatar Sep 06 '22 12:09 SwoopX

Ok thanks, I start to understand this more :) We should extend/clarify the description for items in the /generic/items JSON files.

I'd suggest we deprecate config/windowopen_set in favor for config/windowopendetectionenabled, imho the name is more descriptive. @Smanar I can add a few lines so that the code supports both in the meantime, like an alias. For the #6054 PR it could use config/windowopendetectionenabled from the beginning.

manup avatar Sep 07 '22 14:09 manup

...and perhaps name it config/windowopen_detection_enabled

manup avatar Sep 07 '22 14:09 manup

...and perhaps name it config/windowopen_detection_enabled

In pydeconz I named it window_open_detection https://github.com/Kane610/deconz/blob/0b5b0b5cfa5d31ac12f121aee2f99c234ad9c426/pydeconz/models/sensor/thermostat.py#L388

Kane610 avatar Sep 07 '22 18:09 Kane610

...and perhaps name it config/windowopen_detection_enabled

Hm, do we have a naming convention here? 😃 The vast majority is without any underscores.

In pydeconz I named it window_open_detection [...]

I wanted to eliminate any room for interpretation or ambiguity here.

SwoopX avatar Sep 07 '22 19:09 SwoopX

Currently we don't but would be nice to have one :) The underscores were introduced for some newer items like for the alarm system config/armed_away_trigger_duration.

Personally I increasingly like the underscore versions better, especially for the long names. On the other hand consistency is important too.. But perhaps moving forward we can vote for a certain style and stick to it.

manup avatar Sep 07 '22 20:09 manup

I need too state/outdoor_temperature for exemple, the attribute 0x0001.

Smanar avatar Sep 13 '22 19:09 Smanar

Proposed candidates

config/backlight for Sinopé Thermostat #5904

BabaIsYou avatar Sep 26 '22 17:09 BabaIsYou

As addition to the proposed candidates for Danfoss Ally and derivates:

config/MountingOrientation - Orientation is the actual direction in which the eTRVis mounted config/HeatAvailable - Heat from heat source is available config/LoadRadiatorRoomMean - Mean radiator load for room calculated by gateway ~~config/SetPointOffset - Offset from the setpoint to adjust over-/underheating~~ config/StartStopAdaptationRun - Control adaption run ~~config/KeypadLockout - Childlock~~

state/LoadEstimateOnThisRadiator - Reported load from radiator state/HeadSupplyRequest - Heat request from radiator state/AdaptationRunStatus - Status of adaption run

Hencor93 avatar Oct 31 '22 13:10 Hencor93

Childlock is config/locked for me and already in the code, (and using config/lock for doorlock)

Offset from the setpoint to adjust over-/underheating

This one is not config/offset ?

Smanar avatar Oct 31 '22 14:10 Smanar

You are totally right. I overlooked them both. Updated my list above for better overview.

Hencor93 avatar Oct 31 '22 20:10 Hencor93

Some one wana make a PR for them ?

I realy need a second heatsetpoint, lot of tuya stuff use a heatpoint classic, and (at least) one more for manu mode or away mode.

Smanar avatar Jan 19 '23 13:01 Smanar

I could really use the load balancing feature on my Ally thermostats. I have 2 merged living rooms with 4 radiators. And the radiators tend to work against each other. I'm pretty sure that load balancing would solve that. It's also a standard feature in the Ally hub.

So the following Ally features would be very appreciated: state/loadestimate config/meanloadroom

9colai avatar Dec 29 '23 09:12 9colai