Aplikace pro TME – 1.0 beta2

Nechť zazní fanfáry – na četná přání a dotazy (konkrétně dva maily) jsem uvolnil aplikaci TME k dalšímu použití. Uvolnění předcházela optimalizace aplikace, zobecnění, zpřehlednění a okomentování kĂłdu a několik dalších drobností.

Pozor! Již existuje novější verze aplikace, více informací na této stránce.

Aplikace ke stažení ZDE!

Co k aplikaci více dodat? Vše je popsáno v souboru cti-mne.txt, který je součástí archivu výše předloženého a který zde rovněž otisknu:

T M E – e t h e r n e t o v ý t e p l o m ě r
aplikace pro přehledné zobrazení výstupu z TME pomocí metody HTTP GET

Verze: 1.0 beta

Autor:
Michal „MultiTricker“ Ĺ evčík, multi@tricker.cz, http://multi.tricker.cz,
František „EFES“ Ĺ evčík, f.sevcik@seznam.cz

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 pro generování grafů, dokáže celkem šikovně zobrazit všelijaké statistiky z Vašeho ethernetového teploměru.
JpGraph je pro nekomerční využití zdarma a nejen z tohoto důvodu nelze tuto aplikaci prodávat. Nevydávám ji pod žádnou licencí a nežádám žádnou odměnu, ovšem byl bych rád za zachování zmínky o autorovi a odkazu na můj web.

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í teplotu, ten ji zapíše do databáze a dále s ní pracuje.

Potřebné kroky k zprovoznění aplikace:

1) Nastavit TME. Konfigurační software je pro úplnost balíku přiložen u této webové aplikace v adresáři „nastaveni-tme“ (aktuální verzi naleznete na stránce výrobce, tedy u Papoucha, konkrétně na:
http://papouch.com/shop/scripts/_detail.asp?katcislo=0201).

V konfiguračním softwaru TME se připojte na teploměr a ze sloupce „Nastavení teploměru“ zvolte „HTTP GET“. Zde zaškrtněte „Zasílat teplotu na HTTP server“, do URL cesta 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 dresa 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) V adresáři „aplikace“ se nachází všechny potřebné soubory a je zde vedle „index.php“ také soubor „nastaveni.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é.

Dále je zde NEZBYTNÄš NUTNÉ nastavit GUID a místo „teplota“ doplnit vlastní řetězec, který jste nastavili v kroku jedna. 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) Je potřeba vytvořit do databáze odpovídající tabulky, 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.txt“, který je umístěn vedle souboru, který právě čtete.

4) Nahrajte webovou aplikaci (tedy obsah adresáře „aplikace“) na své místo na internetu. Mj. musí odpovídat cesta k index.php s cestou zadanou v TME přes konfigurační utilitu. V aplikaci se nachází adresář „cache“, kam je nutno povolit zápis, což provedete příkazem „chmod 0777 cache“ ve Vašem FTP klientovi, kterým jste pravděpodobně celou aplikaci na webový server nahráli.

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ů.

Toto je první verze aplikace a proto, prosím, omluvte případné problémky či snad některé nejasné a nedořešené věci, které se mohou vyskytnout.

Pro případné opravy, prosím, sledujte http://multi.tricker.cz a pokud to bude v mých silách a možnostech, tak otázky/pochvaly pište na mail multi@tricker.cz

Děkuji za pozornost a přeji příjemnou zábavu!

