Skip to content

Commit bc14a54

Browse files
authored
Merge pull request #234 from rdmtc/dev
1.2.2: BugFix
2 parents 0842bf0 + 2302751 commit bc14a54

19 files changed

+174
-279
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,14 @@ Install of a specific Version in a Homematic:
1212
- `source /usr/local/addons/redmatic/home/.profile`
1313
- `cd /usr/local/addons/redmatic/var`
1414
- `npm install --save --no-package-lock --global-style --save-prefix="~" --production [email protected]`
15+
#### 1.2.2: BugFix
1516

17+
- general
18+
- internal object property `sunset` renamed to `sunsetEnd` and `sunrise` to `sunriseStart` (#213). This leads into problems with backward compatibilities. In any select box where `sunset` or `sunrise` is selected, it needs to reselect the right time.
19+
20+
- blind-control + clock-time
21+
- fix that note settings overwrite by message and payload does not working #233
22+
- fix bug with missing function #223
1623

1724
#### 1.2.1: rework
1825

nodes/blind-control.html

Lines changed: 12 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@
410410
// #endregion Dialog
411411

412412
const setup = function(node) {
413-
/* global getTypes getSelectFields setupTInput appendOptions getBackendData bdDateToTime initCheckboxesBlock getCheckboxesStr */
413+
/* global getTypes getSelectFields setupTInput appendOptions getBackendData bdDateToTime initCheckboxesBlock getCheckboxesStr setTInputValue */
414414
// #region initialize
415415
const types = getTypes(node);
416416
const selFields = getSelectFields();
@@ -1243,7 +1243,6 @@
12431243
const oversteer2ValueType = $('#node-input-oversteer2Value').typedInput('type');
12441244

12451245
if ((oversteer1ValueType === types.Undefined.value) || (sunControlMode <= 0)) {
1246-
// $('#node-input-oversteer2Value').typedInput('value','');
12471246
$('#node-input-oversteer2Value').typedInput('type', types.Undefined.value);
12481247
$('.row-oversteer2Value').hide();
12491248
$('.row-oversteer2Threshold').hide();
@@ -1350,7 +1349,6 @@
13501349
const oversteer3ValueType = $('#node-input-oversteer3Value').typedInput('type');
13511350

13521351
if ((oversteer2ValueType === types.Undefined.value) || (sunControlMode <= 0)) {
1353-
// $('#node-input-oversteer3Value').typedInput('value','');
13541352
$('#node-input-oversteer3Value').typedInput('type', types.Undefined.value);
13551353
$('.row-oversteer3Value').hide();
13561354
$('.row-oversteer3Threshold').hide();
@@ -1742,11 +1740,9 @@
17421740
$('#dialog-row-offset-timeMax').hide();
17431741
$('.dialog-row-timeLimits').hide();
17441742
$('.dialog-row-timeLimits-ph').hide();
1745-
// $dialogTimeMinInput.typedInput('value','');
17461743
if ($dialogTimeMaxInput.typedInput('type') !== types.Undefined.value) {
17471744
$dialogTimeMaxInput.typedInput('type', types.Undefined.value);
17481745
}
1749-
// $dialogTimeMaxInput.typedInput('value','');
17501746
if ($dialogTimeMaxInput.typedInput('type') !== types.Undefined.value) {
17511747
$dialogTimeMaxInput.typedInput('type', types.Undefined.value);
17521748
}
@@ -2040,21 +2036,6 @@
20402036
$dialogCond2AOperator.change(() => { $dialogCond2AOperand.change(); });
20412037
// #endregion dialogChange
20422038
// #region dialogload & save
2043-
/**
2044-
* set Data for typed input
2045-
*/
2046-
function setTI($field, value, type) {
2047-
// $field.typedInput('value', value);
2048-
if (type === 'flow' || type === 'global') {
2049-
$field.typedInput('type', 'env'); // env haben alle, bug fix
2050-
$field.typedInput('value', value);
2051-
$field.typedInput('type', type);
2052-
} else {
2053-
$field.typedInput('type', type);
2054-
$field.typedInput('value', value);
2055-
}
2056-
// $field.typedInput('type', type);
2057-
}
20582039

20592040
/**
20602041
* generates the help text of the dialog
@@ -2082,18 +2063,18 @@
20822063
dialogDataOnLoading = true;
20832064

20842065
$dialogCondAOperator.val(data.validOperator || selFields.comparator[0].id);
2085-
setTI($dialogCondAOperand, data.validOperandAValue, data.validOperandAType);
2086-
setTI($dialogCondBOperand, data.validOperandBValue, data.validOperandBType);
2066+
setTInputValue($dialogCondAOperand, data.validOperandAValue, data.validOperandAType);
2067+
setTInputValue($dialogCondBOperand, data.validOperandBValue, data.validOperandBType);
20872068

20882069
$dialogCond2LogOperator.val(data.valid2LogOperator || 0);
20892070
$dialogCond2AOperator.val(data.valid2Operator || selFields.comparator[0].id);
2090-
setTI($dialogCond2AOperand, data.valid2OperandAValue, data.valid2OperandAType);
2091-
setTI($dialogCond2BOperand, data.valid2OperandBValue, data.valid2OperandBType);
2071+
setTInputValue($dialogCond2AOperand, data.valid2OperandAValue, data.valid2OperandAType);
2072+
setTInputValue($dialogCond2BOperand, data.valid2OperandBValue, data.valid2OperandBType);
20922073

20932074
$dialogTimeRegOperator.val(data.timeOp || 0);
20942075
$dialogTimeRegMultiplier.val(data.multiplier || 60000);
2095-
setTI($dialogTimeRegInput, data.timeValue, data.timeType);
2096-
setTI($dialogTimeRegOffset, data.offsetValue, data.offsetType);
2076+
setTInputValue($dialogTimeRegInput, data.timeValue, data.timeType);
2077+
setTInputValue($dialogTimeRegOffset, data.offsetValue, data.offsetType);
20972078

20982079
initCheckboxesBlock('#dlg-ip-blindctl-rule-timeDays', data.timeDays);
20992080
initCheckboxesBlock('#dlg-ip-blindctl-rule-timeMonths', data.timeMonths);
@@ -2134,15 +2115,15 @@
21342115
}
21352116

21362117
$dialogTimeMinMultiplier.val(data.multiplierMin || 60000);
2137-
setTI($dialogTimeMinInput, data.timeMinValue, data.timeMinType);
2138-
setTI($dialogTimeMinOffset, data.offsetMinValue, data.offsetMinType);
2118+
setTInputValue($dialogTimeMinInput, data.timeMinValue, data.timeMinType);
2119+
setTInputValue($dialogTimeMinOffset, data.offsetMinValue, data.offsetMinType);
21392120

21402121
$dialogTimeMaxMultiplier.val(data.multiplierMax || 60000);
2141-
setTI($dialogTimeMaxInput, data.timeMaxValue, data.timeMaxType);
2142-
setTI($dialogTimeMaxOffset, data.offsetMaxValue, data.offsetMaxType);
2122+
setTInputValue($dialogTimeMaxInput, data.timeMaxValue, data.timeMaxType);
2123+
setTInputValue($dialogTimeMaxOffset, data.offsetMaxValue, data.offsetMaxType);
21432124

21442125
$dialogLevelOperator.val(data.levelOp || 0);
2145-
setTI($dialogLevel, data.levelValue, data.levelType);
2126+
setTInputValue($dialogLevel, data.levelValue, data.levelType);
21462127
$dialogLevel.typedInput('value',data.levelValue);
21472128
$dialogLevel.typedInput('type',data.levelType);
21482129
$dialogTopic.val(data.topic);

nodes/blind-control.js

Lines changed: 37 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ module.exports = function (RED) {
257257
node.level.currentInverse = NaN;
258258
} else if (!isNaN(newPos)) {
259259
const allowRound = (msg.topic ? (msg.topic.includes('roundLevel') || msg.topic.includes('roundLevel')) : false);
260-
if (!ctrlLib.validPosition_(node, newPos, allowRound)) {
260+
if (!ctrlLib.validPosition(node, newPos, allowRound)) {
261261
node.error(RED._('blind-control.errors.invalid-blind-level', { pos: newPos }));
262262
return false;
263263
}
@@ -927,53 +927,59 @@ module.exports = function (RED) {
927927
}
928928
if (msg.topic && (typeof msg.topic === 'string') && msg.topic.startsWith('set')) {
929929
switch (msg.topic) {
930-
case 'setSmoothTime':
931-
node.smoothTime = parseFloat(msg.Payload) || node.smoothTime;
932-
break;
933-
case 'setAutoTriggerTime':
934-
node.autoTrigger.defaultTime = parseFloat(msg.Payload) || node.autoTrigger.defaultTime;
935-
break;
936-
case 'setStoreName':
937-
node.storeName = msg.Payload || node.storeName;
930+
/* Blind Settings */
931+
case 'setBlindSettingsTop':
932+
node.nodeData.levelTop = parseFloat(msg.payload) || node.nodeData.levelTop;
938933
break;
939-
case 'setSunDataTopic':
940-
node.sunData.topic = msg.Payload || node.sunData.topic;
934+
case 'setBlindSettingsBottom':
935+
node.nodeData.levelBottom = parseFloat(msg.payload) || node.nodeData.levelBottom;
941936
break;
942-
case 'setSunDataFloorLength':
943-
node.sunData.floorLength = parseFloat(msg.Payload) || node.sunData.floorLength;
937+
case 'setBlindSettingsIncrement':
938+
node.nodeData.increment = parseFloat(msg.payload) || node.nodeData.increment;
944939
break;
945-
case 'setSunDataMinAltitude':
946-
node.sunData.minAltitude = parseFloat(msg.Payload) || node.sunData.minAltitude;
940+
/* Default Settings */
941+
case 'setBlindSettingsLevel':
942+
node.nodeData.levelDefault = parseFloat(msg.payload) || node.nodeData.levelDefault;
947943
break;
948-
case 'setSunDataMinDelta':
949-
node.sunData.minDelta = parseFloat(msg.Payload) || node.sunData.minDelta;
944+
case 'setSettingsTopic':
945+
node.nodeData.topic = msg.payload || node.nodeData.topic;
950946
break;
947+
/* Window Settings */
951948
case 'setWindowSettingsTop':
952-
node.windowSettings.top = parseFloat(msg.Payload) || node.windowSettings.top;
949+
node.windowSettings.top = parseFloat(msg.payload) || node.windowSettings.top;
953950
break;
954951
case 'setWindowSettingsBottom':
955-
node.windowSettings.bottom = parseFloat(msg.Payload) || node.windowSettings.bottom;
952+
node.windowSettings.bottom = parseFloat(msg.payload) || node.windowSettings.bottom;
956953
break;
957954
case 'setWindowSettingsAzimuthStart':
958-
node.windowSettings.AzimuthStart = parseFloat(msg.Payload) || node.windowSettings.AzimuthStart;
955+
node.windowSettings.AzimuthStart = parseFloat(msg.payload) || node.windowSettings.AzimuthStart;
959956
break;
960957
case 'setWindowSettingsAzimuthEnd':
961-
node.windowSettings.AzimuthEnd = parseFloat(msg.Payload) || node.windowSettings.AzimuthEnd;
958+
node.windowSettings.AzimuthEnd = parseFloat(msg.payload) || node.windowSettings.AzimuthEnd;
962959
break;
963-
case 'setBlindSettingsTop':
964-
node.nodeData.levelTop = parseFloat(msg.Payload) || node.nodeData.levelTop;
960+
/* sun Control Settings */
961+
case 'setSunDataTopic':
962+
node.sunData.topic = msg.payload || node.sunData.topic;
965963
break;
966-
case 'setBlindSettingsBottom':
967-
node.nodeData.levelBottom = parseFloat(msg.Payload) || node.nodeData.levelBottom;
964+
case 'setSunDataFloorLength':
965+
node.sunData.floorLength = parseFloat(msg.payload) || node.sunData.floorLength;
968966
break;
969-
case 'setBlindSettingsIncrement':
970-
node.nodeData.increment = parseFloat(msg.Payload) || node.nodeData.increment;
967+
case 'setSunDataMinAltitude':
968+
node.sunData.minAltitude = parseFloat(msg.payload) || node.sunData.minAltitude;
971969
break;
972-
case 'setBlindSettingsLevel':
973-
node.nodeData.levelDefault = parseFloat(msg.Payload) || node.nodeData.levelDefault;
970+
/* minimum changes Settings */
971+
case 'setSunDataMinDelta':
972+
node.sunData.minDelta = parseFloat(msg.payload) || node.sunData.minDelta;
974973
break;
975-
case 'setSettingsTopic':
976-
node.nodeData.topic = msg.Payload || node.nodeData.topic;
974+
case 'setSmoothTime':
975+
node.smoothTime = parseFloat(msg.payload) || node.smoothTime;
976+
break;
977+
/* advanced Settings */
978+
case 'setAutoTriggerTime':
979+
node.autoTrigger.defaultTime = parseFloat(msg.payload) || node.autoTrigger.defaultTime;
980+
break;
981+
case 'setStoreName':
982+
node.storeName = msg.payload || node.storeName;
977983
break;
978984
default:
979985
break;

0 commit comments

Comments
 (0)