Closed geirra closed 3 years ago
zwave_js documentation zwave_js source (message by IssueLinks)
Same problem as in Z-Wave and OZW, also logged as an arch issue, https://github.com/home-assistant/architecture/issues/226.
@kpine's response is regarding the feature request. Regarding the fact that you don't have multiple sensors for each temperature, that's strange. The logic I see indicates that you should have 3 temperature sensors.
Are they perhaps disabled on the device? - what I mean by this is click on the devices link on the zwave_js tile in configuration > integrations and then click on your thermostat. Are there disabled entities shown there?
This issue isn't really about the feature request, just a side comment.
But no, the sensors are not disabled either in zwavejs or HA
If you look at the attached json dump you can see the entitys, they are simply not mapped in HA.
}, {
"endpoint": 2,
"commandClass": 49,
"commandClassName": "Multilevel Sensor",
"property": "Air temperature",
"propertyName": "Air temperature",
"ccVersion": 0,
"metadata": {
"type": "number",
"readable": true,
"writeable": false,
"unit": "\u00b0C",
"label": "Air temperature",
"ccSpecific": {
"sensorType": 1,
"scale": 0
}
},
"value": 23.9
}, {
"endpoint": 3,
"commandClass": 49,
"commandClassName": "Multilevel Sensor",
"property": "Air temperature",
"propertyName": "Air temperature",
"ccVersion": 0,
"metadata": {
"type": "number",
"readable": true,
"writeable": false,
"unit": "\u00b0C",
"label": "Air temperature",
"ccSpecific": {
"sensorType": 1,
"scale": 0
}
},
"value": 0
}, {
"endpoint": 4,
"commandClass": 49,
"commandClassName": "Multilevel Sensor",
"property": "Air temperature",
"propertyName": "Air temperature",
"ccVersion": 0,
"metadata": {
"type": "number",
"readable": true,
"writeable": false,
"unit": "\u00b0C",
"label": "Air temperature",
"ccSpecific": {
"sensorType": 1,
"scale": 0
}
},
"value": 25.1
}]
In addition one of those temp sensors should be mapped as default sensor for climate control.
As mentioned in https://github.com/zwave-js/node-zwave-js/issues/1844#issue-813338845 (expected behavior paragraph) the first temperature sensor is always used to indicate the current temperature in the thermostat card. Depending on the sensor mode (value [10-112-0-2]) the correct temperature sensor should be used. Normally (for the Z-TRM3) there are three different sensors; internal, external and floor (in that order).
Should this issue also be solved here, or should another issue be opened?
it sounds like this device will need a different discovery scheme. I'm not sure how your question differs from the original, so assuming it's the same, another issue being opened won't help.
@raman325 Then I'll just leave my comment here and hope that the issue of which temperature sensor to use can be resolved in this one.
@raman325 Then I'll just leave my comment here and hope that the issue of which temperature sensor to use can be resolved in this one.
Hi! Did you find a solution to the issue selecting sensor? I am seeing the same on my HA install
As mentioned in zwave-js/node-zwave-js#1844 (comment) (expected behavior paragraph) the first temperature sensor is always used to indicate the current temperature in the thermostat card. Depending on the sensor mode (value [10-112-0-2]) the correct temperature sensor should be used. Normally (for the Z-TRM3) there are three different sensors; internal, external and floor (in that order).
Should this issue also be solved here, or should another issue be opened?
What is the expected behavior of each of the five states listed here?
"0": "F-mode, floor sensor mode", "1": "A-mode, internal room sensor mode", "2": "AF-mode, internal sensor and floor sensor mode", "3": "A2-mode, external room sensor mode", "4": "A2F-mode, external sensor with floor limitation"
In particular, how are 2 and 4 handled in terms of measuring current temp?
Saving some links here for future reference: https://devices.zwave-js.io/?jumpTo=0x019b:0x0003:0x0203:0.0 https://media.heatit.com/715
I created a branch to address this. Just need to figure out how to handle those two combo states and then update the tests: https://github.com/home-assistant/core/compare/dev...raman325:heatit_ztrm3
@raman325 based on what i have seen
2: Both sensors internal and floro is used to check if set temp has been reached. 4: External sensor + floor sensor. Floor sensor is used to enforce limit of max temp of 27C used for wooden floors.
@raman325 based on what i have seen
2: Both sensors internal and floro is used to check if set temp has been reached.
4: External sensor + floor sensor. Floor sensor is used to enforce limit of max temp of 27C used for wooden floors.
I'm not quite sure how to translate this: 2 - does this mean if the current temperature of either sensor is at the target temperature, it stops? So what should the current temp be, whichever one is higher? 4 - not sure what to make of this one but same question as above, what do we show the current temperature as
@raman325
So i checked with the manufacturer on this.
@raman325 Here is the information from section 8 of the user manual about how those modes operate:
- PRINCIPLES OF REGULATION Using Floor / External sensor (F, A2 or A2F-Mode) The thermostat uses temperature readings retrieved from the internal sensor or external wired sensor to regulate heating. When you have chosen a setpoint temperature, the thermostat will use an internal hysteresis to regulate the temperature. This hysteresis is adjustable. See Chapter 5 “Installation”.
Using Internal sensor (A-mode/AF mode) If you have a set point of 20°C, the thermostat will use the full power until the temperature is 19°C. The thermostat will then begin to regulate the output from 19°C with a 75% duty cycle until it reaches 19,25°C. When the temperature has reached 19.5°C the thermostat will use a 50% duty cycle, until it reaches 20°C, then the thermostat turns off and repeats the process. For example, at a 75% duty cycle it will turn ON for a total of 90 minutes and OFF for 30 minutes.
Also, from section 12 you have this about the sensor modes and limits:
- CHOICE OF SENSOR The thermostat has a range of choices when it comes to sensors. To access the menu, press Center (confirm) for 10 seconds, then press Right (down) once. An A will appear on the display. Then press Center (confirm) again and choose modes while moving up and down with buttons Left or Right:
F - Floor sensor A - Internal sensor AF - Internal sensor + Floor sensor A2 - External room sensor A2F - External room sensor + Floor sensor
When you have chosen sensor mode, press the Center (confirm) button. If you choose F without having a floor sensor connected, Er4 will be shown on the display. If you choose A2 or A2F and there is no external sensor installed, Er5 will be displayed on the screen. NOTE: Wooden floors require that a floor sensor is connected in order to limit the floor temperature to a maximum of 27°C (in accordance with specifications from most wooden floor manufacturers).
And yes, I have verified the the sensor order. This is a paste from my zwavejs2mqtt panel indicating the temperatures for the different sensors (with my labels):
[17-49-2-Air temperature] Internal: 27.1 °C
[17-49-3-Air temperature] External: 0 °C
[17-49-4-Air temperature] Floor: 26 °C
Here are some other values (for reference):
[17-67-1-setpoint-1] setpoint (property): 26°C
[17-112-0-2] Sensor mode: [0] F-mode, floor sensor mode
Since I don't have an external sensor that one is easy to notice, and the first sensor is always the the internal, because it is built-in and always available. The internal sensor is usually lower in temperature than the floor (except for right after a shower, which you can see right now). In this particular thermostat, it is set to F (floor mode), so the setpoint and the third sensor (floor) matches up. So yeah, I'm fairly confident the order is internal, external, floor.
@raman325 So i checked with the manufacturer on this.
- Internal sensor is primary sensor (what is displayed on the thermostat), while floor sensor is used for enforcing limits
- External sensor is primary, floor for enforcing limits.
OK, so we will prioritize the internal and external sensors respectively. Thanks!
@robinsmidsrod thanks, I was able to find some of that after doing some Googling but it's nice to get confirmation.
I think I have everything I need to submit this PR, let's see what happens.
@raman325 So i checked with the manufacturer on this.
- Internal sensor is primary sensor (what is displayed on the thermostat), while floor sensor is used for enforcing limits
- External sensor is primary, floor for enforcing limits.
OK, so we will prioritize the internal and external sensors respectively. Thanks!
@robinsmidsrod thanks, I was able to find some of that after doing some Googling but it's nice to get confirmation.
I think I have everything I need to submit this PR, let's see what happens.
@robinsmidsrod and @raman325,
Just to pitch in on 1. primary sensor and display. On my thermostats what is shown in the display varies depending on which mode I select. If I use F, it displays F temp in the display and so forth. Not sure if this plays in for the coding to be done though?
@henrikeri In the linked PR, I mapped current temperature to A
(internal sensor) when the config parameter is set to A
or AF
, A2
(external sensor) when the config parameter is set to A2
or A2F
, and F
(floor sensor) when the config parameter is set to F
.
If this doesn't match your expectations please clarify what you expect
@henrikeri In the linked PR, I mapped current temperature to
A
(internal sensor) when the config parameter is set toA
orAF
,A2
(external sensor) when the config parameter is set toA2
orA2F
, andF
(floor sensor) when the config parameter is set toF
.If this doesn't match your expectations please clarify what you expect
This sounds as if it would cover the current issues sufficiently. In the event the mode is changed, will it auto update, or will one have to rediscover the devices?
@raman325 For reference, here is the product page (which has the manual with all the details I pasted earlier): https://products.z-wavealliance.org/products/3802?selectedFrequencyId=1
Thumbs up for your mapping of sensors to modes you mentioned two comments up. That is in line with my expectations as well.
@henrikeri In the linked PR, I mapped current temperature to
A
(internal sensor) when the config parameter is set toA
orAF
,A2
(external sensor) when the config parameter is set toA2
orA2F
, andF
(floor sensor) when the config parameter is set toF
. If this doesn't match your expectations please clarify what you expectThis sounds as if it would cover the current issues sufficiently. In the event the mode is changed, will it auto update, or will one have to rediscover the devices?
Yes, it will auto update assuming the PR goes through. There is some concern about the approach I have taken for this though, so the PR is on hold pending further discussion
Alright, so this PR didn't make it for 2021.5 but it will be there in 2021.6
Is a separate PR required for HeatIt Z-TRM2fx or will it work for this too?
As of now separate I think. Are the state options of that config parameter the same?
Don't know. How to tell?
Can you provide a state dump of your node? I can verify that way
Like so? heatit.txt
Was that state dump sufficient or do you need something else?
Thanks for bumping this, almost forgot! Yes this is great, so it looks like the configuration parameter used to control the device is the same which is great news. The only thing to confirm is that the current temp endpoints match the z-trm3: endpoint 2 Internal endpoint 3 External
I don't think they do though because from this value, I am gathering that this device does not have an internal sensor. So which one is floor and which one is external?
{
"endpoint": 0,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 2,
"propertyName": "Sensor mode",
"ccVersion": 3,
"metadata": {
"type": "number",
"readable": true,
"writeable": true,
"label": "Sensor mode",
"default": 0,
"min": 0,
"max": 4,
"states": {
"0": "F-mode, floor sensor mode",
"3": "A2-mode, external room sensor mode",
"4": "A2F-mode, external sensor with floor limitation"
},
"valueSize": 1,
"format": 0,
"allowManualEntry": false,
"isFromConfig": true
},
"value": 0
}
I have one entity called Air temperature (2) at 0,0 C and another called Air temperature (3) at 28,8 C. But they only seem to be updated when doing a re-interview. I have it set to F-mode, floor sensor mode. I see now in the heatit.txt I attached that one of the 'Air temperature' has value 28.8. That is the temperature on my floor sensor (even though it's not being updated in HA for some reason).
I would love to see this implemented for the Heatit Z-TRM2fx 😃
I have one entity called Air temperature (2) at 0,0 C and another called Air temperature (3) at 28,8 C. But they only seem to be updated when doing a re-interview. I have it set to F-mode, floor sensor mode. I see now in the heatit.txt I attached that one of the 'Air temperature' has value 28.8. That is the temperature on my floor sensor (even though it's not being updated in HA for some reason).
Perfect that's exactly what I needed. Luckily with the way that I was guided to build the Z-TRM3 support should make this trivial to add
btw I can't explain why those entities don't update. If you continue to face this problem, you could consider using the zwave_js.refresh_values
service in an automation to "poll" the value. This is a much lighter operation on your network and much quicker as a result
I have one entity called Air temperature (2) at 0,0 C and another called Air temperature (3) at 28,8 C. But they only seem to be updated when doing a re-interview. I have it set to F-mode, floor sensor mode. I see now in the heatit.txt I attached that one of the 'Air temperature' has value 28.8. That is the temperature on my floor sensor (even though it's not being updated in HA for some reason).
To get the updates, you need to adjust parameter "Temperature report hysteresis" to e.g. 1 instead of default "10".
To get the updates, you need to adjust parameter "Temperature report hysteresis" to e.g. 1 instead of default "10".
Thanks for that. I don't know why it worked with the default settings in OZW. Nevertheless, I found that my associations on this device coming from OZW was causing a lot of issues. I fixed those and everything started working (it also started reporting watt changes).
The problem
Using a Floor thermostat from Thermofloor / Heatit Model - Ztrm3 with offical firmware (if that matters). The thermostat is used to controll floor heating cables and have 3 temp sensors - air, cable and external (if used).
None of the sensors are mapped in HA, but works in zwavejs2mqtt (example).
Please note, that it would be great if it possible to controll what sensor HA displays as main temp sensor, as this depends on how you configure your thermostat.
Only the following entitys are displayed in ha
Floor thermostat: Thermostat mode Floor thermostat: Value (Electric, Consumed) Floor thermostat: Value (Electric, Consumed) Floor thermostat: Value (Electric, Consumed)
What is version of Home Assistant Core has the issue?
core-2021.2.0
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant Container
Integration causing the issue
ZwaveJS
Link to integration documentation on our website
https://www.home-assistant.io/integrations/zwave_js/
Example YAML snippet
Anything in the logs that might be useful for us?