node-red-contrib-sun-position
Advanced tools
Comparing version 1.1.6 to 1.1.7
# node-red-contrib-sun-position | ||
#### 1.1.7: BugFix | ||
- general | ||
- replaced some png type graphics with svg | ||
- time inject | ||
- fix missing data property name. #185 | ||
- fix not working offset #181 #182 | ||
- blind-control + clock-time | ||
- prevent irrelevant error when no rule with time constraint exists. #180 | ||
- fix that autotrigger time from configuration is not used #186 | ||
- clock-time | ||
- fix that overrides with value false or 0 does not work #186 | ||
#### 1.1.6: BugFix | ||
@@ -4,0 +20,0 @@ |
@@ -54,6 +54,6 @@ /******************************************** | ||
*/ | ||
function timePosOverwriteReset(node) { | ||
node.debug(`timePosOverwriteReset expire=${node.timeClockData.overwrite.expireTs}`); | ||
node.timeClockData.overwrite.active = false; | ||
node.timeClockData.overwrite.importance = 0; | ||
function posOverwriteReset(node) { | ||
node.debug(`posOverwriteReset expire=${node.nodeData.overwrite.expireTs}`); | ||
node.nodeData.overwrite.active = false; | ||
node.nodeData.overwrite.importance = 0; | ||
if (node.timeOutObj) { | ||
@@ -63,10 +63,10 @@ clearTimeout(node.timeOutObj); | ||
} | ||
if (node.timeClockData.overwrite.expireTs || node.timeClockData.overwrite.expires) { | ||
delete node.timeClockData.overwrite.expires; | ||
delete node.timeClockData.overwrite.expireTs; | ||
delete node.timeClockData.overwrite.expireDate; | ||
delete node.timeClockData.overwrite.expireDateISO; | ||
delete node.timeClockData.overwrite.expireDateUTC; | ||
delete node.timeClockData.overwrite.expireTimeLocal; | ||
delete node.timeClockData.overwrite.expireDateLocal; | ||
if (node.nodeData.overwrite.expireTs || node.nodeData.overwrite.expires) { | ||
delete node.nodeData.overwrite.expires; | ||
delete node.nodeData.overwrite.expireTs; | ||
delete node.nodeData.overwrite.expireDate; | ||
delete node.nodeData.overwrite.expireDateISO; | ||
delete node.nodeData.overwrite.expireDateUTC; | ||
delete node.nodeData.overwrite.expireTimeLocal; | ||
delete node.nodeData.overwrite.expireDateLocal; | ||
} | ||
@@ -89,25 +89,25 @@ } | ||
if (isNaN(dExpire)) { | ||
dExpire = node.timeClockData.overwrite.expireDuration; | ||
dExpire = node.nodeData.overwrite.expireDuration; | ||
node.debug(`using default expire value=${dExpire}`); | ||
} | ||
node.timeClockData.overwrite.expires = Number.isFinite(dExpire) && (dExpire > 0); | ||
node.nodeData.overwrite.expires = Number.isFinite(dExpire) && (dExpire > 0); | ||
if (!node.timeClockData.overwrite.expires) { | ||
if (!node.nodeData.overwrite.expires) { | ||
node.log(`Overwrite is set which never expire (${reason})`); | ||
node.debug(`expireNever expire=${dExpire}ms ${ typeof dExpire } - isNaN=${ isNaN(dExpire) } - finite=${ !isFinite(dExpire) } - min=${ dExpire < 100}`); | ||
delete node.timeClockData.overwrite.expireTs; | ||
delete node.timeClockData.overwrite.expireDate; | ||
delete node.nodeData.overwrite.expireTs; | ||
delete node.nodeData.overwrite.expireDate; | ||
return; | ||
} | ||
node.timeClockData.overwrite.expireTs = (dNow.getTime() + dExpire); | ||
node.timeClockData.overwrite.expireDate = new Date(node.timeClockData.overwrite.expireTs); | ||
node.timeClockData.overwrite.expireDateISO = node.timeClockData.overwrite.expireDate.toISOString(); | ||
node.timeClockData.overwrite.expireDateUTC = node.timeClockData.overwrite.expireDate.toUTCString(); | ||
node.timeClockData.overwrite.expireDateLocal = node.positionConfig.toDateString(node.timeClockData.overwrite.expireDate); | ||
node.timeClockData.overwrite.expireTimeLocal = node.positionConfig.toTimeString(node.timeClockData.overwrite.expireDate); | ||
node.nodeData.overwrite.expireTs = (dNow.getTime() + dExpire); | ||
node.nodeData.overwrite.expireDate = new Date(node.nodeData.overwrite.expireTs); | ||
node.nodeData.overwrite.expireDateISO = node.nodeData.overwrite.expireDate.toISOString(); | ||
node.nodeData.overwrite.expireDateUTC = node.nodeData.overwrite.expireDate.toUTCString(); | ||
node.nodeData.overwrite.expireDateLocal = node.positionConfig.toDateString(node.nodeData.overwrite.expireDate); | ||
node.nodeData.overwrite.expireTimeLocal = node.positionConfig.toTimeString(node.nodeData.overwrite.expireDate); | ||
node.log(`Overwrite is set which expires in ${dExpire}ms = ${node.timeClockData.overwrite.expireDateISO} (${reason})`); | ||
node.log(`Overwrite is set which expires in ${dExpire}ms = ${node.nodeData.overwrite.expireDateISO} (${reason})`); | ||
node.timeOutObj = setTimeout(() => { | ||
node.log(`Overwrite is expired (timeout)`); | ||
timePosOverwriteReset(node); | ||
posOverwriteReset(node); | ||
node.emit('input', { payload: -1, topic: 'internal-triggerOnly-overwriteExpired', force: false }); | ||
@@ -124,7 +124,7 @@ }, dExpire); | ||
function checkOverrideReset(node, msg, dNow, isSignificant) { | ||
if (node.timeClockData.overwrite && | ||
node.timeClockData.overwrite.expires && | ||
(node.timeClockData.overwrite.expireTs < dNow.getTime())) { | ||
if (node.nodeData.overwrite && | ||
node.nodeData.overwrite.expires && | ||
(node.nodeData.overwrite.expireTs < dNow.getTime())) { | ||
node.log(`Overwrite is expired (trigger)`); | ||
timePosOverwriteReset(node); | ||
posOverwriteReset(node); | ||
} | ||
@@ -136,6 +136,6 @@ if (isSignificant) { | ||
if (val) { | ||
if (node.timeClockData.overwrite && node.timeClockData.overwrite.active) { | ||
if (node.nodeData.overwrite && node.nodeData.overwrite.active) { | ||
node.log(`Overwrite reset by incoming message`); | ||
} | ||
timePosOverwriteReset(node); | ||
posOverwriteReset(node); | ||
} | ||
@@ -150,11 +150,11 @@ }); | ||
function setOverwriteReason(node) { | ||
if (node.timeClockData.overwrite.active) { | ||
if (node.timeClockData.overwrite.expireTs) { | ||
if (node.nodeData.overwrite.active) { | ||
if (node.nodeData.overwrite.expireTs) { | ||
node.reason.code = 3; | ||
const obj = { | ||
importance: node.timeClockData.overwrite.importance, | ||
timeLocal: node.timeClockData.overwrite.expireTimeLocal, | ||
dateLocal: node.timeClockData.overwrite.expireDateLocal, | ||
dateISO: node.timeClockData.overwrite.expireDateISO, | ||
dateUTC: node.timeClockData.overwrite.expireDateUTC | ||
importance: node.nodeData.overwrite.importance, | ||
timeLocal: node.nodeData.overwrite.expireTimeLocal, | ||
dateLocal: node.nodeData.overwrite.expireDateLocal, | ||
dateISO: node.nodeData.overwrite.expireDateISO, | ||
dateUTC: node.nodeData.overwrite.expireDateUTC | ||
}; | ||
@@ -165,9 +165,9 @@ node.reason.state = RED._('clock-timer.states.overwriteExpire', obj); | ||
node.reason.code = 2; | ||
node.reason.state = RED._('clock-timer.states.overwriteNoExpire', { importance: node.timeClockData.overwrite.importance }); | ||
node.reason.description = RED._('clock-timer.states.overwriteNoExpire', { importance: node.timeClockData.overwrite.importance }); | ||
node.reason.state = RED._('clock-timer.states.overwriteNoExpire', { importance: node.nodeData.overwrite.importance }); | ||
node.reason.description = RED._('clock-timer.states.overwriteNoExpire', { importance: node.nodeData.overwrite.importance }); | ||
} | ||
// node.debug(`overwrite exit true node.timeClockData.overwrite.active=${node.timeClockData.overwrite.active}`); | ||
// node.debug(`overwrite exit true node.nodeData.overwrite.active=${node.nodeData.overwrite.active}`); | ||
return true; | ||
} | ||
// node.debug(`overwrite exit true node.timeClockData.overwrite.active=${node.timeClockData.overwrite.active}`); | ||
// node.debug(`overwrite exit true node.nodeData.overwrite.active=${node.nodeData.overwrite.active}`); | ||
return false; | ||
@@ -177,3 +177,3 @@ } | ||
/** | ||
* check if a manual overwrite of the rule should be set | ||
* check if a manual overwrite should be set | ||
* @param {*} node node data | ||
@@ -183,4 +183,4 @@ * @param {*} msg message object | ||
*/ | ||
function checkTCPosOverwrite(node, msg, dNow) { | ||
// node.debug(`checkTCPosOverwrite act=${node.timeClockData.overwrite.active} `); | ||
function checkPosOverwrite(node, msg, dNow) { | ||
// node.debug(`checkPosOverwrite act=${node.nodeData.overwrite.active} `); | ||
let isSignificant = false; | ||
@@ -190,5 +190,5 @@ const exactImportance = hlp.getMsgBoolValue(msg, ['exactImportance', 'exactSignificance', 'exactPriority', 'exactPrivilege']); | ||
if (exactImportance) { | ||
isSignificant = (node.timeClockData.overwrite.importance === p); | ||
isSignificant = (node.nodeData.overwrite.importance === p); | ||
} else { | ||
isSignificant = (node.timeClockData.overwrite.importance <= p); | ||
isSignificant = (node.nodeData.overwrite.importance <= p); | ||
} | ||
@@ -202,7 +202,7 @@ checkOverrideReset(node, msg, dNow, isSignificant); | ||
if (node.timeClockData.overwrite.active && (node.timeClockData.overwrite.importance > 0) && !isSignificant) { | ||
// if (node.timeClockData.overwrite.active && (node.timeClockData.overwrite.importance > 0) && (node.timeClockData.overwrite.importance > importance)) { | ||
// node.debug(`overwrite exit true node.timeClockData.overwrite.active=${node.timeClockData.overwrite.active}, importance=${nImportance}, node.timeClockData.overwrite.importance=${node.timeClockData.overwrite.importance}`); | ||
if (node.nodeData.overwrite.active && (node.nodeData.overwrite.importance > 0) && !isSignificant) { | ||
// if (node.nodeData.overwrite.active && (node.nodeData.overwrite.importance > 0) && (node.nodeData.overwrite.importance > importance)) { | ||
// node.debug(`overwrite exit true node.nodeData.overwrite.active=${node.nodeData.overwrite.active}, importance=${nImportance}, node.nodeData.overwrite.importance=${node.nodeData.overwrite.importance}`); | ||
// if active, the importance must be 0 or given with same or higher as current overwrite otherwise this will not work | ||
node.debug(`do not check any overwrite, importance of message ${nImportance} not matches current overwrite importance ${node.timeClockData.overwrite.importance}`); | ||
node.debug(`do not check any overwrite, importance of message ${nImportance} not matches current overwrite importance ${node.nodeData.overwrite.importance}`); | ||
return setOverwriteReason(node); | ||
@@ -229,3 +229,3 @@ } | ||
} | ||
if (!overrideData && node.timeClockData.overwrite.active) { | ||
if ((typeof overrideData === 'undefined') && node.nodeData.overwrite.active) { | ||
node.debug(`overwrite active, check of importance=${nImportance} or nExpire=${nExpire}`); | ||
@@ -239,9 +239,9 @@ if (Number.isFinite(nExpire)) { | ||
// set to new importance | ||
node.timeClockData.overwrite.importance = nImportance; | ||
node.nodeData.overwrite.importance = nImportance; | ||
} | ||
// node.debug(`overwrite exit true node.timeClockData.overwrite.active=${node.timeClockData.overwrite.active}, expire=${nExpire}`); | ||
// node.debug(`overwrite exit true node.nodeData.overwrite.active=${node.nodeData.overwrite.active}, expire=${nExpire}`); | ||
return setOverwriteReason(node); | ||
} else if (overrideData) { | ||
} else if (typeof overrideData !== 'undefined') { | ||
node.debug(`needOverwrite importance=${nImportance} expire=${nExpire}`); | ||
if (overrideData) { | ||
if (typeof overrideData !== 'undefined') { | ||
node.debug(`overwrite overrideData=${overrideData}`); | ||
@@ -256,3 +256,3 @@ node.payload.current = overrideData; | ||
setExpiringOverwrite(node, dNow, nExpire, 'set expiring time by message'); | ||
} else if ((!exactImportance && (node.timeClockData.overwrite.importance < nImportance)) || (!node.timeClockData.overwrite.expireTs)) { | ||
} else if ((!exactImportance && (node.nodeData.overwrite.importance < nImportance)) || (!node.nodeData.overwrite.expireTs)) { | ||
// isSignificant | ||
@@ -264,7 +264,7 @@ // no expiring on importance change or no existing expiring | ||
if (nImportance > 0) { | ||
node.timeClockData.overwrite.importance = nImportance; | ||
node.nodeData.overwrite.importance = nImportance; | ||
} | ||
node.timeClockData.overwrite.active = true; | ||
node.nodeData.overwrite.active = true; | ||
} | ||
// node.debug(`overwrite exit false node.timeClockData.overwrite.active=${node.timeClockData.overwrite.active}`); | ||
// node.debug(`overwrite exit false node.nodeData.overwrite.active=${node.nodeData.overwrite.active}`); | ||
return setOverwriteReason(node); | ||
@@ -337,3 +337,3 @@ } | ||
*/ | ||
function getRuleTimeData(node, msg, rule, now) { | ||
function getRuleTimeData(node, msg, rule, dNow) { | ||
rule.timeData = node.positionConfig.getTimeProp(node, msg, { | ||
@@ -346,3 +346,3 @@ type: rule.timeType, | ||
next : false, | ||
now | ||
dNow | ||
}); | ||
@@ -366,3 +366,3 @@ if (rule.timeData.error) { | ||
next: false, | ||
now | ||
dNow | ||
}); | ||
@@ -393,3 +393,3 @@ const numMin = rule.timeDataMin.value.getTime(); | ||
next: false, | ||
now | ||
dNow | ||
}); | ||
@@ -449,3 +449,3 @@ const numMax = rule.timeDataMax.value.getTime(); | ||
const fktCheck = (rule, cmp) => { | ||
// node.debug('rule ' + util.inspect(rule, {colors:true, compact:10})); | ||
// node.debug('fktCheck rule ' + util.inspect(rule, {colors:true, compact:10})); | ||
if (rule.conditional) { | ||
@@ -493,3 +493,3 @@ try { | ||
const num = getRuleTimeData(node, msg, rule, dNow); | ||
// node.debug(`pos=${rule.pos} type=${rule.timeOpText} - ${rule.timeValue} - num=${num}- rule.timeData = ${ util.inspect(rule.timeData, { colors: true, compact: 40, breakLength: Infinity }) }`); | ||
// node.debug(`pos=${rule.pos} type=${rule.timeOpText} - ${rule.timeValue} - num=${num} - rule.timeData = ${ util.inspect(rule.timeData, { colors: true, compact: 40, breakLength: Infinity }) }`); | ||
if (dayId === rule.timeData.dayId && num >=0 && (cmp(num) === true)) { | ||
@@ -541,2 +541,5 @@ return rule; | ||
const checkRuleForAT = rule => { | ||
if (!rule.timeLimited) { | ||
return; | ||
} | ||
const num = getRuleTimeData(node, msg, rule, dNow); | ||
@@ -625,17 +628,18 @@ if (num > nowNr) { | ||
livingRuleData.payloadData = { | ||
type: node.timeClockData.payloadDefaultType, | ||
value: node.timeClockData.payloadDefault, | ||
format: node.timeClockData.payloadDefaultTimeFormat, | ||
offsetType: node.timeClockData.payloadDefaultOffsetType, | ||
offset: node.timeClockData.payloadDefaultOffset, | ||
multiplier: node.timeClockData.payloadDefaultOffsetMultiplier, | ||
type: node.nodeData.payloadDefaultType, | ||
value: node.nodeData.payloadDefault, | ||
format: node.nodeData.payloadDefaultTimeFormat, | ||
offsetType: node.nodeData.payloadDefaultOffsetType, | ||
offset: node.nodeData.payloadDefaultOffset, | ||
multiplier: node.nodeData.payloadDefaultOffsetMultiplier, | ||
next: true | ||
}; | ||
livingRuleData.topic = node.timeClockData.topic; | ||
livingRuleData.topic = node.nodeData.topic; | ||
livingRuleData.code = 1; | ||
livingRuleData.state = RED._('clock-timer.states.default'); | ||
livingRuleData.description = RED._('clock-timer.reasons.default'); | ||
if (node.autoTrigger) { | ||
if (node.autoTrigger && node.rules && node.rules.count > 0) { | ||
// check first rule, maybe next day | ||
if (node.autoTrigger && node.rules && node.rules.firstTimeLimited < node.rules.count) { | ||
if (node.rules.firstTimeLimited < node.rules.count) { | ||
checkRuleForAT(node.rules.data[node.rules.firstTimeLimited]); | ||
@@ -663,3 +667,3 @@ } | ||
this.autoTrigger = { | ||
deaultTime : config.autoTrigger.time || 20 * 60000 // 20min | ||
defaultTime : config.autoTriggerTime || 20 * 60000 // 20min | ||
}; | ||
@@ -678,3 +682,3 @@ this.autoTriggerObj = null; | ||
node.storeName = config.storeName || ''; | ||
node.timeClockData = { | ||
node.nodeData = { | ||
/** The Level of the window */ | ||
@@ -701,3 +705,3 @@ payloadDefault: config.payloadDefault, | ||
current: undefined, | ||
topic: node.timeClockData.topic | ||
topic: node.nodeData.topic | ||
}; | ||
@@ -775,4 +779,4 @@ node.previousData = { | ||
if (node.autoTrigger) { | ||
node.autoTrigger.time = node.autoTrigger.deaultTime; | ||
node.autoTrigger.type = 0; | ||
node.autoTrigger.time = node.autoTrigger.defaultTime; | ||
node.autoTrigger.type = 0; // default time | ||
} | ||
@@ -788,13 +792,13 @@ | ||
// check for manual overwrite | ||
let overwrite = checkTCPosOverwrite(node, msg, dNow); | ||
if (!overwrite || node.rules.canResetOverwrite || (node.rules.maxImportance > 0 && node.rules.maxImportance > node.timeClockData.overwrite.importance)) { | ||
let overwrite = checkPosOverwrite(node, msg, dNow); | ||
if (!overwrite || node.rules.canResetOverwrite || (node.rules.maxImportance > 0 && node.rules.maxImportance > node.nodeData.overwrite.importance)) { | ||
// calc times: | ||
timeCtrl.rule = checkRules(node, msg, dNow, tempData); | ||
node.debug(`overwrite=${overwrite}, node.rules.maxImportance=${node.rules.maxImportance}, timeClockData.overwrite.importance=${node.timeClockData.overwrite.importance}`); | ||
node.debug(`overwrite=${overwrite}, node.rules.maxImportance=${node.rules.maxImportance}, nodeData.overwrite.importance=${node.nodeData.overwrite.importance}`); | ||
if (overwrite && timeCtrl.rule.resetOverwrite && timeCtrl.rule.id !== node.previousData.usedRule) { | ||
timePosOverwriteReset(node); | ||
posOverwriteReset(node); | ||
overwrite = false; | ||
} | ||
if (!overwrite || timeCtrl.rule.importance > node.timeClockData.overwrite.importance) { | ||
if (!overwrite || timeCtrl.rule.importance > node.nodeData.overwrite.importance) { | ||
ruleId = timeCtrl.rule.id; | ||
@@ -809,5 +813,5 @@ node.payload.current = node.positionConfig.getOutDataProp(node, msg, timeCtrl.rule.payloadData, dNow); | ||
// node.debug(`result manual=${node.timeClockData.overwrite.active} reasoncode=${node.reason.code} description=${node.reason.description}`); | ||
// node.debug(`result manual=${node.nodeData.overwrite.active} reasoncode=${node.reason.code} description=${node.reason.description}`); | ||
timeCtrl.reason = node.reason; | ||
timeCtrl.timeClock = node.timeClockData; | ||
timeCtrl.timeClock = node.nodeData; | ||
@@ -856,3 +860,3 @@ if (node.startDelayTimeOut) { | ||
if (node.autoTrigger) { | ||
node.debug('------------- autotrigger ---------------- ' + node.autoTrigger.time + ' - ' + node.autoTrigger.type); | ||
node.debug('------------- autoTrigger ---------------- ' + node.autoTrigger.time + ' - ' + node.autoTrigger.type); | ||
if (node.autoTriggerObj) { | ||
@@ -859,0 +863,0 @@ clearTimeout(node.autoTriggerObj); |
@@ -28,2 +28,3 @@ { | ||
"randomNumber":"zufällig", | ||
"numPercent":"Nummer in Prozent %", | ||
"suncalc":"Sonnenstand berechnet", | ||
@@ -30,0 +31,0 @@ "suninsky":"Sonne am Himmel (Prozent)", |
@@ -28,3 +28,4 @@ { | ||
"timemoon":"moon time", | ||
"randomNumber":"random", | ||
"randomNumber":"random number", | ||
"numPercent":"number in percent %", | ||
"suncalc":"sun calculation", | ||
@@ -31,0 +32,0 @@ "suninsky":"sun in the sky (percent)", |
@@ -146,3 +146,2 @@ /************************************************************************/ | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.unlimited','no limitation'), | ||
// icon: "icons/node-red-contrib-sun-position/inputTypeNone.png", | ||
hasValue: false | ||
@@ -153,4 +152,2 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.undefined'), | ||
// label: node._('node-red-contrib-sun-position/position-config:common.types.undefined','not used'), | ||
// icon: "icons/node-red-contrib-sun-position/inputTypeNone.png", | ||
hasValue: false | ||
@@ -161,3 +158,2 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.datespecific','timestamp enhanced'), | ||
// icon: "icons/node-red-contrib-sun-position/inputTypeNone.png", | ||
hasValue: false | ||
@@ -193,8 +189,16 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.PlTRes'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypePayloadByTopic.svg', | ||
hasValue: true | ||
}, | ||
numPercent: { | ||
value: 'numPct', | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.numPercent'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeNumberPercent.svg', | ||
hasValue: true, | ||
validate: RED.validators.number() // ^[1-9]\d*(\.\d+)?\s?%?$ | ||
}, | ||
TimeEntered: { | ||
value: 'entered', | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.timeentered','time (next)'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeTime.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeTime.svg', | ||
hasValue: true, | ||
@@ -206,3 +210,3 @@ validate: /^(0\d|\d|1\d|2[0-3])(?::([0-5]\d|\d))?(?::([0-5]\d|\d))?\s*(pm|p|PM|P|utc|UTC|local|LOCAL)?$/ | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.dateentered','date'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeDate.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeDate.svg', | ||
hasValue: true, | ||
@@ -261,3 +265,3 @@ validate: /^(\d{1,4}-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9]|3[01])|(0?[1-9]|[12][0-9]|3[01])\.(0?[1-9]|1[0-2])\.\d{1,4}|(0?[1-9]|1[0-2])\/(0?[1-9]|[12][0-9]|3[01])\/\d{1,4})([\s.:,-T](00|[0-9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9])(:([0-9]|[0-5][0-9])([.:]\d{1,3})?)?)?$/ | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.randomNumber','randomNumber'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeRandomNumber.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeRandomNumber.svg', | ||
hasValue: true, | ||
@@ -269,3 +273,3 @@ validate: RED.validators.number() | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.timesun','sun time'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunClock.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunClock.svg', | ||
options: [{ | ||
@@ -342,3 +346,3 @@ value: 'astronomicalDawn', | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.timesunnow'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunTime.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunTimeNow.svg', | ||
hasValue: false | ||
@@ -349,3 +353,3 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.timemoon','moon time'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeMoonClock.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeMoonClock.svg', | ||
options: [{ | ||
@@ -362,3 +366,3 @@ value: 'rise', | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.suncalc','sun calculation'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSun.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSun.svg', | ||
hasValue: false | ||
@@ -369,3 +373,3 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.suninsky','sun in the sky (percent)'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunPercent.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunPercent.svg', | ||
hasValue: false | ||
@@ -376,3 +380,3 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.sunAzimuth','Azimuth'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunAzimuth.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunAzimuth.svg', | ||
hasValue: false | ||
@@ -383,3 +387,3 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.sunElevation','Elevation'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunElevation.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunElevation.svg', | ||
hasValue: false | ||
@@ -390,3 +394,3 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.sunAzimuthRad','Azimuth'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunAzimuth.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunAzimuthRad.svg', | ||
hasValue: false | ||
@@ -397,3 +401,3 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.sunElevationRad','Elevation'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunElevation.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunElevation.svg', | ||
hasValue: false | ||
@@ -404,3 +408,3 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.sunTimeByElevation','Time by Elevation'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunTmeElevation.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunTimeElevation.svg', | ||
hasValue: true, | ||
@@ -412,3 +416,3 @@ validate: RED.validators.number() | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.sunTimeByAzimuth','Time by Azimuth'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunTmeAzimuth.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunTimeAzimuth.svg', | ||
hasValue: true, | ||
@@ -420,3 +424,3 @@ validate: RED.validators.number() | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.sunTimeByElevationRad','Time by Elevation Rad'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunTmeElevation.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunTimeElevationRad.svg', | ||
hasValue: true, | ||
@@ -428,3 +432,3 @@ validate: RED.validators.number() | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.sunTimeByAzimuthRad','Time by Azimuth Rad'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunTmeAzimuth.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeSunTimeAzimuthRad.svg', | ||
hasValue: true, | ||
@@ -461,3 +465,3 @@ validate: RED.validators.number() | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.mooncalc','moon calculation'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeMoon.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeMoon.svg', | ||
hasValue: false | ||
@@ -468,3 +472,3 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.moonPhase','moon phase'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeMoonPhase.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeMoonPhase.svg', | ||
hasValue: false | ||
@@ -475,3 +479,3 @@ }, | ||
label: node._('node-red-contrib-sun-position/position-config:common.types.moonPhaseCheck','moon phase'), | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeMoonPhase.png', | ||
icon: 'icons/node-red-contrib-sun-position/inputTypeMoonPhase2.svg', | ||
options: [{ | ||
@@ -478,0 +482,0 @@ value: 'newMoon', |
@@ -67,3 +67,3 @@ /******************************************** | ||
offset : config.offset || config.timeOffset || 0, | ||
multiplier : config.offsetMultiplier ? config.timeOffsetMultiplier : 60, | ||
multiplier : config.offsetMultiplier ? config.offsetMultiplier : (config.timeOffsetMultiplier ? config.timeOffsetMultiplier : 60), | ||
next : true, | ||
@@ -70,0 +70,0 @@ days : config.timeDays, |
{ | ||
"name": "node-red-contrib-sun-position", | ||
"version": "1.1.6", | ||
"version": "1.1.7", | ||
"description": "NodeRED nodes to get sun and moon position", | ||
@@ -94,5 +94,5 @@ "keywords": [ | ||
"devDependencies": { | ||
"eslint": "^7.7.0", | ||
"eslint-plugin-html": "^6.0.3", | ||
"eslint-plugin-jsdoc": "^30.3.0", | ||
"eslint": "^7.9.0", | ||
"eslint-plugin-html": "^6.1.0", | ||
"eslint-plugin-jsdoc": "^30.4.2", | ||
"eslint-plugin-json": "^2.1.2", | ||
@@ -99,0 +99,0 @@ "eslint-plugin-node": "^11.1.0" |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1555693
155
11873