$ws['uvMaxTodayTime'] = wdDate($wx['uvMaxTodayTime']); $ws['uvMaxYday'] = $wx['uvMaxYday'] * 1.0; $ws['uvMaxYdayTime'] = wdDate($wx['uvMaxYdayTime']); $ws['uvMaxMonth'] = $wx['uvMaxMonth'] * 1.0; $ws['uvMaxMonthTime'] = wd_ymd($wx['uvMaxMonthTime']); $ws['uvMaxYear'] = $wx['uvMaxYear'] * 1.0; $ws['uvMaxYearTime'] = wd_ymd($wx['uvMaxYearTime']); $ws['uvMaxAll'] = $wx['uvMaxAll'] * 1.0; $ws['uvMaxAllTime'] = wd_ymd($wx['uvMaxAllTime']); # ------------------------------------------ Solar -------------------- $ws['solarAct'] = $wx['solarAct'] * 1.0; $ws['solarActPerc'] = $wx['solarActPerc'] * 1.0; $ws['solarMaxToday'] = $wx['solarMaxToday'] * 1.0; $ws['solarMaxTodayTime'] = wdDate($wx['solarMaxTodayTime']); $ws['solarMaxYday'] = $wx['solarMaxYday'] * 1.0; $ws['solarMaxYdayTime'] = wdDate($wx['solarMaxYdayTime']); $ws['solarMaxMonth'] = $wx['solarMaxMonth'] * 1.0; $ws['solarMaxMonthTime'] = wd_ymd($wx['solarMaxMonthTime']); $ws['solarMaxYear'] = $wx['solarMaxYear'] * 1.0; $ws['solarMaxYearTime'] = wd_ymd($wx['solarMaxYearTime']); $ws['solarMaxAll'] = $wx['solarMaxAll'] * 1.0; $ws['solarMaxAllTime'] = wd_ymd($wx['solarMaxAllTime']); #------------------------------------------cloudheight------------------ $from_height = trim(strtolower($wx['fromheight'])); $ws['cloudHeight'] = wsConvertDistance($wx['cloudHeight'], $from_height); # ------------------------------------------ forecasts ----------------- $ws['fcstTxt'] = trim(str_replace('_', ' ', $wx['fcstTxt'])); # ------------------------------------------ moon --------------------- $ws['moonrise'] = $wx['moonrise']; $ws['moonset'] = $wx['moonset']; $ws['lunarPhasePerc'] = $wx['lunarPhasePerc'] * 1.0;
if (isset($xml->leaf_wetness_4)) { $string = (string) $xml->leaf_wetness_4; } elseif (isset($davis->leaf_wetness_4)) { $string = (string) $davis->leaf_wetness_4; } else { $string = (string) $xml->leaf_wetness_4_day_high; } $ws['leafWetAct'][$n] = $string; $ws['leafWetMaxToday'][$n] = (string) $xml->leaf_wetness_4_day_high; $ws['leafWetMaxMonth'][$n] = (string) $xml->leaf_wetness_4_month_high; $ws['leafWetMaxYear'][$n] = (string) $xml->leaf_wetness_4_year_high; $ws['leafWetMaxTodayTime'][$n] = wdDate((string) $xml->leaf_wetness_4_day_high_time); $ws['leafWetMinToday'][$n] = (string) $xml->leaf_wetness_4_day_low; $ws['leafWetMinMonth'][$n] = (string) $xml->leaf_wetness_4_month_low; $ws['leafWetMinYear'][$n] = (string) $xml->leaf_wetness_4_year_low; $ws['leafWetMinTodayTime'][$n] = wdDate((string) $xml->leaf_wetness_4_day_low_time); } #echo '<pre>'.PHP_EOL; print_r ($ws); exit; #--------------------------------------------------------------------------- # retrieve missing moon entries $skipMoonPage = true; include $SITE['moonSet']; $skipMoonPage = false; # $ws['check_ok'] = '0.00'; # $ws['tempMinYday'] = $ws['tempMaxYday'] = $ws['dewpMinYday'] = $ws['dewpMaxYday'] = $ws['chilMinYday'] = $ws['heatMaxYday'] = ''; $ws['baroMinYday'] = $ws['baroMaxYday'] = ''; $ws['rainRateYday'] = $ws['rainYday'] = $ws['etYday'] = ''; $ws['gustMaxYday'] = ''; $ws['humiMinYday'] = $ws['humiMaxYday'] = '';
function convert_testtags() { global $ymd, $ws, $wsTrends, $SITE, $pageFile, $my_date_format; echo '<!-- module ' . $pageFile . ' loading ' . $SITE['wsTags'] . ' -->' . PHP_EOL; $ws['originated'] = 'leuven testtags.php -'; include $SITE['wsTags']; // load testtags.php if (isset($ws['actTime'])) { // it is a leuven one $ws['wsVersion'] = str_replace('---', '', $ws['wsVersion']); if (!isset($ws['tempActExtra2'])) { $ws['tempActExtra2'] = ''; } return; } # the testtags.php is a Saratoga one ! not leuven $ws['originated'] = 'saratoga testtags.php - ' . $date . ' - ' . $time; # echo '<!-- module ' . $pageFile . ' probable Saratoga testtags - converting -->' . PHP_EOL; # ob_start(); $weathercond = $weathercond; $ws['wdCurCond'] = $Currentsolardescription; $ws['wdCurIcon'] = $iconnumber; // Current icon number $ws['wdMetarCcn'] = $weatherreport; // Current weather conditions from selected METAR $ws['wdMetarCld'] = ''; // Cloud METAR label from the metargif # ------------------------------------------ units --------------------- if (!isset($uomtemp)) { $from_temp = $SITE['uomTemp']; } else { $from_temp = $uomtemp; } // = 'C', 'F', (or '�C', '�F', or '°C', '°F' ) if (!isset($uombaro)) { $from_baro = $SITE['uomBaro']; } else { $from_baro = $uombaro; } // = 'inHg', 'hPa', 'kPa', 'mb' if (!isset($uomrain)) { $from_rain = $SITE['uomRain']; } else { $from_rain = $uomrain; } // = 'mm', 'in'$from = $uomrain; if (!isset($uomwind)) { $from_wind = $SITE['uomWind']; } else { $from_wind = $uomwind; } // = 'kts','mph','kmh','km/h','m/s','Bft' if (!isset($uomdistance)) { $wdDist = $SITE['uomDistance']; } else { $wdDist = $uomdistance; } // = 'mi','km' (for windrun variables) # ------------------------------------------- date - time -------------- if (!isset($datefmt)) { $wdDatefmt = $SITE['uomDistance']; } else { $wdDatefmt = $datefmt; } // = 'd/m/y', 'm/d/y' $wdSeconds = '00'; $wdMinute = $time_minute; $wdHour = $time_hour; $wdDay = $date_day; $wdMonth = $date_month; $wdYear = $date_year; $ymd = (string) $wdYear . $wdMonth . $wdDay; // $ws['actTime'] = (string) $ymd . $wdHour . $wdMinute . $wdSeconds; // '20120523113945'; # ------------------------------------------ temperature --------------------------------- $from = $from_temp; $ws['tempMinTodayTime'] = wdDate($mintempt); $ws['tempMinYdayTime'] = wdDate($mintempyestt); $ws['tempMinMonthTime'] = wdYMD($mrecordlowtempyear, $mrecordlowtempmonth, $mrecordlowtempday); $ws['tempMinYearTime'] = wdYMD($yrecordlowtempyear, $yrecordlowtempmonth, $yrecordlowtempday); $ws['tempMaxTodayTime'] = wdDate($maxtempt); $ws['tempMaxYdayTime'] = wdDate($maxtempyestt); //yday $ws['tempMaxMonthTime'] = wdYMD($mrecordhightempyear, $mrecordhightempmonth, $mrecordhightempday); $ws['tempMaxYearTime'] = wdYMD($yrecordhightempyear, $yrecordhightempmonth, $yrecordhightempday); $ws['dewpMinTodayTime'] = wdDate($mindewt); $ws['dewpMinYdayTime'] = wdDate($mindewyestt); //yday $ws['dewpMaxTodayTime'] = wdDate($maxdewt); $ws['dewpMaxYdayTime'] = wdDate($maxdewyestt); // yday $ws['heatMaxTodayTime'] = wdDate($maxheatt); $ws['heatMaxYdayTime'] = wdDate($maxheatyestt); $ws['heatMaxMonthTime'] = wdYMD($mrecordhighheatindexyear, $mrecordhighheatindexmonth, $mrecordhighheatindexday); $ws['heatMaxYearTime'] = wdYMD($yrecordhighheatindexyear, $yrecordhighheatindexmonth, $yrecordhighheatindexday); $ws['chilMinTodayTime'] = wdDate($minwindcht); $ws['chilMinYdayTime'] = wdDate($minchillyestt); // yday $ws['chilMinMonthTime'] = wdYMD($mrecordlowchillyear, $mrecordlowchillmonth, $mrecordlowchillday); $ws['chilMinYearTime'] = wdYMD($yrecordlowchillyear, $yrecordlowchillmonth, $yrecordlowchillday); $ws['tempAct'] = wsConvertTemperature($temperature, $from); // convert and clean of units if (isset($indoortemp)) { $ws['tempActInside'] = wsConvertTemperature($indoortemp, $from); } else { $ws['tempActInside'] = ''; } if (isset($generalextratemp1)) { $ws['tempActExtra1'] = wsConvertTemperature($generalextratemp1, $from); } else { $ws['tempActExtra1'] = ''; } if (isset($generalextratemp2)) { $ws['tempActExtra2'] = wsConvertTemperature($generalextratemp2, $from); } else { $ws['tempActExtra2'] = ''; } $ws['tempDelta'] = wsConvertTemperature($tempchangehour, $from); $ws['tempToday'] = wsConvertTemperature($avtempsincemidnight, $from); $ws['tempMinToday'] = wsConvertTemperature($mintemp, $from); $ws['tempMinYday'] = wsConvertTemperature($mintempyest, $from); $ws['tempMinMonth'] = wsConvertTemperature($mrecordlowtemp, $from); $ws['tempMinYear'] = wsConvertTemperature($yrecordlowtemp, $from); $ws['tempMaxToday'] = wsConvertTemperature($maxtemp, $from); $ws['tempMaxYday'] = wsConvertTemperature($maxtempyest, $from); $ws['tempMaxMonth'] = wsConvertTemperature($mrecordhightemp, $from); $ws['tempMaxYear'] = wsConvertTemperature($yrecordhightemp, $from); $ws['dewpAct'] = wsConvertTemperature($dewpt, $from); $ws['dewpDelta'] = wsConvertTemperature($dewchangelasthour, $from); $ws['dewpMinToday'] = wsConvertTemperature($mindew, $from); $ws['dewpMinYday'] = wsConvertTemperature($mindewyest, $from); $ws['dewpMaxToday'] = wsConvertTemperature($maxdew, $from); $ws['dewpMaxYday'] = wsConvertTemperature($maxdewyest, $from); $ws['heatAct'] = wsConvertTemperature($heati, $from); $ws['heatDelta'] = 0; $ws['heatMaxToday'] = wsConvertTemperature($maxheat, $from); $ws['heatMaxYday'] = wsConvertTemperature($maxheatyest, $from); $ws['heatMaxMonth'] = wsConvertTemperature($mrecordhighheatindex, $from); $ws['heatMaxYear'] = wsConvertTemperature($yrecordhighheatindex, $from); $ws['chilAct'] = wsConvertTemperature($windch, $from); $ws['chilDelta'] = 0; $ws['chilMinToday'] = wsConvertTemperature($minwindch, $from); $ws['chilMinYday'] = wsConvertTemperature($minchillyest, $from); $ws['chilMinMonth'] = wsConvertTemperature($mrecordlowchill, $from); $ws['chilMinYear'] = wsConvertTemperature($yrecordlowchill, $from); $ws['hudxAct'] = wsConvertTemperature($humidexcelsius, 'C'); $ws['hudxDelta'] = 0; $ws['hudxMaxToday'] = wsConvertTemperature($todayhihumidex, 'C'); # ------------------------------------------ extreme temp ------------------------------ $ws['daysXHigh'] = $daysTmaxGT30C; $ws['daysHigh'] = $daysTmaxGT25C; $ws['daysLow'] = $daysTminLT0C; $ws['daysXLow'] = $daysTminLTm15C; # ------------------------------------------ pressure / baro ----------------------------- $from = $from_baro; $ws['baroMinTodayTime'] = wdDate($lowbarot); $ws['baroMinYdayTime'] = wdDate($minbaroyestt); // ytd $ws['baroMinMonthTime'] = wdYMD($mrecordlowbaroyear, $mrecordlowbaromonth, $mrecordlowbaroday); $ws['baroMinYearTime'] = wdYMD($yrecordlowbaroyear, $yrecordlowbaromonth, $yrecordlowbaroday); $ws['baroMaxTodayTime'] = wdDate($highbarot); $ws['baroMaxYdayTime'] = wdDate($maxbaroyestt); // ytd $ws['baroMaxMonthTime'] = wdYMD($mrecordhighbaroyear, $mrecordhighbaromonth, $mrecordhighbaroday); $ws['baroMaxYearTime'] = wdYMD($yrecordhighbaroyear, $yrecordhighbaromonth, $yrecordhighbaroday); $ws['baroAct'] = wsConvertBaro($baro, $from); $ws['baroDelta'] = wsConvertBaro($trend, $from); $ws['baroMinToday'] = wsConvertBaro($lowbaro, $from); $ws['baroMinYday'] = wsConvertBaro($minbaroyest, $from); $ws['baroMinMonth'] = wsConvertBaro($mrecordlowbaro, $from); $ws['baroMinYear'] = wsConvertBaro($yrecordlowbaro, $from); $ws['baroMaxToday'] = wsConvertBaro($highbaro, $from); $ws['baroMaxYday'] = wsConvertBaro($maxbaroyest, $from); $ws['baroMaxMonth'] = wsConvertBaro($mrecordhighbaro, $from); $ws['baroMaxYear'] = wsConvertBaro($yrecordhighbaro, $from); # ------------------------------------------ humidity ----------------------------------- $ws['humiMinTodayTime '] = wdDate($lowhumt); $ws['humiMinYdayTime '] = wdDate($minhumyestt); // ytd $ws['humiMaxTodayTime'] = wdDate($highhumt); $ws['humiMaxYdayTime'] = wdDate($maxhumyestt); // ytd $ws['humiAct'] = $humidity * 1.0; $ws['humiExtra'] = ''; # $generalextrahum1*1.0; $ws['humiDelta'] = $humchangelasthour * 1.0; $ws['humiMinToday'] = $lowhum * 1.0; $ws['humiMinYday'] = $minhumyest * 1.0; $ws['humiMaxToday'] = $highhum * 1.0; $ws['humiMaxYday'] = $maxhumyest * 1.0; # ------------------------------------------ rain --------------------------------------- $from = $from_rain; $ws['rainDayMnth'] = $dayswithrain; // %dayswithrain% Days with rain for the month $ws['rainDayYear'] = $dayswithrainyear; // %dayswithrainyear% Days with rain for the year $ws['rainRateAct'] = wsConvertRainfall($currentrainratehr, $from); $ws['rainRateToday'] = wsConvertRainfall($maxrainrate, $from); $ws['rainHour'] = wsConvertRainfall($hourrn, $from); $ws['rainToday'] = wsConvertRainfall($dayrn, $from); $ws['rainYday'] = wsConvertRainfall($yesterdayrain, $from); $ws['rainMonth'] = wsConvertRainfall($monthrn, $from); $ws['rainYear'] = wsConvertRainfall($yearrn, $from); $ws['rainDaysWithNo'] = $dayswithnorain; $ws['rainWeek'] = wsConvertRainfall($raincurrentweek, $from); # ------------------------------------------ EVAPOTRANSPIRATION -------------------------- $ws['etToday'] = wsConvertRainfall($VPet, $from); $ws['etYday'] = wsConvertRainfall($yesterdaydaviset, $from); $ws['etMonth'] = wsConvertRainfall($VPetmonth, $from); # ------------------------------------------ wind --------------------------------------- $from = $from_wind; $ws['windActDsc'] = $dirlabel; $ws['windBeafort'] = $beaufortnum; $ws['gustMaxTodayTime'] = wdDate($maxgstt); $ws['gustMaxYdayTime'] = wdDate($maxgustyestt); $ws['gustMaxMonthTime'] = wdYMD($mrecordhighgustyear, $mrecordhighgustmonth, $mrecordhighgustday); $ws['gustMaxYearTime'] = wdYMD($yrecordhighgustyear, $yrecordhighgustmonth, $yrecordhighgustday); $ws['windAct'] = wsConvertWindspeed($avgspd, $from); $ws['gustAct'] = wsConvertWindspeed($gstspd, $from); $ws['gustMaxHour'] = wsConvertWindspeed($maxgsthr, $from); $ws['gustMaxToday'] = wsConvertWindspeed($maxgst, $from); $ws['gustMaxYday'] = wsConvertWindspeed($maxgustyest, $from); $ws['gustMaxMonth'] = wsConvertWindspeed($mrecordwindgust, $from); $ws['gustMaxYear'] = wsConvertWindspeed($yrecordwindgust, $from); if ($ws['gustAct'] <= $ws['windAct']) { $ws['gustAct'] = $ws['windAct']; } # ------------------------------------------ UV --------------------------------------- $ws['uvMaxTodayTime'] = wdDate($highuvtime); $ws['uvMaxYdayTime'] = wdDate($highuvyesttime); $ws['uvMaxMonthTime'] = wdYMD($mrecordhighuvyear, $mrecordhighuvmonth, $mrecordhighuvday); $ws['uvMaxYearTime'] = wdYMD($yrecordhighuvyear, $yrecordhighuvmonth, $yrecordhighuvday); $ws['uvAct'] = $VPuv; $ws['uvMaxToday'] = $highuv; $ws['uvMaxYday'] = $highuvyest; $ws['uvMaxMonth'] = $mrecordhighuv; $ws['uvMaxYear'] = $yrecordhighuv; # ------------------------------------------ Solar -------------------------------------- $ws['solarMaxTodayTime'] = wdDate($highsolartime); $ws['solarMaxYdayTime'] = wdDate($highsolaryesttime); $ws['solarMaxMonthTime'] = wdYMD($mrecordhighsolaryear, $mrecordhighsolarmonth, $mrecordhighsolarday); $ws['solarMaxYearTime'] = wdYMD($yrecordhighsolaryear, $yrecordhighsolarmonth, $yrecordhighsolarday); $ws['solarAct'] = $VPsolar * 1.0; $ws['solActPerc'] = $currentsolarpercent; $ws['solarMaxToday'] = $highsolar; $ws['solarMaxYday'] = $highsolaryest; $ws['solarMaxMonth'] = $mrecordhighsolar; $ws['solarMaxYear'] = $yrecordhighsolar; # ------------------------------------------ cloud height -------------------------------- $from = 'ft'; $ws['cloudHeight'] = wsConvertDistance($cloudheightfeet, $from); # ------------------------------------------ forecasts ----------------------------------- $ws['fcstWD'] = $iconnumber; $ws['fcstTxt'] = $vpforecasttext; # ------------------------------------------ sun and moon -------------------------------- $ws['sunrise'] = date($SITE['timeOnlyFormat'], strtotime($sunrise)); $ws['sunset'] = date($SITE['timeOnlyFormat'], strtotime($sunset)); $ws['moonrise'] = date($SITE['timeOnlyFormat'], strtotime($moonrise)); $ws['moonset'] = date($SITE['timeOnlyFormat'], strtotime($moonset)); $ws['lunarPhasePerc'] = $moonphase * 1.0; $ws['lunarAge'] = substr($moonage, 9, 3); // %moonphasename% %moonlunation% # ------------------------------------------ some more ----------------------------------- $ws['wsVersion'] = "version {$wdversiononly} b {$wdbuild}"; $ws['wsHardware'] = ''; // unknown $ws['wsUptime'] = $windowsuptime; if (!isset($wsTrends)) { $wsTrends = array(); } $i = 0; $wsTrends[$i]['min'] = 0; $wsTrends[$i]['temp'] = $temp0minuteago; $wsTrends[$i]['wind'] = $wind0minuteago; $wsTrends[$i]['gust'] = $gust0minuteago; $wsTrends[$i]['dir'] = langtransstr($dir0minuteago); $wsTrends[$i]['hum'] = $hum0minuteago; $wsTrends[$i]['dew'] = $dew0minuteago; $wsTrends[$i]['baro'] = $baro0minuteago; $wsTrends[$i]['rain'] = $rain0minuteago; $wsTrends[$i]['sol'] = $VPsolar0minuteago; $wsTrends[$i]['uv'] = $VPuv0minuteago; $i = 1; $wsTrends[$i]['min'] = 5; $wsTrends[$i]['temp'] = $temp5minuteago; $wsTrends[$i]['wind'] = $wind5minuteago; $wsTrends[$i]['gust'] = $gust5minuteago; $wsTrends[$i]['dir'] = langtransstr($dir5minuteago); $wsTrends[$i]['hum'] = $hum5minuteago; $wsTrends[$i]['dew'] = $dew5minuteago; $wsTrends[$i]['baro'] = $baro5minuteago; $wsTrends[$i]['rain'] = $rain5minuteago; $wsTrends[$i]['sol'] = $VPsolar5minuteago; $wsTrends[$i]['uv'] = $VPuv5minuteago; $i = 2; $wsTrends[$i]['min'] = 10; $wsTrends[$i]['temp'] = $temp10minuteago; $wsTrends[$i]['wind'] = $wind10minuteago; $wsTrends[$i]['gust'] = $gust10minuteago; $wsTrends[$i]['dir'] = langtransstr($dir10minuteago); $wsTrends[$i]['hum'] = $hum10minuteago; $wsTrends[$i]['dew'] = $dew10minuteago; $wsTrends[$i]['baro'] = $baro10minuteago; $wsTrends[$i]['rain'] = $rain10minuteago; $wsTrends[$i]['sol'] = $VPsolar10minuteago; $wsTrends[$i]['uv'] = $VPuv10minuteago; $i = 3; $wsTrends[$i]['min'] = 15; $wsTrends[$i]['temp'] = $temp15minuteago; $wsTrends[$i]['wind'] = $wind15minuteago; $wsTrends[$i]['gust'] = $gust15minuteago; $wsTrends[$i]['dir'] = langtransstr($dir15minuteago); $wsTrends[$i]['hum'] = $hum15minuteago; $wsTrends[$i]['dew'] = $dew15minuteago; $wsTrends[$i]['baro'] = $baro15minuteago; $wsTrends[$i]['rain'] = $rain15minuteago; $wsTrends[$i]['sol'] = $VPsolar15minuteago; $wsTrends[$i]['uv'] = $VPuv15minuteago; $i = 4; $wsTrends[$i]['min'] = 20; $wsTrends[$i]['temp'] = $temp20minuteago; $wsTrends[$i]['wind'] = $wind20minuteago; $wsTrends[$i]['gust'] = $gust20minuteago; $wsTrends[$i]['dir'] = langtransstr($dir20minuteago); $wsTrends[$i]['hum'] = $hum20minuteago; $wsTrends[$i]['dew'] = $dew20minuteago; $wsTrends[$i]['baro'] = $baro20minuteago; $wsTrends[$i]['rain'] = $rain20minuteago; $wsTrends[$i]['sol'] = $VPsolar20minuteago; $wsTrends[$i]['uv'] = $VPuv20minuteago; $i = 5; $wsTrends[$i]['min'] = 30; $wsTrends[$i]['temp'] = $temp30minuteago; $wsTrends[$i]['wind'] = $wind30minuteago; $wsTrends[$i]['gust'] = $gust30minuteago; $wsTrends[$i]['dir'] = langtransstr($dir30minuteago); $wsTrends[$i]['hum'] = $hum30minuteago; $wsTrends[$i]['dew'] = $dew30minuteago; $wsTrends[$i]['baro'] = $baro30minuteago; $wsTrends[$i]['rain'] = $rain30minuteago; $wsTrends[$i]['sol'] = $VPsolar30minuteago; $wsTrends[$i]['uv'] = $VPuv30minuteago; $i = 6; $wsTrends[$i]['min'] = 45; $wsTrends[$i]['temp'] = $temp45minuteago; $wsTrends[$i]['wind'] = $wind45minuteago; $wsTrends[$i]['gust'] = $gust45minuteago; $wsTrends[$i]['dir'] = langtransstr($dir45minuteago); $wsTrends[$i]['hum'] = $hum45minuteago; $wsTrends[$i]['dew'] = $dew45minuteago; $wsTrends[$i]['baro'] = $baro45minuteago; $wsTrends[$i]['rain'] = $rain45minuteago; $wsTrends[$i]['sol'] = $VPsolar45minuteago; $wsTrends[$i]['uv'] = $VPuv45minuteago; $i = 7; $wsTrends[$i]['min'] = 60; $wsTrends[$i]['temp'] = $temp60minuteago; $wsTrends[$i]['wind'] = $wind60minuteago; $wsTrends[$i]['gust'] = $gust60minuteago; $wsTrends[$i]['dir'] = langtransstr($dir60minuteago); $wsTrends[$i]['hum'] = $hum60minuteago; $wsTrends[$i]['dew'] = $dew60minuteago; $wsTrends[$i]['baro'] = $baro60minuteago; $wsTrends[$i]['rain'] = $rain60minuteago; $wsTrends[$i]['sol'] = $VPsolar60minuteago; $wsTrends[$i]['uv'] = $VPuv60minuteago; $i = 8; $wsTrends[$i]['min'] = 75; $wsTrends[$i]['temp'] = $temp75minuteago; $wsTrends[$i]['wind'] = $wind75minuteago; $wsTrends[$i]['gust'] = $gust75minuteago; $wsTrends[$i]['dir'] = langtransstr($dir75minuteago); $wsTrends[$i]['hum'] = $hum75minuteago; $wsTrends[$i]['dew'] = $dew75minuteago; $wsTrends[$i]['baro'] = $baro75minuteago; $wsTrends[$i]['rain'] = $rain75minuteago; $wsTrends[$i]['sol'] = $VPsolar75minuteago; $wsTrends[$i]['uv'] = $VPuv75minuteago; $i = 9; $wsTrends[$i]['min'] = 90; $wsTrends[$i]['temp'] = $temp90minuteago; $wsTrends[$i]['wind'] = $wind90minuteago; $wsTrends[$i]['gust'] = $gust90minuteago; $wsTrends[$i]['dir'] = langtransstr($dir90minuteago); $wsTrends[$i]['hum'] = $hum90minuteago; $wsTrends[$i]['dew'] = $dew90minuteago; $wsTrends[$i]['baro'] = $baro90minuteago; $wsTrends[$i]['rain'] = $rain90minuteago; $wsTrends[$i]['sol'] = $VPsolar90minuteago; $wsTrends[$i]['uv'] = $VPuv90minuteago; $i = 10; $wsTrends[$i]['min'] = 105; $wsTrends[$i]['temp'] = $temp105minuteago; $wsTrends[$i]['wind'] = $wind105minuteago; $wsTrends[$i]['gust'] = $gust105minuteago; $wsTrends[$i]['dir'] = langtransstr($dir105minuteago); $wsTrends[$i]['hum'] = $hum105minuteago; $wsTrends[$i]['dew'] = $dew105minuteago; $wsTrends[$i]['baro'] = $baro105minuteago; $wsTrends[$i]['rain'] = $rain105minuteago; $wsTrends[$i]['sol'] = $VPsolar105minuteago; $wsTrends[$i]['uv'] = $VPuv105minuteago; $i = 11; $wsTrends[$i]['min'] = 120; $wsTrends[$i]['temp'] = $temp120minuteago; $wsTrends[$i]['wind'] = $wind120minuteago; $wsTrends[$i]['gust'] = $gust120minuteago; $wsTrends[$i]['dir'] = langtransstr($dir120minuteago); $wsTrends[$i]['hum'] = $hum120minuteago; $wsTrends[$i]['dew'] = $dew120minuteago; $wsTrends[$i]['baro'] = $baro120minuteago; $wsTrends[$i]['rain'] = $rain120minuteago; $wsTrends[$i]['sol'] = $VPsolar120minuteago; $wsTrends[$i]['uv'] = $VPuv120minuteago; for ($i = 0; $i < 12; $i++) { $wsTrends[$i]['temp'] = wsConvertTemperature($wsTrends[$i]['temp'], $from_temp); $wsTrends[$i]['dew'] = wsConvertTemperature($wsTrends[$i]['dew'], $from_temp); $wsTrends[$i]['baro'] = wsConvertBaro($wsTrends[$i]['baro'], $from_baro); $wsTrends[$i]['rain'] = wsConvertRainfall($wsTrends[$i]['rain'], $from_rain); $wsTrends[$i]['wind'] = wsConvertWindspeed($wsTrends[$i]['wind'], $from_wind); $wsTrends[$i]['gust'] = wsConvertWindspeed($wsTrends[$i]['gust'], $from_wind); } $ws['check_ok'] = '3.00'; if (!isset($SITE['soilUsed']) || $SITE['soilUsed'] == false) { ob_clean(); return; } $from = $uomtemp; # Temp sensor 1 actual value $ws['soilTempAct'][1] = wsConvertTemperature($soiltemp, $from); // convert and clean of units # Temp sensor 1 maximum value for today month and year $ws['soilTempMaxToday'][1] = wsConvertTemperature($maxsoiltemp, $from); $ws['soilTempMaxMonth'][1] = wsConvertTemperature($mrecordhighsoil, $from); $ws['soilTempMaxMonthTime'][1] = wdYMD($mrecordhighsoilyear, $mrecordhighsoilmonth, $mrecordhighsoilday); $ws['soilTempMaxYear'][1] = wsConvertTemperature($yrecordhighsoil, $from); $ws['soilTempMaxYearTime'][1] = wdYMD($yrecordhighsoilyear, $yrecordhighsoilmonth, $yrecordhighsoilday); $ws['soilTempMaxAlltime'][1] = wsConvertTemperature($recordhighsoil, $from); $ws['soilTempMaxAlltimeTime'][1] = wdYMD($recordhighsoilyear, $recordhighsoilmonth, $recordhighsoilday); # Temp sensor 1 minimum value for today month and year $ws['soilTempMinToday'][1] = wsConvertTemperature($minsoiltemp, $from); $ws['soilTempMinMonth'][1] = wsConvertTemperature($mrecordlowsoil, $from); $ws['soilTempMinMonthTime'][1] = wdYMD($mrecordlowsoilyear, $mrecordlowsoilmonth, $mrecordlowsoilday); $ws['soilTempMinYear'][1] = wsConvertTemperature($yrecordlowsoil, $from); $ws['soilTempMinYearTime'][1] = wdYMD($yrecordlowsoilyear, $yrecordlowsoilmonth, $yrecordlowsoilday); $ws['soilTempMinAlltime'][1] = wsConvertTemperature($recordlowsoil, $from); $ws['soilTempMinAlltimeTime'][1] = wdYMD($recordlowsoilyear, $recordlowsoilmonth, $recordlowsoilday); # Temp sensor 2 actual value & Values and time for min and max for today - month and year $ws['soilTempAct'][2] = wsConvertTemperature($VPsoiltemp2, $from); // convert and clean of units $ws['soilTempMaxToday'][2] = wsConvertTemperature($hiVPsoiltemp2, $from); $ws['soilTempMaxMonth'][2] = wsConvertTemperature($mrecordhighsoil2, $from); $ws['soilTempMaxMonthTime'][2] = wdYMD($mrecordhighsoilyear2, $mrecordhighsoilmonth2, $mrecordhighsoilday2); $ws['soilTempMaxYear'][2] = wsConvertTemperature($yrecordhighsoil2, $from); $ws['soilTempMaxYearTime'][2] = wdYMD($yrecordhighsoilyear2, $yrecordhighsoilmonth2, $yrecordhighsoilday2); $ws['soilTempMaxAlltime'][2] = wsConvertTemperature($recordhighsoil2, $from); $ws['soilTempMaxAlltimeTime'][2] = wdYMD($recordhighsoilyear2, $recordhighsoilmonth2, $recordhighsoilday2); $ws['soilTempMinToday'][2] = wsConvertTemperature($loVPsoiltemp2, $from); $ws['soilTempMinMonth'][2] = wsConvertTemperature($mrecordlowsoil2, $from); $ws['soilTempMinMonthTime'][2] = wdYMD($mrecordlowsoilyear2, $mrecordlowsoilmonth2, $mrecordlowsoilday2); $ws['soilTempMinYear'][2] = wsConvertTemperature($yrecordlowsoil2, $from); $ws['soilTempMinYearTime'][2] = wdYMD($yrecordlowsoilyear2, $yrecordlowsoilmonth2, $yrecordlowsoilday2); $ws['soilTempMinAlltime'][2] = wsConvertTemperature($recordlowsoil2, $from); $ws['soilTempMinAlltimeTime'][2] = wdYMD($recordlowsoilyear2, $recordlowsoilmonth2, $recordlowsoilday2); # Temp sensor 3 actual value & Values and time for min and max for today - month and year $ws['soilTempAct'][3] = wsConvertTemperature($VPsoiltemp3, $from); // convert and clean of units $ws['soilTempMaxToday'][3] = wsConvertTemperature($hiVPsoiltemp3, $from); $ws['soilTempMaxMonth'][3] = wsConvertTemperature($mrecordhighsoil3, $from); $ws['soilTempMaxMonthTime'][3] = wdYMD($mrecordhighsoilyear3, $mrecordhighsoilmonth3, $mrecordhighsoilday3); $ws['soilTempMaxYear'][3] = wsConvertTemperature($yrecordhighsoil3, $from); $ws['soilTempMaxYearTime'][3] = wdYMD($yrecordhighsoilyear3, $yrecordhighsoilmonth3, $yrecordhighsoilday3); $ws['soilTempMaxAlltime'][3] = wsConvertTemperature($recordhighsoil3, $from); $ws['soilTempMaxAlltimeTime'][3] = wdYMD($recordhighsoilyear3, $recordhighsoilmonth3, $recordhighsoilday3); $ws['soilTempMinToday'][3] = wsConvertTemperature($loVPsoiltemp3, $from); $ws['soilTempMinMonth'][3] = wsConvertTemperature($mrecordlowsoil3, $from); $ws['soilTempMinMonthTime'][3] = wdYMD($mrecordlowsoilyear3, $mrecordlowsoilmonth3, $mrecordlowsoilday3); $ws['soilTempMinYear'][3] = wsConvertTemperature($yrecordlowsoil3, $from); $ws['soilTempMinYearTime'][3] = wdYMD($yrecordlowsoilyear3, $yrecordlowsoilmonth3, $yrecordlowsoilday3); $ws['soilTempMinAlltime'][3] = wsConvertTemperature($recordlowsoil3, $from); $ws['soilTempMinAlltimeTime'][3] = wdYMD($recordlowsoilyear3, $recordlowsoilmonth3, $recordlowsoilday3); # Temp sensor 4 actual value & Values and time for min and max for today - month and year $ws['soilTempAct'][4] = wsConvertTemperature($VPsoiltemp4, $from); // convert and clean of units $ws['soilTempMaxToday'][4] = wsConvertTemperature($hiVPsoiltemp4, $from); $ws['soilTempMaxMonth'][4] = wsConvertTemperature($mrecordhighsoil4, $from); $ws['soilTempMaxMonthTime'][4] = wdYMD($mrecordhighsoilyear4, $mrecordhighsoilmonth4, $mrecordhighsoilday4); $ws['soilTempMaxYear'][4] = wsConvertTemperature($yrecordhighsoil4, $from); $ws['soilTempMaxYearTime'][4] = wdYMD($yrecordhighsoilyear4, $yrecordhighsoilmonth4, $yrecordhighsoilday4); $ws['soilTempMaxAlltime'][4] = wsConvertTemperature($recordhighsoil4, $from); $ws['soilTempMaxAlltimeTime'][4] = wdYMD($recordhighsoilyear4, $recordhighsoilmonth4, $recordhighsoilday4); $ws['soilTempMinToday'][4] = wsConvertTemperature($loVPsoiltemp4, $from); $ws['soilTempMinMonth'][4] = wsConvertTemperature($mrecordlowsoil4, $from); $ws['soilTempMinMonthTime'][4] = wdYMD($mrecordlowsoilyear4, $mrecordlowsoilmonth4, $mrecordlowsoilday4); $ws['soilTempMinYear'][4] = wsConvertTemperature($yrecordlowsoil4, $from); $ws['soilTempMinYearTime'][4] = wdYMD($yrecordlowsoilyear4, $yrecordlowsoilmonth4, $yrecordlowsoilday4); $ws['soilTempMinAlltime'][4] = wsConvertTemperature($recordlowsoil4, $from); $ws['soilTempMinAlltimeTime'][4] = wdYMD($recordlowsoilyear4, $recordlowsoilmonth4, $recordlowsoilday4); # # Moisture sensor 1 actual value $ws['moistAct'][1] = $VPsoilmoisture; # Moisture sensor 1 maximum value for today month and year $ws['moistMaxToday'][1] = $hiVPsoilmoisture; $ws['moistMaxMonth'][1] = $mrecordhighsoilmoist; $ws['moistMaxMonthTime'][1] = wdYMD($mrecordhighsoilmoistyear, $mrecordhighsoilmoistmonth, $mrecordhighsoilmoistday); $ws['moistMaxYear'][1] = $yrecordhighsoilmoist; $ws['moistMaxYearTime'][1] = wdYMD($yrecordhighsoilmoistyear, $yrecordhighsoilmoistmonth, $yrecordhighsoilmoistday); $ws['moistMaxAlltime'][1] = $recordhighsoilmoist; $ws['moistMaxAlltimeTime'][1] = wdYMD($recordhighsoilmoistyear, $recordhighsoilmoistmonth, $recordhighsoilmoistday); # Moisture sensor 1 mimimum value for today $ws['moistMinToday'][1] = $loVPsoilmoisture; # Moisture sensor 1 date/time maximum occured # Moisture sensor 2 actual value & Values and time for min and max for today - month and year $ws['moistAct'][2] = $VPsoilmoisture2; $ws['moistMaxToday'][2] = $hiVPsoilmoisture2; $ws['moistMinToday'][2] = $loVPsoilmoisture2; # Moisture sensor 3 actual value & Values and time for min and max for today - month and year $ws['moistAct'][3] = $VPsoilmoisture3; $ws['moistMaxToday'][3] = $hiVPsoilmoisture3; $ws['moistMinToday'][3] = $loVPsoilmoisture3; # Moisture sensor 4 actual value & Values and time for min and max for today - month and year $ws['moistAct'][4] = $VPsoilmoisture4; $ws['moistMaxToday'][4] = $hiVPsoilmoisture4; $ws['moistMinToday'][4] = $loVPsoilmoisture4; # $ws['moistAvMonth'][1] = $avtempjansoil; // Average soil temperature for january from your data $ws['moistAvMonth'][2] = $avtempfebsoil; $ws['moistAvMonth'][3] = $avtempmarsoil; $ws['moistAvMonth'][4] = $avtempaprsoil; $ws['moistAvMonth'][5] = $avtempmaysoil; $ws['moistAvMonth'][6] = $avtempjunsoil; $ws['moistAvMonth'][7] = $avtempjulsoil; $ws['moistAvMonth'][8] = $avtempaugsoil; $ws['moistAvMonth'][9] = $avtempsepsoil; $ws['moistAvMonth'][10] = $avtempoctsoil; $ws['moistAvMonth'][11] = $avtempnovsoil; $ws['moistAvMonth'][12] = $avtempdecsoil; $ws['moistAvMonthThisyear'][1] = $avtempjannowsoil; // Average soil temperature for january from your data, this year $ws['moistAvMonthThisyear'][2] = $avtempfebnowsoil; $ws['moistAvMonthThisyear'][3] = $avtempmarnowsoil; $ws['moistAvMonthThisyear'][4] = $avtempaprnowsoil; $ws['moistAvMonthThisyear'][5] = $avtempmaynowsoil; $ws['moistAvMonthThisyear'][6] = $avtempjunnowsoil; $ws['moistAvMonthThisyear'][7] = $avtempjulnowsoil; $ws['moistAvMonthThisyear'][8] = $avtempaugnowsoil; $ws['moistAvMonthThisyear'][9] = $avtempsepnowsoil; $ws['moistAvMonthThisyear'][10] = $avtempoctnowsoil; $ws['moistAvMonthThisyear'][11] = $avtempnovnowsoil; $ws['moistAvMonthThisyear'][12] = $avtempdecnowsoil; #----------------------------------------------------------------------------------------- # leaf sensor 1 - 4 $ws['leafAct'][1] = $VPleaf; $ws['leafWetLast10'][1] = $leafminlast10min; // Minutes last 10 minutes leaf wetness was above zero $ws['leafWetLast60'][1] = $leafminlast60min; // Minutes last 10 minutes leaf wetness was above zero $ws['leafMaxToday'][1] = $hiVPleaf; $ws['leafMinToday'][1] = $loVPleaf; $ws['leafMaxMonth'][1] = $mrecordhighleaf; $ws['leafMaxYear'][1] = $yrecordhighleaf; $ws['leafMaxMonthTime'][1] = wdYMD($mrecordhighleafyear, $mrecordhighleafmonth, $mrecordhighleafday); $ws['leafMaxYearTime'][1] = wdYMD($yrecordhighleafyear, $yrecordhighleafmonth, $yrecordhighleafday); $ws['leafAct'][2] = $VPleaf2; $ws['leafHighToday'][2] = $hiVPleaf2; $ws['leafLowToday'][2] = $loVPleaf2; $ws['leafWetLast10'][2] = $leafminlast10min2; // Minutes last 10 minutes leaf wetness was above zero $ws['leafWetLast60'][2] = $leafminlast60min2; // Minutes last 10 minutes leaf wetness was above zero $ws['leafAct'][3] = $VPleaf3; $ws['leafAct'][4] = $VPleaf4; #----------------------------------------------------------------------------------------- ob_clean(); }
function load_realtime_file($realtime_all, &$error_display) { global $SITE, $ws, $wsDebug, $fileTimeUpload; # if ($SITE['realtime'] != 'none') { if (!isset($SITE['realtime_file'])) { $error_display = 'realtime = ' . $SITE['realtime'] . ' but: no realtime-file specified. '; ws_message($realtime_all . '(' . __LINE__ . '): ' . $error_display . '- continue -->'); return; } if (!is_file($SITE['realtime_file'])) { $error_display = 'realtime = ' . $SITE['realtime'] . ' but: no ' . $SITE['realtime_file'] . ' found. '; ws_message($realtime_all . '(' . __LINE__ . '): ' . $error_display . '- continue -->'); return; } if (isset($SITE['realtime_file2']) && !is_file($SITE['realtime_file2'])) { $error_display = 'realtime file 2 = ' . $SITE['realtime_file2'] . ' but: no ' . $SITE['realtime_file2'] . ' found. '; ws_message($realtime_all . '(' . __LINE__ . '): ' . $error_display . '- continue -->'); } } ws_message($realtime_all . '(' . __LINE__ . '): ' . $SITE['realtime_file'] . ' try to load. -->'); $string = file_get_contents($SITE['realtime_file']); $filetime = filemtime($SITE['realtime_file']); if (isset($fileTimeUpload)) { if (30 + $filetime < $fileTimeUpload) { ws_message($realtime_all . '(' . __LINE__ . '): realtime file to old Tagfile = ' . $fileTimeUpload . ' realtimefile = ' . $filetime . ' -->'); return; } } # switch ($SITE['realtime']) { case 'wflash': $pos = strpos(substr($string, 0, 10), 'F='); if (!$pos === false) { $string = substr($string, $pos + 2); } $arr_rt = explode(",", $string); $fromTemp = 'F'; // ='°C', ='°F' $fromWind = 'mPh'; // =' km/h', =' kts', =' m/s', =' mph' $fromRain = 'in'; // =' mm', =' in' $fromBaro = 'inHg'; // =' hPa', =' mb', =' inHg' # $ws['rtTime'] = wdDate(trim($arr_rt[1])); $ws['tempAct'] = (string) wsConvertTemperature($arr_rt[9], $fromTemp); $ws['tempActInside'] = (string) wsConvertTemperature($arr_rt[8], $fromTemp); # $ws['tempDelta'] = (string)wsConvertTemperature($arr_rt[37], $fromTemp); $temp1hourAgo = (string) wsConvertTemperature($arr_rt[9], $fromTemp, $fromTemp) - (string) wsConvertTemperature($arr_rt[37], $fromTemp, $fromTemp); $ws['tempDelta'] = $ws['tempAct'] - wsConvertTemperature($temp1hourAgo, $fromTemp); $ws['dewpAct'] = (string) wsConvertTemperature($arr_rt[24], $fromTemp); $ws['appTemp'] = (string) wsConvertTemperature($arr_rt[29], $fromTemp); # ?? $ws['chilAct'] = (string) wsConvertTemperature($arr_rt[21], $fromTemp); $ws['heatAct'] = (string) wsConvertTemperature($arr_rt[23], $fromTemp); $ws['windAct'] = (string) wsConvertWindspeed($arr_rt[4], $fromWind); $ws['windActDir'] = 1.0 * $arr_rt[3]; $ws['gustAct'] = (string) wsConvertWindspeed($arr_rt[5], $fromWind); $ws['windBeafort'] = (string) wsBeaufortNumber($ws['windAct'], $SITE['uomWind']); $ws['windActDir'] = (string) round($arr_rt[3]); $ws['baroAct'] = (string) wsConvertBaro($arr_rt[25], $fromBaro); $ws['baroDelta'] = (string) wsConvertBaro($arr_rt[53], $fromBaro); $ws['humiAct'] = (string) round($arr_rt[7]); $ws['humiInAct'] = (string) round($arr_rt[6]); $ws['uvAct'] = (string) round($arr_rt[19], 1); # $ws['uvMaxToday'] = (string)round($arr_rt[46],1); $ws['solarAct'] = (string) round($arr_rt[20], 1); # process wflash2.txt if (isset($SITE['realtime_file2'])) { ws_message($realtime_all . '(' . __LINE__ . '): ' . $SITE['realtime_file2'] . ' try to load. -->'); $string = file_get_contents($SITE['realtime_file2']); $pos = strpos(substr($string, 0, 10), 'S='); if (!$pos === false) { $string = substr($string, 9); } $arr_rt = explode(",", substr($string, 2)); $rtdate = wdDate(trim($arr_rt[0])); if ($rtdate > $ws['rtTime']) { $ws['rtTime'] = $rtdate; } $ws['tempMinToday'] = (string) wsConvertTemperature($arr_rt[92], $fromTemp); $ws['tempMaxToday'] = (string) wsConvertTemperature($arr_rt[36], $fromTemp); $ws['dewpMinToday'] = (string) wsConvertTemperature($arr_rt[107], $fromTemp); $ws['dewpMaxToday'] = (string) wsConvertTemperature($arr_rt[51], $fromTemp); $ws['chilMinToday'] = (string) wsConvertTemperature($arr_rt[104], $fromTemp); $ws['heatMaxToday'] = (string) wsConvertTemperature($arr_rt[50], $fromTemp); $ws['gustMaxToday'] = (string) wsConvertWindspeed($arr_rt[32], $fromWind); $ws['windAvgDir'] = (string) $arr_rt[2]; $ws['baroMinToday'] = (string) wsConvertBaro($arr_rt[108], $fromBaro); $ws['baroMaxToday'] = (string) wsConvertBaro($arr_rt[52], $fromBaro); $ws['rainToday'] = (string) wsConvertRainfall($arr_rt[254], $fromRain); $ws['rainRateAct'] = (string) wsConvertRainfall($arr_rt[257], $fromRain); $ws['rainRateToday'] = (string) wsConvertRainfall($arr_rt[150], $fromRain); $ws['humiMinToday'] = (string) round($arr_rt[90]); $ws['humiMaxToday'] = (string) round($arr_rt[34]); $ws['windAvgDir'] = (string) round($arr_rt[2]); $ws['solarMaxToday'] = (string) $arr_rt[47]; $ws['uvMaxToday'] = (string) round($arr_rt[46], 1); } // eo realtimefile 2 break; case 'json': $oldDegree = iconv('UTF-8', 'windows-1252//TRANSLIT', '°'); // clean for nonjson characters $from = array('°', '°', $oldDegree); $string = str_replace($from, '', $string); # if ($SITE['WXsoftware'] == 'WC') { // uses decimal , no point $string = str_replace(',', '.', $string); $string = str_replace('|', ',', $string); } $arr_rt = json_decode($string, true); $fromTemp = str_replace('°', '', $arr_rt['tempunit']); $fromWind = $arr_rt['windunit']; $fromRain = $arr_rt['rainunit']; $fromBaro = $arr_rt['pressunit']; $ws['rtTime'] = wdDate($arr_rt['date']); $ws['tempAct'] = (string) wsConvertTemperature($arr_rt['temp'], $fromTemp); // "temp":"4,6", $ws['tempActInside'] = (string) wsConvertTemperature($arr_rt['intemp'], $fromTemp); // "intemp":"18,7", $ws['dewpAct'] = (string) wsConvertTemperature($arr_rt['dew'], $fromTemp); // "dew":"3,3", $ws['appTemp'] = (string) wsConvertTemperature($arr_rt['apptemp'], $fromTemp); $ws['chilAct'] = (string) wsConvertTemperature($arr_rt['wchill'], $fromTemp); $ws['windAct'] = (string) wsConvertWindspeed($arr_rt['wlatest'], $fromWind); $ws['windBeafort'] = (string) wsBeaufortNumber($ws['windAct'], $SITE['uomWind']); $ws['gustAct'] = (string) wsConvertWindspeed($arr_rt['wgust'], $fromWind); $ws['windActDir'] = (string) $arr_rt['bearing']; $ws['windAvgDir'] = (string) $arr_rt['avgbearing']; $ws['baroAct'] = (string) wsConvertBaro($arr_rt['press'], $fromBaro); $ws['rainToday'] = (string) wsConvertRainfall($arr_rt['rfall'], $fromRain); $ws['rainRateAct'] = (string) wsConvertRainfall($arr_rt['rrate'], $fromRain); $ws['humiAct'] = (string) $arr_rt['hum']; $ws['humiInAct'] = (string) $arr_rt['inhum']; $ws['uvAct'] = (string) $arr_rt['UV']; if ($ws['uvAct'] > $ws['uvMaxToday']) { $ws['uvMaxToday'] = $ws['uvAct']; } $ws['solarAct'] = (string) $arr_rt['SolarRad']; if ($ws['solarAct'] > $ws['solarMaxToday']) { $ws['solarMaxToday'] = $ws['solarAct']; } break; case 'cltrw': $oldDegree = iconv('UTF-8', 'windows-1252//TRANSLIT', '°'); $from = array('°', '°', $oldDegree); $string = trim(str_replace($from, '', $string)); $string = preg_replace("/[\r\n]+[\\s\t]*[\r\n]+/", "\n", $string); $arr_rt = explode(" ", $string); if ($arr_rt[0] != '12345') { $errorfile = substr($string, 0, 20); ws_message($realtime_all . '(' . __LINE__ . '): This file (' . $SITE['realtime_file'] . ') seems not to be a ' . $SITE['realtime'] . ' type file ' . $errorfile . ' -->'); return; } $fromTemp = 'c'; $fromWind = 'kts'; $fromRain = 'mm'; $fromBaro = 'hpa'; $arr = explode('-', $arr_rt['32']); $last = count($arr) - 1; $time = trim(str_replace('_', ' ', $arr[$last])); $ws['rtTime'] = wdDate($time); $ws['tempAct'] = (string) wsConvertTemperature($arr_rt['4'], $fromTemp); $ws['tempActInside'] = (string) wsConvertTemperature($arr_rt['12'], $fromTemp); $ws['dewpAct'] = (string) wsConvertTemperature($arr_rt['72'], $fromTemp); $ws['appTemp'] = (string) wsConvertTemperature($arr_rt['130'], $fromTemp); $ws['chilAct'] = (string) wsConvertTemperature($arr_rt['44'], $fromTemp); $ws['windAct'] = (string) wsConvertWindspeed($arr_rt['1'], $fromWind); $ws['windBeafort'] = (string) wsBeaufortNumber($ws['windAct'], $SITE['uomWind']); $ws['gustAct'] = (string) wsConvertWindspeed($arr_rt['2'], $fromWind); $ws['windActDir'] = (string) $arr_rt['3']; $ws['windAvgDir'] = (string) $arr_rt['117']; $ws['baroAct'] = (string) wsConvertBaro($arr_rt['6'], $fromBaro); $ws['rainToday'] = (string) wsConvertRainfall($arr_rt['7'], $fromRain); $ws['rainRateAct'] = (string) wsConvertRainfall($arr_rt['10'], $fromRain); $ws['humiAct'] = (string) $arr_rt['5']; $ws['uvAct'] = (string) $arr_rt['79']; $ws['solarAct'] = (string) $arr_rt['127']; break; case 'http': $pos = strpos(substr($string, 0, 20), '|', 0); if (!$pos) { $split_char = ','; } else { $split_char = '|'; } $arr_rt = explode($split_char, $string); # $arr_rt[nr] # 0 1 2 3 4 5 6 7 8 9 # [hh]:[mm],[th0temp-act],[th0temp-dmin],[th0temp-dmax],[thb0temp-act],[th0dew-act],[th0dew-dmin],[th0dew-dmax],[wind0chill-act],[wind0chill-dmin], # 10 11 12 13 14 15 16 17 18 19 # [wind0wind-act],[wind0avgwind-act],[wind0wind-max10],[wind0wind-dmax],[wind0dir-act],[wind0dir-avg10:--],[thb0seapress-act],[thb0seapress-dmin],[thb0seapress-dmax],[thb0seapress-ymin], # 20 21 22 23 24 25 26 27 28 29 # [thb0seapress-ymax],[rain0total-daysum],[rain0rate-act],[rain0rate-dmax],[th0hum-act],[th0hum-dmin],[th0hum-dmax],[thb0hum-act],[th0temp-val60:--],[th0temp-dmintime], # 30 31 32 33 34 35 36 37 38 39 # [th0temp-dmaxtime],[th0dew-dmintime],[th0dew-dmaxtime],[wind0chill-dmin],[rain0rate-dmaxtime],[th0hum-dmintime],[th0hum-dmaxtime],[thb0seapress-dmintime],[thb0seapress-dmaxtime],[thb0seapress-val60:--], # 40 41 42 43 44 45 46 47 48 49 # [wind0wind-act=bft.0],[wind0wind-dmaxtime],[wind0avgwind-dmax],[uv0index-act:--],[sol0rad-act:--],[sol0rad-hmax:--],[sol0rad-dmax:--],[mbsystem-swversion],[mbsystem-buildnum],[YYYY]:[MM]:[DD]:[Uhh]:[Umm]:[Uss] # 50 #[forecast-text] $ws['rtTime'] = wdDate(trim($arr_rt['0'])); $ws['tempAct'] = (string) wsConvertTemperature($arr_rt[1], 'c'); $ws['dewpAct'] = (string) wsConvertTemperature($arr_rt[5], 'c'); $ws['chilAct'] = (string) wsConvertTemperature($arr_rt[8], 'c'); $ws['chilMinToday'] = (string) wsConvertTemperature($arr_rt[9], 'c'); $ws['windAct'] = (string) wsConvertWindspeed($arr_rt[11], 'm/s'); $ws['windBeafort'] = (string) wsBeaufortNumber($ws['windAct'], $SITE['uomWind']); $ws['gustAct'] = (string) wsConvertWindspeed($arr_rt[12], 'm/s'); $ws['windActDir'] = (string) $arr_rt[14]; $ws['windAvgDir'] = (string) $arr_rt[15]; $ws['baroAct'] = (string) wsConvertBaro($arr_rt[16], 'hpa'); $ws['rainToday'] = (string) wsConvertRainfall($arr_rt[21], 'mm'); $ws['rainRateAct'] = (string) wsConvertRainfall($arr_rt[22], 'mm'); $ws['humiAct'] = (string) $arr_rt[24]; $ws['humiInAct'] = (string) $arr_rt[27]; $ws['uvAct'] = (string) $arr_rt[43]; $ws['solarAct'] = (string) $arr_rt[44]; break; case 'weatherlink': #echo $string; exit; $arr = explode("\n", $string); # var_dump ($arr); exit; $end = count($arr); for ($n = 0; $n < $end; $n++) { $line = trim($arr[$n]); if ($line == '') { continue; } $substr = substr($line, 1, 5); if ($substr == '-----') { continue; } if (substr($line, 0, 1) != '|') { continue; } list($skip, $name, $content) = explode('|', $line . '|'); $name = trim($name); $content = trim($content); # if ($content == '' ) {ws_message ( $startEcho.$tagsScript.'('.__LINE__.'):empty line '.$n.' name '.$name .$endEcho.PHP_EOL;continue; } $arr_rt[$name] = $content; } # var_dump ($arr_rt); exit; $oldDegree = iconv('UTF-8', 'windows-1252//TRANSLIT', '°'); $from = array('°', '°', $oldDegree); $arr_rt['tempunit'] = str_replace($from, '', $arr_rt['tempunit']); $arr_rt['windunit'] = str_replace('r', '', $arr_rt['windunit']); $fromTemp = $arr_rt['tempunit']; $fromWind = $arr_rt['windunit']; $fromRain = $arr_rt['rainunit']; $fromBaro = $arr_rt['pressunit']; $ws['rtTime'] = wdDate($arr_rt['date']); $ws['rtVersion'] = $arr_rt['rtVersion']; $ws['tempAct'] = (string) wsConvertTemperature($arr_rt['temp'], $fromTemp); // "temp":"4,6", $ws['tempActInside'] = (string) wsConvertTemperature($arr_rt['intemp'], $fromTemp); // "intemp":"18,7", $ws['dewpAct'] = (string) wsConvertTemperature($arr_rt['dew'], $fromTemp); // "dew":"3,3", $ws['chilAct'] = (string) wsConvertTemperature($arr_rt['wchill'], $fromTemp); $ws['windAct'] = (string) wsConvertWindspeed($arr_rt['wlatest'], $fromWind); $ws['windBeafort'] = (string) wsBeaufortNumber($ws['windAct'], $SITE['uomWind']); $ws['gustAct'] = (string) wsConvertWindspeed($arr_rt['wgust'], $fromWind); $ws['windActDir'] = (string) $arr_rt['bearing']; $ws['windAvgDir'] = (string) $arr_rt['avgbearing']; $ws['baroAct'] = (string) wsConvertBaro($arr_rt['press'], $fromBaro); $ws['rainToday'] = (string) wsConvertRainfall($arr_rt['rfall'], $fromRain); $ws['rainRateAct'] = (string) wsConvertRainfall($arr_rt['rrate'], $fromRain); $ws['humiAct'] = (string) $arr_rt['hum']; $ws['uvAct'] = (string) $arr_rt['UV']; if ($ws['uvAct'] > $ws['uvMaxToday']) { $ws['uvMaxToday'] = $ws['uvAct']; } $ws['solarAct'] = (string) $arr_rt['SolarRad']; if ($ws['solarAct'] > $ws['solarMaxToday']) { $ws['solarMaxToday'] = $ws['solarAct']; } break; default: ws_message($realtime_all . '(' . __LINE__ . '): unknown realtime type ' . $SITE['realtime'] . ' found -->'); } }
if ($ws['gustAct'] <= $ws['windAct']) { $ws['gustAct'] = $ws['windAct']; } # ------------------------------------------ UV --------------------- $ws['uvMaxTodayTime'] = wdDate('10:59'); $ws['uvMaxYdayTime'] = wdDate('13:01'); $ws['uvMaxMonthTime'] = wdYMD('2015', '4', '11'); $ws['uvMaxYearTime'] = wdYMD('2015', '4', '11'); $ws['uvAct'] = '2.0'; $ws['uvMaxToday'] = '2.0'; $ws['uvMaxYday'] = '3.7'; $ws['uvMaxMonth'] = '4.0'; $ws['uvMaxYear'] = '4.0'; # ------------------------------------------ Solar -------------------- $ws['solarMaxTodayTime'] = wdDate('11:02'); $ws['solarMaxYdayTime'] = wdDate('14:10'); $ws['solarMaxMonthTime'] = wdYMD('2015', '4', '8'); $ws['solarMaxYearTime'] = wdYMD('2015', '4', '8'); $ws['solarAct'] = '591' * 1.0; $ws['solActPerc'] = '%currentsolarpctplain%'; $ws['solarMaxToday'] = '591'; $ws['solarMaxYday'] = '759.0'; $ws['solarMaxMonth'] = '1002.0'; $ws['solarMaxYear'] = '1002.0'; # ------------------------------------------ cloud height -------------- $to = $SITE['uomHeight']; $from = 'ft'; $ws['cloudHeight'] = wsConvertDistance('3625', $from); # ------------------------------------------ forecasts ----------------- $ws['fcstWD'] = '2'; $ws['fcstTxt'] = str_replace('_', ' ', 'increasing_clouds_with_little_temp._change._precipitation_possible_within_24_to_48_hrs.');