Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Current thermostat resource items and proposed candidates #13

Open
SwoopX opened this issue Sep 3, 2022 · 17 comments
Open

Current thermostat resource items and proposed candidates #13

SwoopX opened this issue Sep 3, 2022 · 17 comments

Comments

@SwoopX
Copy link
Collaborator

SwoopX commented Sep 3, 2022

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).
@Smanar
Copy link

Smanar commented Sep 4, 2022

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.

@SwoopX
Copy link
Collaborator Author

SwoopX commented Sep 4, 2022

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.

@Smanar
Copy link

Smanar commented Sep 5, 2022

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.

@manup
Copy link
Member

manup commented Sep 6, 2022

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

const char *RConfigWindowOpen = "config/windowopen_set";

Used in dresden-elektronik/deconz-rest-plugin#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?

@SwoopX
Copy link
Collaborator Author

SwoopX commented Sep 6, 2022

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.

@manup
Copy link
Member

manup commented Sep 7, 2022

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
Copy link
Member

manup commented Sep 7, 2022

...and perhaps name it config/windowopen_detection_enabled

@Kane610
Copy link

Kane610 commented Sep 7, 2022

...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

@SwoopX
Copy link
Collaborator Author

SwoopX commented Sep 7, 2022

...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.

@manup
Copy link
Member

manup commented Sep 7, 2022

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.

@Smanar
Copy link

Smanar commented Sep 13, 2022

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

@BabaIsYou
Copy link

BabaIsYou commented Sep 26, 2022

Proposed candidates

config/backlight for Sinopé Thermostat #5904

@Hencor93
Copy link

Hencor93 commented Oct 31, 2022

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

@Smanar
Copy link

Smanar commented Oct 31, 2022

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 ?

@Hencor93
Copy link

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

@Smanar
Copy link

Smanar commented Jan 19, 2023

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.

@9colai
Copy link

9colai commented Dec 29, 2023

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants