Doporuceni

Počasí v domě“ aneb Jak funguje naše kancelářská meteorologická stanice / Habr

Ve skutečnosti se ta myšlenka vznášela ve vzduchu už několik let. Dost podrobně jsme fantazírovali o tom, jak bychom využili data z naší vlastní meteorologické stanice k opravě předpovědi počasí na službě [email protected], vysílali video přenos počasí za oknem a dokonce vybudovali síť meteorologických stanic a přenosů od našich uživatelů. Možná se tohle všechno jednou opravdu stane, ale prozatím jsme začali v malém – s vysíláním dat z naší kancelářské meteorologické stanice všem, kteří si to přejí. Jak to vypadá, se můžete podívat zde: pogoda.mail.ru/office. A jak to funguje – čtěte dál.

V současné době je služba zaměřena především na zaměstnance společnosti („co je venku?“, „co si mám obléct?“ – mimochodem velmi relevantní, když jedete z jihu Moskvy do kanceláře na severu, kde je počasí často úplně jiné), obyvatele okolí (kteří samozřejmě vědí, kde se nachází kancelář Mail.Ru Group – připomínám, že se nacházíme dvě minuty od stanice metra Aeroport) a další nečinné pozorovatele (například když venku tak přesvědčivě vyje, se zájmem běžím podívat se na sílu větru, kterou naše stanice ukazuje). Existuje ještě jedna kategorie pozorovatelů – návštěvníci naší kanceláře, ale o tom níže.

Pojďme k nejzajímavější části – „jak to funguje?“

Nejdříve jsme si vybrali hardwarový meteorologický komplex Davis 6162EU Wireless Vantage Pro2 PLUS (stál asi 50 tisíc rublů) od společnosti Davis Instruments. Proč Davis? Chtěli jsme zachovat rovnováhu mezi těmi velmi „domácími“ stanicemi od RST nebo Oregon Scientific (mimochodem, skvělý dárek pro přítele/kolegu „závislého“ na vychytávkách) a těmi velmi profesionálními, například Coastal Environmental, které používají vojáci a záchranáři.

Výběr modelu je následně určen několika dalšími faktory: napájením z vestavěné baterie (dobíjí se solární baterií), bezdrátovou interakcí externí a interní jednotky, dalšími senzory. Bezdrátové technologie umožnily instalaci stanice během několika hodin bez technických nákladů a prakticky eliminovaly její údržbu. Navíc si ji při změně kanceláře, která nastane v dohledné budoucnosti, vezmeme s sebou.

  • Tlak atmosféry
  • Venkovní a vnitřní teplota vzduchu
  • Relativní vlhkost vzduchu v interiéru a exteriéru
  • Rychlost a směr větru
  • Teplota rosného bodu
  • Množství a intenzita srážek
  • Intenzita slunečního záření
  • Index ultrafialového záření

Stanice tedy má téměř vše, co je potřeba, až na chybějící automatické určování charakteru oblačnosti. Právě pro tyto účely jsme svého času o videokomplexu uvažovali, ale prozatím jsme se rozhodli omezit se na pragmatický pohled z okna.

Takže jednoho slunečného, horkého letního dne jsme nainstalovali venkovní jednotku meteorologické stanice na střechu naší kanceláře a vnitřní do serverovny o patro níže. Protože jsme se okamžitě soustředili na využití dat z webu, zanedbali jsme dostupnost vnitřní jednotky (ach, opravdový ovládací panel pro počasí!) a umístili ji vedle serveru. Ano, tím jsme na jednu stranu ztratili funkci sledování teploty a vlhkosti uvnitř kanceláře, na druhou stranu jsme získali další možnost monitorovat mikroklima serverovny.

O technických implementačních vlastnostech projektu

Jak vysvětluje Andrey Mainagashev, systémový architekt projektu, abychom mohli pravidelně přijímat meteorologická data z naší stanice, museli jsme v naší kancelářské serverovně vyhradit samostatný počítač, pro který byl zakoupen a nainstalován software WeatherLink (stál asi 8 tisíc rublů). Propojení mezi vnitřním blokem meteorologické stanice a tímto počítačem se provádí speciálním kabelem, který umožňuje propojit COM port zařízení s USB portem počítače. Hlavní podmínkou pro příjem aktuálních dat o „počasí venku“ je neustále spuštěná a vhodně nakonfigurovaná aplikace WeatherLink.

Okamžitě jsme měli otázku, jak může tento software poskytovat data o počasí a jak je můžeme přenést na náš webový server. Po prozkoumání dokumentace jsme zjistili, že mimo jiné tento software dokáže sám generovat soubory s daty o počasí na základě šablon (kterých například bylo poměrně dost) podle flexibilního harmonogramu, navázat připojení k internetu (v případě potřeby) a tyto soubory publikovat přes FTP nebo je ukládat lokálně na disk (včetně síťového).

S formátem šablony jsme se rozhodli poměrně rychle – rozhodli jsme se použít jednoduchý a snadno čitelný JSON. Vyvstala otázka ohledně způsobu přenosu vygenerovaných souborů z interní kancelářské sítě, kde se nachází počítač obsluhující meteorologickou stanici, na vzdáleně pracující webový server, kde by se přijatá data měla ukládat, konsolidovat a poskytovat pro krásné zobrazení na stránkách uživatelských prohlížečů.

