Sääasema linuxille

Aloittaja Jippe, sunnuntai, 05.12.2010, 19:49

« edellinen - seuraava »

0 Jäsenet ja 2 Vieraat katselee tätä aihetta.

Jippe

Tämä on kyllä erikoinen foorumi kun kysymyksiin vastataan nopeasti ja asiallisesti  ;D

J.Jäntti

Lainaus käyttäjältä: Jippe - tiistai, 07.12.2010, 16:10
Tämä on kyllä erikoinen foorumi kun kysymyksiin vastataan nopeasti ja asiallisesti  ;D

Se onkin tämän foorumin kulmakivi. :)
Yhteisö täällä edustaa harrastajia, jotka ovat tapelleet milloin minkäkin sääasemalaitteen tai ohjelman parissa, joten näkemystä laitteista ja kokemusta niiden käytöstä riittää täällä joka lähtöön. Nopeus tulee aktiivisten jäsentemme toimesta ja asiallisuus tulee siitä avoimmuudesta ja auttamisen tahdosta, joka täällä vallitsee. Voi melkeinpä sanoa, että mikään kysymys ei ole liian hankala. Siihen etsitään vaikka joukolla vastausta. ;D
Juha Jäntti
Foorumin ja sivuston ylläpitäjä
Finland Weather Exchange (FinWX)

http://www.finwx.net/
------------------------------------------
Ukkoskausi avattu Suomessa: --.--.2024
Ukkoskausi avattu Helsingissä: --.--.2024
-------------------------------------------
Ukkospäivälaskuri 2024; Helsinki/Viikinmäki
0 ukkospäivää.
------------------------------------------
X, FinWX:n ylläpidon ilmoitukset
------------------------------------------

Jippe

Lainaus käyttäjältä: weatherc - tiistai, 07.12.2010, 12:46
Lainaasaako tietojen tallennuksen kantaan hoidettua jptenkin web-serverillä?

Saa. Esim oman etusivun käyrien kanta tehdään serverillä.
Ajastettu php-skripti lukaisee WD:n uppaaman clientraw.txt-tiedoston ja tallentaa halutut arvot kantaan.

Löytyykö jostain puolivalmiita skriptejä? Niin hyvin ei ole php hallussa että saisin tyhjästä moisen tehtyä..

weatherc

Löytyy  ;D


<?php

$host 
""//your MySQL host name or IP address
$user ""//your MySQL username
$pass ""//your MySQL password
$db ""//your MySQL database name

$sqlcon mysql_connect($host$user$pass);
if(
$sqlcon) {
mysql_select_db($db) or die(mysql_error());
}

$wxtable "wxdata";
$rawfile  'clientraw.txt';
$ctime filemtime($rawfile);
$now time();
$diff = ($now $ctime);
if(
$diff 60) { exit; }

        
$rawdata implode(''file($rawfile));
        
$data explode(' '$rawdata);

(float)
$wspd $data['158'];
(float)
$maxwspd $data['133'];
(float)
$wgst $data['2'];
(float)
$wdir $data['3'];
(float)
$temp $data['4'];
(float)
$maxtemp $data['46'];
(float)
$mintemp $data['47'];
(float)
$humi $data['5'];
(float)
$baro $data['6'];
(float)
$maxbaro $data['131'];
(float)
$minbaro $data['132'];
(float)
$rain $data['7'];
(float)
$mrain $data['8'];
(float)
$chil $data['44'];
(float)
$hidx $data['45'];
(float)
$dewp $data['72'];
(float)
$uv $data['79'];
(float)
$sola $data['127'];
(float)
$rate $data['10'];
(float)
$soil $data['14'];

$date time();
$hr date('H');
$mi date('i');
$day date('z');
$month date('m');
$year date('Y');
$da date('Y');

$sql "INSERT INTO `$db`.`$wxtable` (`time` ,`wspd` ,`wgst` ,`wdir` ,`temp` ,`humi` ,`baro` ,`rain` ,`chil` ,`hidx` ,`dewp` ,`uv` ,`sola` ,`rate` ,`soil`) VALUES ('$date', '$wspd','$wgst', '$wdir','$temp', '$humi','$baro', '$rain','$chil', '$hidx','$dewp', '$uv','$sola', '$rate','$soil');";
mysql_query($sql);

mysql_close();
exit;
?>


Tuossa ihan peruspätkä copy/pastena omasta skriptistä, joka pikkasen monimutakisempi, tekee uuden rivin joka kerta kun ajaa. ensin täytyy tietty tehdä itse kanta sopivat kolumnit siihen vaikkapa phpMyAdminilla.  ;D

Jippe

Jotain näkyvää sain jo aikaan http://www.valimo.info/saaasema-orivesi/
Skriptiä ihmettelen huomenna tarkemmin, kiitoksia vaan!

Jippe

#25
Loin uuden tietokannan davis_wxdata, sinne taulun wxdata ja tauluun kenttiä "time", "wspd" jne...
Nyt tarvis vähän apua noiden kenttien arvojen ja asetusten kanssa. Mitä tyyppejä jne.. niille annetaan?

time kenttä on DATETIME ja NULL
wspd kenttä on FLOAT ja NULL
meneekö näin?

weatherc

Ihan kuin vain, kunhan saat sen tallentamaan lukemat oikein. Mulla ne taitaa olla VARCHAR (20) kaikki ja NULL :)

Jippe

Joo mut nyt se ei tallenna mitään, taulukko pysyy tyhjänä

weatherc

Tee echo $sql eli se komento joka skripti ajaa mysql_query:llä, aja skripti manuaalisesti, kopioi se komento, ja aja se phpMyAdminissa, tai mikä hallintasofta sun Mysql:ssä onkaan ja katso mitä virhettä puskee ulos.
Tarkista ensin että se komento joka $sql pukkaa ulos on ok, mysql on todella tarkka siinä ettei ensimmäistäkään pientä virhettä saa olla ja se ei tee yhtään mitään....

Jippe

if($diff > 60) { exit; }
Tämä rivi aiheutti kaiken turhan säätämisen, testasin wd-liven mukana tulleella clientraw-tiedostolla.

Tallennatteko kantaan unix-aikaleiman lisäksi muuta aikatietoa?