$webcampid, "tstamp" => $time, "crdate" => $time, "cruser_id" => "2", "deleted" => "0", "hidden" => "0", "tempin" => "", "tempout" => "", "dp" => "", "rhi" => "", "rho" => "", "ws" => "", "wc" => "", "r1h" => "", "r24h" => "", "rtot" => "", "rp" => "", "dir0" => "", "minws" => "", "maxws" => "", "forecast" => "", "forecastRawIcon" => "", "forecastRawRule" => "", "forecastRaw" => "", "wassertemp" => "", "bat" => "", "arRainfall" => "", "arRainRateHi" => "" ); //$fieldsarr = array(); $raw_fields= array(); $camtxt= ""; if ($typ == "hb627") { $values= array(); foreach (explode("\n", $wx) as $line) { $rr= array(); if (preg_match("/(\d+)=(\d+)/", $line, $rr)) { $values[]= $rr[2]; } } echo count($values)." values found.\n"; if (count($values)==8) { if (is_callable($webcam['wxFunc'])) { if (! $webcam['wxFunc']($values, $fields, $raw_fields, $camtxt)) { echo "No valid wx data.\n"; exit; } } } } elseif ($typ == "usb4all") { $values= array(); foreach (explode("\n", $wx) as $line) { $values[]= $line; } echo count($values)." values found. USB4ALL\n"; if (count($values)>=2) { if (is_callable($webcam['wxFunc'])) { if (! $webcam['wxFunc']($values, $fields, $raw_fields, $camtxt)) { echo "No valid wx data.\n"; exit; } } } } elseif ($typ == "ws2350") { $values= array(); foreach (explode("\n", $wx) as $line) { $rr= array(); if (preg_match("/([a-z0-9]+) (.*)/i", $line, $rr)) { $values[$rr[1]]= $rr[2]; } } $error= null; if ($values['To']>50) $error= "To too high"; if ($values['To']>$values['Tomax']) $error= "To > Tomax"; if ($values['To']<$values['Tomin']) $error= "To < Tomin";; if ($values['Rp']>1200) $error= "Rp too high"; if ($values['Rp']<800) $error= "Rp too low"; if ($values['RHo']>105) $error= "RHo too high"; if ($error === null) { if (is_callable($webcam['wxFunc'])) { if (! $webcam['wxFunc']($values, $fields, $raw_fields, $camtxt)) { echo "No valid wx data.\n"; exit; } } } else { echo "$error\n"; } } elseif ($typ == "vpro") { //echo 'test1'; $values= array(); $values1= array(); $i=-1; foreach (explode("\n", $wx) as $line) { if (strpos($line, "Page") !== False){ $i++; } $rr= array(); if (preg_match("/([a-z0-9]+) = (.*)/i", $line, $rr)) { $values[$i][$rr[1]]= $rr[2]; } } //echo $values['0']['arDate']; //echo count($values)." values found Davis.\n"; if (is_callable($webcam['wxFunc'])) { if (! $webcam['wxFunc']($values, $fields, $raw_fields, $camtxt, $fieldsarr, $webcam)) { echo "No valid wx data.\n"; exit; } } //echo count($fieldsarr)." - \n"; //echo $fieldsarr['1']['stationtime']; } else { echo "ERROR: typ unknown: $typ\n"; } if (count($fieldsarr)>0 && $mysqli=openMysqlWetter()) { //$keys= array_keys($fields); // Write values to mysql $i = 0; //echo count($fieldsarr)." werden eingetragen\n"; echo count($fieldsarr)."\n"; for ($x=0; $xquery("insert tx_webcam_wetter set pid='${fields['pid']}', ". "tstamp='".$timestamp."',crdate='${fields['crdate']}',cruser_id='${fields['cruser_id']}',". "deleted='${fields['deleted']}',hidden='${fields['hidden']}',tempin='".$fieldsarr[$x]['tempin']."',". "tempout='".$fieldsarr[$x]['tempout']."',dp='".$fieldsarr[$x]['dp']."',rhi='".$fieldsarr[$x]['rhi']."',". "rho='".$fieldsarr[$x]['rho']."',ws='".$fieldsarr[$x]['ws']."',r1h='".$fieldsarr[$x]['r1h']."',". "r24h='".$fieldsarr[$x]['r24h']."',rtot='".$fieldsarr[$x]['rtot']."',rp='".$fieldsarr[$x]['rp']."',". "dir0='".$fieldsarr[$x]['dir0']."',minws='".$fieldsarr[$x]['minws']."',wc='".$fieldsarr[$x]['wc']."',". "maxws='".$fieldsarr[$x]['maxws']."',forecast='".$fieldsarr[$x]['forecast']."',forecastRawIcon='".$fieldsarr[$x]['forecastRawIcon']."',". "forecastRawRule='".$fieldsarr[$x]['forecastRawRule']."',forecastRaw='".$fieldsarr[$x]['forecastRaw']."',wassertemp='".$fieldsarr[$x]['wassertemp']."',". "stationtime='".$fieldsarr[$x]['stationtime']."',arRainfall='".$fieldsarr[$x]['arRainfall']."',arRainRateHi='".$fieldsarr[$x]['arRainRateHi']."'"); //echo $fieldsarr[$x]['stationtime']."\n"; //$time=time()-600; //echo 'test'; $time=date('YmdHi',time()-600); $result=$mysqli->query("select max(stationtime) as stationtime, round(max(rp),3) as rp, round(avg(minws),2) as minws, round(max(maxws),2) as maxws, round(max(tempout),1) as tempout, round(min(tempout),1) as tempoutMin from tx_webcam_wetter where pid = ".$fields['pid']." and stationtime>".$time); echo "select avg(minws) as minws, max(maxws) as maxws, avg(tempout) as tempout from tx_webcam_wetter where pid = ".$fields['pid']." and stationtime>".$time; //$result=$mysqli->query("select max(stationtime) as stationtime from tx_webcam_wetter where pid=".$webcampid); //$stationtime = $stationtime->fetch_assoc(); if ($result){ $row = $result->fetch_assoc(); $stationTime = $row['stationtime']; $rp = $row['rp']; $lastWindAvg = round ($row["minws"]*0.539956803,2); $lastWindGust= round($row["maxws"]*0.539956803,2); $windDir = $fieldsarr[0]['dir0']; $lastwind=$lastWindAvg."-".$lastWindGust; if ($row["tempoutMin"] < 0){ $lasttemp=$row["tempoutMin"]; } else { $lasttemp=$row["tempout"]; } } $stationtime=$mysqli->query("select max(stationtime) as stationtime from tx_webcam_wetter where pid=".$webcampid); $stationtime = $stationtime->fetch_assoc(); //$myTestVar="select avg(minws) as minws, max(maxws) as maxws from tx_webcam_wetter where pid = ".$fields['pid']." and ".tstamp>time()-600; //echo $myTestVar; // $lastwind=round ($fieldsarr[$x]["minws"]*0.539956803,2)."-".round($fieldsarr[$x]["maxws"]*0.539956803,2); $lastwassertemp=$fieldsarr[$x]['wassertemp']; //$tempout=$fieldsarr[$x]['tempout']; /* echo $fieldsarr[$x]['maxws']."\n"; //echo $tempout."\n"; echo ("insert tx_webcam_wetter set pid='${fields['pid']}', ". "tstamp='${fields['tstamp']}',crdate='${fields['crdate']}',cruser_id='${fields['cruser_id']}',". "deleted='${fields['deleted']}',hidden='${fields['hidden']}',tempin='".$fieldsarr[$x]['tempin']."',". "tempout='".$fieldsarr[$x]['tempout']."',dp='".$fieldsarr[$x]['dp']."',rhi='".$fieldsarr[$x]['rhi']."',". "rho='".$fieldsarr[$x]['rho']."',ws='".$fieldsarr[$x]['ws']."',r1h='".$fieldsarr[$x]['r1h']."',". "r24h='".$fieldsarr[$x]['r24h']."',rtot='".$fieldsarr[$x]['rtot']."',rp='".$fieldsarr[$x]['rp']."',". "dir0='".$fieldsarr[$x]['dir0']."',minws='".$fieldsarr[$x]['minws']."',wc='".$fieldsarr[$x]['wc']."',". "maxws='".$fieldsarr[$x]['maxws']."',forecast='".$fieldsarr[$x]['forecast']."',forecastRawIcon='".$fieldsarr[$x]['forecastRawIcon']."',". "forecastRawRule='".$fieldsarr[$x]['forecastRawRule']."',forecastRaw='".$fieldsarr[$x]['forecastRaw']."',wassertemp='".$fieldsarr[$x]['wassertemp']."',". "stationtime='".$fieldsarr[$x]['stationtime']."'\n");*/ } dolog($i." Wettereihen eingetragen","Wetterinfo"); #echo $webcam['workPath']."\n"; #echo $lasttemp."\n"; if (!isset($webcam['temperaturUpdatePath'])){ $webcam['temperaturUpdatePath'] = array( $webcam['name'] ); } if (!isset($webcam['wasserTemperaturUpdatePath'])){ $webcam['wasserTemperaturUpdatePath'] = array( $webcam['name'] ); } if (!isset($webcam['windUpdatePath'])){ $webcam['windUpdatePath'] = array( $webcam['name'] ); } if(isset($webcam['windfinderUpdatePath'])){ if (substr(date("i"),1) == 4){ $windFinderStationTime = substr($stationTime, 0, 4)."-". substr($stationTime, 4, 2)."-". substr($stationTime, 6, 2)."\t". substr($stationTime, 8, 2).":". substr($stationTime, 10, 2); $wA = array ( "date" => substr($stationTime, 6, 2).".". substr($stationTime, 4, 2).".".substr($stationTime, 0, 4), "time" => substr($stationTime, 8, 2).":". substr($stationTime, 10, 2), "airtemp" => $lasttemp, "windspeed" => $lastWindAvg, "gust" => $lastWindGust, "winddir" => $windDir, "pressure" => $rp, "sender_id" => $webcam['windfinderUpdatePath']['sender_id'], "password" => $webcam['windfinderUpdatePath']['password'] ); $windguruTime = $stationTime."00"; $windguru = array( "uid" => $webcam['windguruUpdatePath']["sender_id"], "salt" => $windguruTime, "hash" => md5($windguruTime.$webcam['windguruUpdatePath']["sender_id"].$webcam['windguruUpdatePath']["password"]), "interval" => 600, "wind_avg" => $lastWindAvg, "wind_max" => $lastWindGust, "wind_direction" => $windDir, "temperature" => $lasttemp, "mslp" => $rp ); $url = http_build_query($wA); $WindGuruURL = "http://www.windguru.cz/upload/api.php?".http_build_query($wA); $url = "http://www.windfinder.com/wind-cgi/httpload.pl?".$url; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); $content = curl_exec($ch); $f = fopen("/tmp/wF.txt","w"); fwrite($f,$content); fclose($f); curl_setopt($ch, CURLOPT_URL, $WindGuruURL); $content = curl_exec($ch); $f = fopen("/tmp/windguru.txt","w"); fwrite($f,$content); fclose($f); #$response = http_get("http://www.windfinder.com/wind-cgi/httpload.pl", $wA, $info); $string = "Date \t Time \t AirTemp \t Windspeed \t Gusts \t WindDir \t Barometer \n"; $string = $string."$windFinderStationTime \t $lasttemp \t $lastWindAvg \t $lastWindGust \t $windDir \t $rp"; foreach ($webcam['windfinderUpdatePath'] as $update){ $file = fopen($webcam['webcamPath'].$update."/wetter/windfinder.txt", "w"); fwrite($file,$string); fclose($file); } } } foreach ($webcam['temperaturUpdatePath'] as $tempUpdate){ if(isset($lasttemp)){ $tempFile=fopen($webcam['webcamPath'].$tempUpdate."/wetter/temp.txt", "w"); fwrite($tempFile,$lasttemp); fclose($tempFile); } } foreach ($webcam['wasserTemperaturUpdatePath'] as $wasserTempUpdate){ $wassertempFile=fopen($webcam['webcamPath'].$wasserTempUpdate."/wetter/wassertemp.txt", "w"); fwrite($wassertempFile,$lastwassertemp); fclose($wassertempFile); } foreach ($webcam['windUpdatePath'] as $windUpdate){ $windMessungFile=fopen($webcam['webcamPath'].$windUpdate."/wetter/wind.txt", "w"); $maxMessungFile=fopen($webcam['webcamPath'].$windUpdate."/wetter/max.txt", "w"); $dirMessungFile=fopen($webcam['webcamPath'].$windUpdate."/wetter/dir.txt", "w"); $dirStrMessungFile=fopen($webcam['webcamPath'].$windUpdate."/wetter/dirStr.txt", "w"); fwrite($dirMessungFile,$windDir); fwrite($maxMessungFile,$lastWindGust); fwrite($windMessungFile,$lastwind); fwrite($dirStrMessungFile,windDirectionFromIntToStr($windDir)); fclose($windMessungFile); fclose($maxMessungFile); fclose($dirMessungFile); fclose($dirStrMessungFile); $windfile="/tmp/wind-".$windUpdate.".txt"; $stormfile="/tmp/storm-".$windUpdate.".txt"; if (@filemtime($windfile) < (time()-600) ){ exec("rm $windfile"); } if (@filemtime($stormfile) < (time()-600) ){ exec("rm $stormfile"); } if ($lastWindAvg>=$webcam['windAvgBarrier'] or $lastWindGust>=$webcam['windGustBarrier']){ exec("touch $windfile"); if ($lastWindAvg>=$webcam['stormAvgBarrier'] or $lastWindGust>=$webcam['stormGustBarrier']){ exec("touch $stormfile"); } } } //fclose($windMessungFile1); // Write camera text /* if ($camtxt != "") { $camfile= fopen($webcam['workPath']."/wetter/cam.txt", "w"); if ($camfile) { fwrite($camfile, $camtxt); fclose($camfile); } } // Write readable text $txtfile= fopen($webcam['workPath']."/wetter/wx.txt", "w"); if ($txtfile) { $txt= ""; foreach ($keys as $key) { $txt.= "$key=".$fields{$key}."\n"; } fwrite($txtfile, $txt); fclose($txtfile); }*/ } ?>