TMEP v8
aplikace pro přehledné zobrazení výstupu z TME/TH2E pomocí metody HTTP GET
Autoři:
Michal "MultiTricker" Ševčík, multi@tricker.cz, http://multi.tricker.cz,
František "EFES" Ševčík, f.sevcik@seznam.cz
Sponzor:
Papouch - http://www.papouch.com, výrobce těchto skvělých mašinek
Obsah
- Představení
- Instalace
- Aktualizace na verzi 8
- Seznam změn
Vážení přátelé,
dostala se Vám do rukou malá webová aplikace psaná v PHP, která za pomocí
databáze (typicky MySQL) a třídy JpGraph či Open flash chart pro generování
grafů, dokáže celkem šikovně zobrazit všelijaké statistiky z Vašeho
ethernetového teploměru/vlhkoměru.
Jak to celé funguje? Váš teploměr s přístupem na internet (aplikace samozřejmě
může fungovat i na lokální síti) odešle skriptu aktuální měření, ten jej zapíše
do databáze a dále s ním pracuje.
Pro případné opravy, prosím, sledujte můj blog nebo
stránky Papoucha a pokud to bude
v mých silách a možnostech, tak otázky/pochvaly pište na multi@tricker.cz
Potřebné kroky k zprovoznění aplikace:
1) Nastavit TME/TH2E.
Nastavení TH2E
Připojte se na webovou stránku TH2E a zvolte jeho konfiguraci. Je potřeba mít správně vyplněné parametry
na záložce Síť, zejména IP adresu, masku, bránu a DNS. Poté přistupte k nastavení na záložce "Odesílání". Vyplňte
adresu webového serveru, port webu (80), adresář skriptů na serveru,
periodu odesílání GETu (1, tedy jednou za minutu) a napište Název skriptu (index.php).
Bude-li adresa Vašeho měření např. http://moje.mereni.cz/aplikace/, potom vyplníte:
Adresa webového serveru: moje.mereni.cz
Port webu: 80 (standardní port)
Adresář skriptů na serveru: aplikace/
Perioda odesílání GETu: 1
Název skriptu: index.php
Nastavení novějšího TME
Připojte se na webovou stránku TME a zvolte jeho konfiguraci. Je potřeba mít správně vyplněné parametry
na záložce Síť, zejména IP adresu, masku a bránu. Poté přistupte k nastavení na záložce "Odesílání". Vyplňte
IP adresu webového serveru, jméno webového serveru (www.neco.cz), port webu (80), adresář skriptů na serveru,
periodu odesílání (60 pro 60 vteřin, tedy jednou za minutu), zaškrtněte aktivaci odesílání HTTP GETu a
napište Název skriptu (index.php).
Bude-li adresa Vašeho měření např. http://moje.mereni.cz/aplikace/, potom vyplníte:
Adresa webového serveru: to zjistíte od poskytovatele Vašeho webhostingu nebo pingem na moje.mereni.cz
Jméno webového serveru: moje.mereni.cz
Port webu: 80 (standardní port)
Adresář skriptů na serveru: aplikace/
Název skriptu: index.php
Nastavení nejstaršího TME (1.6, 1.7)
Připojte se do TME přes konfigurační utilitu od Papoucha. (Konfigurační software naleznete zde:
http://www.papouch.com/cz/shop/product/tme-ethernetovy-teplomer/).
Na položce HTTP GET zaškrtněte "Zasílat teplotu na HTTP server",
do URL cesty napište úplnou cestu kde bude umístěna webová aplikace a soubor
index.php, tedy např.: http://www.lojzuvweb.cz/tme/index.php
Do IP adresy vepište IP adresu webového serveru, kde je stránka umístěna. Tato
adresa se dá velice jednoduše doplnit, když kliknete na zavináč, který je napravo
od URL (webový server musí být dostupný).
Dále v nastavení zadejte periodu zasílání 60 sec (tedy každou minutu, s tímto
celá aplikace počítá) a do GUID si vymyslete jednou souvislé slovo bez
diakritiky, které budete za chvíli muset vepsat do konfiguračního souboru
aplikace.
V aplikaci pro nastavení TME zvolte dole "Nastavit", čímž se uloží naše
nastavení do teploměru.
2) Konfigurace aplikace
V adresáři "app" se nachází všechny potřebné soubory a je zde vedle
"index.php" také soubor "config.php", kde je potřeba nastavit údaje pro
připojení k databázi, tedy server, jméno, heslo a samotný název DB. Tyto údaje
byste měli dostat od poskytovatele Vašeho webhostingu, pokud to je možné.
Pokud používáte nejstarší TME, tak je zde nutné nastavit GUID a místo "teplota" doplnit vlastní
řetězec, který jste nastavili v nastavení TME přes utilitu. Volitelně je níže do $ip možné
doplnit IP adresu, ze které Váš teploměr odesílá požadavky za účelem jakéhosi
zabezpečení aplikace.
3) Nastavení databáze
Je potřeba vytvořit odpovídající tabulky v databázi, kam bude skript
ukládat naměřené hodnoty. Přes jaký program/webovou aplikaci tak učiníte je
již na Vás a možnostech Vašich/Vašeho webhostingu. SQL kód, který je potřeba na
databázi poslat aby se provedl naleznete v souboru "mysql-db-full.sql", který je
umístěn vedle souboru, který právě čtete.
4) Nahrání aplikace na web
Nahrajte webovou aplikaci (tedy obsah adresáře "app") na své místo na
internetu. Mj. musí odpovídat cesta k index.php s cestou zadanou v TME/TH2E přes
konfigurační utilitu.
Nyní by mělo být vše nastavené a uložené tak, jak má. Aplikace by měla
přijímat teploty a ty následně zobrazovat jak textově ve formě statistik,
tak i ve formě několika přehledových grafů.
Děkuji za pozornost a přeji příjemnou zábavu!
Jak aktualizovat aplikaci TMEP na verzi 8.
Je to velice jednoduchý proces, je třeba:
1) Aktualizovat databázové schéma, pokud používáte verzi 5 nebo starší.
Abyste to udělali, stačí jen spustit "mysql-db-update-v5.sql" nad Vaší databází přes
nějakého správce databáze, např. přes Adminer - http://www.adminer.org.
2) Přepsat staré soubory aplikace kromě "config.php" novými soubory, které se nachází
v adresáři "app" v archivu, který jste stáhli společně s tímto souborem s instrukcemi pro aktualizaci.
Pokud jste provedli nějaké změny ve starých souborech, tak je bude třeba provést znovu (např. pokud
jste upravovali styly CSS apod.). Přejmenujte soubor "nastaveni.php" na "config.php".
Do souboru "config.php" přidejte řádek s "$vlhkomer" pro definování,
zda chcete zobrazovat naměřenou vlhkost (pokud nemáte vlkoměr, tak to nemusíte dělat).
3) Smažte adresář "cache" ve staré aplikaci. Nyní již není třeba.
4) Je potřeba dopočítat řadu údajů za všechny měřené dny kromě aktuálního. Spouštějte v internetovém prohlížeči
soubor "scripts/dopocitat.php" v umístění aplikace na webu postupně tak dlouho, dokud nevypíše, že jsou data dopočítána. Postupně
se budou zobrazovat dopočítávané dny. Tato operace může na pomalých serverech s velkým množstvím naměřených
hodnot trvat delší dobu. K dopočítávání dochází stejně tak při otevírání úvodní stránky TMEPu.
U mě konkrétně dopočítání více jak tří let měření zabralo jen několik minut.
verze 8.1 (2015-04-21)
verze 8 (2014-10-19)
verze 7.0.1 - 7.0.4 (2014-03-22)
- Oprava - Na malých obrazovkách (rozlišeních) se nemusel vykreslit graf teplot za poslední tři dny, protože hodnot pro osu X bylo více než kolik se tam mohlo vejít.
- Oprava - Pozadí aktuální teploty ve verzi bez vlhkoměru.
- Oprava - Kontrola proměnných ve dvou AJAXových skriptech.
- Oprava - Správné zobrazení nulové hodnoty pro jednoty mimo Celsius.
- Oprava - Přesnější (správné) načtení hodnoty "dříve touto dobou".
- Oprava - Tabulka "Dříve touto dobou" se vkládá ze skriptu a bylo odstraněno zdvojení kódu.
- Oprava - Vycentrování stránky s nej teplotami.
verze 7.0 (2014-01-03)
- Nová responzivní a adaptivní verze aplikace pro pohodlné zobrazení stránky na různých rozlišeních. Čistě mobilní verze byla odstraněna (není pro ni důvod, naopak byla přítěží).
verze 6.5 (2013-12-31)
- Vylepšení výkonu - záložky denních, měsíčních a ročních statistik se donačítají až po kliknutí na záložku přes AJAX.
- CSS sprites pro obrázky vlajek a podkladové obrázky značící vývoj teploty v okénku nahoře vpravo. Místo 15 obrázků se načítají jen 2.
- Aktualizace na poslední verzi Highcharts (3.0.7).
verze 6.4 (2013-12-29)
- Pro MySQL použita extenze MySQLi kvůli kompatibilitě s novými verzemi PHP.
verze 6.3 (2013-06-27)
- Překlady do švédštiny a finštiny, díky www.comtech.fi!
- Překlady do ruštiny a slovenštiny, díky HOME-METEOsystem!
- XML export pro gadget do Windows 7 od Papoucha.
- Skript pro zpracování teploty z výstupu MikroTiku (http://www.papouch.com/cz/shop/product/tm-teplomer-mikrotik/).
- Drobné opravy.
verze 6.2 (2013-02-27)
- Optimalizace SQL dotazů - stránky se nyní načítají rychleji a některé operace jsou nesrovnatelně rychlejší. Konzultaci a řešení poskytl databázový guru Radek Trubnyj - velice Ti děkuji!
- Opraveno zobrazení nej počtu naměřených hodnot na měsíčních statistikách (měření bez vlhkoměru).
- Opraveno zobrazení min/max teplot a vlhkostí za daný den, pokud je max. teplota 0.
- Úprava "nejstudenější" za "nejchladnější" u měsíčních měření.
verze 6.1 (2013-02-02)
- Doplněn polský překlad. Za jeho vytvoření děkuji obchodu www.meteoshop.cz.
- Do mobilní verze přidán přehled nej teplot (a vlhkostí) za aktuální den.
- Upraveno přesměrování na mobily - pokud se nepoužívá, tak se kvůli němu nenačítá patřičná knihovna (která funguje na PHP 5 nebo vyšším).
- Optimalizace některých SQL dotazů.
- Opraveno chybné vložení javascriptového souboru v mobilní verzi.
verze 6 (2012-12-01)
- Integrován jQuery FancyBox pro zobrazení dalších oken se statistikami a grafy (viz co je možné zobrazit níže).
- Na záložce "Aktuálně" přibyl řádek s minimální, průměrnou a maximální teplotou (a vlhkostí) za aktuální den.
- Možnost zobrazit delší historii (31 dní) pro "Dříve touto dobou" a to i pro konkrétní čas a včetně grafu.
- Možnost zobrazit 15 dnů s rekordní nejmenší a nejvyšší teplotou (i průměrnou).
- Možnost zobrazit přehled dnů s nejméně a nejvíce naměřenými hodnotami.
- Možnost zobrazit nový rozptylový graf pro denní a měsíční statistiku teploty a vlhkosti.
- Možnost zobrazit delší historii nej. rekordů u měsíců.
- Možnost zobrazit delší historii u denní doby.
- Možnost zobrazit vývoj teploty a vlhkosti za celý rok po dnech.
- Další pročištění kódu.
- Opravena francouzština.
verze 5 (2012-10-28)
- Grafy nově tvořené Highcharts JS (http://www.highcharts.com/). OFCH a JpGraph jakožto generátory grafů zcela vypuštěny. Grafy jsou nyní výrazně lepší, jendodušší, dostupnější...
- Teplota, vlhkost i rosný bod jsou nyní v jednom grafu.
- Vylepšená detekce mobilních zařízení (pomocí PHP knihovny Mobile_Redirect - http://code.google.com/p/php-mobile-detect/). Tablety nejsou přesměrovávány na mobilní verzi.
- Úpravy pro nevypsání nuly v případě nenaměřené hodnoty.
- Možnost správně zapsat hodnotu "null" do tabulky tme_denni.
- V grafech u hodnot je přímo uvedena jednotka (dříve nebylo možné).
- Doplněna ikona refreshe a plné verze v mobilní verzi.
- Opraveno vložení grafů do mobilní verze.
- Čištění a optimalizace kódu. Spousta nepoužívaných a zbytečných řádků kódu je pryč, zrušeny či sloučeny dotazy na databázi.
- Doplněno chybějící “ajax-loader.png” a “icons-18-white.png”, které se prohlížeč snaží otevřít při pokusu o otevření mobilní verze.
- Aktualizované zdroje jQuery mobile
- Skripty jednotně kódované v UTF-8.
verze 4.2 (2011-08-08)
- Nová mobilní verze stránky a automatické přesměrováni na ni. Využívá knihovnu jQuery Mobile, optimalizováno především pro iPhone a Android (Cyrille David - cyrille@david-gooris.com).
- Aktualizován francouzský překlad a některé typografické chyby (Cyrille David - cyrille@david-gooris.com).
- Do menu přidána ikonka pro přechod na mobilní verzi (Cyrille David - cyrille@david-gooris.com).
verze 4.1.1 (2011-07-01)
verze 4.1 (2011-03-26)
- Rosný bod (TH2E).
- Kombinované grafy pro teplotu a vlhkost vzduchu (TH2E).
- Malé kosmetické úpravy.
verze 4 (2011-03-10)
- Plná podpora pro TH2E! Nyní aplikace může zobrazovat rovněž naměřenou vlhkost (je třeba povolit v souboru s nastavením aplikace).
- Krom aktuální vlhkosti a vlkhosti za poslední dny (načítané rovněž periodicky AJAXem) přibyly nové grafy pro vlhkost a také byly rozšířeny stránky se statistikami o tyto údaje.
- Nová záložka "historie" pro zobrazení dřívějších měření.
- Aplikace umí bez problému zpracovávat data jak ze starého TME, tak z nového TME a TH2E.
- Soubor s informacemi o aplikaci byl rozšířen o návod pro nastavení starého TME, aktuálního TME a TH2E.
- Utilita pro nastavení nejstaršího TME byla vyhozena z balíku TMEPu (neměla tam moc velké opodstatnění).
verze 3 (2011-01-14)
- Lepší rozdělení stránky na několik záložek. Nové záložky "Denní statistiky", "Měsíční statistiky" a "Roční statistiky" se spoustou dalších údajů o naměřených teplotách.
- V poli "aktuální teplota" je šipkami znázorněn vývoj teploty (ochlazení, oteplení, beze změny) po pěti minutách.
- Pole "aktuální teplota", "dříve touto dobou" a "počet měření" (vše v hlavičce stránky) jsou načítána pravidelně každou minutu AJAXem (načtení nového údaje do stránky bez nutnosti načtení celé stránky).
- U měsíční teploty je nyní zobrazována i nejvyšší a nejnižší teplota zaznamenaná v daném měsíci (nejen průměrná).
- JpGraph aktualizováno na verzi 3.0.7.
- Readme u aplikace nově v HTML souboru pro lepší přehlednost.
- Odstraněn adresář "Cache", nyní není třeba a celá aplikace je navzdory rozšířené funkcionalitě rychlejší.
- Upraveno databázové schéma pro jednodušší a zároveň rychlé výpisy mnoha informací.
- Aktualizována utilita pro nastavení TME od Papoucha, která je v rámci zjednodušení distribuována společně s TMEP, i když pro nové verze TME není třeba (ty lze nastavit přímo přes webové rozhraní).
verze 2
- Inovovaný přehlednější vzhled bez zbytečných položek.
- Možnost přepínat mezi statickými grafy generovanými pomocí JpGraph a dynamickými flashovými grafy generovanými pro změnu pomocí Open flash chart.
- Možnost přepínat mezi jazykovými mutacemi (nyní čeština, angličtina a němčina - překlad svépomocí, malá korektůra by byla jen k dobru).
- Možnost přepínat mezi různými jednotkami - od Celsiuse, přes Fahrenheita a Kelvina až po např. Delisle (čerpáno z Wikipedie).
- Malinkatá mobilní verze (mobile.php).
- Rozšířené možnosti jednoduchého nastavení skrze "config.php" (výchozí jazyk, jednotka a typ grafů, zda a po kolika vteřinách se má stránka obnovovat, zda bude umožněno přepínání jazyků atd.).
- A pár drobností...
verze 1