pátek, 20 září 2019 09:15

Mikrokrajinky - 20. září 2019

Ohodnotit tuto položku
(0 hlasů)

Rychlý cvak těsně před příjezdem vlaku. V tom fofru mi ujel focus (vlak naštěstí ne), což jsem se neúspěšně pokusil zamaskovat SW patláním. Nicméně bych si ty chuchlíky rád vyfotit ještě jednou, v klidu a pořádně.

Nedávno jsem se tady hrdil se svou krásnou novou meteostanicí Ventus W830.

Při výběru jsem se zaměřil výhradně na wi-fi stanice, abych nemusel řešit lokální úložiště dat, manuální stahování údajů ze stanice apod. Po chvíli zápasení s nastavením automatického odesílání dat do cloudů pomocí aplikace WS View jsem si uvědomil, že je sice fajn mít krásné grafy na Ecowitt Weather, Weather Cloud či Weather Underground, ale co je to člověku platné, když se data po roce automaticky mažou (pokud nezaplatíte).

Takže jsem se vrhnul do zkoumání různých alternativ, přičemž jsem velice rychle zjistil, že pokud chci mít nad svými údaji o měření kontrolu, musím si je ukládat někam k sobě (čímž jsem se dostal do příkrého rozporu s mým hlavním kritériem výběru meteostanice).

Variantu domácího serveru jsem okamžitě zavrhnul, takže mi zůstalo řešení postavené na webových službách. Protože jsem už do tohoto „projektu“ nechtěl vrážet další peníze, musel jsem využít svého stávajícího hostingu, čímž pádem jsem potřeboval najít SW napsaný v php (a MySQL).

Jako jeden z mála (dokonce snad možná i jako jediný) mým potřebám vyhověl rozsáhlý (český!) projekt Meteoteplate.com. Ten dokáže importovat dat z meteostanic různými způsoby, ale jako nejpoužitelnější mi přišlo použití API.

Mobilní aplikace WS View umožňuje (kromě odesílání dat do předem definovaných cloudových služeb) specifikovat i vlastní adresu/IP.  

Po několika pokusech se mi podařilo z logu serveru zjistit, jaké požadavky meteostanice vlastně odesílá:

"GET /weatherstation/updateweatherstation.php?ID=na&PASSWORD=Nepovím :)&indoortempf=77.0&tempf=46.9&dewptf=41.0&windchillf=46.9&indoorhumidity=47&humidity=80&windspeedmph=0.0&windgustmph=0.0&winddir=259&absbaromin=29.829&baromin=30.428&rainin=0.000&dailyrainin=0.000&weeklyrainin=0.118&monthlyrainin=1.799&solarradiation=68.51&UV=0&dateutc=2019-09-20%2007:15:36&softwaretype=EasyWeatherV1.4.2&action=updateraw&realtime=1&rtfreq=5"

 

To vypadalo nadějně. Stačilo vytvořit php script updateweatherstation.php a umístit jej na web do adresáře weatherstation. Scriptu stačí přečíst vstupní parametry z meteostanice (viz výše), přemapovat je na odpovídající parametry API, provést konverze jednotek (stupně Fahrenheita na stupně Celsia, palce na milimetry, míle za hodinu na kilometry za hodinu, palce rtuti na hectopascaly), časový údaj zkonvertovat do UTC UNIX Timestamp a nakonec tyto údaje předat do API (api.php v rootu webu). Php neovládám, ale díky „Google programování“ jsem vyplodil následující řádky:

<?php
 
 include("../config.php");
 include("../scripts/functions.php");
 
 date_default_timezone_set('UTC');
 $datetime = new DateTime($_GET['dateutc']);
 $local_time = new DateTimeZone($stationTZ);
 $datetime->setTimezone($local_time);
 $epoch = date_format($datetime, 'U');
 
 
 $protocol = (!empty($_SERVER['HTTPS']) &amp;&amp; $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
 $domainName = $_SERVER['HTTP_HOST'].'/';
 
 $url = $protocol.$domainName."api.php?";
 
 $url .= "PASS=".$_GET['PASSWORD']."&amp;";
 $url .= "U=".$epoch."&amp;";
 $url .= "T=".convertor($_GET['tempf'],"f","c")."&amp;";
 $url .= "H=".$_GET['humidity']."&amp;";
 $url .= "P=".convertor($_GET['baromin'],"inhg","hpa")."&amp;";
 $url .= "W=".convertor($_GET['windspeedmph'],"mph","kmh")."&amp;";
 $url .= "G=".convertor($_GET['windgustmph'],"mph","kmh")."&amp;";
 $url .= "B=".$_GET['winddir']."&amp;";
 $url .= "R=".convertor($_GET['dailyrainin'],"in","mm")."&amp;";
 $url .= "RR=".convertor($_GET['rainin'],"in","mm")."&amp;";
 $url .= "S=".$_GET['solarradiation']."&amp;";
 $url .= "UV=".$_GET['UV']."&amp;";
 $url .= "TIN=".convertor($_GET['indoortempf'],"f","c")."&amp;";
 $url .= "HIN=".$_GET['indoorhumidity']."&amp;";
 $url .= "SW=".$_GET['softwaretype'];
 
 $contents = file_get_contents($url);
 #echo "success";
 
 
?>

 

S obrovským překvapením jsem zjistil, že tohle řešení funguje bez jediného problému (když nepočítám výpadky internetu) a vidět je můžete na adrese https://meteo.fotozapisnik.eu.

 

 

Přečteno 40 krát Naposledy změněno pátek, 20 září 2019 11:32

Související položky (podle značky)

Přidat komentář


Bezpečnostní kód
Obnovit

Prohledávání článků

Počasí

Reklama

Poslední komentáře

  • Dvanáct grádů No.15

    Martin 02.10.2019 08:43
    Odp.: Dvanáct grádů No.15
    Pivo je výrazně lepší než jeho předchůdci, ale chuťově ještě bude potřebovat doladit. Ale možná se ...
     
  • Dvanáct grádů No.15

    Sawyer 01.10.2019 20:28
    Odp.: Dvanáct grádů No.15
    Ahoj, už můžeš udělat nějaký relevantní chuťový závěr? :)
     
  • Konečné(?) řešení kvasné nádoby

    Martin 01.10.2019 09:41
    Odp.: Konečné(?) řešení kvasné nádoby
    Jenom ta představa mě dost zneklidnila... Starsan se už - pokud vím - do Evropy nesmí dovážet, takže ...