Davis Weather Station Cron Script.
 
<br />
 
V1.1
 
<br />
 
Writen By Leigh Edwards 2011
 
<br />
 
<?php
 
// this script requires a my SQL database object
 
// use a version of class.mysql > 1.2
 
require_once ('class.mysql.v.1.55.php');
 
$sqlObj = new mysql ();
 
$sqlObj->connect ( '<HOST NAME>', '<USER NAME>', '<PASSWORD>' );
 
$sqlObj->select ( '<DB NAME>' );
 
require_once ('class.davis.php');
 
 
foreach ( davis::getAllStations () as $stationObj ) {
 
    $connection = new davis ( $stationObj->stationIP, $stationObj->stationPort );
 
    if ($connection->connect () == 0) { // Make connection counter intuative, but if connection === 0 then we are good to go
 
        if ($connection->doCommand ( WAKE, 1 )) { // wake the console
 
            $goodData = false;
 
            $tries = 0;
 
            // loop until we get good data from the station or max attempts is reached.
 
            while ( ! $goodData || $tries <= $connection->tries ) {
 
                $goodData = $connection->loopToArray ( $connection->doCommand ( "LOOP 1", 3 ) ); // process the data and put it in the output array
 
                $tries ++;
 
            }
 
            if ($goodData) {
 
                if (davis::saveDataArray ( $stationObj->stationID, $connection->dataArray )) {
 
                    echo "<p>Data array saved for station" . $stationObj->stationID . "</p>";
 
                } else {
 
                    echo "<p>Unable to save data array for station : " . $stationObj->stationID . "</p>";
 
                }
 
            } else {
 
                echo "<p>Unable to collect valid data from station : " . $stationObj->stationID ."</p>";
 
            }
 
        } else {
 
            echo "<p>Unable to wake station.</p>";
 
        }
 
        $connection->disconnect ();
 
    } else {
 
        echo "<p>Unable to make connection to Weather Station at " . $stationObj->stationIP . "</p>";
 
    }
 
}
 
?>
 
 
 |