NWS Public Alert Messenger PHP Script

NWS Public Alert Messenger PHP Script
(old title) NOAA Top Weather Advisory Alerter PHP Script by Mike Challis

Version: 1.16 - 28-Oct-2009 - NWS recently added County codes in addition to Zone codes.
Changed code to allow Zone or County codes.

Version: 1.15 - 09-Sep-2009 - Added setting
// normally when the Advisory is canceled or expires, and the cache is updated,
// it sends out email/text alert stating “There are no active watches, warnings or advisories”.
// disable this?
$disable_expired_message = false; // change to true to disable alert ended alert

Version: 1.14 - 02-Sep-2009 - Fixed zone name twice in alert message, and more improved top alert selection.

Version: 1.13 - 01-Sep-2009 - Fixed error when Air Quality Alert, improved top alert selection.
If it cannot figure out which alert is the top most alert, it will select the 1st one.

Version: 1.12 - 31-Aug-2009 - If you have one of the rss-asvisory.php or rss-top-warning.php script that is pre version 2.00
the cache file could conflict with the other script.
If this condition is detected, the script will output: “Advisory Information Unavailable, cache file conflict, view source for details.”
If you view the source you will see more details about the cause and how you can fix it (upgrade your other scripts to 2.00 or higher, or rename the $cacheName setting to something other than rss-advisory.txt).

Version: 2.00 - 13-Jun-2010 - added OAuth/Twitter authentication (TweetWX642) because user/password authentication is being disallowed after June 30th, 2010 (Thanks to Joe Chung and Ken True for providing the auth code)

Version: 2.10 - 15-Mar-2010 - Updated weather.gov feed URL
(new title)NWS Public Alert Messenger PHP Script by Mike Challis
(old title)NOAA Top Weather Advisory Alerter PHP Script by Mike Challis

Partially based on a variation of the following scripts:
RSS Top Warning PHP Script by Ken True http://saratoga-weather.org/scripts.php
PHP NOAA Advisory Text by Tom Chaplin http://www.carterlake.org/weatherphp.php
warnscroll.php by Jim McMurry - http://jcweather.us
Twitter Code from http://morethanseven.net/2007/01/20/posting-to-twitter-using-php/

What does it do?
Ever want to receive severe weather alerts by cell phone, blackberry, Twitter, or email? now you can.
This PHP script checks the NOAA RSS Weather Alert feeds on a timed schedule, then messages you if an alert status changes in the zone you have set.
The alert message is short enough to send to a cell phone, blackberry, or email.
Twitter is also optionally supported. Supports sending messages by email and Twitter.

Includes most of the features of the NOAA RSS Top Warning 2009 PHP Script
http://discourse.weather-watch.com/t/40859

What do I need?
PHP 5 is required
… Web server hosting account with PHP support and ability to send emails from PHP
… Ability to schedule a cron job or a scheduler program on your PC that can request a URL every 15 minutes.
… your PHP server must allow PHP scripts permission to write files. safe_mode is recommended to be off

How to use it:

  1. Set your settings in the “settings” section in the script
    Be sure to set the NOAA zone and your email address.
    Set all the settings for Email and Twitter, each method can be enabled or disabled.

  2. Upload the php file to your web server

  3. Test from a URL, see if you can see the output
    Example: http://www.yoursite.com/rss-weather-alerter.php

see readme.txt for more info

Download:
www.642weather.com/weather/scripts/noaa-top-weather-alerter.zip

Live Demo :
www.642weather.com/weather/rss-weather-alerter.php

It works like the NOAA RSS Top Warning 2009 PHP Script
http://discourse.weather-watch.com/t/40859

If there are multiple alerts, it will send you the one it thinks is most urgent.
Once it has an active alert it saves it in a cache file. Your script should run every 10 minutes on a schedule.
Every time the script runs it checks the cache file for the current alert status.
If the alert status changes again, to another warning or to no warning, then it will send another alert message indicating what it changed to.

