diff --git a/.gitignore b/.gitignore index e643a87..bf22295 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ -package-lock.json -.vscode/launch.json node_modules + +package-lock.json +.vscode/launch.json \ No newline at end of file diff --git a/README.md b/README.md index 1dc0402..d80556c 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,8 @@ npm install . }, "timers": { "blitzCollection": 600000, // how often should we aggregate thunder data for evaluation - "pollWeatherAlerts": 600000 // how often should we download weather altert data + "meteoAlerts": 600000, // how often should we download weather altert data + "meteoAlerts": 600000 // how often should we weather alterts checked }, "blitzArea": { // thunder reporting area. if there is storm detected inside, report it "minLat": 47.51, @@ -47,6 +48,30 @@ npm install . "SW": "South-West", "W": "West", "NW": "North-West" + }, + "meteoAlerts": { // meteo alarm config sections + "enabled": true, // enables or disables meteo alarm + "timeout": 60, // how long should the warning be muted after sending, in minutes + "severityFilter": ["severe", "extreme"], // severity levels which will be send + "certaintyFilter": ["likely", "observed"], // certainty levels which will be send + "url": "https://feeds.meteoalarm.org/feeds/meteoalarm-legacy-atom-slovakia", // atom feed with warnings + "regions": [ + "Bratislava" // list of monitored regions/ areas + ], + "severity": { // severity translations + "unknown": "Unknown", + "minor": "Minor", + "moderate": "Moderate", + "severe": "Severe", + "extreme ": "Extreme" + }, + "certainty": { // ceverity translations + "observed": "Observed", + "likely": "Likely (> 50%)", + "possible": "Possible (<= 50%)", + "unlikely": "Unlikely (~ 0%)", + "unknown": "Unknown" + } } } ``` diff --git a/config.json b/config.json index ca4ea27..bfc79c7 100644 --- a/config.json +++ b/config.json @@ -33,6 +33,14 @@ "meteoAlerts": { "enabled": true, "timeout": 180, + "severityFilter": [ + "severe", + "extreme" + ], + "certaintyFilter": [ + "likely", + "observed" + ], "url": "https://feeds.meteoalarm.org/feeds/meteoalarm-legacy-atom-slovakia", "regions": [ "Bratislava" @@ -43,7 +51,7 @@ "minor": "Minor", "moderate": "Moderate", "severe": "Severe", - "extreme ": "Extreme" + "extreme": "Extreme" }, "certainty": { "observed": "Observed", @@ -58,7 +66,7 @@ "thunderstorm": "Thunderstorm", "fog": "Fog", "hightemperature": "High Temperature", - "lowtemperature": "Low Temperature", + "lowtemperature": "Low Temperature", "coastalevent": "Coastal Event", "forestfire": "Forest Fire", "avalanche": "Avalanche", @@ -66,7 +74,8 @@ "flood": "Flood ", "rainflood": "Rain Flood", "marinehazard": "Marine Hazard ", - "drought": "Drought " + "drought": "Drought ", + "icing": "Icing " } } } \ No newline at end of file diff --git a/index.mjs b/index.mjs index f7b13f6..a6b9602 100644 --- a/index.mjs +++ b/index.mjs @@ -108,14 +108,16 @@ async function checkMeteoAlerts() { if (endTime < Date.now()) return; - if (meteoAlerts[item.identifier]) + if (meteoAlerts[item.identifier] + || !config.meteoAlerts.certaintyFilter.includes(item.certainty.toLowerCase()) + || !config.meteoAlerts.severityFilter.includes(item.severity.toLowerCase())) return; warnigs.push({ id: item.identifier, region: item.area, - certainty: item.certainty, - severity: item.severity, + certainty: item.certainty.toLowerCase(), + severity: item.severity.toLowerCase(), event: parseEvent(item.event), start: item.start, end: item.end @@ -132,8 +134,8 @@ async function checkMeteoAlerts() { start: formatDate(item.start), end: formatDate(item.end), event: config.meteoAlerts.events[item.event] ?? item.event, - severity: config.meteoAlerts.severity[item.severity.toLowerCase()], - certainty: config.meteoAlerts.certainty[item.certainty.toLowerCase()] + severity: config.meteoAlerts.severity[item.severity], + certainty: config.meteoAlerts.certainty[item.certainty] }); sendAlert(message, channels.weather); meteoAlerts[item.id] = Date.now();