added null check for .SET state in GenerateThermoPage.

In the tado adapter, the level.temperature DP can be null if AWAY or power is off.
In this case, use the configured minValue.
This commit is contained in:
Jens Hartlep
2022-10-26 20:34:35 +02:00
parent 6cb6560c78
commit ad8afc9813
3 changed files with 29 additions and 12 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,6 @@
__pycache__/
# don't add nextion2text
HMI/Nextion2Text.py
# don't add Webstorm project stuff
.idea

View File

@@ -2124,22 +2124,29 @@ function GenerateThermoPage(page: PageThermo): Payload[] {
let o = getObject(id);
let name = page.heading !== undefined ? page.heading : o.common.name.de;
let currentTemp = 0;
if (existsState(id + '.ACTUAL'))
if (existsState(id + '.ACTUAL')) {
currentTemp = (Math.round(parseFloat(getState(id + '.ACTUAL').val) * 10) / 10);
}
let minTemp = page.items[0].minValue !== undefined ? page.items[0].minValue : 50; //Min Temp 5°C
let maxTemp = page.items[0].maxValue !== undefined ? page.items[0].maxValue : 300; //Max Temp 30°C
let stepTemp = 5 // 0,5° Schritte
let destTemp = 0;
if (existsState(id + '.SET')) {
destTemp = getState(id + '.SET').val.toFixed(2) * 10;
// using minValue, if .SET is null (e.g. for tado AWAY or tado is off)
let setValue = getState(id + '.SET').val;
if (setValue == null) {
setValue = minTemp;
}
destTemp = setValue.toFixed(2) * 10;
}
let statusStr: String = 'MANU';
let status = '';
if (existsState(id + '.MODE'))
status = getState(id + '.MODE').val;
let minTemp = page.items[0].minValue !== undefined ? page.items[0].minValue : 50; //Min Temp 5°C
let maxTemp = page.items[0].maxValue !== undefined ? page.items[0].maxValue : 300; //Max Temp 30°C
let stepTemp = 5 // 0,5° Schritte
//Attribute hinzufügen, wenn im Alias definiert
let i_list = Array.prototype.slice.apply($('[state.id="' + id + '.*"]'));
if ((i_list.length - 3) != 0) {

View File

@@ -1740,22 +1740,29 @@ function GenerateThermoPage(page: PageThermo): Payload[] {
let o = getObject(id);
let name = page.heading !== undefined ? page.heading : o.common.name.de;
let currentTemp = 0;
if (existsState(id + '.ACTUAL'))
if (existsState(id + '.ACTUAL')) {
currentTemp = (Math.round(parseFloat(getState(id + '.ACTUAL').val) * 10) / 10);
}
let minTemp = page.items[0].minValue !== undefined ? page.items[0].minValue : 50; //Min Temp 5°C
let maxTemp = page.items[0].maxValue !== undefined ? page.items[0].maxValue : 300; //Max Temp 30°C
let stepTemp = 5 // 0,5° Schritte
let destTemp = 0;
if (existsState(id + '.SET')) {
destTemp = getState(id + '.SET').val.toFixed(2) * 10;
// using minValue, if .SET is null (e.g. for tado AWAY or tado is off)
let setValue = getState(id + '.SET').val;
if (setValue == null) {
setValue = minTemp;
}
destTemp = setValue.toFixed(2) * 10;
}
let statusStr: String = 'MANU';
let status = '';
if (existsState(id + '.MODE'))
status = getState(id + '.MODE').val;
let minTemp = page.items[0].minValue !== undefined ? page.items[0].minValue : 50; //Min Temp 5°C
let maxTemp = page.items[0].maxValue !== undefined ? page.items[0].maxValue : 300; //Max Temp 30°C
let stepTemp = 5 // 0,5° Schritte
//Attribute hinzufügen, wenn im Alias definiert
let i_list = Array.prototype.slice.apply($('[state.id="' + id + '.*"]'));
if ((i_list.length - 3) != 0) {