You can have it email you.
You can have it auto post to Twitter.
You can email and twitter at the same time.

I have mine email my cell phone a text message.

I do not use Twitter yet. Can someone try it and tell me if the Twitter feature works?
Thanks, it works :smiley:

http://www.twitter.com/cnyweather

The tiny URL went to your scripts. correct mike?

EDIT: my bad. didn’t realize I could fix it. All set now.

Can you add multiple email addresses you think??

// be sure to set zone= to your actual zone
$Zone = 'NYZ037';

// email address to receive the messages
$email_address = '[email protected]';

THANKS MIKE!! 8)

Yes you can send to multiple emails, both methods are acceptable

// email address to receive the messages
// Yes you can send to multiple emails, both methods are acceptable
// $email_address = '[email protected], [email protected]';
$email_address = '[email protected]';

I did find one small bug. (the twitter message did not have the zone title)

You could download the fix…
Version: 1.01 - 08-Jul-2009 - fix for adding zone name to the Alert message

Version: 1.02 - 08-Jul-2009 - added global user agent string for outbound connections

Trying to add facebook, but the curl api I am using does not work :x
They no longer allow the CURL method.
I think I have found a way to update facebook status from the twitter tweet.
http://apps.facebook.com/selectivetwitter/
I need to investigate this more.

Did I mention… I do not use facebook or twitter yet? :lol:

Version: 1.03 - 09-Jul-2009 - added feature to customize the email subject and message

  • improved web page details that are displayed.

Cool

Thank you
Mark

tested it out today both of them, Will be getting those online tonight sometime!

Version: 1.04 - 10-Jul-2009 - more improvements to web page details that are displayed.

Thanks for all the hard work mike!

Version: 1.05 - 10-Jul-2009 - fixed bug where the email message had the zone title added twice.

Dumb question Mike. Possible to only alert to certain things?

I seem to get a ton of Short Term Forecast and would like warnings/watches
to show only if possible

OK, try this new version and let me know if it works.

Version: 1.06 - 10-Jul-2009 - added feature, new setting:
// some areas get too many Short Term Forecast and would like warnings/watches alerts only
$ignore_forecasts = false; // change to true to ignore “Short Term Forecast” alerts

Beer’s on me Mike. Installing it now. Thank You!

Great App… Works like a charm Thanks Mike =D>

Have mine all installed both of them. But had to put into a seperate directory and let the owner be the only one able to read write and execute the files. So now if i type in the directory name those files are in comes up 403 error also had to place a seperate copy of the rss-top-warning-2009 in there also. as it would not allow writing to the directory when pulling from another. So now waiting for the 15 mins to run and see if the cron runs it, have to wait 6 hours for the other.

My scripts run in the same directory on my server, no problem.
Some servers are setup to be very strict about file permissions.

Some users have file permissions problems with the cache files:
Here are some tips:
(Do this only if you are having file permissions errors!)
Create the file in Notepad or similar text editor. The file can be empty.
adv-alert-email-XXXXX.txt (substitute XXXXX for your NOAA zone code in UPPER CASE)
rss-advisory-XXXXX.txt
Upload it to your server and CHMOD it to 666
You may continue to have problems if your server has “safe_mode on” or other restrictions on file create, file write functions.
In that case, find out if you can use your own php.ini to change PHP settings.
Please consult your web host tech support, or perhaps get another less restrictive web host!

nws-forecast-messenger & rss-weather-alerter work perfect with the way i had to set them, Just tested them now to make sure they where sending the data from the cron job. And sure enough the forecast was there and the weather alerter i had to set to test as there are none here now, and get my email on the phone for both.

Great job you guys do!

Dont see Special Weather Statements coming through to Advisory Alerter Mike.

I do see that in the beta feeds

http://www.weather.gov/alerts-beta/wwaatmget.php?x=NYZ037