Protokol FTP byl okamžitě vyloučen kvůli své nejistotě. Zvažovala se možnost přenosu těchto souborů přes HTTP, přičemž by se pro tento účel nastavil nějaký „Windows“ webový server, ale toto řešení vyžadovalo zajištění přístupu zvenčí do interní kancelářské sítě, a proto vyvolalo logické negativní hodnocení ze strany bezpečnostních specialistů.

V důsledku toho jsme se rozhodli pro možnost vytváření souborů s meteorologickými daty na lokálním disku s následným přenosem na vzdálený webový server prostřednictvím protokolu HTTP (metodou PUT). Proces analýzy a následného zpracování a ukládání přijatých informací byl převzat na samotném serveru. Získali jsme tak řešení, ve kterém se všechna data z kancelářské meteorologické stanice, která nás zajímají, každou minutu ukládají do databáze projektu [email protected] a tam jsou neustále k dispozici pro zobrazení „na webu“.

Rád bych řekl pár slov k úkolu překladu textů předpovědí generovaných programem WeatherLink do ruštiny. Musel jsem se podívat „dovnitř“ tohoto programu, abych získal různé možnosti pro sestavování anglických frází, ze kterých se nakonec sestavují předpovědi. Poté, co jsem vybral fráze a určil jejich pořadí pro vyhledávání při sestavování ruských frází, jsem byl schopen dosáhnout víceméně rozumného překladu.

Mluví a ukazuje

Zpočátku jsme plánovali zobrazovat data ze stanice na speciálních monitorech v kanceláři a umožnit zaměstnancům prohlížet si tato data na webu. Okamžitě vyvstala otázka – jak správně kreslit a rozvrhnout? Rozhodli jsme se zaměřit na širokou škálu rozlišení monitorů, udělat obrázek co nejfunkčnější, uživatelsky přívětivější a zároveň dostatečně asketický, aby uživatele nerozptyloval grafikou od samotných dat, a tak bylo rozhodnuto použít vektorovou grafiku.
Nápad realizoval webový technolog Artem Sapegin (sapegin). Pro práci s vektorovou grafikou (SVG) z JavaScriptu se používá knihovna Raphaël. Poskytuje pohodlné API pro všechny hlavní funkce SVG. Kromě toho funguje v IE 6-8 a emuluje SVG pomocí VML.

Skript „informer“ se skládá ze tří částí: sady widgetů, rozvržení a hlavního skriptu, který to vše spojuje.

Widgety jsou minimalistické prvky rozhraní. Jsou to jak jednoduché prvky, jako text nebo šipka (jakýkoli vektorový objekt, jehož úhel natočení závisí na datech), tak složité prvky, jako histogram (který obsahuje text i šipky). Každý widget dokáže aktualizovat data a design. Oba jsou animované. Pokud stránku chvíli sledujete, můžete vidět pohyb ručičky hodin. A pokud si doplníte termosku s kávou a sendviči, můžete dokonce počkat na změnu dne a noci.

Rozvržení je rozsáhlý popis všech typů widgetů, jejich vztahu ke vstupním datům, jejich designu, použitých témat (denní a noční) atd.

Samozřejmě se to neobešlo bez obtíží. Například Raphaël neumožňuje plnou kontrolu nad průhledností přechodů, takže přechod na poloprůhledném pozadí „pes“ se přidává ruční změnou vlastností SVG uzlu, který Raphaël vytvořil.

Dalším problémem je horní lišta, která se rozprostírá přes celou šířku obrazovky. Po několika experimentech byl nalezen velmi jednoduchý způsob, jak ji vykreslit: lišta je posunuta doleva a má šířku, která je zjevně větší, než by mohlo být potřeba. To znamená, že jednoduše „visí“ za hranicemi SVG objektu na obou stranách. Nicméně IE, a to i verze 9, která podporuje skutečné SVG, neumožňuje vykreslit cokoli za SVG/VML objekt. Proto je lišta vytvořena jako obrázek na pozadí pro tag body speciálně pro IE.

Co se stalo?

Návštěvníci naší centrální kanceláře v Avion Business Center mohou na recepci vidět speciální monitor, který jim informuje o počasí, a vy, milí čtenáři, si výsledky můžete prohlédnout právě teď zde: http://pogoda.mail.ru/office/

A o počasí

Zrovna nedávno byla spuštěna nová verze [email protected], kde kromě tradičních předpovědí pro několik tisíc měst přibyla další – výsek dat z naší meteorologické stanice. A i když se zatím jedná pouze o Moskvu, Mail.Ru Group má mnoho zastoupení v různých částech naší země a dokonce i v zahraničí. Sníme o tom, že se stanice objeví všude v našich kancelářích a vytvoříme plnohodnotnou síť meteorologických stanic, která pomůže našim uživatelům trochu správněji se připravit na tradiční povětrnostní překvapení, která zatím nikdo nedokázal přesně předpovědět.

A. ať je pořád léto!

Anatolij Rožkov,
Ředitel mediálních projektů Mail.Ru

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button