Wiele osób zapewne się zastanawia, po co przesyłać dane na własną stronę, jeżeli można przesyłać je do serwisu pogodowego? Odpowiedź jest prosta. Takie dane mogą służyć jako np. archiwum naszych pomiarów. Nie wszystkie stacje, które wysyłają dane do Internetu, mają możliwość archiwizacji pomiarów w pamięci wewnętrznej stacji albo w pamięci zewnętrznej (np. na kartach pamięci). W serwisach pogodowych, nie zawsze jest też możliwość pobrania naszych danych, albo taka możliwość jest ograniczona czasowo, np. do ostatnich kilku miesięcy.
Czasami jest też tak, że są jakieś problemy z przesyłaniem i chcemy sprawdzić, jakie dane wysyła stacja, albo czy poprawnie przesyła pomiary do serwisów pogodowych. Wtedy przesłanie danych na własną stronę może pozwolić na zidentyfikowanie problemu.
Takie przesyłanie odbywa się najczęściej za pomocą protokołu Weather Underground (WU) lub Ecowitt. Protokół WU przesyła dane metodą HTTP GET, generuje to długie adresy URL, bo wszystkie informacje pogodowe są zawarte w adresie. Protokół Ecowitt wykorzystuje metodę HTTP POST, adres URL jest krótki, a dane pomiarowe nie są widoczne w odwołaniu URL.
Możliwość archiwizacji pomiarów na własnej stronie to spora zaleta i warto z niej korzystać.
Jak odebrać dane na stronie i archiwizować je w plikach tekstowych?
Jeżeli mamy dostęp do serwera lub hostingu internetowego z obsługą PHP, to możemy to w bardzo prosty sposób zrobić. Wystarczy utworzyć plik PHP np. "archiwum-stacja.php" z poniższym kodem. Kod jest bardzo prosty i uniwersalny, ma tylko 31 linii:
<?php
if(!empty($_GET))
{
$wejscie=$_GET;
}
elseif(!empty($_POST))
{
$wejscie=$_POST;
}
if(isset($wejscie) and is_array($wejscie))
{
$plik='dane-stacja-'.date('W').'-'.date('o').'.csv';
if(empty($wejscie['dateutc']))
{
$wejscie['dateutc']=date("Y-m-d H:i:s");
}
$dane="'".implode("','",$wejscie)."'";
if(!is_file($plik))
{
$dane_nag="'".implode("','",array_keys($wejscie))."'";
$zapis=file_put_contents($plik, $dane_nag."\n".$dane."\n");
}
else
{
$dane=file_get_contents($plik).$dane;
$zapis=file_put_contents($plik, $dane."\n");
}
if(!empty($zapis))
{
echo 'success';
}
}
?>
Po umieszczeniu pliku na serwerze, trzeba w konfiguracji stacji podać internetowy adres do naszego pliku, czyli np. "http://jakas-domena.pl/archiwum-stacja.php". Ważne, aby nie był to adres z bezpiecznym połączeniem (https), bo stacje takich połączeń raczej nie obsługują.
Wszystkie dane, które zostaną przesyłane z naszej stacji, za pomocą protokołu WU lub Ecowitt, będą automatycznie zapisywane w plikach tekstowych CSV. Jeden plik będzie zawierał pomiary z jednego tygodnia roku.
Przykładowa zawartość pliku z danymi
Pliki będą miały nazwę "dane-stacja-[tydzień roku]-[rok].csv". W pierwszym wierszu każdego pliku znajdują się nazwy przesyłanych parametrów pogodowych, kolejne dane będą zapisywane w nowej linii. Takie pliki bardzo łatwo zaimportować w arkuszu kalkulacyjnym i tam je analizować.
Myślę, że warto z możliwości przesyłania pomiarów na własną stronę korzystać, tym bardziej, że dużo stacji ma możliwość przesyłania pomiarów jednocześnie do kilku serwisów pogodowych.
Autor: Parasol (Stacje-Pogody.pl)