Pozor! Již existuje novější verze aplikace, více informací na této stránce.
Ruku na srdce – kdo by čekal, že to přijde? Ani já sám bych si na sebe nevsadil. A ejhle.
Za posledí týden jsem si našel několik drahocenných hodin na to, abych vylepšil aplikaci pro zobrazování teploty získané z ethernetového teploměru TME od Papoucha.
Co je nového? (nejdůležitější jsou první čtyři body)
- 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í).
Kromě jemných grafických nuancí a drobných vylepšení na úvodní straně s grafy nám přibylo několik záložek, jejichž suchá informativní obsáhláhlost musí ukojit nejednoho zvědavce toužícího po podrobných statistikách o naměřených teplotách v průběhu času.
Odkaz na stažení z tohoto webu: zde
Ukázka jako obvykle na roudnice.eu
Stránka projektu na GitHubu: zde
Věřím, že vás tato vylepšení potěší.
15.1.2011 v 23:22
Po updatu mi haze tabulka tme_denni chybu
Warning: mb_strpos() [function.mb-strpos]: Unknown encoding or conversion error. in /usr/share/phpmyadmin/libraries/string_mb.lib.php on line 60
a neprekodovaly se mi veskaera data
Kde delam chybu ?
15.1.2011 v 23:38
Blizzy: To mi připadá jako chyba phpmyadmina (a přesně jak se píše v tom erroru tak kĂłdování nebo jeho konverze). Stránky vypadají dobře (http://teplota.jinonice.cz/).
Jestli ještě potřebuješ udělat nějakou úpravu nad databází, tak raději použij Adminera – http://www.adminer.org/
17.1.2011 v 8:01
Predelam pro mssql a uploadnu sem. 🙂
17.1.2011 v 9:24
Ted koukam ze pri flashi se statistika za poslednich 21 dni nejak divne zobrazuje
17.1.2011 v 21:04
Martin: Super, sem s ní! 🙂
Blizzy: Chybička se vloudila. Stáhni si prosím znovu archiv z aplikací a soubor „skripty/graf-teploty-21-dni-flash.php“ nahraj místo toho starého na web a bude to. OFCH pro generování grafů má bohužel problém s nulovou hodnotou.
19.1.2011 v 16:18
Jenom bych chtěl upozornit, že s poslední verzí firmware TME, který má jinou strukturu volání GET, aplikace nepřijímá data z teploměru, protože chybně vyhodnotí parametry.
19.1.2011 v 17:57
Topo: V tom případě je potřeba do parametru GET uvést „GUID=“, přičemž GUID je hodnota vyplněná v „nastaveni.php“ pro proměnnou GUID. Bohužel jsem neměl teploměr s novějším FW k dispozici, abych vše mohl důsledně ozkoušet.
19.1.2011 v 21:10
Teploměr to posílá takto: GET /index.php?temp=+1.5&id=GUID
22.1.2011 v 15:45
Ahoj
tak jsem nahodil update nové verze TMEPv3 a mám tu pár poznatků.
1. Tak jak Blizzymu mi v phpMyAdminu konkrétně zde webmysql/phpMyAdmin/phpMyAdmin/libraries/string.lib.php on line 112 háže chybu. Aktualizoval jsem tedy přes Adminera.
2. Další poznatek je, když jsem spouštěl skripty/dopocitat.php
Nezobrazilo se nic jen dlouhé čekání s prázdnou obrazovkou, kdy se všechny údaje nedopočítali a zobrazila se jen polovina údajů v indexu. Toto jsem vyřešil, tak že jsem musel v databázi smazat tabulku tme_denni a tme_cache. Pak jsem ji příkazem znovu nahrál a opět spustil skripty/dopocitat.php. Stále se však na stránce zobrazilo prázdné okno, které pořád načítalo a po nějaké době načítání přestalo a asi po pátém znovunačtení stránky (F5) se vygeneroval text: Byl dopočítán den/day calculated 8.8. 2010 až do dnešního data. (Tady bude asi někde zrada protože data v databázi mám vedené někdy od ledna roku 2009.)
Když jsem se díval v adminerovi na tabulku tme_denni, tak po každém refreshi se tabulka zvětšovala do doby než se pak v prohlížeči vygeneroval text do dopočítání.
Nejde nějak udělat, když má někdo obsáhlejší databázi, aby se to nemuselo na několikrát refreshovat?
3. V záložce Denní statistiky máte Teploty za poslední dny (sobota, neděle) označené zeleně. Nijak se mi to barevně nerozlišuje.
4. V záložce Měsíční statistiky v měsíci listopa a prosince se mi v tabulce téměř ve všech případech nezobrazuje MIN hodnota. AVG a MAX jsou v pořádku. V měsíci prosinec jsou všude údaje v pořádku.
5. Když chci grafy vygenerovat do obrázku, tak se nic nezobrazí. To mi dělalo i v předchozí verzi. Podle mě to bude spíše problém na straně webhostingu protože, když jsem to zkoušel na jiném webhostingu, tak to šlo v pořádku.
Za každou radu díky.
Jinak musím říct, že vylepšená verze se moc povedla a díky za ni.
22.1.2011 v 18:11
Ahoj Davide, k tvým poznatkům:
1) Po přesně jaké operaci se ukáže tato chyba? Věřím, že to je problém phpMyAdmina, ale zajímalo by mě jestli obecný, nebo máte oba podobnou konfiguraci hostingu, či je tam někde jinde zakopaný pes. Obecně doporučuji raději Adminera ne proto, že mám od jeho autora podepsanou knihu, ale zkrátka pro jeho kvality při minimální velikosti skriptu 🙂
2) Záleží na počtu naměřených hodnot, rychlosti serveru a nastavení hostingu. My máme v databázi od cirka poloviny roku 2007 přes 1 800 000 měření a dopočítání všech hodnot do současnosti trvalo něco kolem minuty a skript běžel bez zastavení, takže jsem refreshovat nemusel ani jednou. Přitom aplikace neběží na nijak výkonném serveru a v mém případě se výstup skriptu o dopočítaných dnech zobrazoval po několika vteřinách, takže byla zpětá vazba dobrá.
Kdyby na tvém serveru byla povolená delší doba běhu skriptu, tak jej stačí spustit jenom jednou a jeho provádění se ukončí až po dopočítání všech hodnot. To by šlo ovlivnit nastavením ze souboru .htaccess, ale většina hostingů takové nastavení nepovolí a místo stránek se potom zobrazuje např. chybové hlášení „500 Internal server error“, které uživatele zmate. Navíc jich hodně používá jako FTP klienta Total commandera a ten by soubor .htaccess na FTP skryl a byl by problém jej smazat. Než abych tedy lidi zkoušel takto navádět a zbytečně rozšiřoval návod na instalaci aplikace, tak jsem raději napsal ať spustí ten skript, počkají na dopočítání a pokud se skript ukončí dříve, než stačí dopočítat hodnoty do současnosti, tak jej postupě spustí vícekrát. Zatím jsi první, kdo hlásí podobný problém, tak uvidím jestli se najde ještě někdo další.
3) Na jaké adrese je možné aplikaci vidět? Podíval bych se, proč se Ti víkendy nezelení.
4) To možná souvisí s problémem dopočítaných hodnot. Zkus vymazat obsah tabulky tme_denni a znovu spustit skript dopocitat.php s tím, že jej spusť jenom jednou a trpělivě vyčkej na jeho dokončení. Pokud se objeví hláška (v angličtině), že skript překročil maximální dobu možnou pro jeho běh, tak jej spusť znovu, dokud se vše nedopočítá.
5) Zkusil bych se na to podívat viz třetí bod 🙂
Jsem rád, že se Ti nová verze líbí.
22.1.2011 v 19:27
1. Je to na webhostingu Forpsi a verze phpMyAdmin 2.6.4, MySQL 5.0.27. Chyba se zobrazila při spuštění Sql dotazu z přiloženého souboru mysql-db-update-z-verze-2.sql, který se vykonal a vytvořil tabulky.Ty jsem smazal a v adminerovi i pri zaškrtnutí Zobrazit pouze chyby to vypadá, že je to v pořádku.
2. Hodnot mám cca. 909 000 od ledna 2009. Při opakovaném (5x) refreshi až do konce to trvalo cca 3 až 4 minuty. Pokud jsem to spustil pouze jednou skripty/dopocitat.php tak se stránka načítala asi minutu a pak načítání přestalo a zobrazila se prázdná stránka i po asi 10 minutách se nic nedělo. V TC vidím soubor .htaccess po zobrazení skrytých souborů.
4. Tabulku jsem teď vymazal a dělá to to samé co v bodě 2. co tu píšu.
22.1.2011 v 19:51
Topo: Správné nastavení nových hodnot pro TME/TH2E s novým firmwarem vyřeším díky Papouchově štědré pomoci snad velice brzy a vše uvedu na pravou míru, takže uživatelé novějších TME/TH2E nebudou tápat. Díky za nasměrování a nahlášení.
David:
1) Nebudu to řešit, nechápu, co se phpMyAdminu nelíbí, snad čeština v komentáři v záhlaví souboru či co, ale správný by ten soubor měl být tak jako tak, což bezchybné vykonání v Admineru jen dokazuje.
2 a 4) Je to divné, moc divné. V podstatě by nikde nemělo dojít k chybě a přesto to tam dopočítané není… díval jsem se do kĂłdu a minimální hodnota se musí spočítat tak jako tak a u jiných zázamů uvedena je. Navíc mám na minimální, maximální a průměrnou teplotu extra dotaz (už jsem to v kĂłdu opravil, dříve mi to uniklo a zbytečně to prodlužuje dobu běhu skriptu o cené tisíciny vteřiny). Grafy vyhodí chybu, jakou jsem zatím neviděl a moc si nejsem jistý, co má ten hosting za problém, že to nefunguje. Máš možnost to ozkoušet na jiném hostingu?
22.1.2011 v 20:20
MultiTricker
Zkusím to na jiném serveru a jiném Mysql databázi a dám vědět.
22.1.2011 v 23:49
Takže abych to nějak shrnul.
Jak jsem psal, zkusil jsem to celé znovu nahrát na jiný server a mysql.
Na FTP jsem nahrál soubory to bylo OK. Přihlásil jsem se přes Adminera do databáze to bylo taky OK, ale problém zase nastal, že se na výběr nezobrazila databáze. Takže jsem to zkusil přes phpMyAdmin. Dotazem mysql-db-full.sql
to hodilo tuto chybu:
MySQL hlásí:
#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near “ at line 107
Vytvořila se jen tabulka tme, ale nevím jestli správně. Každopádně to na indexu háže chybu, že se nelze připojit k DB.
MySql je v tomto případě verze 5.0.51a-log a phpMyAdmin 2.6.4
Další věc co jsem tedy zkusil, že na novém serveru jsem nechal soubory TME a přihlašovací údaje z druhé (původní) databáze jsem napsal do nastaveni.php
Zobrazení v indexu šlo bez problému a vyřešil se problém s obrázkovým grafem a již zmiňované zelené odlišení soboty a neděle.
Takže tady bude problém asi v nastavení serveru a pokusím se u poskytovatele přesunout na jiný server.
Problém stále tedy trvá při přepočítání a v MIN. hodnotě.
Ještě mě napadlo jestli by to nemělo vliv na to, že na původním serveru je verze PHP 4.4.2 a na tom novém je již verze 5.2.8 Linux. Každopádně jestli chceš, tak ti celé chybové hlášení můžu poslat.
23.1.2011 v 2:10
Ahoj, skvělá práce! Jen mám takovou prosbu, od Papoucha jsem si koupil TME, ale v provedenĂŻ TME-Multi, kde mám podporu pro více teploměrů. Funguje to úplně stejně jako TME. Problém je, že ten skript odesílá pro každé teplotní čidlo informace a identifikuje je pomocí id, což je řetězec „mod“, viz manuál TME-Multi. Bylo by možné upravit tenhle teploměr pro TME-Multi?
Aktuálně mám 3 teplotní moduly, ale jsem schopen logicky zpracovávat jen jeden z nich. Do skriptů jsem přidal podmínku, že k zápisu hodnot dojde pouze když id teploměru se rovná tomu mému požadovanému, čili když např. id =“02″ tak ty teploty ulož. Ale tohle je nouze.
Chtěl bych zpracovávat údaje ze všech modulů. Nějaký nápad?
Díky, Pavel
23.1.2011 v 3:37
V SQL souboru – v tabulce „tme_denni“ si zmen z:
ENGINE=MyISAM DEFAULT;
na
ENGINE=InnoDB;
23.1.2011 v 10:44
David: Doopravdy tam je chyba, jak píše Pavel níže, tak jen smaž to slovo „DEFAULT“ z onoho řádku. Původně tam totiž bylo exportem z databáze vyplněno výchozí kĂłdování MySQL a to jsem odmazával (je zbytečné to tam uvádět), jen jsem to neodmazal celé (v další verzi to bude opraveno). Engine na InnoDB nepřepisuj jak navrhuje Pavel – zbytečně by to aplikaci zpomalovalo a žádné transakce ani cizí klíče se v schématu nepoužívají, takže to nemá opodstatnění.
Dopočítávání minimální hodnoty má tak jako tak fungovat – je realizováno funkcí „MIN“ přímo v SQL dotazu a pro některé záznamy Ti to zafungovalo.
Jinak jak píšeš – přesun na jiný server s novější verzí PHP to vyřeší. Moc díky za podrobnou zprávu.
Pavel: Nic elegantního mě nenapadá – nejjednodušší je mít skript, který na základě IDčka uloží měření do konkrétní databáze, takže bys měl co teploměr to extra databázi a k ní extra aplikaci. Sice bys ukládal všechna měření, ale porovnání mezi teploměry by znamenalo překlikávat mezi stránkami. Kdyby to mělo být v rámci jedné aplikace, tak by bylo náročnější ji upravit – buď bys měl „natvrdo“ v databázi sloupečky pro teploměry 1-3 (což je beztak hodně psaní a hloupě navržené), anebo ji rozšířit o ID teploměru (což by byl správný návrh), ale i tak je potřeba větší zásah do aplikace kvůli výpisům na webu.
SPOILER ALERT 🙂
Nejpozději do konce února (ale osobně doufám, že to stihnu mnohem dříve) přijde aplikace, která bude zároveň zpracovávat i naměřenou vlhkost a bude možnost zobrazit údaje pro uživatelem zvolené historické období, ale potom už další upgrade neplánuji. Kdybys chtěl aplikaci upravit a rozšířit pro více teploměrů, tak bych Tě poprosil, jestli bys sečkal na tuto verzi.
25.1.2011 v 19:51
Díky moc, skvělá práce. Jen mám malou poznámku: v měsíčních statistikách se u ledna 2011 ukazuje AVG teplota, která je jiná než teplota u ledna 2011 v záložce roční statistiky. V mém případě tedy -0,72 oproti 2,22. Což je docela rozdíl.
http://duda.tym.cz/teplomer/
25.1.2011 v 22:55
Dallas: Díky za podporu a nahlášení chyby. Na záložce měsíčních statistiky je chyba ve skriptu – ukazuje se tam v hlavičce tabulky hodnota z některého ze dnů v měsíci a nikoliv za celý měsíc. V příští verzi to bude opravené.
Zároveň bych se dovolil inspirovat položkou „Měřeno od:“ co máš v tabulce v záhlaví – to je šikovná informace a dovolím si o ni aplikaci rozšířit.
7.2.2011 v 0:29
Ještě bych se přimlouval za zobrazení statistik pro celý rok. Tzn. nejnižší, průměrná a nejvyšší teplota v daném roce celkově. Mohlo by to být zobrazováno podobně jako v měsíčních statistikách v hlavičce u každého měsíce.
7.2.2011 v 20:04
Nejnižší a nejvyšší teplota v tom roce celkově tam v podstatě je – to je ten první řádek u nejnižší a nejvyšší teploty. Průměrná tam chybí, ale nebyl jsem si jistý, jestli to je až tak zajímavý údaj (subjektivně).
8.2.2011 v 16:49
Můj návrh na vylepšení by byl zase, že by se mohla zobrazovat teplota pro daný den, ale několik roků zpětně. Tedy např. dnes je 8.2.2011 a zobrazovaly by se i předchozí roky 8.2.
Prostě obdoba když hlásí teplotní rekordy pro daný den. A uživatel by si mohl porovnat jak bylo před rokem, dvěma, třema (pokud by měl samozřejmě ty data ve své databázi).
Pak by stálo za zvážení, zda to udělat stejně jako je v tabulce „Dříve touto dobou“ tedy okamžitá hodnota. Nebo počítat denní průměr a porovnat jej z denním průměrem z předchozích let, tedy hodnota by byla o den pozadu.
10.2.2011 v 11:16
Díky za návrh Tomáši – v příští verzi (kterou bych ideálně rád vydal do konce příštího týdne) ho zohledním. Nebude to nejspíš zobrazeno přímo v hlavičce, aby byla stránka přehledná, ale na některé ze záložek.
11.2.2011 v 11:19
Zdravím, jestli se ještě můžu přidat, tak hodně návštěvníci vyhledávají maximální a minimální teplotu za AKTUĂ?LNĂŤ DEN. Na úvodní stránce by to nemělo chybu!
Jinak ta průměrná roční teplota je pomalu nejdůležitější údaj (max a min).
Původní stránky http://www.mhteplomer.unas.cz jsem ukončil a u http://www.mbteplomer.unas.cz počkám na novou verzi, zatím se mi moc nedaří:-(pak se na to vrhnu) Zajímavé je sledovat „Dříve touto dobou€ť posledních 6 hodin, denně, měsíčně i ročně.
Ještě jsem se pokoušel vytvořit malé okno na vložení aktuální teploty do stránek zájemců o aktuální teplotu: http://www.mbteplomer.unas.cz/mbt.php Já to používám na své meteo stránky.
Super aplikace, jenom díky ní jsem si koupil tento teploměr:-(((
11.2.2011 v 12:22
Ahoj Romane,
budu muset popřemýšlet, kam tyto informace vhodně umístit. Ono už i teď to na mě začíná být tak trochu mumraj, ale všechno bude… tedy jednou určitě 🙂
Na novou verzi rozhodně vyčkej, změní se tam toho ve struktuře celkem dost a nemám potom v plánu se v aplikaci delší dobu „hrabat“.
Díky za návrhy a zhodnocení!
12.2.2011 v 11:09
Zdravím, snažím se rozchodit aplikaci s TME verze 1.5 teploměr posílá „GET /tme/index.php?temp=-2.3 HTTP/1.1“ 200 8420 „-“ „Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CTR 1.0.3705; .NET CLR 1.1.4322)“
a error log webu [Sat Feb 12 10:00:24 2011] [error] [client 10.10.105.246] PHP Notice: Undefined index: den_2 in /srv/www/web19/web/tme/skripty/dopocitat.php on line 39
[Sat Feb 12 10:00:24 2011] [error] [client 10.10.105.246] PHP Notice: Undefined index: ja in /srv/www/web19/web/tme/index.php on line 192
[Sat Feb 12 10:00:24 2011] [error] [client 10.10.105.246] PHP Notice: Undefined index: je in /srv/www/web19/web/tme/index.php on line 192
[Sat Feb 12 10:00:24 2011] [error] [client 10.10.105.246] PHP Notice: Undefined index: ja in /srv/www/web19/web/tme/index.php on line 193
[Sat Feb 12 10:00:24 2011] [error] [client 10.10.105.246] PHP Notice: Undefined index: je in /srv/www/web19/web/tme/index.php on line 193
… atd. Poradíte ?
12.2.2011 v 13:36
Ahoj,
ona to není chyba, v podstatě si Ti to jen oznamuje, že se v kĂłdu pracuje s nedefinovaným indexem, ale to není nic špatného. Zkrátka „jen“ notice.
Pokud máš v „nastaveni.php“ GUID nastaveno na „temp“ tak by to mělo fungovat. Případně zkus přímo v prohlížeči otevřít tu stránku s parametrem „?temp=1“, jestli Ti to vypíše nějakou chybovou hlášku.
12.2.2011 v 23:52
Vydána nová verze aplikace! Viz nový článek na blogu. Zapracoval jsem Dallasovu připomínku. Romanovu zatím při zobrazení dne na záložce historie. Stejně tak jsem opravil nahlášené chybky.