Xert casco antiguo, vista Oeste
Visita nuestra red de sitios de meteo:
Template documentation
and downloads
Meteotemplate: El tiempo en Xert
SaratogaWeather: El tiempo en Xert
PWS Dashboard: El tiempo en Xert
1 | <?php #ini_set('display_errors', 'On'); error_reporting(E_ALL);
2 | #-----------------------------------------------------------------------
3 | # display source of script if requested so
4 | #-----------------------------------------------------------------------
5 | if (isset($_REQUEST['sce']) && strtolower($_REQUEST['sce']) == 'view' ) {
6 | $filenameReal = __FILE__;
7 | $download_size = filesize($filenameReal);
8 | header('Pragma: public');
9 | header('Cache-Control: private');
10 | header('Cache-Control: no-cache, must-revalidate');
11 | header("Content-type: text/plain");
12 | header("Accept-Ranges: bytes");
13 | header("Content-Length: $download_size");
14 | header('Connection: close');
15 | readfile($filenameReal);
16 | exit;
17 | }
18 | $pageName = 'tagsWLCOM.php';
19 | if (!isset($SITE)){echo "<h3>invalid call to script $pageName</h3>";exit;}
20 | $pageVersion = '3.04 2017-04-12';
21 | $SITE['wsModules'][$pageName] = 'version: ' . $pageVersion;
22 | $pageFile = basename(__FILE__); // check to see this is the real script
23 | if ($pageFile <> $pageName) {$SITE['wsModules'][$pageFile] = 'this file loaded instead of '.$pageName;}
24 | echo '<!-- module '.$pageFile.' ==== '.$SITE['wsModules'][$pageFile]." -->".PHP_EOL;
25 | #-----------------------------------------------------------------------
26 | # 3.02 2016-10-22 2.7 release version adapted for error in cache file name
27 | # 3.03 2017-04-12 adapted for extra empty ? line at start of xml + extra code to check xml
28 | # --------------------------------------- version ----------------------
29 | $ws['tags_processed'] = $pageName.'-'.$pageVersion;
30 | $ws['tags_originated'] = 'wl.com-user'.$SITE['wlink_key'];
31 | $ws['tags_today'] = $ws['tags_originated'];
32 | $ws['tags_yday'] = $SITE['ydayTags'];
33 | $ws['tags_yday_time'] = 'n/a';
34 | #
35 | $tagsWLCOM = $pageName;
36 | $test = false;
37 | if ($test) {echo '<pre>Start test'.PHP_EOL;}
38 | #
39 | if ($test) {
40 | $startEcho = ''; $endEcho = '';
41 | } else {$startEcho = '<!-- '; $endEcho = ' -->';
42 | }
43 | $url = 'http://api.weatherlink.com/v1/NoaaExt.xml?user='.$SITE['wlink_key'].'&pass='.$SITE['wlink_pw'];
44 | $url_fake = 'https://api.weatherlink.com/v1/NoaaExt.xml?user=001D0A006738&pass=HILARIET';
45 | $uomTemp = $SITE['uomTemp'];
46 | $uomBaro = $SITE['uomBaro'];
47 | $uomRain = $SITE['uomRain'];
48 | $uomSnow = $SITE['uomSnow'];
49 | $uomDistance = $SITE['uomDistance'];
50 | $uomWind = $SITE['uomWind'];
51 | $uomPerHour = $SITE['uomPerHour'];
52 | $uomHeight = $SITE['uomHeight'];
53 | $fileToLoad = $SITE['wsTags'];
54 | $uoms = $uomTemp.$uomBaro.$uomWind.$uomRain.$uomSnow.$uomDistance.$uomPerHour.$uomHeight;
55 | $from = array('/',' ','°','.php');
56 | $to = '';
57 | $cachefileWLC = $SITE['cacheDir'].'uploadDW'.str_replace ($from, $to, $SITE['wlink_key'].'_'.$fileToLoad.'_'.$uoms); // add uoms // 2016-10-22
58 | $cachefileWLC = $SITE['cacheDir'].str_replace ($from, $to,$fileToLoad.$uoms); // add uoms // 2016-10-22
59 |
60 | #echo $cachefileWLC; exit;
61 | $loaded_current = false;
62 | $cacheAllowed = $SITE['cacheDW']; // 2016-10-22
63 | $diff = 0; // 2016-10-22
64 | $local_current = './uploadDW/weatherlink3.xml';
65 | if ($SITE['wlink_key'] == 'HILARIET') {$test = true;}
66 | #
67 | if (isset($_REQUEST['force']) && strtolower($_REQUEST['force']) == 'wlc') {
68 | echo $startEcho.$tagsWLCOM.': data freshly loaded while "force" was used.'.$endEcho.PHP_EOL;
69 | $loaded_current = false;
70 | }elseif (file_exists($cachefileWLC) ){
71 | $file_time = filemtime($cachefileWLC);
72 | $now = time();
73 | $diff = ($now-$file_time);
74 | # $cacheAllowed = $SITE['cacheDW'];
75 | echo "<!--
76 | $tagsWLCOM ($cachefileWLC)
77 | cache time = ".date('c',$file_time)." from unix time $file_time
78 | current time = ".date('c',$now)." from unix time $now
79 | difference = $diff (seconds)
80 | diff allowed = $cacheAllowed (seconds) -->".PHP_EOL;
81 | if ($diff <= $cacheAllowed){
82 | $ws = unserialize(file_get_contents($cachefileWLC));
83 | echo $startEcho.$tagsWLCOM.': data loaded from '.$cachefileWLC.$endEcho.PHP_EOL;
84 | $loaded_current = true;
85 | # print_r ($ws); # exit;
86 | return; // ?????
87 | } else {
88 | echo $startEcho.$tagsWLCOM.": data to old, will be loaded from url ".$endEcho.PHP_EOL;
89 | }
90 | }
91 | if ($test) {
92 | echo $startEcho.$tagsWLCOM.': data loaded from test-file at '.$local_current.$endEcho.PHP_EOL;
93 | $string = file_get_contents($local_current);
94 | $loaded_current = false;
95 | }elseif ($loaded_current == false) {
96 | echo $startEcho.$tagsWLCOM.': data loaded from url: '.$url_fake.$endEcho.PHP_EOL;
97 | $ch = curl_init();
98 | curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
99 | curl_setopt ($ch, CURLOPT_URL, $url);
100 | curl_setopt ($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
101 | curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 4);
102 | curl_setopt ($ch, CURLOPT_TIMEOUT, 20);
103 | $string = trim(curl_exec ($ch) );
104 | # echo $string; exit;
105 | curl_close ($ch);
106 | }
107 |
108 | function dw_isXML($xml){
109 | libxml_use_internal_errors(true);
110 | $doc = new DOMDocument('1.0', 'utf-8');
111 | $doc->loadXML($xml);
112 | $errors = libxml_get_errors();
113 | if (empty($errors)) { return 'OK';}
114 | $error = $errors[0];
115 | if($error->level < 3){ return 'OK';}
116 | $explodedxml= explode(PHP_EOL, $xml);
117 | $badxml = $explodedxml[($error->line)-1];
118 | $message = $error->message . ' at line ' . $error->line . '. Bad XML: ' . htmlentities($badxml);
119 | return $message;
120 | }
121 | $return = dw_isXML($string);
122 | if ($return <> 'OK') {
123 | echo $startEcho.$tagsWLCOM.'error no valid data loaded => '.$return.$endEcho.PHP_EOL;
124 | $string = '';
125 | }
126 |
127 | if ($loaded_current == false && $string == '') {
128 | if ($diff <= 10* $cacheAllowed){ // 2016-10-22
129 | $ws = unserialize(file_get_contents($cachefileWLC));
130 | echo $startEcho.$tagsWLCOM.': data loaded from '.$cachefileWLC.' after upping cache time'.$endEcho.PHP_EOL;
131 | $loaded_current = true;
132 | # print_r ($ws); # exit;
133 | return; // ?????
134 | }
135 | echo '<H3 input file from wl.com has no valid contents - program ends, please reload page </h3>'; return;
136 | }
137 | $davis = new SimpleXMLElement($string);
138 | $xml = $davis->davis_current_observation;
139 | #$ws = array(); // ????
140 | $ws_date_ft = 'YmdHis';
141 | # --------------------------------------- conditions--------------------
142 |
143 | $ws['actTime'] = date($ws_date_ft,strtotime ((string) $davis->observation_time_rfc822)) ; //'<observation_time_rfc822>Fri, 24 Oct 2014 09:01:16 +0200</observation_time_rfc822>';
144 | $ymd = substr($ws['actTime'],0,8);
145 | $ws['tags_today_time'] = $ws['actTime'];
146 |
147 | # ------------------------------------------ temperature ---------------
148 | # NO yesterday values !
149 | $to = $SITE['uomTemp'];
150 | $from = 'F';
151 | # ------------ temp outside
152 | #$ws['tempAct'] = wsConvertTemperature((string)$davis->temp_c, $from); // <temp_c>11.6</temp_c>
153 | $ws['tempAct'] = wsConvertTemperature((string)$davis->temp_f, $from); // <temp_f>52.8</temp_f>
154 | $ws['tempDelta'] = 0;
155 |
156 | $ws['tempMinToday'] = wsConvertTemperature((string)$xml->temp_day_low_f, $from); // <temp_day_low_f>51.7</temp_day_low_f>
157 | $ws['tempMinMonth'] = wsConvertTemperature((string)$xml->temp_month_low_f, $from); // <temp_month_low_f>44.6</temp_month_low_f>
158 | $ws['tempMinYear'] = wsConvertTemperature((string)$xml->temp_year_low_f, $from); // <temp_year_low_f>31</temp_year_low_f>
159 | $ws['tempMinTodayTime'] = wdDate((string)$xml->temp_day_low_time); // <temp_day_low_time>2:40pm</temp_day_low_time>
160 |
161 | $ws['tempMaxToday'] = wsConvertTemperature((string)$xml->temp_day_high_f, $from); // <temp_day_high_f>57.2</temp_day_high_f>
162 | $ws['tempMaxMonth'] = wsConvertTemperature((string)$xml->temp_month_high_f, $from); // <temp_month_high_f>77.3</temp_month_high_f>
163 | $ws['tempMaxYear'] = wsConvertTemperature((string)$xml->temp_year_high_f, $from); // <temp_year_high_f>96.4</temp_year_high_f>
164 | $ws['tempMaxTodayTime'] = wdDate((string)$xml->temp_day_high_time); // <temp_day_high_time>12:00am</temp_day_high_time>
165 | # ------------ temp inside
166 | $ws['tempActInside'] = wsConvertTemperature((string)$xml->temp_in_f, $from); // <temp_in_f>77.1</temp_in_f>
167 | $ws['tempInAct'] = $ws['tempActInside'];
168 |
169 | $ws['tempInMinToday'] = wsConvertTemperature((string)$xml->temp_in_day_low_f, $from); // <temp_in_day_low_f>76.7</temp_in_day_low_f>
170 | $ws['tempInMinMonth'] = wsConvertTemperature((string)$xml->temp_in_month_low_f, $from); // <temp_in_month_low_f>76.3</temp_in_month_low_f>
171 | $ws['tempInMinYear'] = wsConvertTemperature((string)$xml->temp_in_year_low_f, $from); // <temp_in_year_low_f>68</temp_in_year_low_f>
172 | $ws['tempInMinTodayTime'] = wdDate((string)$xml->temp_in_day_low_time); // <temp_in_day_low_time>2:34pm</temp_in_day_low_time>
173 |
174 | $ws['tempInMaxToday'] = wsConvertTemperature((string)$xml->temp_in_day_high_f, $from); // <temp_in_day_high_f>78.6</temp_in_day_high_f>
175 | $ws['tempInMaxMonth'] = wsConvertTemperature((string)$xml->temp_in_month_high_f, $from); //<temp_in_month_high_f>86.4</temp_in_month_high_f>
176 | $ws['tempInMaxYear'] = wsConvertTemperature((string)$xml->temp_in_year_high_f, $from); // <temp_in_year_high_f>106</temp_in_year_high_f>
177 | $ws['tempInMaxTodayTime'] = wdDate((string)$xml->temp_in_day_high_time); // <temp_in_day_high_time>10:33am</temp_in_day_high_time>
178 | # ------------ temp extra 1
179 | if (isset ($xml->temp_extra_1) ) {
180 | $ws['tempActExtra1'] = wsConvertTemperature((string)$xml->temp_extra_1, $from); // <temp_extra_1>61</temp_extra_1>
181 | $ws['tempE1Act'] = $ws['tempActExtra1'];
182 |
183 | $ws['tempE1MinToday'] = wsConvertTemperature((string)$xml->temp_extra_1_day_low, $from); // <temp_extra_1_day_low>61</temp_extra_1_day_low>
184 | $ws['tempE1MinMonth'] = wsConvertTemperature((string)$xml->temp_extra_1_month_low, $from); // <temp_extra_1_month_low>61</temp_extra_1_month_low>
185 | $ws['tempE1MinYear'] = wsConvertTemperature((string)$xml->temp_extra_1_year_low, $from); // <temp_extra_1_year_low>61</temp_extra_1_year_low>
186 | $ws['tempE1MinTodayTime'] = wdDate((string)$xml->temp_extra_1_day_low_time); // <temp_extra_1_day_low_time>4:13am</temp_extra_1_day_low_time>
187 |
188 | $ws['tempE1MaxToday'] = wsConvertTemperature((string)$xml->temp_extra_1_day_high, $from); // <temp_extra_1_day_high>62</temp_extra_1_day_high>
189 | $ws['tempE1MaxMonth'] = wsConvertTemperature((string)$xml->temp_extra_1_month_high, $from); // <temp_extra_1_month_high>67</temp_extra_1_month_high>
190 | $ws['tempE1MaxYear'] = wsConvertTemperature((string)$xml->temp_extra_1_year_high, $from); // <temp_extra_1_year_high>86</temp_extra_1_year_high>
191 | $ws['tempE1MaxTodayTime'] = wdDate((string)$xml->temp_extra_1_day_high_time); // <temp_extra_1_day_high_time>12:00am</temp_extra_1_day_high_time>
192 | }
193 | else { $ws['tempActExtra1'] = $ws['tempE1Act'] = '';
194 | }
195 | if (isset ($xml->temp_extra_2) ) {
196 | $ws['tempActExtra2'] = wsConvertTemperature((string)$xml->temp_extra_2, $from);
197 | $ws['tempE2Act'] = $ws['tempActExtra2'];
198 |
199 | $ws['tempE2MinToday'] = wsConvertTemperature((string)$xml->temp_extra_2_day_low, $from);
200 | $ws['tempE2MinMonth'] = wsConvertTemperature((string)$xml->temp_extra_2_month_low, $from);
201 | $ws['tempE2MinYear'] = wsConvertTemperature((string)$xml->temp_extra_21_year_low, $from);
202 | $ws['tempE2MinTodayTime'] = wdDate((string)$xml->temp_extra_2_day_low_time);
203 |
204 | $ws['tempE2MaxToday'] = wsConvertTemperature((string)$xml->temp_extra_2_day_high, $from);
205 | $ws['tempE2MaxMonth'] = wsConvertTemperature((string)$xml->temp_extra_2_month_high, $from);
206 | $ws['tempE2MaxYear'] = wsConvertTemperature((string)$xml->temp_extra_2_year_high, $from);
207 | $ws['tempE2MaxTodayTime']= wdDate((string)$xml->temp_extra_2_day_high_time);
208 | }
209 | else { $ws['tempActExtra2'] = $ws['tempE2Act'] = '';
210 | }
211 | # ------------ dewpoint
212 | $ws['dewpAct'] = wsConvertTemperature((string)$davis->dewpoint_f, $from); // <dewpoint_f>48</dewpoint_f>
213 | $ws['dewpDelta'] = 0;
214 |
215 | $ws['dewpMinToday'] = wsConvertTemperature((string)$xml->dewpoint_day_low_f, $from); // <dewpoint_day_low_f>46</dewpoint_day_low_f>
216 | $ws['dewpMinMonth'] = wsConvertTemperature((string)$xml->dewpoint_month_low_f, $from); // <dewpoint_month_low_f>41</dewpoint_month_low_f>
217 | $ws['dewpMinYear'] = wsConvertTemperature((string)$xml->dewpoint_year_low_f, $from); // <dewpoint_year_low_f>29</dewpoint_year_low_f>
218 | $ws['dewpMinTodayTime'] = wdDate((string)$xml->dewpoint_day_low_time); // <dewpoint_day_low_time>12:34pm</dewpoint_day_low_time>
219 |
220 | $ws['dewpMaxToday'] = wsConvertTemperature((string)$xml->dewpoint_day_high_f, $from); // <dewpoint_day_high_f>53</dewpoint_day_high_f>
221 | $ws['dewpMaxMonth'] = wsConvertTemperature((string)$xml->dewpoint_month_high_f, $from); // <dewpoint_month_high_f>64</dewpoint_month_high_f>
222 | $ws['dewpMaxYear'] = wsConvertTemperature((string)$xml->dewpoint_year_high_f, $from); // <dewpoint_year_high_f>72</dewpoint_year_high_f>
223 | $ws['dewpMaxTodayTime'] = wdDate((string)$xml->dewpoint_day_high_time); // <dewpoint_day_high_time>12:00am</dewpoint_day_high_time>
224 | # ------------ temp windchill
225 | $ws['chilAct'] = wsConvertTemperature((string)$davis->windchill_f, $from); // <windchill_f>53</windchill_f>
226 | $ws['chilDelta'] = '0';
227 |
228 | $ws['chilMinToday'] = wsConvertTemperature((string)$xml->windchill_day_low_f, $from); // <windchill_day_low_f>52</windchill_day_low_f>
229 | $ws['chilMinMonth'] = wsConvertTemperature((string)$xml->windchill_month_low_f, $from); // <windchill_month_low_f>43</windchill_month_low_f>
230 | $ws['chilMinYear'] = wsConvertTemperature((string)$xml->windchill_year_low_f, $from); // <windchill_year_low_f>31</windchill_year_low_f>
231 | $ws['chilMinTodayTime'] = wdDate((string)$xml->windchill_day_low_time); // <windchill_day_low_time>9:10am</windchill_day_low_time>';
232 | # ------------ heat index
233 | $ws['heatAct'] = wsConvertTemperature((string)$davis->heat_index_f, $from); // <heat_index_f>53</heat_index_f>
234 |
235 | $ws['heatMaxToday'] = wsConvertTemperature((string)$xml->heat_index_day_high_f, $from); // <heat_index_day_high_f>57</heat_index_day_high_f>
236 | $ws['heatMaxMonth'] = wsConvertTemperature((string)$xml->heat_index_month_high_f, $from); // <heat_index_month_high_f>79</heat_index_month_high_f>
237 | $ws['heatMaxYear'] = wsConvertTemperature((string)$xml->heat_index_year_high_f, $from); // <heat_index_year_high_f>101</heat_index_year_high_f>
238 | $ws['heatMaxTodayTime'] = wdDate((string)$xml->heat_index_day_high_time); // <heat_index_day_high_time>12:00am</heat_index_day_high_time>
239 | # ------------------------------------------ pressure / baro -----------
240 | $to = $SITE['uomBaro'];
241 | $from = 'in';
242 | $ws['baroAct'] = wsConvertBaro((string)$davis->pressure_in, $from); // <pressure_in>30.09</pressure_in>
243 | $ws['baroDelta'] = (string) $xml-> pressure_tendency_string; // <pressure_tendency_string>Steady</pressure_tendency_string>
244 | $ws['baroTrend'] = (string) $xml-> pressure_tendency_string;
245 |
246 | $ws['baroMinToday'] = wsConvertBaro((string)$xml->pressure_day_low_in, $from); // <pressure_day_low_in>30.079</pressure_day_low_in>
247 | $ws['baroMinMonth'] = wsConvertBaro((string)$xml->pressure_month_low_in, $from); // <pressure_month_low_in>29.512</pressure_month_low_in>
248 | $ws['baroMinYear'] = wsConvertBaro((string)$xml->pressure_year_low_in, $from); // <pressure_year_low_in>29.003</pressure_year_low_in>
249 | $ws['baroMinTodayTime'] = wdDate((string)$xml->pressure_day_low_time); // <pressure_day_low_time>3:35pm</pressure_day_low_time>
250 |
251 | $ws['baroMaxToday'] = wsConvertBaro((string)$xml->pressure_day_high_in, $from); // <pressure_day_high_in>30.174</pressure_day_high_in>
252 | $ws['baroMaxMonth'] = wsConvertBaro((string)$xml->pressure_month_high_in, $from); // <pressure_month_high_in>30.206</pressure_month_high_in>
253 | $ws['baroMaxYear'] = wsConvertBaro((string)$xml->pressure_year_high_in, $from); // <pressure_year_high_in>30.577</pressure_year_high_in>
254 | $ws['baroMaxTodayTime'] = wdDate((string)$xml->pressure_day_high_time); // <pressure_day_high_time>12:07am</pressure_day_high_time>
255 |
256 | # ------------------------------------------ humidity -----------------------------------
257 | # ------------ humidity outside
258 | $ws['humiAct'] = (string) $davis -> relative_humidity; // <relative_humidity>83</relative_humidity>
259 | $ws['humiDelta'] = 0;
260 |
261 | $ws['humiMinToday'] = (string) $xml -> relative_humidity_day_low; // <relative_humidity_day_low>80</relative_humidity_day_low>
262 | $ws['humiMinMonth'] = (string) $xml -> relative_humidity_month_low; // <relative_humidity_month_low>61</relative_humidity_month_low>
263 | $ws['humiMinYear'] = (string) $xml -> relative_humidity_year_low; // <relative_humidity_year_low>27</relative_humidity_year_low>
264 | $ws['humiMinTodayTime'] = wdDate((string)$xml->relative_humidity_day_low_time); // <relative_humidity_day_low_time>12:34pm</relative_humidity_day_low_time>
265 |
266 | $ws['humiMaxToday'] = (string) $xml -> relative_humidity_day_high; // <relative_humidity_day_high>89</relative_humidity_day_high>
267 | $ws['humiMaxMonth'] = (string) $xml -> relative_humidity_month_high; // <relative_humidity_month_high>97</relative_humidity_month_high>
268 | $ws['humiMaxYear'] = (string) $xml -> relative_humidity_year_high; // <relative_humidity_year_high>99</relative_humidity_year_high>
269 | $ws['humiMaxTodayTime'] = wdDate((string)$xml->relative_humidity_day_high_time); // <relative_humidity_day_high_time>3:26am</relative_humidity_day_high_time>
270 | # ------------ humidity ibside
271 | $ws['humiInAct'] = (string) $xml -> relative_humidity_in; // <relative_humidity_in>83</relative_humidity_in>
272 | $ws['humiInDelta'] = 0;
273 |
274 | $ws['humiInMinToday'] = (string) $xml -> relative_humidity_in_day_low; // <relative_humidity_in_day_low>33</relative_humidity_in_day_low>
275 | $ws['humiInMinMonth'] = (string) $xml -> relative_humidity_in_month_low; // <relative_humidity_in_month_low>31</relative_humidity_in_month_low>
276 | $ws['humiInMinYear'] = (string) $xml -> relative_humidity_in_year_low; // <relative_humidity_in_year_low>19</relative_humidity_in_year_low>
277 | $ws['humiInMinTodayTime'] = wdDate((string)$xml->relative_humidity_in_day_low_time); // <relative_humidity_in_day_low_time>9:34am</relative_humidity_in_day_low_time>
278 |
279 | $ws['humiInMaxToday'] = (string) $xml -> relative_humidity_in_day_high; // <relative_humidity_in_day_high>36</relative_humidity_in_day_high>
280 | $ws['humiInMaxMonth'] = (string) $xml -> relative_humidity_in_month_high; // <relative_humidity_in_month_high>40</relative_humidity_in_month_high>
281 | $ws['humiInMaxYear'] = (string) $xml -> relative_humidity_in_year_high; // <relative_humidity_in_year_high>54</relative_humidity_in_year_high>
282 | $ws['humiInMaxTodayTime'] = wdDate((string)$xml->relative_humidity_in_day_high_time); // <relative_humidity_in_day_high_time>3:10pm</relative_humidity_in_day_high_time>
283 |
284 |
285 | # ------------------------------------------ rain ---------------------
286 | $to = $SITE['uomRain'];
287 | $from = 'in';
288 | #
289 | $ws['rainRateAct'] = wsConvertRainfall((string)$xml->rain_rate_in_per_hr, $from); // <rain_rate_in_per_hr>0.0000</rain_rate_in_per_hr>
290 | $ws['rainRateToday'] = wsConvertRainfall((string)$xml->rain_rate_in_per_hr, $from); // ?? <rain_rate_in_per_hr>0.0000</rain_rate_in_per_hr>
291 |
292 | $ws['rainToday'] = wsConvertRainfall((string)$xml->rain_day_in, $from); // <rain_day_in>0.0000</rain_day_in>
293 | $ws['rainMonth'] = wsConvertRainfall((string)$xml->rain_month_in, $from); // <rain_month_in>0.7480</rain_month_in>
294 | $ws['rainYear'] = wsConvertRainfall((string)$xml->rain_year_in, $from) ; // <rain_year_in>19.2756</rain_year_in>
295 |
296 | # ----- ev test
297 | $ws['etToday'] = wsConvertRainfall((string)$xml->et_day, $from); // <et_day>0.007</et_day>
298 | $ws['etMonth'] = wsConvertRainfall((string)$xml->et_month, $from); // <et_month>0.46</et_month>
299 | $ws['etYear'] = wsConvertRainfall((string)$xml->et_year, $from); // <et_year>22.55</et_year>
300 | # ------------------------------------------ wind ---------------------
301 | $to = $SITE['uomWind'];
302 | $from = 'mph';
303 |
304 | $ws['windActDeg'] = (string) $davis -> wind_degrees; // <wind_degrees>184</wind_degrees>
305 | $ws['windAvgDir'] = $ws['windActDir'] = $ws['windActDeg'];
306 | #$ws['windActDsc'] = (string) $davis -> wind_dir; // <wind_dir>South</wind_dir>
307 | $ws['windActDsc'] = wsConvertWinddir ($ws['windActDeg']);
308 |
309 | $ws['windAct'] = wsConvertWindspeed((string)$xml->wind_ten_min_avg_mph,$from); // <wind_ten_min_avg_mph>1</wind_ten_min_avg_mph>
310 | $ws['windBeafort'] = wsBeaufortNumber ((string)$xml->wind_ten_min_avg_mph, $from);
311 |
312 | #$ws['gustAct'] = wsConvertWindspeed((string)$xml->wind_kt, 'kts'); // <wind_kt>1</wind_kt>
313 | $ws['gustAct'] = wsConvertWindspeed((string)$xml->wind_mph, $from); // <wind_mph>1</wind_mph>
314 |
315 | $ws['gustMaxToday'] = wsConvertWindspeed((string)$xml->wind_day_high_mph, $from); // <wind_day_high_mph>9</wind_day_high_mph>
316 | $ws['gustMaxMonth'] = wsConvertWindspeed((string)$xml->wind_month_high_mph, $from); // <wind_month_high_mph>22</wind_month_high_mph>
317 | $ws['gustMaxYear'] = wsConvertWindspeed((string)$xml->wind_year_high_mph, $from); // <wind_year_high_mph>27</wind_year_high_mph>
318 |
319 | $ws['gustMaxTodayTime'] = wdDate((string)$xml->relative_humidity_in_day_high_time); // <wind_day_high_time>12:38am</wind_day_high_time>
320 |
321 | if ($ws['gustAct'] <= $ws['windAct']) {$ws['gustAct'] = $ws['windAct'];}
322 | # ------------------------------------------ UV ---------------------
323 | $ws['uvAct'] = (string)$xml->uv_index; // <uv_index>0.0</uv_index>
324 | if (isset($xml->uv_index_day_high) ) {
325 | $ws['uvMaxToday'] = (string)$xml->uv_index_day_high;
326 | $ws['uvMaxTodayTime'] = wdDate((string)$xml->uv_index_day_high_time);}
327 | else { $ws['uvMaxToday'] = '-1';
328 | $ws['uvMaxTodayTime'] = '0'; }
329 | $ws['uvMaxMonth'] = (string)$xml->uv_index_month_high; // <uv_index_month_high>2.1</uv_index_month_high>
330 | $ws['uvMaxYear'] = (string)$xml->uv_index_year_high; // <uv_index_year_high>7.2</uv_index_year_high>
331 | # ------------------------------------------ Solar --------------------
332 | $ws['solarAct'] = (string)$xml->solar_radiation; // <solar_radiation>7</solar_radiation>
333 | $ws['solarMaxToday'] = (string)$xml->solar_radiation_day_high; // <solar_radiation_day_high>116</solar_radiation_day_high>
334 | $ws['solarMaxMonth'] = (string)$xml->solar_radiation_month_high; // <solar_radiation_month_high>659</solar_radiation_month_high>
335 | $ws['solarMaxYear'] = (string)$xml->solar_radiation_year_high; // <solar_radiation_year_high>1264</solar_radiation_year_high>
336 |
337 | $ws['solarMaxTodayTime']= wdDate((string)$xml->solar_radiation_day_high_time); // <solar_radiation_day_high_time>12:18am</solar_radiation_day_high_time>
338 | # ------------------------------------------ sun NO moon --------------
339 | $ws['sunrise'] = wdDate((string)$xml->sunrise); //'<sunrise>7:59am</sunrise>';
340 | $ws['sunset'] = wdDate((string)$xml->sunset);; //<sunset>6:55pm</sunset>';
341 | # ------------------------------------------ some more -----------------
342 | $ws['wsVersion'] = (string)$davis->credit; // <credit>Davis Instruments Corp.</credit>'; // <davis_current_observation version="1.0">
343 | $ws['wsHardware'] = (string)$davis->station_id; // <station_id>wvdkuil</station_id>';
344 | $ws['wsUptime'] = '0';
345 | $ws['latitude'] = (string)$davis->latitude; //<latitude>50.8952</latitude>';
346 | $ws['longitude'] = (string)$davis->longitude; //<longitude>4.6974</longitude>';
347 | $ws['location'] = (string)$davis->location; //<location>Wilsele, Vlaams Brabant, Belgium</location>';
348 | # -------------------------------------- trends ------------------------
349 | # -------------------------------------- soil moisture -----------------------------------
350 | if ($SITE['soilUsed'] && $SITE['soilCount']*1.0 > 0) {
351 | $from = 'F';
352 | $i = 1;
353 | # Soil sensor 1 actual value
354 | if (isset ($xml -> temp_soil_1) ) { $string = (string) $xml -> temp_soil_1;}
355 | elseif (isset ($davis -> temp_soil_1) ) { $string = (string) $davis -> temp_soil_1;}
356 | else { $string = (string) $xml -> temp_soil_1_day_high;}
357 | $ws['soilTempAct'][$i] = wsConvertTemperature($string, $from);
358 | # Soil sensor 1 max/min values and time
359 | $ws['soilTempMaxToday'][$i] = wsConvertTemperature($xml -> temp_soil_1_day_high, $from);
360 | $ws['soilTempMaxMonth'][$i] = wsConvertTemperature($xml -> temp_soil_1_month_high, $from);
361 | $ws['soilTempMaxYear'][$i] = wsConvertTemperature($xml -> temp_soil_1_year_high, $from);
362 | $ws['soilTempMaxTodayTime'][$i] = wdDate((string)$xml->temp_soil_1_day_high_time);
363 |
364 | $ws['soilTempMinToday'][$i] = wsConvertTemperature($xml -> temp_soil_1_day_low, $from);
365 | $ws['soilTempMinMonth'][$i] = wsConvertTemperature($xml -> temp_soil_1_month_low, $from);
366 | $ws['soilTempMinYear'][$i] = wsConvertTemperature($xml -> temp_soil_1_year_low, $from);
367 | $ws['soilTempMinTodayTime'][$i] = wdDate((string)$xml->temp_soil_1_day_low_time);
368 | # Moisture sensor 1 actual value
369 | if (isset ($xml -> soil_moisture_1) ) { $string = (string) $xml -> soil_moisture_1;}
370 | elseif (isset ($davis -> soil_moisture_1) ) { $string = (string) $davis -> soil_moisture_1;}
371 | else { $string = (string) $xml -> soil_moisture_1_day_high;}
372 | $ws['moistAct'][$i] = $string;
373 | # Moisture sensor 1 max/min values and time
374 | $ws['moistMaxToday'][$i] = (string) $xml -> soil_moisture_1_day_high;
375 | $ws['moistMaxMonth'][$i] = (string) $xml -> soil_moisture_1_month_high;
376 | $ws['moistMaxYear'][$i] = (string) $xml -> soil_moisture_1_year_high;
377 | $ws['moistMaxTodayTime'][$i] = wdDate((string)$xml->soil_moisture_1_day_high_time);
378 |
379 | $ws['moistMinToday'][$i] = (string) $xml -> soil_moisture_1_day_low;
380 | $ws['moistMinMonth'][$i] = (string) $xml -> soil_moisture_1_month_low;
381 | $ws['moistMinYear'][$i] = (string) $xml -> soil_moisture_1_year_low;
382 | $ws['moistMinTodayTime'][$i] = wdDate((string)$xml->soil_moisture_1_day_low_time);
383 | }
384 | if ($SITE['soilUsed'] && $SITE['soilCount']*1.0 > 1) {
385 | $i = 2;
386 | # Soil sensor 1 actual value
387 | if (isset ($xml -> temp_soil_2) ) { $string = (string) $xml -> temp_soil_2;}
388 | elseif (isset ($davis -> temp_soil_2) ) { $string = (string) $davis -> temp_soil_2;}
389 | else { $string = (string) $xml -> temp_soil_2_day_high;}
390 | $ws['soilTempAct'][$i] = wsConvertTemperature($string, $from);
391 | # Soil sensor 1 max/min values and times
392 | $ws['soilTempMaxToday'][$i] = wsConvertTemperature($xml -> temp_soil_2_day_high, $from);
393 | $ws['soilTempMaxMonth'][$i] = wsConvertTemperature($xml -> temp_soil_2_month_high, $from);
394 | $ws['soilTempMaxYear'][$i] = wsConvertTemperature($xml -> temp_soil_2_year_high, $from);
395 | $ws['soilTempMaxTodayTime'][$i] = wdDate((string)$xml->temp_soil_2_day_high_time);
396 |
397 | $ws['soilTempMinToday'][$i] = wsConvertTemperature($xml -> temp_soil_2_day_low, $from);
398 | $ws['soilTempMinMonth'][$i] = wsConvertTemperature($xml -> temp_soil_2_month_low, $from);
399 | $ws['soilTempMinYear'][$i] = wsConvertTemperature($xml -> temp_soil_2_year_low, $from);
400 | $ws['soilTempMinTodayTime'][$i] = wdDate((string)$xml->temp_soil_2_day_low_time);
401 |
402 | # Moisture sensor 2 actual value
403 | if (isset ($xml -> soil_moisture_2) ) { $string = (string) $xml -> soil_moisture_2;}
404 | elseif (isset ($davis -> soil_moisture_2) ) { $string = (string) $davis -> soil_moisture_2;}
405 | else { $string = (string) $xml -> soil_moisture_2_day_high;}
406 | $ws['moistAct'][$i] = $string;
407 | # Moisture sensor 2 max values for today month and year alltime
408 | $ws['moistMaxToday'][$i] = (string) $xml -> soil_moisture_2_day_high;
409 | $ws['moistMaxMonth'][$i] = (string) $xml -> soil_moisture_2_month_high;
410 | $ws['moistMaxYear'][$i] = (string) $xml -> soil_moisture_2_year_high;
411 | $ws['moistMaxTodayTime'][$i] = wdDate((string)$xml->soil_moisture_2_day_high_time);
412 |
413 | $ws['moistMinToday'][$i] = (string) $xml -> soil_moisture_2_day_low;
414 | $ws['moistMinMonth'][$i] = (string) $xml -> soil_moisture_2_month_low;
415 | $ws['moistMinYear'][$i] = (string) $xml -> soil_moisture_2_year_low;
416 | $ws['moistMinTodayTime'][$i] = wdDate((string)$xml->soil_moisture_2_day_low_time);
417 | }
418 | if ($SITE['soilUsed'] && $SITE['soilCount']*1.0 > 2) {
419 | $i = 3;
420 | # Soil sensor 1 actual value
421 | if (isset ($xml -> temp_soil_3) ) { $string = (string) $xml -> temp_soil_3;}
422 | elseif (isset ($davis -> temp_soil_3) ) { $string = (string) $davis -> temp_soil_3;}
423 | else { $string = (string) $xml -> temp_soil_3_day_high;}
424 | $ws['soilTempAct'][$i] = wsConvertTemperature($string, $from);
425 | # Soil sensor 1 max/min values and times
426 | $ws['soilTempMaxToday'][$i] = wsConvertTemperature($xml -> temp_soil_3_day_high, $from);
427 | $ws['soilTempMaxMonth'][$i] = wsConvertTemperature($xml -> temp_soil_3_month_high, $from);
428 | $ws['soilTempMaxYear'][$i] = wsConvertTemperature($xml -> temp_soil_3_year_high, $from);
429 | $ws['soilTempMaxTodayTime'][$i] = wdDate((string)$xml->temp_soil_3_day_high_time);
430 |
431 | $ws['soilTempMinToday'][$i] = wsConvertTemperature($xml -> temp_soil_3_day_low, $from);
432 | $ws['soilTempMinMonth'][$i] = wsConvertTemperature($xml -> temp_soil_3_month_low, $from);
433 | $ws['soilTempMinYear'][$i] = wsConvertTemperature($xml -> temp_soil_3_year_low, $from);
434 | $ws['soilTempMinTodayTime'][$i] = wdDate((string)$xml->temp_soil_3_day_low_time);
435 |
436 | # Moisture sensor 2 actual value
437 | if (isset ($xml -> soil_moisture_3) ) { $string = (string) $xml -> soil_moisture_3;}
438 | elseif (isset ($davis -> soil_moisture_3) ) { $string = (string) $davis -> soil_moisture_3;}
439 | else { $string = (string) $xml -> soil_moisture_3_day_high;}
440 | $ws['moistAct'][$i] = $string;
441 | # Moisture sensor 2 max values for today month and year alltime
442 | $ws['moistMaxToday'][$i] = (string) $xml -> soil_moisture_3_day_high;
443 | $ws['moistMaxMonth'][$i] = (string) $xml -> soil_moisture_3_month_high;
444 | $ws['moistMaxYear'][$i] = (string) $xml -> soil_moisture_3_year_high;
445 | $ws['moistMaxTodayTime'][$i] = wdDate((string)$xml->soil_moisture_3_day_high_time);
446 |
447 | $ws['moistMinToday'][$i] = (string) $xml -> soil_moisture_3_day_low;
448 | $ws['moistMinMonth'][$i] = (string) $xml -> soil_moisture_3_month_low;
449 | $ws['moistMinYear'][$i] = (string) $xml -> soil_moisture_3_year_low;
450 | $ws['moistMinTodayTime'][$i] = wdDate((string)$xml->soil_moisture_3_day_low_time);
451 | }
452 | if ($SITE['soilUsed'] && $SITE['soilCount']*1.0 > 3) {
453 | $i = 4;
454 | # Soil sensor 1 actual value
455 | if (isset ($xml -> temp_soil_4) ) { $string = (string) $xml -> temp_soil_4;}
456 | elseif (isset ($davis -> temp_soil_4) ) { $string = (string) $davis -> temp_soil_4;}
457 | else { $string = (string) $xml -> temp_soil_4_day_high;}
458 | $ws['soilTempAct'][$i] = wsConvertTemperature($string, $from);
459 | # Soil sensor 1 max/min values and times
460 | $ws['soilTempMaxToday'][$i] = wsConvertTemperature($xml -> temp_soil_4_day_high, $from);
461 | $ws['soilTempMaxMonth'][$i] = wsConvertTemperature($xml -> temp_soil_4_month_high, $from);
462 | $ws['soilTempMaxYear'][$i] = wsConvertTemperature($xml -> temp_soil_4_year_high, $from);
463 | $ws['soilTempMaxTodayTime'][$i] = wdDate((string)$xml->temp_soil_4_day_high_time);
464 |
465 | $ws['soilTempMinToday'][$i] = wsConvertTemperature($xml -> temp_soil_4_day_low, $from);
466 | $ws['soilTempMinMonth'][$i] = wsConvertTemperature($xml -> temp_soil_4_month_low, $from);
467 | $ws['soilTempMinYear'][$i] = wsConvertTemperature($xml -> temp_soil_4_year_low, $from);
468 | $ws['soilTempMinTodayTime'][$i] = wdDate((string)$xml->temp_soil_4_day_low_time);
469 |
470 | # Moisture sensor 2 actual value
471 | if (isset ($xml -> soil_moisture_4) ) { $string = (string) $xml -> soil_moisture_4;}
472 | elseif (isset ($davis -> soil_moisture_4) ) { $string = (string) $davis -> soil_moisture_4;}
473 | else { $string = (string) $xml -> soil_moisture_4_day_high;}
474 | $ws['moistAct'][$i] = $string;
475 | # Moisture sensor 2 max values for today month and year alltime
476 | $ws['moistMaxToday'][$i] = (string) $xml -> soil_moisture_4_day_high;
477 | $ws['moistMaxMonth'][$i] = (string) $xml -> soil_moisture_4_month_high;
478 | $ws['moistMaxYear'][$i] = (string) $xml -> soil_moisture_4_year_high;
479 | $ws['moistMaxTodayTime'][$i] = wdDate((string)$xml->soil_moisture_4_day_high_time);
480 |
481 | $ws['moistMinToday'][$i] = (string) $xml -> soil_moisture_4_day_low;
482 | $ws['moistMinMonth'][$i] = (string) $xml -> soil_moisture_4_month_low;
483 | $ws['moistMinYear'][$i] = (string) $xml -> soil_moisture_4_year_low;
484 | $ws['moistMinTodayTime'][$i] = wdDate((string)$xml->soil_moisture_4_day_low_time);
485 | }
486 | if ($SITE['leafUsed'] && $SITE['leafCount']*1.0 > 0) {
487 | # leaf sensor 1
488 | $n = 1;
489 | if (isset ($xml -> temp_leaf_1) ) { $string = (string) $xml -> temp_leaf_1;}
490 | elseif (isset ($davis -> temp_leaf_1) ) { $string = (string) $davis -> temp_leaf_1;}
491 | else { $string = (string) $xml -> temp_leaf_1_day_high;}
492 | $ws['leafTempAct'][$n] = $string;
493 |
494 | if (isset ($xml -> leaf_wetness_1) ) { $string = (string) $xml -> leaf_wetness_1;}
495 | elseif (isset ($davis -> leaf_wetness_1) ) { $string = (string) $davis -> leaf_wetness_1;}
496 | else { $string = (string) $xml -> leaf_wetness_1_day_high;}
497 | $ws['leafWetAct'][$n] = $string;
498 | $ws['leafWetMaxToday'][$n] = (string) $xml -> leaf_wetness_1_day_high;
499 | $ws['leafWetMaxMonth'][$n] = (string) $xml -> leaf_wetness_1_month_high;
500 | $ws['leafWetMaxYear'][$n] = (string) $xml -> leaf_wetness_1_year_high;
501 | $ws['leafWetMaxTodayTime'][$n] = wdDate((string)$xml->leaf_wetness_1_day_high_time);
502 |
503 | $ws['leafWetMinToday'][$n] = (string) $xml -> leaf_wetness_1_day_low;
504 | $ws['leafWetMinMonth'][$n] = (string) $xml -> leaf_wetness_1_month_low;
505 | $ws['leafWetMinYear'][$n] = (string) $xml -> leaf_wetness_1_year_low;
506 | $ws['leafWetMinTodayTime'][$n] = wdDate((string)$xml->leaf_wetness_1_day_low_time);
507 | }
508 | if ($SITE['leafUsed'] && $SITE['leafCount']*1.0 > 1) {
509 | # leaf sensor 2
510 | $n = 2;
511 | if (isset ($xml -> temp_leaf_2) ) { $string = (string) $xml -> temp_leaf_2;}
512 | elseif (isset ($davis -> temp_leaf_2) ) { $string = (string) $davis -> temp_leaf_2;}
513 | else { $string = (string) $xml -> temp_leaf_2_day_high;}
514 | $ws['leafTempAct'][$n] = $string;
515 |
516 | if (isset ($xml -> leaf_wetness_2) ) { $string = (string) $xml -> leaf_wetness_2;}
517 | elseif (isset ($davis -> leaf_wetness_2) ) { $string = (string) $davis -> leaf_wetness_2;}
518 | else { $string = (string) $xml -> leaf_wetness_2_day_high;}
519 | $ws['leafWetAct'][$n] = $string;
520 | $ws['leafWetMaxToday'][$n] = (string) $xml -> leaf_wetness_2_day_high;
521 | $ws['leafWetMaxMonth'][$n] = (string) $xml -> leaf_wetness_2_month_high;
522 | $ws['leafWetMaxYear'][$n] = (string) $xml -> leaf_wetness_2_year_high;
523 | $ws['leafWetMaxTodayTime'][$n] = wdDate((string)$xml->leaf_wetness_2_day_high_time);
524 |
525 | $ws['leafWetMinToday'][$n] = (string) $xml -> leaf_wetness_2_day_low;
526 | $ws['leafWetMinMonth'][$n] = (string) $xml -> leaf_wetness_2_month_low;
527 | $ws['leafWetMinYear'][$n] = (string) $xml -> leaf_wetness_2_year_low;
528 | $ws['leafWetMinTodayTime'][$n] = wdDate((string)$xml->leaf_wetness_2_day_low_time);
529 | }
530 | if ($SITE['leafUsed'] && $SITE['leafCount']*1.0 > 2) {
531 | # leaf sensor 3
532 | $n = 3;
533 | if (isset ($xml -> temp_leaf_3) ) { $string = (string) $xml -> temp_leaf_3;}
534 | elseif (isset ($davis -> temp_leaf_3) ) { $string = (string) $davis -> temp_leaf_3;}
535 | else { $string = (string) $xml -> temp_leaf_3_day_high;}
536 | $ws['leafTempAct'][$n] = $string;
537 |
538 | if (isset ($xml -> leaf_wetness_3) ) { $string = (string) $xml -> leaf_wetness_3;}
539 | elseif (isset ($davis -> leaf_wetness_3) ) { $string = (string) $davis -> leaf_wetness_3;}
540 | else { $string = (string) $xml -> leaf_wetness_3_day_high;}
541 | $ws['leafWetAct'][$n] = $string;
542 | $ws['leafWetMaxToday'][$n] = (string) $xml -> leaf_wetness_3_day_high;
543 | $ws['leafWetMaxMonth'][$n] = (string) $xml -> leaf_wetness_3_month_high;
544 | $ws['leafWetMaxYear'][$n] = (string) $xml -> leaf_wetness_3_year_high;
545 | $ws['leafWetMaxTodayTime'][$n] = wdDate((string)$xml->leaf_wetness_3_day_high_time);
546 |
547 | $ws['leafWetMinToday'][$n] = (string) $xml -> leaf_wetness_3_day_low;
548 | $ws['leafWetMinMonth'][$n] = (string) $xml -> leaf_wetness_3_month_low;
549 | $ws['leafWetMinYear'][$n] = (string) $xml -> leaf_wetness_3_year_low;
550 | $ws['leafWetMinTodayTime'][$n] = wdDate((string)$xml->leaf_wetness_3_day_low_time);
551 | }
552 | if ($SITE['leafUsed'] && $SITE['leafCount']*1.0 > 3) {
553 | # leaf sensor 4
554 | $n = 4;
555 | if (isset ($xml -> temp_leaf_4) ) { $string = (string) $xml -> temp_leaf_4;}
556 | elseif (isset ($davis -> temp_leaf_4) ) { $string = (string) $davis -> temp_leaf_4;}
557 | else { $string = (string) $xml -> temp_leaf_4_day_high;}
558 | $ws['leafTempAct'][$n] = $string;
559 |
560 | if (isset ($xml -> leaf_wetness_4) ) { $string = (string) $xml -> leaf_wetness_4;}
561 | elseif (isset ($davis -> leaf_wetness_4) ) { $string = (string) $davis -> leaf_wetness_4;}
562 | else { $string = (string) $xml -> leaf_wetness_4_day_high;}
563 | $ws['leafWetAct'][$n] = $string;
564 | $ws['leafWetMaxToday'][$n] = (string) $xml -> leaf_wetness_4_day_high;
565 | $ws['leafWetMaxMonth'][$n] = (string) $xml -> leaf_wetness_4_month_high;
566 | $ws['leafWetMaxYear'][$n] = (string) $xml -> leaf_wetness_4_year_high;
567 | $ws['leafWetMaxTodayTime'][$n] = wdDate((string)$xml->leaf_wetness_4_day_high_time);
568 |
569 | $ws['leafWetMinToday'][$n] = (string) $xml -> leaf_wetness_4_day_low;
570 | $ws['leafWetMinMonth'][$n] = (string) $xml -> leaf_wetness_4_month_low;
571 | $ws['leafWetMinYear'][$n] = (string) $xml -> leaf_wetness_4_year_low;
572 | $ws['leafWetMinTodayTime'][$n] = wdDate((string)$xml->leaf_wetness_4_day_low_time);
573 | }
574 | #echo '<pre>'.PHP_EOL; print_r ($ws); exit;
575 | #---------------------------------------------------------------------------
576 | # retrieve missing moon entries
577 | $skipMoonPage = true; include ($SITE['moonSet']); $skipMoonPage = false;
578 | #
579 | $ws['check_ok'] = '0.00';
580 | #
581 | $ws['tempMinYday'] = $ws['tempMaxYday'] = $ws['dewpMinYday'] = $ws['dewpMaxYday'] = $ws['chilMinYday'] = $ws['heatMaxYday'] = '';
582 | $ws['baroMinYday'] = $ws['baroMaxYday'] = '';
583 | $ws['rainRateYday']= $ws['rainYday'] = $ws['etYday'] = '';
584 | $ws['gustMaxYday'] = '';
585 | $ws['humiMinYday'] = $ws['humiMaxYday'] = '';
586 | $ws['uvMaxYday'] = $ws['solarMaxYday']= '';
587 |
588 | $ws['tempMinYdayTime'] = $ws['tempMaxYdayTime'] = $ws['dewpMinYdayTime'] = $ws['dewpMaxYdayTime'] = '';
589 | $ws['chilMinYdayTime'] = $ws['heatMaxYdayTime'] = $ws['baroMinYdayTime'] = $ws['baroMaxYdayTime'] = '';
590 | $ws['humiMinYdayTime'] = $ws['humiMaxYdayTime'] = $ws['gustMaxYdayTime'] = '';
591 | $ws['uvMaxYdayTime'] = $ws['solarMaxYdayTime']= '';
592 | #
593 | if (!isset ($SITE['ydayTags']) || trim($SITE['ydayTags']) == '') {
594 | echo $startEcho.$tagsWLCOM.": no yesterday values present - generating placeholders ".$endEcho.PHP_EOL;
595 | }
596 | else { echo $startEcho.$tagsWLCOM.": yesterday values loaded from ".$SITE['ydayTags'].$endEcho.PHP_EOL;
597 | $arr = file($SITE['ydayTags'],FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
598 | $end = count ($arr);
599 | for ($n = 0; $n < $end; $n++) {
600 | $line = trim ($arr[$n]);
601 | if ($line == '' ) {continue;}
602 | $substr = substr($line,1,5);
603 | if ($substr == '-----') {continue;}
604 | if (substr($line,0,1) <> '|') {continue;}
605 | list ($skip,$name, $content) = explode ('|',$line.'|');
606 | $name = trim($name);
607 | $content= trim($content);
608 | if ($content == '' ) {
609 | echo $startEcho.$tagsWLCOM.'('.__LINE__.'):empty line '.$n.' name '.$name .$endEcho.PHP_EOL; continue;}
610 | $wx[$name]=$content;
611 | }
612 | $ws['tags_yday'] .= ' - '.$wx['pagenameYday'].' - '.$wx['versionYday'];
613 | $ws['tags_yday_time'] = $wx['datetimeYday'];
614 | $fromYday = $wx['fromtempYday'];
615 | $ws['tempMinYday'] = wsConvertTemperature ($wx['tempMinYday'],$fromYday);
616 | $ws['tempMinYdayTime'] = $wx['tempMinYdayTime'];
617 | $ws['tempMaxYday'] = wsConvertTemperature ($wx['tempMaxYday'],$fromYday);
618 | $ws['tempMaxYdayTime'] = $wx['tempMaxYdayTime'];
619 | $ws['dewpMinYday'] = wsConvertTemperature ($wx['dewpMinYday'],$fromYday);
620 | $ws['dewpMinYdayTime'] = $wx['dewpMinYdayTime'];
621 | $ws['dewpMaxYday'] = wsConvertTemperature ($wx['dewpMaxYday'],$fromYday);
622 | $ws['dewpMaxYdayTime'] = $wx['dewpMaxYdayTime'];
623 | $ws['chilMinYday'] = wsConvertTemperature ($wx['chilMinYday'],$fromYday);
624 | $ws['chilMinYdayTime'] = $wx['chilMinYdayTime'];
625 | $ws['heatMaxYday'] = wsConvertTemperature ($wx['heatMaxYday'],$fromYday);
626 | $ws['heatMaxYdayTime'] = $wx['heatMaxYdayTime'];
627 |
628 | $fromYday = $wx['frombaroYday'];
629 | $ws['baroMinYday'] = wsConvertBaro ($wx['baroMinYday'],$fromYday);
630 | $ws['baroMinYdayTime'] = $wx['baroMinYdayTime'];
631 | $ws['baroMaxYday'] = wsConvertBaro ($wx['baroMaxYday'],$fromYday);
632 | $ws['baroMaxYdayTime'] = $wx['baroMaxYdayTime'];
633 |
634 | $ws['humiMinYday'] = $wx['humiMinYday'];
635 | $ws['humiMinYdayTime'] = $wx['humiMinYdayTime'];
636 | $ws['humiMaxYday'] = $wx['humiMaxYday'];
637 | $ws['humiMaxYdayTime'] = $wx['humiMaxYdayTime'];
638 |
639 | $fromYday = $wx['fromrainYday'];
640 | $ws['rainRateYday'] = wsConvertRainfall ($wx['rainRateYday'],$fromYday);
641 | $ws['rainYday'] = wsConvertRainfall ($wx['rainYday'],$fromYday);
642 | $ws['etYday'] = wsConvertRainfall ($wx['etYday'],$fromYday);
643 | $fromYday = $wx['fromwindYday'];
644 | $ws['gustMaxYday'] = wsConvertWindspeed ($wx['gustMaxYday'],$fromYday);
645 | $ws['gustMaxYdayTime'] = $wx['gustMaxYdayTime'];
646 |
647 | $ws['uvMaxYday'] = $wx['uvMaxYday'];
648 | $ws['uvMaxYdayTime'] = $wx['uvMaxYdayTime'];
649 | $ws['solarMaxYday'] = $wx['solarMaxYday'];
650 | $ws['solarMaxYdayTime'] = $wx['solarMaxYdayTime'];
651 |
652 | $fromYday = $wx['fromtempYday'];
653 | if (isset ($SITE['soilUsed']) && $SITE['soilUsed'] && $SITE['soilCount']*1.0 > 0) {
654 | $soils = round($SITE['soilCount']);}
655 | else { $soils = 0; $leafs = 0; $SITE['leafCount'] = 0;}
656 | if ($soils > 4) {echo '<!-- reset nr of soil sensors from '.$SITE['soilCount'].' to max 4 -->'.PHP_EOL;$soils = 4;}
657 | for ($n = 1; $n <= $soils; $n++) {
658 | $ws['soilTempMaxYday'][$n] = wsConvertTemperature ($wx['soilTempMaxYday_'.$n],$fromYday);
659 | $ws['soilTempMaxYdayTime'][$n] = $wx['soilTempMaxYdayTime_'.$n];
660 | $ws['soilTempMinYday'][$n] = wsConvertTemperature ($wx['soilTempMinYday_'.$n],$fromYday);
661 | $ws['soilTempMinYdayTime'][$n] = $wx['soilTempMinYdayTime_'.$n];
662 | $ws['moistMaxYday'][$n] = $wx['moistMaxYday_'.$n];
663 | $ws['moistMaxYdayTime'][$n] = $wx['moistMaxYdayTime_'.$n];
664 | $ws['moistMinYday'][$n] = $wx['moistMinYday_'.$n];
665 | $ws['moistMinYdayTime'][$n] = $wx['moistMinYdayTime_'.$n];
666 | }
667 | $leafs = round($SITE['leafCount']);
668 | if ($leafs > 4) { echo '<!-- reset nr of leaf sensors from '.$SITE['leafCount'].' to max 4 -->'.PHP_EOL;$leafs = 4;}
669 | for ($n = 1; $n <= $leafs; $n++) {
670 | $ws['leafWetMaxYday'][$n] = $wx['leafWetMaxYday_'.$n];
671 | $ws['leafWetMaxYdayTime'][$n] = $wx['leafWetMaxYdayTime_'.$n];
672 | $ws['leafWetMinYday'][$n] = $wx['leafWetMinYday_'.$n];
673 | $ws['leafWetMinYdayTime'][$n] = $wx['leafWetMinYdayTime_'.$n];
674 | }
675 | }
676 | #
677 | #echo '<pre>'; print_r ($ws); exit;
678 | if (!file_put_contents($cachefileWLC, serialize($ws))){
679 | echo $startEcho.$tagsWLCOM.": <br />Could not save (".$cachefileWLC.") to cache. Please make sure your cache directory exists and is writable.".$endEcho.PHP_EOL;
680 | } else {
681 | echo $startEcho.$tagsWLCOM.": $cachefileWLC saved to cache".$endEcho.PHP_EOL;
682 | }
683 | // end of tagsWLCOM.php
684 | #echo '<pre>'.PHP_EOL; print_r ($ws); exit;
1 | # generated at 16-07-2026 23:55 Europe/Madrid
2 | |versionYday|3.02 2015-04-20|!
3 | |pagenameYday|yesterday.php|!
4 | |fromtempYday|°C|!
5 | |datetimeYday|20260716235502|!
6 | |tempMinYday|21.9|!
7 | |tempMinYdayTime|20260716071700|!
8 | |tempMaxYday|31.1|!
9 | |tempMaxYdayTime|20260716144300|!
10 | |dewpMinYday|16.1|!
11 | |dewpMinYdayTime|20260716071700|!
12 | |dewpMaxYday|23.3|!
13 | |dewpMaxYdayTime|20260716200800|!
14 | |chilMinYday|22.2|!
15 | |chilMinYdayTime|20260716050600|!
16 | |heatMaxYday|34.4|!
17 |
18 | |frombaroYday| hPa|!
19 | |baroMinYday|1015.4|!
20 | |baroMinYdayTime|20260716195100|!
21 | |baroMaxYday|1018.7|!
22 | |baroMaxYdayTime|20260716122600|!
23 | |humiMinYday|52|!
24 | |humiMinYdayTime|20260716175400|!
25 | |humiMaxYday|88|!
26 | |humiMaxYdayTime|20260716072800|!
27 | |fromrainYday| mm|!
28 | |rainRateYday|0|!
29 | |rainYday|0|!
30 | |etYday|5.2|!
31 | |fromwindYday| km/h|!
32 | |gustMaxYday|30.6|!
33 | |gustMaxYdayTime|20260716231700|!
34 | |uvMaxYday|0.0|!
35 | |uvMaxYdayTime|20260716000000|!
36 | |solarMaxYday|0|!
37 | |solarMaxYdayTime|20260716000000|!
38 | |heatMaxYdayTime|20260716144100|!