Thanks for the useful integration option! I’ve never liked any of the apps for Android to inform me of severe weather events, so I always wanted to set something like this up myself. I’ve taken your utility and incorporated it into node red, which I don’t see having been done just yet in this thread. Feel free to build upon/change my flow as needed.
The flow has a switch to enable only certain weather alerts from sending out, in addition to preventing duplicate alerts from being sent. Since all testing for this really needs to be done during an actual weather alert, I haven’t been able to fully test everything (I don’t know the exact verbiage to expect for instance, though I figure it’s pretty self explanatory).
I also included a cast node for Google Home devices, but since I don’t have an Alexa device I don’t know how to set it up for those.
[{"id":"f2706b35.4906e","type":"ha-get-entities","z":"f1e1b905.e9a56","server":"497693ef.d5e6bc","name":"Retrieve Weather Alert","rules":[{"property":"entity_id","logic":"is","value":"sensor.nws_alerts","valueType":"str"},{"property":"state","logic":"is_not","value":"0","valueType":"str"}],"output_type":"array","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":230,"y":980,"wires":[["ff9a7aa4.34c04"]]},{"id":"da43a5e8.36b758","type":"api-call-service","z":"f1e1b905.e9a56","name":"Send Notification","server":"497693ef.d5e6bc","version":1,"debugenabled":false,"service_domain":"notify","service":"mobile_app_yourdevicehere","entityId":"","data":"{\"title\":\"Severe Weather Event\",\"message\":\"{{payload}}\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1590,"y":827,"wires":[[]]},{"id":"80424c86.40dbe8","type":"server-state-changed","z":"f1e1b905.e9a56","name":"Is there a severe weather event?","server":"497693ef.d5e6bc","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.nws_alerts","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"0","halt_if_type":"str","halt_if_compare":"is_not","outputs":2,"output_only_on_state_change":true,"x":170,"y":908,"wires":[["f2706b35.4906e"],[]]},{"id":"b2a217d7.20bd7","type":"template","z":"f1e1b905.e9a56","name":"Format Weather Alert Description ","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"The National Weather Service has issued a ({{payload.0.attributes.title}}) for your area. {{payload.0.attributes.spoken_desc}}","output":"str","x":1000,"y":827,"wires":[["88a10452.43207"]]},{"id":"88a10452.43207","type":"rbe","z":"f1e1b905.e9a56","name":"Does value match previous value?","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1320,"y":827,"wires":[["da43a5e8.36b758"]]},{"id":"e913d18a.d31ed8","type":"switch","z":"f1e1b905.e9a56","name":"Type of alert","property":"payload","propertyType":"msg","rules":[{"t":"neq","v":"","vt":"str"},{"t":"cont","v":"Watch","vt":"str"},{"t":"cont","v":"Warning","vt":"str"},{"t":"cont","v":"Tornado Warning","vt":"str"},{"t":"cont","v":"Advisory","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":450,"y":927,"wires":[["c930075.26fa078","a237bab7.efb9f"],["c930075.26fa078"],["693351d.de90c3"],["bdc154a2.f604b"],[]],"outputLabels":["Export all alerts","Export only \"Watch\"","Export only \"Warning\"","Export only \"Tornado Warning\"","Export only \"Advisory\""]},{"id":"8839a3cb.b313f8","type":"template","z":"f1e1b905.e9a56","name":"Format Weather Alert Description ","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"The National Weather Service has issued a ({{payload.0.attributes.title}}) for your area. {{payload.0.attributes.spoken_desc}}","output":"str","x":1000,"y":947,"wires":[["dd62355b.93c268"]]},{"id":"dd62355b.93c268","type":"rbe","z":"f1e1b905.e9a56","name":"Does value match previous value?","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1320,"y":947,"wires":[["9fa1242a.538a3","b3933094.a5fde8"]]},{"id":"3a54bcd4.937aa4","type":"template","z":"f1e1b905.e9a56","name":"Format Weather Alert Description ","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"The National Weather Service has issued a ({{payload.0.attributes.title}}) for your area. {{payload.0.attributes.spoken_desc}}","output":"str","x":1000,"y":1007,"wires":[["419ac4dc.743ed4"]]},{"id":"419ac4dc.743ed4","type":"rbe","z":"f1e1b905.e9a56","name":"Does value match previous value?","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1320,"y":1007,"wires":[["790322e4.9f383c"]]},{"id":"9fa1242a.538a3","type":"cast-to-client","z":"f1e1b905.e9a56","name":"Cast alert to speaker","url":"","contentType":"","message":"","language":"en","ip":"Your IP Here","port":"","volume":"40","x":1609,"y":947,"wires":[[]]},{"id":"b3933094.a5fde8","type":"api-call-service","z":"f1e1b905.e9a56","name":"Send Notification","server":"497693ef.d5e6bc","version":1,"debugenabled":false,"service_domain":"notify","service":"mobile_app_yourdevicehere","entityId":"","data":"{\"title\":\"Severe Weather Event\",\"message\":\"{{payload}}\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1600,"y":995,"wires":[[]]},{"id":"790322e4.9f383c","type":"api-call-service","z":"f1e1b905.e9a56","name":"Send Notification","server":"497693ef.d5e6bc","version":1,"debugenabled":false,"service_domain":"notify","service":"mobile_app_yourdevicehere","entityId":"","data":"{\"title\":\"Severe Weather Event\",\"message\":\"{{payload}}\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1600,"y":1047,"wires":[[]]},{"id":"4375289e.b147b","type":"template","z":"f1e1b905.e9a56","name":"Format Full Alert","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"The National Weather Service has issued a ({{payload.0.attributes.title}}) for your area. {{payload.0.attributes.display_desc}}","output":"str","x":952,"y":887,"wires":[["6f1e33df.08619c"]]},{"id":"2533a297.75979e","type":"e-mail","z":"f1e1b905.e9a56","server":"smtp.gmail.com","port":"465","secure":true,"tls":true,"name":"Your Email Address Here","dname":"Send emails","x":1570,"y":887,"wires":[]},{"id":"6f1e33df.08619c","type":"rbe","z":"f1e1b905.e9a56","name":"Does value match previous value?","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":1320,"y":887,"wires":[["2533a297.75979e"]]},{"id":"ff9a7aa4.34c04","type":"template","z":"f1e1b905.e9a56","name":"Store type of alert","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{{payload.0.attributes.title}}","output":"str","x":330,"y":1040,"wires":[["e913d18a.d31ed8"]]},{"id":"a237bab7.efb9f","type":"ha-get-entities","z":"f1e1b905.e9a56","server":"497693ef.d5e6bc","name":"Retrieve Weather Alert","rules":[{"property":"entity_id","logic":"is","value":"sensor.nws_alerts","valueType":"str"},{"property":"state","logic":"is_not","value":"0","valueType":"str"}],"output_type":"array","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":710,"y":827,"wires":[["b2a217d7.20bd7"]]},{"id":"c930075.26fa078","type":"ha-get-entities","z":"f1e1b905.e9a56","server":"497693ef.d5e6bc","name":"Retrieve Weather Alert","rules":[{"property":"entity_id","logic":"is","value":"sensor.nws_alerts","valueType":"str"},{"property":"state","logic":"is_not","value":"0","valueType":"str"}],"output_type":"array","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":710,"y":887,"wires":[["4375289e.b147b"]]},{"id":"693351d.de90c3","type":"ha-get-entities","z":"f1e1b905.e9a56","server":"497693ef.d5e6bc","name":"Retrieve Weather Alert","rules":[{"property":"entity_id","logic":"is","value":"sensor.nws_alerts","valueType":"str"},{"property":"state","logic":"is_not","value":"0","valueType":"str"}],"output_type":"array","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":710,"y":947,"wires":[["8839a3cb.b313f8"]]},{"id":"bdc154a2.f604b","type":"ha-get-entities","z":"f1e1b905.e9a56","server":"497693ef.d5e6bc","name":"Retrieve Weather Alert","rules":[{"property":"entity_id","logic":"is","value":"sensor.nws_alerts","valueType":"str"},{"property":"state","logic":"is_not","value":"0","valueType":"str"}],"output_type":"array","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":710,"y":1007,"wires":[["3a54bcd4.937aa4"]]},{"id":"d8441dfd.276d38","type":"cast-to-client","z":"f1e1b905.e9a56","name":"Cast alert to speaker","url":"","contentType":"","message":"","language":"en","ip":"Your IP Here","port":"","volume":"40","x":1610,"y":1096,"wires":[[]]},{"id":"497693ef.d5e6bc","type":"server","z":"","name":"Home Assistant"}]
EDIT 07/22/2020: Found an issue with the flow where the switch would only export the first value. Updated the flow, everything should work now.