Amatérská meteorologická stanice Výsluní, Czech republic

Info o meteorologické stanici

Location: latitude 50° 26.16' N, longitude 013° 14.10' E, altitude 750 meters
Powered by Oregon Scientific WMR88, OrangePi plus, Weewx, Synology NAS server, MeteoTemplate


Úvod


Meteorologickou stanici jsem pořídil v roce 2015. Nakonec jsem si vybral stanici Oregon Scientifics WMR 88, která má USB výstup pro přenos naměřených dat do počítače. Oproti dražším modelům tato stanice nemá datalogger, takže si nepamatuje naměřené hodnoty a je nutné tyto hodnoty vyčítat ze stanice online a ukládat do externí databáze. Od začátku byl záměr naměřená data uložit v nějaké databázi a prezentovat je na webových stránkách. Takže bylo potřeba vymyslet jak. Prohledal jsem internet a našel jsem realizovatelné tři cesty - pomocí aplikací běžících na systému Windows, pomocí aplikací běžících na Linuxu a pak jsem shodou náhod narazil na odkaz, který sběr dat, přenos na externí server a publikování na webových stránkách řešil pomocí rozšířeného firmwaru Stribog ve WiFi routeru ASUS RT10N.
 

Cumulus


Ze všeho nejdřív jsem na internetu hledal nějakou volně šiřitelnou verzi aplikace pod Windows, která by uměla načíst data z meteostanice, uložit je a vytvořit webové stránky s meteoinformacemi. Mezi nejlépe hodnocené patří aplikace Cumulus. Původně jsem zamýšlel použít nějaký starší notebook, na kterém by zmíněná aplikace běžela. Po té co jsem stáhnul aplikaci, nainstaloval a odzkoušel mi až tak moc nevyhovovala. Co se týká funkčnosti tak aplikaci asi nelze nic vytknout, alespoň jsem nenarazil na nic co by nefungovalo. Ale přijde mi, že programátoři se zaměřili spíše na funkčnost, než na uživatele. Kdo by chtěl aplikaci vyzkoušet, tak doporučuju webové stránky http://pocasi.ok5aw.cz/cumulus.php.Nakonec jsem tuto variantu opustil, protože mi program po grafické stránce nevyhovoval a i nepřetržitě běžící notebook mi nepřipadal co do spotřeby ideální řešení. Autor sice vyvýjí novou verzi Cumulus MX, která bude fungovat pod Windows i Linuxem, ale je to zatím jen v testovací beta verzi a některé funkce tam jsou ještě dolaďovány. Funkčnost této verze by měla být zajištěna i na Raspberry PI. Do Linuxu se mi díky mým skrovným zkušenostem moc nechtělo, tak jsem se jal vyzkoušet aplikaci Stribog.
 

Stribog


Stribog je sice také linuxová aplikace, která se nahraje do firmware WiFi routeru ASUS RT10N, ale moc práce s tím naštěstí není. Tento router je vybaven USB portem pro připojení tiskárny či USB disku a může tak sloužit jako síťová tiskárna či jednoduchý FTP disk. Po zakoupení licence k aplikaci Stribog (k diposzici jsou licence na jeden a dva roky) jsem obdržel od společnosti Amenit s.r.o. image firmwaru pro router. Po zakoupení routeru jsem tedy provedl změnu firmwaru, připojil jsem meteostanici i internet a nakonec po celkem jednoduchém nastavení (pouze typ meteostanice a ID, které obdržíte po zakoupení licence) už data z meteostanice putovala do databáze na serveru PocasiDoma.cz. Trochu bylo potřeba laborovat s typem meteostanice, protože můj model WMR 88 v nabídce nebyl, ale po několika pokusech jsem zjistil, že stanice spolehlivě komunikuje protokolem stanice WMRS 100.
Musím konstatovat, že vše běží spolehlivě a tak jak má. Bohužel problémy byly na mé straně. Přeci jenom jsem si nepořizoval meteostanici, abych ji měl umístěnou na půdě a tahat kabel přes půl domku se mi opravdu nechtělo. Řešil jsem to s technikama v Amenitu a tam mě nasměrovali, že ten router může fungovat nejenom jako access point, ale i jako client. Otestoval jsem to a do jisté míry je to pravda. Nevím jestli je to chybka Stribogu, nebo neoficiálního firmwaru, ale jako wifi client se mi to povedlo rozchodit pouze bez jakéhokoliv šifrování - tedy na wifi free. Což se mi zrovna moc nelíbilo. Nakonec jsem v šuplíku vyhrabal jednoho starýho wifi clienta, kterej neměl s šifrováním problém, z něj jsem pak napojil ASUS router s připojenou meteostanicí a takto jsem to provozoval zhruba asi rok půl. Sice to fungovalo spolehlivě, ale pořád mě dost štvalo, že kvůli jedné meteostanici mi musí doma běžet tolik zařízení, o spotřebě elektřiny ani nemluvě. Takže jsem přemýšlel jak dál. Slabinami tohoto řešení jsou hlavně nízký počet podporovaných meteostanic a data nemáte u sebe. Na druhou stranu je to poměrně jednoduché, relativně levné a hlavně rychlé řešení - vůbec nemusíte řešit prezentaci na webových stránkách, to si pořeší firma Amenit a dle mého názoru jsou jejich stránky o počasí hodně dobré. Takže tomu kdo se s tím nechce moc zabývat a trávit dny nad počítačem, rvát si vlasy proč to zrovna nejde, to bude vcelku vyhovovat.
 

