Official SkywarnPlus Release Announcement

Logo_SWP

Word has already been out, but here is my “official” statement. My latest creation SkywarnPlus is a next-gen alerting system for Asterisk/app_rpt nodes, and it is available for the world to use. It utilizes the latest NWS API and features several upgrades over the weather alert scripts we are all used to. There is far too much to try and explain here, so please head over to the Github page and check it out!

https://github.com/Mason10198/SkywarnPlus

SkywarnPlus IS brand new, so please be patient if you encounter any bugs. All great things take time. Follow the README in detail, and open an issue on Github if you still need help.

-N5LSN

2 Likes

Received this Alert log entry ERROR today here in SW Florida:

2024-07-30 13:40:03,013 INFO Added: Tsunami warning for [Charlotte, Hendry, Lee, Collier]
2024-07-30 13:40:03,114 ERROR sayAlert: Alert not found: Tsunami warning
2024-07-30 13:40:03,186 INFO Broadcasting alert on node 29767

FYI. How do we fix this?
Paul / KN2R

Interesting, it seems that you have discovered an instance in which the NWS published an alert to their API that does not adhere to their own API and data specifications. The alert should be titled Tsunami Warning, not Tsunami warning (“Warning” must be capitalized). The list of all possible alert types can be found directly at the NWS API endpoint at the following URL: https://api.weather.gov/alerts/types

If you scroll down in this list you will find Tsunami Warning (“Warning” is capitalized).

Just to show your issue with debug output, I ran two tests -

Manually injecting a Tsunami Warning (no issues):

2024-07-31 08:22:13,680 DEBUG getAlerts: Current time: 2024-07-31 12:22:13.680183+00:00
2024-07-31 08:22:13,681 DEBUG getAlerts: DEV Alert Injection Enabled
2024-07-31 08:22:13,681 DEBUG getAlerts: Injecting alerts: [{'Title': 'Tsunami Warning'}]
2024-07-31 08:22:15,724 INFO Added: Tsunami Warning for [Saline]
2024-07-31 08:22:15,744 DEBUG sayAlert: Added Tsunami Warning (SWP_115.wav) to alert sound
2024-07-31 08:22:15,745 DEBUG sayAlert: Exporting alert sound to /tmp/SkywarnPlus/alert.wav
2024-07-31 08:22:15,753 INFO Broadcasting alert on node 1998
2024-07-31 08:22:31,285 DEBUG buildTailMessage: Added Tsunami Warning (SWP_115.wav) to tailmessage
2024-07-31 08:22:31,286 INFO Built new tailmessage
2024-07-31 08:22:31,287 DEBUG buildTailMessage: Exporting tailmessage to /tmp/SkywarnPlus/wx-tail.wav

and manually injecting a Tsunami warning (unable to match the alert string to a .WAV)

2024-07-31 08:22:46,950 DEBUG getAlerts: Current time: 2024-07-31 12:22:46.950866+00:00
2024-07-31 08:22:46,951 DEBUG getAlerts: DEV Alert Injection Enabled
2024-07-31 08:22:46,951 DEBUG getAlerts: Injecting alerts: [{'Title': 'Tsunami warning'}]
2024-07-31 08:22:48,837 INFO Added: Tsunami warning for [Saline]
2024-07-31 08:22:48,851 ERROR sayAlert: Alert not found: Tsunami warning
2024-07-31 08:22:48,852 DEBUG sayAlert: All alerts were blocked, not broadcasting any alerts.
2024-07-31 08:22:48,854 ERROR Alert not found: Tsunami warning
2024-07-31 08:22:48,854 INFO Built new tailmessage
2024-07-31 08:22:48,855 DEBUG buildTailMessage: Exporting tailmessage to /tmp/SkywarnPlus/wx-tail.wav

I would hope that this is a very rare occurrence, although I will still add some error handling to my to-do list for SkywarnPlus - eg accept alert tiles in a case-insensitive manner.

Thank you for the report, Paul.

FYI: Here is another sayAlert log ERROR received recently:

2024-08-02 11:20:05,196 INFO Added: Tropical Cyclone Statement for [Collier, Hendry]
2024-08-02 11:20:05,286 ERROR sayAlert: Alert not found: Tropical Cyclone Statement
2024-08-02 11:20:05,401 INFO Broadcasting alert on node 29767

Paul / KN2R
SW Florida

Tropical Cyclone Statement is not registered as a possible event type in the NWS API system. SkywarnPlus is only able to support the alert types that the NWS has published at https://api.weather.gov/alerts/types

Ok. I’ll try making them locally.

I personally find it very odd that there are unpublished alert types being pushed over the API. It seems that the API specification is much less strict than I thought.

Regardless, it is impossible to pre-record audio files for alerts that have not been published in the list of possible alert types, therefore SkywarnPlus does not support them.

This has never been an issue before, and I was not even aware it was a possibility for alerts to appear on the API that were not listed in list of alert types until you posted here.

Perhaps in the future, SkywarnPlus can attempt to quickly generate text-to-speech audio in the rare case that it encounters an alert that is not officially listed as a possible alert type (no pre-recorded audio file in library)

I’ve developed a general purpose text-to-speech process for having ASL speak random things. It’s EARLY BETA right now but it’s available in the beta package channel: GitHub - AllStarLink/asl3-tts: AllStarLink text to speech system

Howdy,

I tried this out. Pretty slick. That TTS isn’t half bad either. Only thing is, I had to fix the environment variable that points to the voices directory. It was set as /var/lib/piper-tts when the voices appear to be installed in /usr/lib/piper-tts/voices instead. Once I made that change in the script, it was great :slight_smile:

Anyway, cloned the repository and ran the make install. There wasn’t a Debian package for it in the beta channel, was there?

I’ve been playing with Piper for a little while in other projects. Cool to see it integrated like this.
I know this would probably require a massive amount of work and overhead, but I would really love to see an option to replace the standard Allison files with single utterance output from a Piper voice.
Instead, of, each, word, being, spoken, very, slowly, it would be great to just have a stream. It would also allow for such things as on-the-fly call sign speaking without using static files, including those calls that aren’t actually calls, like fireside or blind, for example.
I can think of lots of ways this could potentially break, but if incorporated properly, this could make telemetry a lot nicer to listen to.
One could also script something to manually replace all the relevant sound files as well, of course. I did that years ago using the Apple Fred voice at a very high rate of speed with trimmed samples. I am a screen reader user, so I am used to very fast speech. I wouldn’t put this on a wide area repeater, but for my own usage, it’s great. About 3.5 times faster than Allison.

I sent an email to the NWS API developers. Beginning in October, the Tropical Cyclone Statement problem should be resolved.

He said: “* Tropical Cyclone Local Statement - “Hurricane Local Statement” will be
updated to “Tropical Cyclone Local Statement” to reflect that it includes
all tropical cyclone types.

This change in Oct should make this wording consistent across all our applications.

This is being handled under Service Change Notice 24-75

I could not get him to acknowledge that their current list is broken, the exchange of emails indicate that this should be addressed with the October change.

Danny/KB4MDD

1 Like

Having some trouble with they new version working on my node I had it working right as ASL3 droped and for a few weeks after then I creaded a new node and Skywarn got updated to the current version and i can not make it transmit on my node even with the test function any help woub be appreciated.
Update I can make it run by the running Sudo python3 SkywarnPlus.py in the /usr/local/bin/SkywarnPlus folder so i think it a permission issue but not sure what?

The Pittsburgh NWS issued a Cold Weather Advisory today 1-20-25, that wasn’t on the list at https://api.weather.gov/alerts/types, I asked them about it and received this reply: It appears that the API alert list hasn’t been updated to include “Cold Weather Advisory” (a change that just started this winter season). We will work to get that list updated with correct information. Thank you for bringing it to our attention!
Mike NV3C