From af8109771720e94d868df208af2a4c64e2587377 Mon Sep 17 00:00:00 2001 From: Hypnos <12692680+Hypnos3@users.noreply.github.com> Date: Tue, 10 Mar 2020 21:25:49 +0100 Subject: [PATCH] 1.0.14: BugFix - blind-control + clock-time - fixed bug for day of the week (String/integer format) --- CHANGELOG.md | 5 +++++ nodes/blind-control.js | 2 ++ nodes/clock-timer.js | 4 +++- nodes/within-time-switch.js | 25 +++++++++++++++++-------- package.json | 2 +- 5 files changed, 28 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ea8020f..742662b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # node-red-contrib-sun-position +#### 1.0.14: BugFix + +- blind-control + clock-time + - fixed bug for day of the week (String/integer format) + #### 1.0.13: BugFix - time-inject diff --git a/nodes/blind-control.js b/nodes/blind-control.js index f04fdd43..4baab9db 100644 --- a/nodes/blind-control.js +++ b/nodes/blind-control.js @@ -1444,12 +1444,14 @@ module.exports = function (RED) { rule.timeDays = null; } else { rule.timeDays = rule.timeDays.split(','); + rule.timeDays = rule.timeDays.map( e => parseInt(e) ); } if (!rule.timeMonths || rule.timeMonths === '*') { rule.timeMonths = null; } else { rule.timeMonths = rule.timeMonths.split(','); + rule.timeMonths = rule.timeMonths.map( e => parseInt(e) ); } if (!rule.timeLimited) { diff --git a/nodes/clock-timer.js b/nodes/clock-timer.js index 4a47ebba..8f789659 100644 --- a/nodes/clock-timer.js +++ b/nodes/clock-timer.js @@ -424,7 +424,7 @@ module.exports = function (RED) { const monthNr = dNow.getMonth(); const dayId = hlp.getDayId(dNow); prepareRules(node, msg, tempData); - // node.debug(`checkRules now=${dNow.toISOString()}, nowNr=${nowNr}, rules.count=${node.rules.count}, rules.lastUntil=${node.rules.lastUntil}`); // {colors:true, compact:10} + // node.debug(`checkRules now=${dNow.toISOString()}, nowNr=${nowNr}, dayNr=${dayNr}, dateNr=${dateNr}, monthNr=${monthNr}, dayId=${dayId}, rules.count=${node.rules.count}, rules.lastUntil=${node.rules.lastUntil}`); /** * Timestamp compare function @@ -911,12 +911,14 @@ module.exports = function (RED) { rule.timeDays = null; } else { rule.timeDays = rule.timeDays.split(','); + rule.timeDays = rule.timeDays.map( e => parseInt(e) ); } if (!rule.timeMonths || rule.timeMonths === '*') { rule.timeMonths = null; } else { rule.timeMonths = rule.timeMonths.split(','); + rule.timeMonths = rule.timeMonths.map( e => parseInt(e) ); } if (!rule.timeLimited) { diff --git a/nodes/within-time-switch.js b/nodes/within-time-switch.js index 47e860a6..acf52288 100644 --- a/nodes/within-time-switch.js +++ b/nodes/within-time-switch.js @@ -125,18 +125,15 @@ module.exports = function (RED) { warn: '' }; - if (config.timeDays && config.timeDays !== '*' && !config.timeDays.includes(dNow.getDay())) { + if (config.timeDays && !config.timeDays.includes(dNow.getDay())) { node.debug('invalid Day config. today=' + dNow.getDay() + ' timeDays=' + util.inspect(config.timeDays, Object.getOwnPropertyNames(config.timeDays))); result.warn = RED._('within-time-switch.errors.invalid-day'); return result; } - if (config.timeMonths && config.timeMonths !== '*') { - const mn = config.timeMonths.split(','); - if (!mn.includes(dNow.getMonth())) { - node.debug('invalid Day config. today=' + dNow.getMonth() + ' timeMonths=' + util.inspect(config.timeMonths, Object.getOwnPropertyNames(config.timeMonths))); - result.warn = RED._('within-time-switch.errors.invalid-month'); - return result; - } + if (config.timeMonths && !config.timeMonths.includes(dNow.getDay())) { + node.debug('invalid Month config. today=' + dNow.getMonth() + ' timeMonths=' + util.inspect(config.timeMonths, Object.getOwnPropertyNames(config.timeMonths))); + result.warn = RED._('within-time-switch.errors.invalid-month'); + return result; } if (config.timedatestart || config.timedateend) { let dStart,dEnd; @@ -329,10 +326,22 @@ module.exports = function (RED) { if (config.timeDays === '') { throw new Error('No valid days given! Please check settings!'); + } else if (!config.timeDays || config.timeDays === '*') { + config.timeDays = null; + } else { + config.timeDays = config.timeDays.split(','); + config.timeDays = config.timeDays.map( e => parseInt(e) ); } + if (config.timeMonths === '') { throw new Error('No valid month given! Please check settings!'); + } else if (!config.timeMonths || config.timeMonths === '*') { + config.timeMonths = null; + } else { + config.timeMonths = config.timeMonths.split(','); + config.timeMonths = config.timeMonths.map( e => parseInt(e) ); } + if (this.timeOnlyEvenDays && this.timeOnlyOddDays) { this.timeOnlyEvenDays = false; this.timeOnlyOddDays = false; diff --git a/package.json b/package.json index dac685b6..62b287a2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "node-red-contrib-sun-position", - "version": "1.0.13", + "version": "1.0.14", "description": "NodeRED nodes to get sun and moon position", "keywords": [ "node-red",