node-red-contrib-sun-position
Advanced tools
Comparing version 1.0.0-alpha-2 to 1.0.0-alpha-3
@@ -210,4 +210,4 @@ /******************************************** | ||
let priook = false; | ||
const prioMustEqual = hlp.getMsgBoolValue(msg, ['exactPriority', 'exactPrivilege'], ['exactPrio', 'exactPrivilege']); | ||
const prio = hlp.getMsgNumberValue(msg, ['prio', 'priority', 'privilege'], ['prio', 'alarm', 'privilege'], p => { | ||
const prioMustEqual = hlp.getMsgBoolValue(msg, ['exactPriority', 'exactPrivilege']); | ||
const prio = hlp.getMsgNumberValue(msg, ['prio', 'priority', 'privilege'], null, p => { | ||
if (prioMustEqual) { | ||
@@ -247,3 +247,3 @@ priook = (node.timeClockData.overwrite.priority === p); | ||
const expire = hlp.getMsgNumberValue(msg, 'expire', 'expire'); | ||
const expire = hlp.getMsgNumberValue(msg, 'expire'); | ||
if (!overrideData && node.timeClockData.overwrite.active) { | ||
@@ -474,2 +474,5 @@ node.debug(`overwrite active, check of prio=${prio} or expire=${expire}`); | ||
} | ||
if (rule.timeDays && rule.timeDays !== '*' && !rule.timeDays.includes(now.getDay())) { | ||
return null; | ||
} | ||
const num = getRuleTimeData(node, msg, rule, now); | ||
@@ -476,0 +479,0 @@ // node.debug(`pos=${rule.pos} type=${rule.timeOpText} - ${rule.timeValue} - rule.timeData = ${ util.inspect(rule.timeData, { colors: true, compact: 40, breakLength: Infinity }) }`); |
@@ -6,8 +6,4 @@ { | ||
"clock-timer-palette": "clock timer", | ||
"output1":"new blind level", | ||
"output1":"payload based on rule", | ||
"output2": "state object", | ||
"windowTop": "window top", | ||
"windowBottom": "window bottom", | ||
"windowAzimuthStart":"start", | ||
"windowAzimuthEnd": "end", | ||
"payloadDefault": "payload", | ||
@@ -28,28 +24,14 @@ "payloadDefaultOffset": "Offset", | ||
"ruleTimeMin": "at the earliest (min)", | ||
"ruleTimeDays":"only on day", | ||
"ruleDescription": "Description", | ||
"ruleBlindLevel": "blind position", | ||
"rulePayload": "Payload:", | ||
"rulePayloadND": "No Payload", | ||
"ruleTopic": "Topic:", | ||
"sunControlMode": "mode", | ||
"sunControlOff": "no restriction, no sun control", | ||
"sunControlRestrict": "restrict sunlight (🌞 Summer)", | ||
"sunControlMaximize": "maximize sunlight (⛄ Winter)", | ||
"sunFloorLength": "length on the floor", | ||
"sunMinAltitude": "min altitude threshold", | ||
"sunMinDelta": "min delta", | ||
"time":"time", | ||
"name":"name", | ||
"oversteerValue": "oversteer", | ||
"oversteerThreshold": "Threshold", | ||
"oversteerBlindPos": "blind position", | ||
"oversteer2Value": "oversteer add", | ||
"oversteer2Threshold": "Threshold", | ||
"oversteer2BlindPos": "blind position", | ||
"smoothTime": "smoothTime", | ||
"time": "time", | ||
"name": "name", | ||
"showEnhSettings": "Enhanced settings", | ||
"outputs": "Outputs", | ||
"offset":"time offset", | ||
"offset-timeMin":"earliest (min) offset", | ||
"offset-timeMax":"latest (max) offset", | ||
"offset": "time offset", | ||
"offset-timeMin": "earliest (min) offset", | ||
"offset-timeMax": "latest (max) offset", | ||
"singleOutput": "single (1)", | ||
@@ -65,21 +47,6 @@ "splitOutput": "dual (2)", | ||
"placeholder": { | ||
"windowTop": "top of the window", | ||
"windowBottom": "bottom of the window", | ||
"windowAzimuthStart": "window left to geographical north", | ||
"windowAzimuthEnd": "window right to geographical north", | ||
"blindIncrement": "0.01 or 1", | ||
"blindOpenPos": "100", | ||
"blindClosedPos": "0", | ||
"payloadDefault": "payload if no other used", | ||
"payloadDefaultOffset": "", | ||
"payloadDefaultFormat": "", | ||
"sunControlMode": "select if sun control is active and how it should working", | ||
"overwriteExpire": "(opt) the duration a manual setting will remain", | ||
"sunFloorLength": "(opt) the extent to which direct sunlight is to be allowed into the room through the window, defined as a length on the floor", | ||
"sunMinAltitude": "(opt) minimum altitude of the sun for determination of blind position", | ||
"sunMinDelta": "(opt) define the minimum change of the blind position", | ||
"oversteerValue": "value to compare", | ||
"oversteerThreshold": "threshold for the compare", | ||
"oversteerBlindPos": "blind position when the compare be the case", | ||
"smoothTime":"(opt) prevents changes due to sun in the given time", | ||
"name": "Name", | ||
@@ -95,31 +62,12 @@ "expiryperiod": "120", | ||
"level": "level", | ||
"autoTrigger":"automatic triggers new calculation of the blind position in a dynamic changing time interval" | ||
"ruleTimeDays": "select days wherefore it should be valid", | ||
"autoTrigger":"automatic triggers new calculation of the rule in a dynamic changing time interval" | ||
}, | ||
"text": { | ||
"blind": "blind settings", | ||
"time": "Time control:Only rows will be evaluated, where property is <b>not used</b> or matches the selected value. <br><b>until</b>:The first matching line will used, where defined time is <b>not used</b> or greater than <b>now</b>.<br><b>from</b>:The last matching line will used, where defined time is <b>not used</b> or less than <b>now</b>.<br>", | ||
"blindLevelDefault":"if no rule matches the following position will be used, On sun light restriction this is the blind level wenn sun is not in the window.", | ||
"overwrite": "manual overwrite of the blind position", | ||
"sunControlNotActive": "Only rule control", | ||
"sunControlMode": "Instead of the default blind position there can be restricted the extent to which direct sunlight may shine into the room.", | ||
"windowAzimuth": "representing the orientation of the window to geographical north (in degrees) when the sun falls into the window (sun azimuth).", | ||
"windowPos": "window settings, measurement from the floor to bottom and top of the window covered by the blind", | ||
"oversteer": "allows to oversteer the position depending on the sun under defined condition such as weather (for example sky covered by clouds, lighting, ...)", | ||
"sunControlMaximization":"<ul><li>If no rule or override matches<ul><li>If the sun is <em>not</em> in the window the blind will set to defined <strong>min position</strong>. (oversteer will be ignored)</li><li>If the sun is in the window</li><li>If any oversteer data are setup and oversteer conditions are fulfilled the blind will set to the defined oversteer blind position.</li><li>otherwise the blind level is set to defined <strong>max position</strong>.</li></ul></li></ul>", | ||
"sunControlRestriction": "If no rule or override matches, the node calculates the appropriate blind position to restrict the amount of direct sunlight entering the room.", | ||
"sunCtrlLoF": "The limit to what extent direct sunlight is to be allowed into the room through the window, defined as a length on the floor.", | ||
"sunCtrlRestrict": "Limit the frequency of changes by time and/or delta; set the minimum altitude (in degree) of the sun" | ||
"payloadDefault":"if no rule matches the following payload will be used.", | ||
"overwrite": "manual overwrite of the rule payload" | ||
}, | ||
"typeOptions": { | ||
"100": "open (max)", | ||
"75": "75%", | ||
"66": "66%", | ||
"50": "50%", | ||
"33": "33%", | ||
"25": "25%", | ||
"10": "10%", | ||
"0": "closed (min)" | ||
}, | ||
"tips": { | ||
"sunPosControl": "<a href=\"https://github.com/rdmtc/node-red-contrib-sun-position/blob/HEAD/blind_control.md\">Documentation and examples</a>" | ||
"timerControl": "<a href=\"https://github.com/rdmtc/node-red-contrib-sun-position/blob/HEAD/clock_timer.md\">Documentation and examples</a>" | ||
}, | ||
@@ -134,12 +82,2 @@ "reasons": { | ||
"rule": "position by fixed rule [__number__] __name__", | ||
"sunMinAltitude": "sun below minimum altitude", | ||
"sunMinDelta": "change is less ad min delta", | ||
"sunNotInWin": "Sun not in window", | ||
"sunCtrl": "sun control", | ||
"sunCtrlMin": "__org__ (__level__ is below minimum)", | ||
"sunCtrlMax": "__org__ (__level__ is above maximum)", | ||
"oversteer": "sun position oversteers", | ||
"smooth": "Position is not changed to __pos__ because not enough time has passed since the last change (time smooth)", | ||
"sunInWinMax": "Sun in window (Level is maximum)", | ||
"sunNotInWinMin": "Sun not in window (Level is minimum)", | ||
"ruleMin": "__org__ (__level__ is below minimum) [__number__] __name__", | ||
@@ -156,12 +94,2 @@ "ruleMax": "__org__ (__level__ is above maximum) [__number__] __name__" | ||
"rule": "by fixed rule [__number__] __name__", | ||
"sunMinAltitude": "min altitude", | ||
"sunMinDelta": "min delta", | ||
"sunNotInWin": "no sun in window", | ||
"sunCtrl": "sun control", | ||
"sunCtrlMin": "__org__ (min)", | ||
"sunCtrlMax": "__org__ (max)", | ||
"oversteer": "oversteer", | ||
"smooth": "block change to __pos__", | ||
"sunInWinMax":"Sun in window (max)", | ||
"sunNotInWinMin": "Sun not in window (min)", | ||
"ruleMin": "__org__ [min rule __number__]", | ||
@@ -175,7 +103,3 @@ "ruleMax": "__org__ [max rule __number__]" | ||
"error-time": "Error get time: __message__", | ||
"invalid-blind-level": "Given Blind-Position __pos__ is not a valid Position!", | ||
"getOversteerData": "error getting oversteer data: __message__", | ||
"getBlindPosData": "error getting blind level: __message__", | ||
"getPropertyData": "error getting condition data: \"__message__\" skipping time", | ||
"smoothTimeToolong":"The selected smooth is too long!!", | ||
"usingTempValue": "Could not evaluate __type__.__value__ and using stored value \"__usedValue__\"!", | ||
@@ -182,0 +106,0 @@ "notEvaluableProperty": "could not evaluate __type__.__value__, using \"__usedValue__\"!" |
{ | ||
"name": "node-red-contrib-sun-position", | ||
"version": "1.0.0-alpha-2", | ||
"version": "1.0.0-alpha-3", | ||
"description": "NodeRED nodes to get sun and moon position", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
101
README.md
@@ -17,50 +17,51 @@ # node-red-contrib-sun-position for NodeRED | ||
[![nodes](images/appearance1.png?raw=true)](README.md) | ||
[![nodes](images/appearance2.png?raw=true)](blind_control.md) | ||
![nodes](https://user-images.githubusercontent.com/12692680/70033601-19d46a00-15b0-11ea-9e36-a7843e20ff85.png) | ||
## Table of contents | ||
- [node-red-contrib-sun-position for NodeRED](#node-red-contrib-sun-position-for-nodered) | ||
- [Table of contents](#table-of-contents) | ||
- [Preconditions](#preconditions) | ||
- [Installation](#installation) | ||
- [General](#general) | ||
- [Saving resources](#saving-resources) | ||
- [second based accuracy](#second-based-accuracy) | ||
- [Implemented Nodes](#implemented-nodes) | ||
- [sun-position](#sun-position) | ||
- [sun-position - Node settings](#sun-position---node-settings) | ||
- [Node Input](#node-input) | ||
- [sun-position - Node Output](#sun-position---node-output) | ||
- [moon-position](#moon-position) | ||
- [moon-position - Node settings](#moon-position---node-settings) | ||
- [moon-position - Node Output](#moon-position---node-output) | ||
- [time-inject](#time-inject) | ||
- [time-inject - Node settings](#time-inject---node-settings) | ||
- [time-inject - Node Input](#time-inject---node-input) | ||
- [time-inject - Node Output](#time-inject---node-output) | ||
- [within-time](#within-time) | ||
- [within-time - Node settings](#within-time---node-settings) | ||
- [time-comp](#time-comp) | ||
- [time-comp - Node settings](#time-comp---node-settings) | ||
- [time-span](#time-span) | ||
- [time-span - Node settings](#time-span---node-settings) | ||
- [blind-control](#blind-control) | ||
- [Times definitions](#times-definitions) | ||
- [sun times](#sun-times) | ||
- [remarks](#remarks) | ||
- [blue hour](#blue-hour) | ||
- [amateurDawn /amateurDusk](#amateurdawn-amateurdusk) | ||
- [alternate properties](#alternate-properties) | ||
- [moon times](#moon-times) | ||
- [message, flow or global property or JSONATA expression](#message-flow-or-global-property-or-jsonata-expression) | ||
- [input parse formats](#input-parse-formats) | ||
- [output timestamp formats](#output-timestamp-formats) | ||
- [output timespan formats](#output-timespan-formats) | ||
- [Conditions](#conditions) | ||
- [CHANGELOG](#changelog) | ||
- [TODO](#todo) | ||
- [Support, Bugs and Feedback](#support-bugs-and-feedback) | ||
- [LICENSE](#license) | ||
- [Other](#other) | ||
* [node-red-contrib-sun-position for NodeRED](#node-red-contrib-sun-position-for-nodered) | ||
* [Table of contents](#table-of-contents) | ||
* [Preconditions](#preconditions) | ||
* [Installation](#installation) | ||
* [General](#general) | ||
* [Saving resources](#saving-resources) | ||
* [second based accuracy](#second-based-accuracy) | ||
* [Implemented Nodes](#implemented-nodes) | ||
* [sun-position](#sun-position) | ||
* [sun-position - Node settings](#sun-position---node-settings) | ||
* [Node Input](#node-input) | ||
* [sun-position - Node Output](#sun-position---node-output) | ||
* [moon-position](#moon-position) | ||
* [moon-position - Node settings](#moon-position---node-settings) | ||
* [moon-position - Node Output](#moon-position---node-output) | ||
* [time-inject](#time-inject) | ||
* [time-inject - Node settings](#time-inject---node-settings) | ||
* [time-inject - Node Input](#time-inject---node-input) | ||
* [time-inject - Node Output](#time-inject---node-output) | ||
* [within-time](#within-time) | ||
* [within-time - Node settings](#within-time---node-settings) | ||
* [time-comp](#time-comp) | ||
* [time-comp - Node settings](#time-comp---node-settings) | ||
* [time-span](#time-span) | ||
* [time-span - Node settings](#time-span---node-settings) | ||
* [blind-control](#blind-control) | ||
* [clock-timer](#clock-timer) | ||
* [Times definitions](#times-definitions) | ||
* [sun times](#sun-times) | ||
* [remarks](#remarks) | ||
* [blue hour](#blue-hour) | ||
* [amateurDawn /amateurDusk](#amateurdawn-amateurdusk) | ||
* [alternate properties](#alternate-properties) | ||
* [moon times](#moon-times) | ||
* [message, flow or global property or JSONATA expression](#message-flow-or-global-property-or-jsonata-expression) | ||
* [input parse formats](#input-parse-formats) | ||
* [output timestamp formats](#output-timestamp-formats) | ||
* [output timespan formats](#output-timespan-formats) | ||
* [Conditions](#conditions) | ||
* [CHANGELOG](#changelog) | ||
* [TODO](#todo) | ||
* [Support, Bugs and Feedback](#support-bugs-and-feedback) | ||
* [LICENSE](#license) | ||
* [Other](#other) | ||
@@ -385,2 +386,4 @@ ## Preconditions | ||
![blind-control](https://user-images.githubusercontent.com/12692680/70033605-1c36c400-15b0-11ea-94db-fbf30eb6d7b7.png) | ||
Used to control a blind with many possibilities. This can be time-dependent and it can calculate the blind position based on the current position of the sun to limit the sun light To limit the sunlight on the floor of a window. | ||
@@ -390,2 +393,10 @@ | ||
### clock-timer | ||
![clock-timer](https://user-images.githubusercontent.com/12692680/70033610-1e991e00-15b0-11ea-8035-8a74164f7d64.png) | ||
Used to control a flow time based with many possibilities. This can be used to switch something which is time-dependent (e.g. Christmas lights). | ||
[clock-timer](clock_timer.md) | ||
### Times definitions | ||
@@ -392,0 +403,0 @@ |
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
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
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
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
Found 1 instance in 1 package
1470152
121
10216
700