node-red-contrib-dutch-weather
v2.0.12
Published
Dutch weather and rain info for use with node-red
Downloads
54
Maintainers
Readme
node-red-contrib-dutch-weather
A combination of a solar position calculation (angle & elevation) and (Dutch) weather providers in order to, for example, automate blinds and screens based on sun position (or) expected rain.
Provides several nodes for receiving (Dutch) weather related events.
| Node name | Description |
| --- | --- |
| dutch-weather-rain-state
| Rain state based on external sources. Used are Buienradar and Buienalarm. |
| dutch-weather-meteoplaza
| Weather forecast based on external source. For this Meteoplaza is used. |
Installation
Run the following command in your Node-RED user directory - typically ~/.node-red
$ npm install node-red-contrib-dutch-weather
Configuration
For all nodes, you'll need to create at least one configuration. Drag one of the exposed nodes to your flow and set it up just like all other config nodes. After that, you can use the event emitters in your own code.
Release 2.0.12
- Made
meteo-plaza
even more resilient against failing requests. - Changed
meteo-plaza
responsetoday.astro.dayLengthHrs
totoday.astro.dayLength
to match the naming of the source.
Release 2.0.11
- Made
meteo-plaza
a bit more resilient against failing requests. - Added 'random()' time to all requests to prevent caching.
Release 2.0.10
- Ensured
prediction
field is present in rain-state even if the state remains thesame.
Release 2.0.7
- Added 'lastUpdate' field.
Release 2.0.6
- After some time the rain-node was not giving any output anymore; the time in between working and not varies from various minutes to hours. Previously the script required both Buienradar and Meteoplaza to respond with a valid response when asking for the current rain state; this is changed so that only 1 of the systems would need to provide accurate values.
Release 2.0.3
dutch-weather-sun-position
(and)dutch-weather-solar-events
removed: There is a much better node-red node you can use: node-red-contrib-sun-position- Automatic refresh removed: The javascript timers sometimes stopped working, which in the worst case led to rain being reported while it was already dry for days; since Node-red has timer nodes built in, i've removed the javascript timers from the code completely. In order to get updated data you have to send a message on the input of a node with payload
{ trigger: true }
for it to update.
Release 2.0.0
- Backwards compatible breaking change: The nodes have been renamed to prevent a conflict with the
node-red-contrib-sun-position
package.
Testing locally
Since version 1.3.1, the nodes which are available have been changed and/or emit different messages. A local test can be exected with the following commands:
$ node local-test.js
See below for sample messages since 2.0.x
Node dutch-weather-rain-state
sample:
{
"now":{
"atTimeIso8601":"2020-06-19T15:30:00.000+02:00",
"inMinutes":0,
"state":"dry",
"probability":100,
"precipitation":{
"buienRadar":0,
"buienAlarm":0
},
"message":"It is dry."
},
"prediction":{
"atTimeIso8601":"2020-06-19T16:30:00.000+02:00",
"inMinutes":60,
"state":"raining",
"probability":100,
"precipitation":{
"buienRadar":5,
"buienAlarm":3.2
},
"message":"..."
}
}
Node dutch-weather-meteoplaza
sample:
{
"now":{
"icon":"C001D",
"temp":22,
"tempFeelsLike":25,
"sunProbability":54,
"precipitation":0.1,
"pressure":1015.9,
"humidity":52,
"cloudCoverage":68,
"wind":{
"direction":"WZW",
"speed":3,
"speedMs":4.1,
"speedKmh":15
}
},
"today":{
"tempMin":16,
"tempMax":23,
"astro":{
"currentTime":"2020-06-19T15:41:47+02:00",
"sunRise":"2020-06-19T05:21:00+02:00",
"sunSet":"2020-06-19T21:58:00+02:00",
"dayLength":"16:37",
"moonPhase":{
"newMoon":"2020-06-21 08:42",
"fullMoon":"2020-07-05 06:45",
"firstQuarter":"2020-06-28 10:17",
"lastQuarter":"2020-07-13 01:31"
}
},
"dataPerHour":{
"15":{
"icon":"C001D",
"temp":22,
"tempFeelsLike":25,
"sunProbability":54,
"precipitation":0.1,
"pressure":1015.9,
"humidity":52,
"cloudCoverage":68,
"wind":{
"direction":"WZW",
"speed":3,
"speedMs":4.1,
"speedKmh":15
}
},
"16":{
"icon":"C001D",
"temp":23,
"tempFeelsLike":25,
"sunProbability":54,
"precipitation":0.1,
"pressure":1016,
"humidity":51,
"cloudCoverage":69,
"wind":{
"direction":"WZW",
"speed":3,
"speedMs":3.9,
"speedKmh":14
}
},
"17":{
"icon":"A007D",
"temp":23,
"tempFeelsLike":25,
"sunProbability":52,
"precipitation":0,
"pressure":1016.1,
"humidity":50,
"cloudCoverage":71,
"wind":{
"direction":"W",
"speed":3,
"speedMs":3.8,
"speedKmh":14
}
},
"18":{
"icon":"C001D",
"temp":22,
"tempFeelsLike":25,
"sunProbability":53,
"precipitation":0.1,
"pressure":1016.2,
"humidity":51,
"cloudCoverage":64,
"wind":{
"direction":"WNW",
"speed":3,
"speedMs":4.2,
"speedKmh":15
}
},
"19":{
"icon":"C002D",
"temp":23,
"tempFeelsLike":25,
"sunProbability":51,
"precipitation":0.4,
"pressure":1016.4,
"humidity":54,
"cloudCoverage":63,
"wind":{
"direction":"WNW",
"speed":3,
"speedMs":4.7,
"speedKmh":17
}
},
"20":{
"icon":"A006D",
"temp":20,
"tempFeelsLike":20,
"sunProbability":54,
"precipitation":0,
"pressure":1016.9,
"humidity":63,
"cloudCoverage":51,
"wind":{
"direction":"WNW",
"speed":3,
"speedMs":4.3,
"speedKmh":15
}
},
"21":{
"icon":"A003D",
"temp":18,
"tempFeelsLike":18,
"sunProbability":56,
"precipitation":0,
"pressure":1017.4,
"humidity":73,
"cloudCoverage":45,
"wind":{
"direction":"WNW",
"speed":2,
"speedMs":3.3,
"speedKmh":12
}
},
"22":{
"icon":"A003N",
"temp":17,
"tempFeelsLike":17,
"sunProbability":0,
"precipitation":0,
"pressure":1018.2,
"humidity":81,
"cloudCoverage":39,
"wind":{
"direction":"WNW",
"speed":2,
"speedMs":2.3,
"speedKmh":8
}
},
"23":{
"icon":"A002N",
"temp":16,
"tempFeelsLike":16,
"sunProbability":0,
"precipitation":0,
"pressure":1018.6,
"humidity":87,
"cloudCoverage":33,
"wind":{
"direction":"W",
"speed":2,
"speedMs":1.6,
"speedKmh":6
}
}
}
}
}