Skip to content

Commit abe4af3

Browse files
authored
Merge pull request #3 from mprilepok/main
Meteoalarm - add severity and certainty filter
2 parents d0e5b2d + d06a8bf commit abe4af3

File tree

4 files changed

+48
-11
lines changed

4 files changed

+48
-11
lines changed

.gitignore

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1-
package-lock.json
2-
.vscode/launch.json
31
node_modules
2+
3+
package-lock.json
4+
.vscode/launch.json

README.md

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ npm install .
3030
},
3131
"timers": {
3232
"blitzCollection": 600000, // how often should we aggregate thunder data for evaluation
33-
"pollWeatherAlerts": 600000 // how often should we download weather altert data
33+
"meteoAlerts": 600000, // how often should we download weather altert data
34+
"meteoAlerts": 600000 // how often should we weather alterts checked
3435
},
3536
"blitzArea": { // thunder reporting area. if there is storm detected inside, report it
3637
"minLat": 47.51,
@@ -47,6 +48,30 @@ npm install .
4748
"SW": "South-West",
4849
"W": "West",
4950
"NW": "North-West"
51+
},
52+
"meteoAlerts": { // meteo alarm config sections
53+
"enabled": true, // enables or disables meteo alarm
54+
"timeout": 60, // how long should the warning be muted after sending, in minutes
55+
"severityFilter": ["severe", "extreme"], // severity levels which will be send
56+
"certaintyFilter": ["likely", "observed"], // certainty levels which will be send
57+
"url": "https://feeds.meteoalarm.org/feeds/meteoalarm-legacy-atom-slovakia", // atom feed with warnings
58+
"regions": [
59+
"Bratislava" // list of monitored regions/ areas
60+
],
61+
"severity": { // severity translations
62+
"unknown": "Unknown",
63+
"minor": "Minor",
64+
"moderate": "Moderate",
65+
"severe": "Severe",
66+
"extreme ": "Extreme"
67+
},
68+
"certainty": { // ceverity translations
69+
"observed": "Observed",
70+
"likely": "Likely (> 50%)",
71+
"possible": "Possible (<= 50%)",
72+
"unlikely": "Unlikely (~ 0%)",
73+
"unknown": "Unknown"
74+
}
5075
}
5176
}
5277
```

config.json

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,14 @@
3333
"meteoAlerts": {
3434
"enabled": true,
3535
"timeout": 180,
36+
"severityFilter": [
37+
"severe",
38+
"extreme"
39+
],
40+
"certaintyFilter": [
41+
"likely",
42+
"observed"
43+
],
3644
"url": "https://feeds.meteoalarm.org/feeds/meteoalarm-legacy-atom-slovakia",
3745
"regions": [
3846
"Bratislava"
@@ -43,7 +51,7 @@
4351
"minor": "Minor",
4452
"moderate": "Moderate",
4553
"severe": "Severe",
46-
"extreme ": "Extreme"
54+
"extreme": "Extreme"
4755
},
4856
"certainty": {
4957
"observed": "Observed",
@@ -58,15 +66,16 @@
5866
"thunderstorm": "Thunderstorm",
5967
"fog": "Fog",
6068
"hightemperature": "High Temperature",
61-
"lowtemperature": "Low Temperature",
69+
"lowtemperature": "Low Temperature",
6270
"coastalevent": "Coastal Event",
6371
"forestfire": "Forest Fire",
6472
"avalanche": "Avalanche",
6573
"rain": "Rain",
6674
"flood": "Flood ",
6775
"rainflood": "Rain Flood",
6876
"marinehazard": "Marine Hazard ",
69-
"drought": "Drought "
77+
"drought": "Drought ",
78+
"icing": "Icing "
7079
}
7180
}
7281
}

index.mjs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,16 @@ async function checkMeteoAlerts() {
108108
if (endTime < Date.now())
109109
return;
110110

111-
if (meteoAlerts[item.identifier])
111+
if (meteoAlerts[item.identifier]
112+
|| !config.meteoAlerts.certaintyFilter.includes(item.certainty.toLowerCase())
113+
|| !config.meteoAlerts.severityFilter.includes(item.severity.toLowerCase()))
112114
return;
113115

114116
warnigs.push({
115117
id: item.identifier,
116118
region: item.area,
117-
certainty: item.certainty,
118-
severity: item.severity,
119+
certainty: item.certainty.toLowerCase(),
120+
severity: item.severity.toLowerCase(),
119121
event: parseEvent(item.event),
120122
start: item.start,
121123
end: item.end
@@ -132,8 +134,8 @@ async function checkMeteoAlerts() {
132134
start: formatDate(item.start),
133135
end: formatDate(item.end),
134136
event: config.meteoAlerts.events[item.event] ?? item.event,
135-
severity: config.meteoAlerts.severity[item.severity.toLowerCase()],
136-
certainty: config.meteoAlerts.certainty[item.certainty.toLowerCase()]
137+
severity: config.meteoAlerts.severity[item.severity],
138+
certainty: config.meteoAlerts.certainty[item.certainty]
137139
});
138140
sendAlert(message, channels.weather);
139141
meteoAlerts[item.id] = Date.now();

0 commit comments

Comments
 (0)