Weewx


Protože mi zatím otestované aplikace příliš nevyhovovaly, rozhodl jsem se vyzkoušet linuxové aplikace. Sice se mi do Linuxu moc nechtělo, ale nakonec jsem si řekl, že to nemůže být tak hrozné abych to nezvládl a pustil jsem se do toho. Byl jsem vcelku překvapen, občas mile, občas nemile. Mezi nejrozšířenější aplikace patří Wview. Rozhodně zajímavá aplikace, ale mě nevyhovovala, protože nemá možnost ukládat data do MySQL databáze. Pátráním na internetu jsem nalezl dvě aplikace, které by mi vyhovovaly - Weewx a Wfrog. Aplikaci Wfrog se mi nepodařilo rozchodit, což mi bylo docela líto, protože jeho grafickej výstup se mi docela líbil. No nedá se nic dělat. Pro běh linuxové aplikace jsem si zvolil minipočítač Orange Pi plus, což je obdoba Raspberry Pi, akorát je trochu líp vybavený, zejména obsahuje WiFi modul. Obdobně je sice vybavená verze Raspberry Pi 3, ale je o něco dražší a u Orange Pi Plus je napájení řešeno klasickým souosým konektorem oproti mikroUSB u Raspberry Pi, které není pro takové proudy moc konstruováno. Z webových stránek výrobce jsem si stáhnul obraz Linuxu ve verzi Debian 8, protože mi připadal celkem hodně rozšířený oproti ostatním distribucím. Vzal jsem 16GB mikroUSB flash paměť, naformátoval jsem jí pomocí aplikace SDFormatterv4. V Option settings je nutné zapnout funkci "Format size adjustment". Pak už naformátujeme SD kartu. Následně jsem použil aplikaci Win32DiskImager a nahrál na SD kartu stažený image linuxu. Po skončení nahrání image na SD kartu a jejím vložením do Orange Pi plus již po zapnutí bez problému naběhne Debian linux. HDMI výstup Orange Pi plus je nastaven do režimu 720p, takže zobrazovací zařízení musí podporovat tento režim.
Potud všechno šlo bez problémů. Image linuxu je už předpřipraven pro spuštění na daném zařízení, takže je již vše nutné nastaveno a tedy je spuštění téměř bezpracné. Trochu mi vadí, že uživatel nemá root práva k systému, ale pouze jako super user. Problém by s tím ale být neměl. Instalace je celkem dobře popsána v manuálu k programu Weewx. Je možné použít cestu s nastavením repository adresáře, nebo stažením aplikace a ruční instalací. Já jsem zvolil druhou možnost.
První věcí je update nainstalovaných součástí linuxu:
sudo apt-get update
Vlastní instalaci provedeme příkazem:
sudo dpkg -i weewx_3.6.2-1_all.deb
sudo apt-get -f install
Je nutné mít nastaven aktuální adresář, tam kde je soubor weewx, případně je nutné upravit parametr v příkazu dpkg s cestou k souboru. V průběhu instalace budete vyzváni ke vložení některých nezbytných údajů (jměno meteostanice, zeměpisné souřadnice, nadmořskou výšku a typ meteostanice). Druhý způsob instalace pomocí repository je popsán v dokumentaci k programu, který je na linux slušně napsaný. Pak již stačí připojit meteostanici a počkat cca 5 minut. V adresáři /var/www/html/weewx se vygenerují standardní webové stránky. Standardní webové stránky zobrazují textově aktuální data s minimy a maximy a grafy průběhu hodnot a také sumární data za týden, měsíc a rok. Jsou poměrně strohé a samozřejmě v angličtině.
Vygenerované html stránky lze pomocí serveru Apache přímo publikovat ze zařízení Orange Pi plus a nebo nakopírovat přes FTP na jiný server. Protože mi webové stránky s php serverem a MySQL serverem běží na NAS serveru DS116 bylo vcelku jasné, že použiju variantu s nakopírováním vygenerovaných souborů na tento NAS server. Hlavní nastavení aplikace Weewx se provádí v konfiguračním souboru weewx.conf, který je umístěn v adresáři /etc/weewx. Zde se nastavuje i kopírování souborů na FTP server (IP serveru, port, typ přenosu, přihlašovací jméno a heslo).
Dalším krokem bylo nastavení databáze. Standardně používá Weewx interní databázi SQlite, což je databáze na principu SQL, ale čistě lokální, tedy nejde k ní přistupovat vzdáleně z jiného počítače. Proto jsem se rozhodl přesměrovat ukládání dat z SQlite na MySQL na NAS serveru. Zde jsem měl trochu zásek, protože jsem provedl nastavení ve weewx.conf podle dokumentace. Nicméně to nefungovalo. V dokumentaci jsem se dočetl, že Weewx vytváří log soubor, kde by měl psát chyby. Nicméně ve verzi 3.6.2 jsem se tohoto log souboru nedohledal. Což je asi největší problém celé aplikace - aplikace pokud narazí na nějaké špatné nastavení tak bez sebemenší hlášky prostě přestane fungovat. Tím že běží jako démon, tedy na pozadí bez jakékoliv zobrazované informace, je funkčnost možno ověřit jen na vygenerovaných webových stránkách. Po čase jsem mě napadlo kde by mohl být problém a řešení jsem nalezl v dokumentaci k aplikaci Wfrog - bylo potřeba doinstalovat do Pythonu ovladač pro MySQL databáze. Nakonec jsem odkaz na tento ovladač našel i v dokumentaci k Weewx, ale v trochu jiné sekci než je popis úprav souboru weewx.conf (je to v návodu v sekci User's guide). Instalaci ovladače provedeme příkazem:
sudo apt-get install python-mysqldb
Pokud chcete nějak upravit vzhled html stránek můžete se podívat na internetu po nějaké vhodné šabloně, nebo se pustit do úprav standardní šablony (případně pro zdatnější vytvořit si šablonu od základu novou). Jednou z hotových šablon je šablona založená na SteelSeries komponentách. Tato šablona je použitelná s několika meteoservery a mimojiné i s Weewx. Funguje to tak, že meteoserver v pravidelných intervalech ukládá předem definovaný datový soubor, který php script s komponentami SteelSeries načte a zobrazí pomocí analogových kulatých ukazatelů - viz. ukázka. Problém byl, že moje instalace Weewx nechtěla generovat datový soubor. Nepovedlo se mi to rozchodit. Po spoustě hledání na internetu jsem narazil na modul do Weewx, který generuje data v podobě jakým je generuje jiný meteoserver - Weather display. Jedná se o modul Weewx-wd a instaluje se následovně:
wget -P $DOWNLOAD_ROOT https://bitbucket.org/ozgreg/weewx-wd/downloads/weewxwd-1.0.3.tar.gz
sudo /etc/init.d/weewx stop
wee_extension --install=$DOWNLOAD_ROOT/weewxwd-1.0.3.tar.gz
sudo /etc/init.d/weewx start
První příkaz stáhne soubor weewxwd-1.0.3.tar.gz do adresáře pro stažené soubory. Druhý příkaz zastaví Weewx. Třetí nainstaluje modul do Weewx a čtvrtý opět spustí Weewx. Instalace celkem v pohodě, ale požadovaný datový soubor to vygenerovalo pouze napoprvé a pak už to nefungovalo. Nepřišel jsem na to proč tomu tak je. Ponechal jsem to prozatím být a vrátil jsem se k tomu asi za týden a k mému překvapení vše fungovalo. Datový soubor se aktualizoval každých 5 minut a šablona SteelSeries ukazovala data. Jedinné co nefungovalo byly grafy při najetí kurzoru nad nějaký ukazatel. Je to sice efektní šablona, ale měl jsem představu, že mi analogové ukazatele zobrazí aktuální hodnotu a zároveň vedle zobrazený graf mi zobrazí historii. Potřeboval jsem nakombinovat původní šablonu se šablonou SteelSeries. Nezbylo mi nic jiného než se pustit do úpravy standardní šablony Weewx. Bylo to krůček po krůčku metodou pokus-omyl, ale postupně jsem to o volných večerech dal asi za dva měsíce dohromady.
  Po čase ovšem nastal další výpadek v prezentaci dat na webu a opakovalo se to vždy po několika dnech. Domníval jsem se, že je chyba v šabloně WEEWX, nebo v generátoru WEEWX a tak jsem se jal naprogramovat vlastní script v PHP, který by zobrazoval data zaznamenané pomocí WEEWX do databáze. Výsledek můžete vidět na těchto webových stránkách. Je potřeba ještě dopilovat zobrzení historických dat, ale aktuální data s grafy za posledních 24 hodin a výpis dat z databáze již funguje. Paradoxem je, ze jsem posléze objevil příčinu vypadávání zobrazení šablony WEEWX - na vině byl USB kabel, kterým je připojena meteostanice k meteoserveru. To už jsem ale měl většinu PHP scriptu napsanou a interaktivní grafy se mi zalíbily, takže jsem se zpět k WEEWX šabloně nevracel.