I thought I had found a way around it by requiring the alert to be on for 20mins before notifications go out; this test today lasted for 30; it had previously been 5-10
Yeah, the NWS alert system isnāt the most reliable system at times but it generally works pretty well and itās better than nothing.
Last time I attempted to install HACS something went badly and it never worked right, do you have a link? Iām having difficulty figuring out which of several I see in the long thread tot look at.
try the latest release to see if the new āmessage typeā attribute meets your filtering needs.
It should be available in HACS shortly.
Just thought I would share one option I am exploringā¦now I have to wait for a severe storm and see if I like how the addon or my sensors work.
I donāt know yet if āzonesā as the addon uses or āpointā (unsure if it accepts more than one) as I am trying would be best for my needs but something to consider for future enhancements - (exact location censored) so I can hopefully avoid alerts that regularly go out for the ātipā of the county not affecting me.
- platform: rest
name: 'NWS Tornado Warning King George'
resource: 'https://api.weather.gov/alerts/active?point=38.123,-77.123&status=actual&message_type=alert,update&event=Tornado Warning'
method: GET
value_template: '{{ value_json.features[0] is defined }}'
headers:
User-Agent: "HomeAssistant / nws_alerts_king_george; contact: [email protected]"
scan_interval: 60
- platform: rest
name: 'NWS Severe Thunderstorm Warning King George'
resource: 'https://api.weather.gov/alerts/active?point=38.123,-77.123&status=actual&message_type=alert,update&event=Severe Thunderstorm Warning'
method: GET
value_template: '{{ value_json.features[0] is defined }}'
headers:
User-Agent: "HomeAssistant / nws_alerts_king_george; contact: [email protected]"
scan_interval: 60
# High Winds
- platform: rest
name: 'NWS High Wind Warning King George'
resource: 'https://api.weather.gov/alerts/active?point=38.123,-77.123&status=actual&message_type=alert,update&event=High Wind Warning,Extreme Wind Warning'
method: GET
value_template: '{{ value_json.features[0] is defined }}'
headers:
User-Agent: "HomeAssistant / nws_alerts_king_george; contact: [email protected]"
scan_interval: 300
# and so on...
Thanks for this HACS integration @finity . I did a lot of alert testing by just going to this website https://www.weather.gov/ and under the map are the various alerts that are going on at places in the country right now. When you click on the warnings or alerts at the bottom it will give you the location code where it is happening now, and you can throw that into your setup to test.
The biggest issue is differentiating the alerts - I want a Tornado warning to wake me up in the middle of the night, but not a freeze warning. I put together a Node Red flow that so far for me has been working pretty well to categorize the alerts by severity - from just an āapp pushā for minor advisories, to Alexa blaring out and turning the lights on in the middle of the night for a Tornado warning. My setup basically has modes Home, Night, and Away that will change the way the alert comes through based on the mode. It also uses Twilio for texts, App pushes in the Home assistant app, Alexa media player for spoken notifications, and the Alexa Notify me skill that just makes the yellow ring glow. There are limits so alerts donāt keep going off too, and stored variables so when there are multiple alerts, and one goes away, it doesnāt send them all out again. Iām sure the flow can be customized depending on how one wants the alerts to come through.
Import code
[{"id":"71361e1f.783d6","type":"switch","z":"af00be25.d4686","name":"Warning Severity","property":"data.attributes.title","propertyType":"msg","rules":[{"t":"regex","v":"(tornado warning)","vt":"str","case":true},{"t":"regex","v":"(thunderstorm warning)","vt":"str","case":true},{"t":"regex","v":"(warning|thunderstorm|tornado)","vt":"str","case":true},{"t":"nnull"}],"checkall":"false","repair":false,"outputs":4,"x":950,"y":60,"wires":[["818ccaca.8d3a7"],["c5a7eeaf.3e2cc8"],["c0cbd23e.0d8478"],["c0cbd23e.0d8478"]]},{"id":"e4069d42.deece","type":"alexa-notifyme","z":"af00be25.d4686","name":"","notification":"","x":1580,"y":80,"wires":[[]]},{"id":"818ccaca.8d3a7","type":"function","z":"af00be25.d4686","name":"Process Alert","func":"var w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nmsg.payload = w\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1290,"y":20,"wires":[["6a498c48.7fe76c","c4127ea3.08fd68","62713381.b49954"]]},{"id":"1ec0b5be.6458da","type":"api-current-state","z":"af00be25.d4686","name":"Full State","server":"ae531ce.a39906","version":2,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.nws_alerts","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":720,"y":60,"wires":[["71361e1f.783d6"]]},{"id":"1dd23dcf.7908ba","type":"server-state-changed","z":"af00be25.d4686","name":"NWS Alert","server":"ae531ce.a39906","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.nws_alerts","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":100,"y":120,"wires":[["1ec90bb1.4aee3c"]]},{"id":"c0cbd23e.0d8478","type":"delay","z":"af00be25.d4686","name":"Limit Notifications","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"12","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":550,"y":200,"wires":[["6bcb7b26.46c574"]]},{"id":"ba36a3d9.26aab8","type":"api-current-state","z":"af00be25.d4686","name":"Night?","server":"ae531ce.a39906","version":2,"outputs":2,"halt_if":"Night","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_select.mode","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":550,"y":80,"wires":[["1ec0b5be.6458da"],[]]},{"id":"5a81021d.18dcac","type":"api-current-state","z":"af00be25.d4686","name":"Home?","server":"ae531ce.a39906","version":2,"outputs":2,"halt_if":"Home","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_select.mode","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":520,"y":320,"wires":[["d580970f.1f91b","63233c91.5aacc4"],[]]},{"id":"6e00bd75.e9e854","type":"api-current-state","z":"af00be25.d4686","name":"Away?","server":"ae531ce.a39906","version":2,"outputs":2,"halt_if":"Away","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_select.mode","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":510,"y":600,"wires":[["d94fb547.58b388"],[]]},{"id":"22d518db.2be5a","type":"switch","z":"af00be25.d4686","name":"Warning Severity","property":"data.attributes.title","propertyType":"msg","rules":[{"t":"regex","v":"(tornado warning)","vt":"str","case":true},{"t":"regex","v":"(thunderstorm warning)","vt":"str","case":true},{"t":"regex","v":"(thunderstorm|tornado)","vt":"str","case":true},{"t":"regex","v":"(warning)","vt":"str","case":true},{"t":"nnull"}],"checkall":"false","repair":false,"outputs":5,"x":950,"y":320,"wires":[["f6925890.46951"],["36152c61.85dd5c"],["6edb4cd6.c0141c"],["bf1765f5.0d60e"],["670a342d.56ce4c"]]},{"id":"7af67eab.aab1e","type":"alexa-notifyme","z":"af00be25.d4686","name":"","notification":"","x":1620,"y":360,"wires":[[]]},{"id":"bf1765f5.0d60e","type":"function","z":"af00be25.d4686","name":"Process Alert Time","func":"function addZero(i) {\n if (i < 10) {\n i = \"0\" + i;\n }\n return i;\n}\n\nfunction convertmil(j) {\n if (j > 12) {\n j = j - 12\n }\n if (j === 0) {\n j = j + 12\n }\n return j;\n}\n\nfunction ampm(k) {\n if (k > 11) {\n k = \" PM\"\n }\n if (k < 12) {\n k = \" AM\"\n }\n return k;\n}\n\nvar w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nvar d = new Date();\nvar h = convertmil(d.getHours());\nvar a = ampm(d.getHours());\nvar m = addZero(d.getMinutes());\nvar e = \" issued at \"\nmsg.payload = w + e + h + \" \" + m + a;\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1210,"y":420,"wires":[["c5078b9e.b07ca8"]]},{"id":"7a4c42f7.19077c","type":"function","z":"af00be25.d4686","name":"Process Alert","func":"var w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nmsg.payload = w\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1190,"y":480,"wires":[["48eb17b6.49fc4"]]},{"id":"d580970f.1f91b","type":"api-current-state","z":"af00be25.d4686","name":"Full State","server":"ae531ce.a39906","version":2,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.nws_alerts","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":740,"y":320,"wires":[["22d518db.2be5a"]]},{"id":"c5078b9e.b07ca8","type":"delay","z":"af00be25.d4686","name":"Limit","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"6","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":1390,"y":420,"wires":[["7af67eab.aab1e","6a498c48.7fe76c"]]},{"id":"740ecf27.5993a8","type":"switch","z":"af00be25.d4686","name":"Warning Severity","property":"data.attributes.title","propertyType":"msg","rules":[{"t":"regex","v":"(tornado warning)","vt":"str","case":true},{"t":"regex","v":"(thunderstorm warning)","vt":"str","case":true},{"t":"regex","v":"(thunderstorm|tornado)","vt":"str","case":true},{"t":"regex","v":"(warning)","vt":"str","case":true},{"t":"nnull"}],"checkall":"false","repair":false,"outputs":5,"x":930,"y":640,"wires":[["c982c3d.2d195c"],["b457dfa.5a8b72"],["749e86e2.a3406"],["db8133d4.84b6"],["ddea3d90.e9199"]]},{"id":"c982c3d.2d195c","type":"function","z":"af00be25.d4686","name":"Process Alert","func":"var w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nmsg.payload = w\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1170,"y":580,"wires":[["27ebbe5d.63a21a","8db8731c.47c38"]]},{"id":"b457dfa.5a8b72","type":"function","z":"af00be25.d4686","name":"Process Alert","func":"var w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nmsg.payload = w\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1170,"y":640,"wires":[["8db8731c.47c38"]]},{"id":"ddea3d90.e9199","type":"function","z":"af00be25.d4686","name":"Process Alert","func":"var w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nmsg.payload = w\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1170,"y":800,"wires":[["c28b4efa.2e248"]]},{"id":"d94fb547.58b388","type":"api-current-state","z":"af00be25.d4686","name":"Full State","server":"ae531ce.a39906","version":2,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.nws_alerts","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":700,"y":600,"wires":[["740ecf27.5993a8"]]},{"id":"c28b4efa.2e248","type":"delay","z":"af00be25.d4686","name":"Limit Notifications","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"6","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":1390,"y":800,"wires":[["58b091b9.da2b8"]]},{"id":"c5a7eeaf.3e2cc8","type":"function","z":"af00be25.d4686","name":"Process Alert Time","func":"function addZero(i) {\n if (i < 10) {\n i = \"0\" + i;\n }\n return i;\n}\n\nfunction convertmil(j) {\n if (j > 12) {\n j = j - 12\n }\n if (j === 0) {\n j = j + 12\n }\n return j;\n}\n\nfunction ampm(k) {\n if (k > 11) {\n k = \" PM\"\n }\n if (k < 12) {\n k = \" AM\"\n }\n return k;\n}\n\nvar w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nvar d = new Date();\nvar h = convertmil(d.getHours());\nvar a = ampm(d.getHours());\nvar m = addZero(d.getMinutes());\nvar e = \" issued at \"\nmsg.payload = w + e + h + \" \" + m + a;\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1230,"y":80,"wires":[["51b6fc3d.3528ac"]]},{"id":"7f56f557.217f6c","type":"ha-wait-until","z":"af00be25.d4686","name":"Wait til 7","server":"ae531ce.a39906","version":0,"outputs":1,"entityId":"sensor.time","entityIdFilterType":"exact","property":"state","comparator":"is","value":"07:00","valueType":"str","timeout":"0","timeoutType":"num","timeoutUnits":"seconds","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":false,"x":1120,"y":200,"wires":[["d580970f.1f91b"]]},{"id":"63233c91.5aacc4","type":"change","z":"af00be25.d4686","name":"","rules":[{"t":"set","p":"reset","pt":"msg","to":"reset","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":580,"y":260,"wires":[["6bcb7b26.46c574","7f56f557.217f6c"]]},{"id":"7157262f.3a26e8","type":"api-call-service","z":"af00be25.d4686","name":"Weather Alert","server":"ae531ce.a39906","version":3,"debugenabled":false,"service_domain":"notify","service":"alexa_media","entityId":"","data":"{\"message\":\"Weather alert. {{payload}} \",\"data\":{\"type\":\"announce\",\"method\":\"all\"},\"target\":[\"media_player.living_room\",\"media_player.bedroom\"]}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1620,"y":260,"wires":[[]]},{"id":"c4127ea3.08fd68","type":"twilio out","z":"af00be25.d4686","twilio":"","twilioType":"sms","url":"","number":"","name":"","x":1170,"y":140,"wires":[]},{"id":"6a498c48.7fe76c","type":"twilio out","z":"af00be25.d4686","twilio":"","twilioType":"sms","url":"","number":"","name":"","x":1350,"y":140,"wires":[]},{"id":"35beaa48.8e51fe","type":"api-call-service","z":"af00be25.d4686","name":"Weather Alert","server":"ae531ce.a39906","version":3,"debugenabled":false,"service_domain":"notify","service":"alexa_media","entityId":"","data":"{\"message\":\"Weather alert. {{payload}} \",\"data\":{\"type\":\"announce\",\"method\":\"all\"},\"target\":[\"media_player.living_room\",\"media_player.bedroom\"]}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1960,"y":20,"wires":[[]]},{"id":"27ebbe5d.63a21a","type":"twilio out","z":"af00be25.d4686","twilio":"","twilioType":"sms","url":"","number":"","name":"","x":1430,"y":580,"wires":[]},{"id":"8db8731c.47c38","type":"twilio out","z":"af00be25.d4686","twilio":"","twilioType":"sms","url":"","number":"","name":"","x":1430,"y":640,"wires":[]},{"id":"21d182a2.dde4b6","type":"api-call-service","z":"af00be25.d4686","name":"App Push Weather","server":"ae531ce.a39906","version":3,"debugenabled":false,"service_domain":"notify","service":"mobile_app","entityId":"","data":"{\"message\":\"{{payload}}\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1630,"y":480,"wires":[[]]},{"id":"48eb17b6.49fc4","type":"delay","z":"af00be25.d4686","name":"Limit","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"6","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":1370,"y":480,"wires":[["21d182a2.dde4b6"]]},{"id":"58b091b9.da2b8","type":"api-call-service","z":"af00be25.d4686","name":"App Push Weather","server":"ae531ce.a39906","version":3,"debugenabled":false,"service_domain":"notify","service":"mobile_app","entityId":"","data":"{\"message\":\"{{payload}}\"}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1630,"y":680,"wires":[[]]},{"id":"b47a21c4.3acd6","type":"delay","z":"af00be25.d4686","name":"Limit Notifications","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"6","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":1410,"y":740,"wires":[["58b091b9.da2b8"]]},{"id":"36152c61.85dd5c","type":"function","z":"af00be25.d4686","name":"Process Alert Time","func":"function addZero(i) {\n if (i < 10) {\n i = \"0\" + i;\n }\n return i;\n}\n\nfunction convertmil(j) {\n if (j > 12) {\n j = j - 12\n }\n if (j === 0) {\n j = j + 12\n }\n return j;\n}\n\nfunction ampm(k) {\n if (k > 11) {\n k = \" PM\"\n }\n if (k < 12) {\n k = \" AM\"\n }\n return k;\n}\n\nvar w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nvar d = new Date();\nvar h = convertmil(d.getHours());\nvar a = ampm(d.getHours());\nvar m = addZero(d.getMinutes());\nvar e = \" issued at \"\nmsg.payload = w + e + h + \" \" + m + a;\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1210,"y":320,"wires":[["6a498c48.7fe76c","387b2f87.63aa38"]]},{"id":"223d2b7f.2d576c","type":"api-call-service","z":"af00be25.d4686","name":"Lights 100","server":"ae531ce.a39906","version":3,"debugenabled":false,"service_domain":"light","service":"turn_on","entityId":"light.bedroom_fan_light_2, light.bedroom_wall_switch_2","data":"{\"brightness_pct\":100}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1810,"y":80,"wires":[[]]},{"id":"db8133d4.84b6","type":"function","z":"af00be25.d4686","name":"Process Alert","func":"var w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nmsg.payload = w\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1170,"y":740,"wires":[["b47a21c4.3acd6"]]},{"id":"f6925890.46951","type":"function","z":"af00be25.d4686","name":"Process Alert Time","func":"function addZero(i) {\n if (i < 10) {\n i = \"0\" + i;\n }\n return i;\n}\n\nfunction convertmil(j) {\n if (j > 12) {\n j = j - 12\n }\n if (j === 0) {\n j = j + 12\n }\n return j;\n}\n\nfunction ampm(k) {\n if (k > 11) {\n k = \" PM\"\n }\n if (k < 12) {\n k = \" AM\"\n }\n return k;\n}\n\nvar w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nvar d = new Date();\nvar h = convertmil(d.getHours());\nvar a = ampm(d.getHours());\nvar m = addZero(d.getMinutes());\nvar e = \" issued at \"\nmsg.payload = w + e + h + \" \" + m + a;\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1210,"y":260,"wires":[["c4127ea3.08fd68","6a498c48.7fe76c","7157262f.3a26e8","7af67eab.aab1e"]]},{"id":"fea7627f.326b6","type":"inject","z":"af00be25.d4686","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":800,"wires":[["bfde1392.3b82a8"]]},{"id":"bfde1392.3b82a8","type":"template","z":"af00be25.d4686","name":"Variables?","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{ \n \"Numberofalerts\" : \"{{flow.numalerts}}\"\n}","output":"json","x":330,"y":800,"wires":[["7f4df5.5de1c20c"]]},{"id":"7f4df5.5de1c20c","type":"debug","z":"af00be25.d4686","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":530,"y":800,"wires":[]},{"id":"72dfcae5.1e8694","type":"api-current-state","z":"af00be25.d4686","name":"Num Alerts","server":"ae531ce.a39906","version":2,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.nws_alerts","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":130,"y":260,"wires":[["8a75193a.cbc4","27974268.b823c6"]]},{"id":"8ecea29f.7b96e8","type":"stoptimer","z":"af00be25.d4686","duration":"5","units":"Second","payloadtype":"num","payloadval":"0","name":"","x":160,"y":400,"wires":[["a8fbc4d1.42142"],[]]},{"id":"8a75193a.cbc4","type":"switch","z":"af00be25.d4686","name":"New Alerts?","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"num"},{"t":"gte","v":"numalerts","vt":"flow"}],"checkall":"false","repair":false,"outputs":2,"x":330,"y":320,"wires":[["71e556e9.54b418"],["ba36a3d9.26aab8","5a81021d.18dcac","6e00bd75.e9e854"]]},{"id":"a8fbc4d1.42142","type":"change","z":"af00be25.d4686","name":"Number of Alerts","rules":[{"t":"set","p":"numalerts","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":170,"y":480,"wires":[[]]},{"id":"c4eabbf5.8cf7a","type":"inject","z":"af00be25.d4686","name":"Startup","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":"60","topic":"","payload":"","payloadType":"date","x":140,"y":720,"wires":[["341e2331.11fb74"]]},{"id":"341e2331.11fb74","type":"api-current-state","z":"af00be25.d4686","name":"Num Alerts","server":"ae531ce.a39906","version":2,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.nws_alerts","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":370,"y":720,"wires":[["79629ffb.0598e8"]]},{"id":"79629ffb.0598e8","type":"change","z":"af00be25.d4686","name":"Number of Alerts","rules":[{"t":"set","p":"numalerts","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":720,"wires":[[]]},{"id":"9fd358d0.88b5f8","type":"inject","z":"af00be25.d4686","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":300,"y":220,"wires":[["72dfcae5.1e8694"]]},{"id":"27974268.b823c6","type":"switch","z":"af00be25.d4686","name":"Not null?","property":"payload","propertyType":"msg","rules":[{"t":"nnull"}],"checkall":"true","repair":false,"outputs":1,"x":150,"y":340,"wires":[["8ecea29f.7b96e8"]]},{"id":"6edb4cd6.c0141c","type":"function","z":"af00be25.d4686","name":"Process Alert Time","func":"function addZero(i) {\n if (i < 10) {\n i = \"0\" + i;\n }\n return i;\n}\n\nfunction convertmil(j) {\n if (j > 12) {\n j = j - 12\n }\n if (j === 0) {\n j = j + 12\n }\n return j;\n}\n\nfunction ampm(k) {\n if (k > 11) {\n k = \" PM\"\n }\n if (k < 12) {\n k = \" AM\"\n }\n return k;\n}\n\nvar w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nvar d = new Date();\nvar h = convertmil(d.getHours());\nvar a = ampm(d.getHours());\nvar m = addZero(d.getMinutes());\nvar e = \" issued at \"\nmsg.payload = w + e + h + \" \" + m + a;\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1210,"y":380,"wires":[["6a498c48.7fe76c","d5c42902.9f5758"]]},{"id":"749e86e2.a3406","type":"function","z":"af00be25.d4686","name":"Process Alert","func":"var w = msg.data.attributes.spoken_desc\nw = w.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\nw = w.replace(/(\\-)/gm, \". \");\nmsg.payload = w\nvar newMsg = { \n payload:msg.payload\n}\nreturn newMsg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1170,"y":680,"wires":[["58b091b9.da2b8"]]},{"id":"70cab0db.4ece","type":"time-range-switch","z":"af00be25.d4686","name":"","lat":"","lon":"","startTime":"20:00","endTime":"07:00","startOffset":0,"endOffset":0,"x":930,"y":200,"wires":[["7f56f557.217f6c"],["d580970f.1f91b"]]},{"id":"6bcb7b26.46c574","type":"ha-wait-until","z":"af00be25.d4686","name":"Wait til Home","server":"ae531ce.a39906","version":0,"outputs":1,"entityId":"input_select.mode","entityIdFilterType":"exact","property":"state","comparator":"is","value":"Home","valueType":"str","timeout":"0","timeoutType":"num","timeoutUnits":"seconds","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":false,"x":750,"y":200,"wires":[["70cab0db.4ece"]]},{"id":"670a342d.56ce4c","type":"switch","z":"af00be25.d4686","name":"Thunder Statement?","property":"data.attributes.spoken_desc","propertyType":"msg","rules":[{"t":"regex","v":"(thunderstorm|tornado)","vt":"str","case":true},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":960,"y":460,"wires":[["6edb4cd6.c0141c"],["7a4c42f7.19077c"]]},{"id":"95e4473c.4e4eb","type":"api-current-state","z":"af00be25.d4686","name":"Full State","server":"ae531ce.a39906","version":2,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.nws_alerts","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":340,"y":900,"wires":[["4ebfc08a.3d7cc"]]},{"id":"46fb30f8.cfb788","type":"inject","z":"af00be25.d4686","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":150,"y":900,"wires":[["95e4473c.4e4eb"]]},{"id":"4ebfc08a.3d7cc","type":"debug","z":"af00be25.d4686","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":510,"y":900,"wires":[]},{"id":"8c2223ed.6c0ac8","type":"api-call-service","z":"af00be25.d4686","name":"Bedroom Alert On","server":"ae531ce.a39906","version":3,"debugenabled":false,"service_domain":"input_boolean","service":"turn_on","entityId":"input_boolean.bedroom_alert","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":2010,"y":80,"wires":[[]]},{"id":"e0bbd851.a46a78","type":"stoptimer","z":"af00be25.d4686","duration":"5","units":"Second","payloadtype":"num","payloadval":"0","name":"","x":1740,"y":20,"wires":[["35beaa48.8e51fe"],[]]},{"id":"5962d6f8.4c6978","type":"stoptimer","z":"af00be25.d4686","duration":"60","units":"Second","payloadtype":"num","payloadval":"0","name":"","x":1810,"y":140,"wires":[["50db5ffb.b5f298"],[]]},{"id":"50db5ffb.b5f298","type":"api-call-service","z":"af00be25.d4686","name":"Bedroom Alert Off","server":"ae531ce.a39906","version":3,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.bedroom_alert","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":2030,"y":140,"wires":[[]]},{"id":"71e556e9.54b418","type":"debug","z":"af00be25.d4686","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":350,"y":120,"wires":[]},{"id":"1ec90bb1.4aee3c","type":"stoptimer","z":"af00be25.d4686","duration":"2","units":"Second","payloadtype":"num","payloadval":"0","name":"","x":140,"y":180,"wires":[["72dfcae5.1e8694"],[]]},{"id":"387b2f87.63aa38","type":"delay","z":"af00be25.d4686","name":"Limit","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"3","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":1390,"y":320,"wires":[["7157262f.3a26e8","7af67eab.aab1e"]]},{"id":"51b6fc3d.3528ac","type":"delay","z":"af00be25.d4686","name":"Limit","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"3","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":1410,"y":80,"wires":[["e4069d42.deece"]]},{"id":"d5c42902.9f5758","type":"delay","z":"af00be25.d4686","name":"Limit","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"6","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":1390,"y":380,"wires":[["7af67eab.aab1e"]]},{"id":"62713381.b49954","type":"delay","z":"af00be25.d4686","name":"Limit","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"3","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":1490,"y":20,"wires":[["e0bbd851.a46a78","223d2b7f.2d576c","5962d6f8.4c6978","8c2223ed.6c0ac8"]]},{"id":"ae531ce.a39906","type":"server","name":"Home Assistant","version":1,"legacy":false,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
This is awesome btw! I am going to use your NR flow. Curious what you are using the Bedroom Alert for. Can you explain?
The bedroom alert is an input boolean I made with an automation that turns off do not disturb on the Alexa in the bedroom and sets its volume to 10 when the āswitchā is turned on. Turning it off sets volume back to 5 and turns do not disturb back on.
I have other automations beside weather that can trigger it but you can probably do call service nodes right in Node red to do the same thing using Alexa Media Player entities. Hereās the automations I have for it in Home Assistant though
alias: Bedroom alert on
description: ''
trigger:
- platform: state
entity_id: input_boolean.bedroom_alert
to: 'on'
condition: []
action:
- service: switch.turn_off
data: {}
entity_id: switch.bedroom_do_not_disturb_switch
- service: media_player.volume_set
data:
volume_level: 1
entity_id: media_player.bedroom
mode: single
And off
alias: Bedroom alert off
description: ''
trigger:
- platform: state
entity_id: input_boolean.bedroom_alert
to: 'off'
condition: []
action:
- service: media_player.volume_set
data:
volume_level: 0.5
entity_id: media_player.bedroom
- service: switch.turn_on
data: {}
entity_id: switch.bedroom_do_not_disturb_switch
mode: single
It seems youāve already got it working the way you want but just as an FYI, I have the code examples I use for differentiating alerts in the repo at github.
@finity
Finally, I was able to capture the data. I do still get test alerts.
Unfortunately the āThis is a Testā is buried in the description. For test the type is āAlertAlertā
attribution: Data provided by Weather.gov
title: Tsunami Warning - Tsunami Warning
event_id: >-
https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.71d7d0751a32f5aaaf1f8459b0400eed5df86808.001.1-https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.1fa001cb9ac3633f7dea41e5f4847966f7a7a14e.001.1
message_type: AlertAlert
display_desc: |-
>
Headline: Tsunami Warning
Message Type: Alert
Severity: Extreme
Certainty: Likely
Description: PZZ530-AKZ017>029-135-131-125-121-171-181-185-187-191-195-
BCZ130-230-250-260-280-160-142-141-150-121-122-220-210-922-
912-921-911-110-WAZ503-506>511-001-514>517-021-ORZ001-002-
021-022-CAZ039>043-087-034-035-530-006-506-508-509-529-505-
002-001-549-550-151717-
/T.NEW.PAAQ.TS.W.9013.210715T1617Z-210715T1717Z/
Alaska, British Columbia, Washington, Oregon and California
coastal areas
...THIS_MESSAGE_IS_FOR_TEST_PURPOSES_ONLY...
...THIS IS A TEST TO DETERMINE TRANSMISSION TIMES INVOLVED IN THE
DISSEMINATION OF TSUNAMI INFORMATION...
RESPONSES ARE REQUIRED FROM
---------------------------
* All Coastal Weather Forecast Offices in Alaska, Washington,
Oregon and California
* USAF 11th Rescue Coordination Center at Elmendorf AFB
* California, Oregon, Washington and Alaska State Warning Points
* Emergency Management British Columbia
* The Pacific Storm Prediction Centre in British Columbia
* Joint Typhoon Warning Center in Hawaii
* U.S. Coast Guard 11th, 13th, 17th District Offices
* U.S. Coast Guard Kodiak COMMSTA and CAMSPAC Point Reyes, CA
* Canadian Coast Guard MCTS COMOX and/or Victoria
* FAA Regional Operations Center in Seattle
* All Pacific Coast Tsunamiready Community Warning Points.
RESPONSES SHOULD INCLUDE
------------------------
* Time-of-receipt
* Agency name
* Email address
* Phone number
Weather Service Offices should respond in accordance with local
directives. All others should reply by one of the available methods
below.
SEND RESPONSE BY
----------------
* Web - ntwc.arh.noaa.gov/commtest/index.html
* Email address - [email protected]
* AFTN address - PAAQYQYX
* AWIPS - TMA
* Fax - 907-745-6071
...THIS_MESSAGE_IS_FOR_TEST_PURPOSES_ONLY...
...THIS IS A TEST TO DETERMINE TRANSMISSION TIMES INVOLVED IN THE
DISSEMINATION OF TSUNAMI INFORMATION...
Instruction:
-
>
Headline: Tsunami Warning
Message Type: Alert
Severity: Extreme
Certainty: Likely
Description: PZZ530-AKZ017>029-135-131-125-121-171-181-185-187-191-195-
BCZ130-230-250-260-280-160-142-141-150-121-122-220-210-922-
912-921-911-110-WAZ503-506>511-001-514>517-021-ORZ001-002-
021-022-CAZ039>043-087-034-035-530-006-506-508-509-529-505-
002-001-549-550-151717-
/T.NEW.PAAQ.TS.W.9013.210715T1617Z-210715T1717Z/
Alaska, British Columbia, Washington, Oregon and California
coastal areas
...THIS_MESSAGE_IS_FOR_TEST_PURPOSES_ONLY...
...THIS IS A TEST TO DETERMINE TRANSMISSION TIMES INVOLVED IN THE
DISSEMINATION OF TSUNAMI INFORMATION...
RESPONSES ARE REQUIRED FROM
---------------------------
* All Coastal Weather Forecast Offices in Alaska, Washington,
Oregon and California
* USAF 11th Rescue Coordination Center at Elmendorf AFB
* California, Oregon, Washington and Alaska State Warning Points
* Emergency Management British Columbia
* The Pacific Storm Prediction Centre in British Columbia
* Joint Typhoon Warning Center in Hawaii
* U.S. Coast Guard 11th, 13th, 17th District Offices
* U.S. Coast Guard Kodiak COMMSTA and CAMSPAC Point Reyes, CA
* Canadian Coast Guard MCTS COMOX and/or Victoria
* FAA Regional Operations Center in Seattle
* All Pacific Coast Tsunamiready Community Warning Points.
RESPONSES SHOULD INCLUDE
------------------------
* Time-of-receipt
* Agency name
* Email address
* Phone number
Weather Service Offices should respond in accordance with local
Instruction:
spoken_desc: |-
Tsunami Warning
-
Tsunami Warning
friendly_name: NWS Alerts
icon: mdi:alert
So you have everything you need to filter out those messages now?
is it working as expected?
I donāt know yet. I donāt think so since the NWS is not putting ātestā as the type. I think āalertā is used for everything. As for it working as expectedā¦If they canāt follow their own directions, it makes it harder for us to get the correct info. The integration works, unfortunately the NWS is not designating tests as ātestā.
I did see a post above about using a (not) condition to see if a string of text is present (263ish); I will give that a try and probably an automation that specifically activates for tests, just so I can positively know that the other automation is filtering out tests.
I will give this a try, this text was in my test message.
- condition: template
value_template: "{{ ('THIS_MESSAGE_IS_FOR_TEST_PURPOSES_ONLY' not in (state_attr('sensor.nws_alerts','display_desc').split('\n\n-\n\n')[0])) }}"
I think this is a bug as the types should be a list
of type per message. Since you have 2 alerts you get āAlertAlertā.
Sometimes I get āAlertAlertUpdateAlertā.
Example:
attribution: Data provided by Weather.gov
title: Flash Flood Watch - Air Quality Alert
event_id: >-
https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.2831dbbf0711d578361a151db422e686e328df83.001.1-https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.4db951ea52e2897684be9bb16092e6ecd99655f0.001.1
message_type: UpdateAlert
display_desc: >-
>
Headline: FLASH FLOOD WATCH REMAINS IN EFFECT THROUGH THIS EVENING
Message Type: Update
Severity: Severe
Certainty: Possible
Description: The Flash Flood Watch continues for
* A portion of south central Arizona, including the following areas,
Apache Junction/Gold Canyon, Dripping Springs, Globe/Miami,
Mazatzal Mountains, New River Mesa, Pinal/Superstition Mountains,
Rio Verde/Salt River, San Carlos, Southeast Gila County, Superior
and Tonto Basin.
* Through this evening.
* The potential for heavy rain continues, including many of the burn
scar areas.
Instruction: You should monitor later forecasts and be prepared to take action
should Flash Flood Warnings be issued.
-
>
Headline: OZONE HIGH POLLUTION ADVISORY FOR MARICOPA COUNTY INCLUDING THE
GREATER PHOENIX AREA FRIDAY
Message Type: Alert
Severity: Unknown
Certainty: Unknown
Description: The Arizona Department of Environmental Quality in Phoenix has
issued
an Ozone High Pollution Advisory for the Greater Phoenix Area for
Friday.
This means that forecast weather conditions combined with existing
ozone levels are expected to result in local maximum 8-hour ozone
concentrations that pose a health risk. Adverse health effects
increase as air quality deteriorates.
Ozone is an air contaminant which can cause breathing difficulties
for children, older adults, as well as persons with respiratory
problems. A decrease in physical activity is recommended.
If it is a regularly scheduled work day, you are urged to car pool,
telecommute or use mass transit.
The use of gasoline-powered equipment should be reduced or done late
in the day.
For details on this High Pollution Advisory for Maricopa County,
visit the ADEQ internet site at www.azdeq.gov/forecasting or call 602-
771-2300.
Instruction:
spoken_desc: >-
FLASH FLOOD WATCH REMAINS IN EFFECT THROUGH THIS EVENING
-
OZONE HIGH POLLUTION ADVISORY FOR MARICOPA COUNTY INCLUDING THE GREATER
PHOENIX AREA FRIDAY
friendly_name: NWS Alerts
icon: mdi:alert
A bug in the integration or a bug at the NWS?
Iām not 100% sure, might just be a formatting bug, nothing major.
EDIT: after reviewing the code, looks like youāre adding the type:
Likely better to make mesage_type
a list instead.
Yeah, I see that now. Thanks.
Iāll get that fixed.
It shows up correctly in the display description.
I just replied to your issueā¦
Before you make changes, you might want to review my PR
So, @GlennHA and @firstof9 I have a question and would like advice.
Right now each attribute content is just a string generally separated by a dash for each of the multiple alerts.
Should I change those contents to be real list data types to make the data extraction/filtering easier in the future or should I leave them as they are (but fixing the message_type formatting)?
If I change things then it will be a breaking change for anyone using the existing format to extract data from the entity attributes (including me).
Is it worth it to maybe make the templating a little cleaner (eliminating the need for any āsplit()ā function)?
I think most people who are using this are also likely using the examples I give in my repo for extracting data using split() and Iām not sure it would really benefit anyone to make the switch.
Iām not planning on changing the display description or spoken description since itās fairly well formatted for readability as it is.
here is the way it will look with 4 alerts ( I cut off the rest of the display description for ease of readingā¦):
attribution: Data provided by Weather.gov
title: Flood Warning - Flood Warning - Flood Warning - Flood Warning
event_id: https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.e0a8f1875d4c3d3cb672a8e0f94f91daf5dee704.005.1 - https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.e0a8f1875d4c3d3cb672a8e0f94f91daf5dee704.004.1 - https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.e0a8f1875d4c3d3cb672a8e0f94f91daf5dee704.001.1 - https://api.weather.gov/alerts/urn:oid:2.49.0.1.840.0.e0a8f1875d4c3d3cb672a8e0f94f91daf5dee704.002.1
message_type: Update - Update - Update - Update
display_desc:
>
Headline: The Flood Warning remains in effect
Status: Actual
Message Type: Update
Severity: Severe
...
...
Iāll make the changes to the list style and once Iām done iāll post examples thenā¦
And Glenn you should see I added the āstatus:ā to the description to hopefully resolve your filtering issue.
let me know what you think.
EDIT:
I was just typing up the above before your last post and I would still like to put this out there.
Iāll look at your PR to se what you recommended there.
The -
is fine by me, much easier to do a split on, and then you can do a lookup on it to see if the associated title/message is an update
or new alert