34 komentářů

  1. Ahoj,

    díval jsem se na tu stránku, ale zobrazuje se mi v pořádku (kĂłdování je ISO-8859-2, prohlížeč Firefox 2.0.0.11).

    Jenom abych předešel – v UTF-8 aplikace není, protože mi blbla čeština v grafech. Možná to bylo způsobeno jen mojí blbostí či něčím malicherným, ale nijak jsem to neřešil a stránku ponechal v ISU.

    Jediné, co je na oné stránce problém, je nahoře na stránce těch pár podivných znaků… tipoval bych to na zprznění hlavičky souboru v důsledku měnění kĂłdování v PSPadu, ale stoprocentně jistý si nejsem. Počkám ještě, co mi napíše Pauli, se kterým aplikaci testuji, zda se to u něj také projeví.

  2. Sím, já to vidím v obou prohlížečích stejně (ISO-8859-2), tedy korektně – až na grafy, není tam ani jeden 🙁

  3. Čeština byl problém, že se mi dostaly nějaký tři znaky na začátek upravovaného souboru nastavení.php 🙂
    Spíš větší problém byl s ukládáním dat do databáze. Přišel jsem na to, že pokud je proměnná GUID=teplota, potom se musí nastavit URL serveru http://www.lojzuvweb.cz/tme/index.php?teplota=
    A nezobrazují se grafy 🙁 , na to už jsem moc lama.

  4. Pauli: Ve čtvrtek nebo pátek jsi mi do mailu psal, že je vše OK… stala se snad ještě někde chyba?

    Tomáš: Tu cestu ozkouším jak říkáš, mě to na roudnice.eu funguje tak jak popisuji v manuálu, každopádně díky za postřeh. S těmi grafy – nezobrazuje se mi momentálně lojzuvweb.cz, tak se nemůžu podívat „kde je zakopán pes“. Někdy po svátcích (jestli nezapomenu) mrknu a dám vědět.

  5. Petr:

    Ahoj, když se podívám přímo na skript, který generuje graf, tak tam se objevuje chybová hláška, že je chyba hned na prvním řádku v „nastaveni.php“, údajně je možné, že první řádek je prázdný a až na dalším je onen PHP otevírající řetězec „

  6. Tak asi jsi měl pravdu. Díky. Jen nechodí graf 3 dny. Mrkni na to, prosím. Pokud by jsi měl čas a chtěl se kouknout na server, tak není problém poslat LOG. Díky, Díky.

  7. Teď jsem ještě zkusil z adresy v TME posílání vyndat ty věci na konci – ?teplota= – a databáze se přestala plnit.

  8. Petr: Paráda! To „?teplota=“ tam nechej, i když u mě jsem to specifikovat nemusel… no hlavně, že to s tím funguje. A graf na 3 dny (detailní průběh) se začne zobrazovat až po nasbírání dostatečného množství měření… to bych měl někde uvést, aby to nemátlo. Takže vydržaj a za pár dní se ukáže.

  9. Výborně.To „?teplota=€ť podle toho co píšeš, tak vypadá, že je asi drobet pozměněnej SOFT v teploměru. Ale to vůbec nevadí. Ještě jednou díky.

  10. Danelli: Ahoj, vypadá to, že nemáš nasbíraný dostatečný počet měření pro zobrazení grafu, bych tak tipoval 🙂

    Oprava – tak ba ne, problém je následující: „JpGraph Error This PHP installation is not configured with the GD library. Please recompile PHP with GD support to run JpGraph. (Neither function imagetypes() nor imagecreatefromstring() does exist)“

    Tedy server, na kterém běží aplikace nemá v PHP načtenu knihovnu s grafickými funkcemi (to je právě ona GD). Kontaktuj správce serveru, zda by tuto knihovnu pro PHP nezpřístupnil. Pokud ne tak není všem dnům konec, už několik týdnů mám hotovou verzi této aplikace s flashovými grafy, které Ti budou fungovat i bez GD. Jediné co zbývá dodělat je volitelně zobrazitelná „lišta“ pro přepínání jazyků apod., ale počítám, že do konce příštího týdne si tu půl hodinku najdu abych to dodělal a vystavil.

    Jak bohužel často poslední dobou říkám – jediný problém mám s časem, je ho málo a práce dost.

  11. Ahoj Multi, díky za odpověď. Včera už jsem byl unavený tak jsem nepokračoval, dnes jsem tuto hlášku „“JpGraph Error This PHP installation is not configured with the GD library. Please recompile PHP with GD support to run JpGraph. (Neither function imagetypes() nor imagecreatefromstring() does exist)““ objevil také. Správce serveru jsem já 🙂 takže to s ním zkusím domluvit 🙂 Jinak to flashové rozhraní zní dost zajímavě, máš někde náhled nebo screeny? Ĺ lo by ti s tím nějak pomoct popř?

    Každopádně díky za ochotu 🙂
    Danelli

  12. Multi kdyby jsi chtěl řešit další problémy 🙂 něco málo mi v grafu už jede 🙂 ale 3 ze 4 grafů zatím nejedou 🙂 nové hlášky 🙂 nové problémy 🙂
    Danelli

  13. Drobná oprava předešlého příspěvku, stačilo možná počkat a rozjeli se další 2 grafy tzn. teď nejde už jen 1 ze 4 grafů 🙂 zřejme jsi měl multi pravdu asi je to nenaplněnou databází píše to totiž „JpGraph Error Empty input data array specified for plot. Must have at least one data point.“ takže počkáme a uvidíme. Stále ale zápasím s češtinou ale to asi nebude velký problém.

  14. Ahoj Multi, trošku jsem se dnes porýpal v těch php a celkem to jede stále mi nejede ten 3tí graf, ale snad je to jak jsem psal tím nenaplněním databáze. Jinak je snad už teď vidět vše na nové adrese http://teplota.kfbz.cz (pokud už to DNS rozdalo dál :)) nebo na http://www.kfbz.cz/teplota/. zajímalo by mě jak je to právě s tím 3tím grafem. Jinak jsem se chtěl optat nepřemýšlel jsi o možnosti listování v historii databáze, třeba že by si člověk řekl od kdy do kdy by chtěl teplotu vidět. Mohlo by to být celkem zaujímavé a vzhledem k tomu že data v databázi už jsou tak udělat php šablonu by zase tak těžké být nemělo.

    Jinak ještě jednou fakt super Danelli

  15. Danelli: Ahoj, ten třetí graf pojede po třech dnech 🙂

    O listování v databázi jsem přemýšlel, problém to není, ale to až někdy příště. Teď hlavně vydat tu verzi s novými funkcemi a až potom někdy udělám, aby se do současnosti do extra tabulky spočítala průměrná, minimální a maximální teplota za jednotlivé dny a z té tabulky potom budou další zajímavosti apod… ale to až vážně někdy v dááávné budoucnosti (pokud to někdo neudělá dřív :)).

    Náhled na flashové grafy (tvořené pomocí Open Flash Chart) není problém, típnul jsem malou ukázku a vystavil ji semka: http://tricker.cz/tme-flash.jpg

    Pomoct momentálně není třeba, jestli si v neděli najdu půlhodinku tak to dodělám. Ona je ta verze v podstatě hotová, akorát to, v jakém se bude stránka zobrazovat jazyce, v jaké jednotce budou zobrazené teploty a jestli budou grafy flashové/statické obrázky se dá přepínat pouze v konfiguračním PHP souboru. Ještě bych tam chtěl dát (volitelně zobrazitelnou) lištu, kde by si tohle přímo na stránce mohl návštěvník přepnout a hodnoty by se ukládali do cookies (pokud je bude mít návštěvník povolené), aby se při návratu na stránku stránka zobrazila v takovém stavu, v jakém byla opuštěna. Stay tuned!

  16. Jo Multi o tom třetím grafu jsem si to myslel že to bude chvíli trvat koukal jsem na script, jinak osobně budu upravovat teda hlavně index.php a to hlavně asi 60s automatickým refreshem, aby to popř. nemusel uživatel refreshovat ručně F5. Ale to je prkotina, jinak o tom listovnání v historii dost vážně uvažuji, mám zatím sice prázdnout databázi, ale to php bude relativně jednoduché. No zatím každopádně dík a mnoho zdarů v práci :). Jinak mě napadlo nevíš kde by šlo sehnat blokové zapojení TME s RJ45 a USB? potřeboval bych to do školy, ale stačilo by jen blokové schéma.

  17. Ahoj pokud chce někdou automatický refresh stránek stačí přidat do index.php do kĂłdu toto: číslo určuje počet sekund do refreshe.

  18. už jsem na to přišel nezobrazují se tagy takže to musí být v lomených závorkách 🙂 MULTI promiň fakt nespamuju 🙂

  19. Danelli: I ty jeden kluku ušatá, tys mi to tu zaspamoval 🙂

    O blokovém schématu nevím, leda zkusit požádat u Papoucha, ale nevím nevím zda vyhoví – to zjistíš na vlastní kůži.

    A akorát bych doplnil, že onen tag je potřeba zapsat do hlavičky stránky, tedy mezi tagy TITLE a /TITLE (ve špičatých závorkách).

  20. Multi omlouvám se za to 🙂 než se mi to povedlo poslat byly to 3 příspěvky :(. Jinak to blokové fakt zkusím napsat Papouchovi jedná se mi spíše o bějaké blokové schéma jako AI (analog input) dále A/D převodník pak to jde do MC (microcontroler) atd… žádný popis součástek 🙂

    Jo už mi jde i 3tí graf, vše ok :), refreshuji po 60s a pokud bude čas vrhnu se na tu historii.

    Zatím ahoj a hodně úspěchů 🙂

    Danelli
    http://teplota.kfbz.cz

  21. Multi ahoj, pro změnu mé já.
    Nevíš náhodou jak napsat php ať si načítá hodnotu z TME?
    Potřeboval bych nějak donutit TME ať mi vytvoří XML s kĂłdem pro další použití.
    Chci si doma rojet WiX a TMU v serverovně mi jede, viz teplota.kfbz.cz/server.xml
    podobné XML potřebuju i nějak z TME. Kdyby jsi věděl budu rád za pomoc.
    Jinak kdyby jsi chtěl mám vyřešený TMU na web i z jiného PC, než kde je TMU umístěn (takže se chová jako TME).

    Danelli

  22. Ahoj,

    stačí trochu hledat a bádat 😉 Když si do prohlížeče dáš adresu TME a za ní dopíšeš „/tme.xml“ , tak se Ti objeví XML soubor, který obsahuje i aktuální teplotu. Ten už musíš načítat přes PHP a rozparsovat si ho tak, aby jsi se dobral k oné kýžené hodnotě. Načítat v PHP pravděpodobně budeš přes funkci „fopen“, případně přes PHP rozšíření „curl“. Rovněž funkce pro parsování XML v dokumentaci pro PHP najdeš. Sám jsem to neměl potřebu řešit, takže konkrétní řešení neznám, ale vše se bude dát určitě lehce vyčíst. Přinejhorším víš, na kterém řádku toho XML fajlu ta hodnota je a ten zbytek třebas pomocí str_replace() odstraníš 😀 ale to je strašná prasárna. I když… účel světí prostředky, nebo jak se to říká.

    Akorát jsem tedy nepochopil, co s tím má společného WiX? Tedy nástroj pro vytváření instalačních balíčků generovaním z XML souborů pro Windows?

    O tom řešení jak TMU de facto povýšit na TME mi klidně napiš, budu jedině rád, že se dozvím něco nového. A klidně piš na mail, abychom tu nakonec nepsali vůči příspěvku na blogu nerelevantní komentáře.

    Multi

  23. Ahoj Multi, hele mám problém z nějakého důvodu se mi přestal zobrazovat poslední gram a to za posledních 14 dní 🙁 promazal jsem cache adresář, ale z nějakého důvodu jej nechce stále vytvořit? nenapadá tě nic?

    dík za informaci

    Danelli

  24. danelli:
    Díkval jsem se na http://teplota.kfbz.cz/ a vidím tam jen průměrnou teplotu, což je víc než podivné. Krom promazání cache adresáře a ujištění se, zda je zapisovatelný, mě nenapadá doopravdy nic konkrétního, proč by v tom měl být problém. Snad jen, že musí být problém ve výpočtu minimální/maximální teploty, ale i to se mi zdá dost nepravděpodobné. Nevzpomínáš si, zda se na serveru kde aplikace běží, neudály nějaké změny v konfiguraci či aktualizacích?

  25. Ahoj Multi, no hele já musel upravit skript teplota za 14 dní, protože se mi standardně nenatahoval. Ořezal jsem v něm proto maxima a minima. Podle mě tam dochází k nějakému timeoutu možná ze strany PHP, popř. je možná nevhodně napsaná sekvence načítání tolika dat do pole a pak jejich přesypávání a prohledávání. Zkoušel jsem i flashovou verzi 2.0 ale ta dělá úplně to stejné. Pokud by tě něco napadlo jsem otevřen názorům. Jinak vytížení mysql při tvorbě grafů je procesorově na 50%, což je si myslím celkem dost 🙁

    Danelli

  26. Multi vyřešeno, problém byl opraven navýšením času na generování PHP v php.ini z 90s na 180s. Nicméně otázkou je proč donedávna 90s stačilo, možná je to vyšším vytížením serveru.

    Danelli

  27. Ahoj,zaujala mě zmínka ve Vaší diskuzi : „O tom řešení jak TMU de facto povýšit na TME“.Mám teploměr od Papoucha TMU a pokouším se dostat teplotu na web,dle návodu Papoucha.Dělám to poprvé a budu rád za každou pomoc
    Jirka

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *