>> Vstup do diskuze <<

Zde naleznete stručný přehled toho, jak funguje vyčítání dat ze zařízení SDS Makro a jejich zobrazení na webové stránce

Na začátku bych chtěl zdůraznit, že princip funkce této aplikace je ten, že si spouštěný skript šahá z webu do SDS a proto je nutné aby SDS bylo umístěno na veřejné IP adrese

Skript pro vyčítání dat z SDS:   data_cron

Tento skript vyčítá data z SDS a ukládá je do souboru „vysledky.txt“ v podobě čísel , která jsou oddělena středníkem. Je to asi nejdůležitější část celé strutury, protože vyčítá potřebná data z proměnnýc z SDS

Příklad vyčítání hodnot z SDS:

Skript v tomto případě vyčítá hodnoty z SDS umístěného na Ipadrese 192.168.1.250.
Konkrétně 59 hodnot počínaje SYS100 ; 101 ; 102 atd.

Pro dapší zpracování budou použity tyto hodnoty např.:

- $h1=$hodnota_data1[0]; //stav mesic spotreba – první hodnota (sys100)
- $h59=$hodnota_data1[53]; //stav S03 stav sekundarniho cerpadla – padesátádevátá hodnota (sys158)
- takto se vyčítají základní hodnoty pro další zpracování.

Pokud toto 192.168.1.250/get_sys(100)?rn=59 vložíte do vyhledávače, a Vaše SDS je na IPadrese 192.168.1.250 vrátí se Vám hodnoty SYS100 – SYS158.

$data1=@file_get_contents('192.168.1.250/get_sys(100)?rn=59');
//echo $data1; $hodnota_data1=explode("|", $data1);
$h1=$hodnota_data1[0]; //stav mesic spotreba
$h2=$hodnota_data1[1]; //stav mesic dodavka
$h3=$hodnota_data1[2]; //stav mesic vyroba
$h51=$hodnota_data1[6]; //stav mesic prebytky do AKU
$h4=$hodnota_data1[3]; //stav rok spotreba
$h5=$hodnota_data1[4]; //stav rok dodavka
$h6=$hodnota_data1[5]; //stav rok vyroba
$h52=$hodnota_data1[7]; //stav rok prebytky do AKU
$h7=$hodnota_data1[40]; //stav den vyroba
$h28=$hodnota_data1[41]; //stav den spotreba
$h29=$hodnota_data1[42]; //stav den dodavka
$h53=$hodnota_data1[43]; //stav den prebytky do AKU
$h58=$hodnota_data1[52]; //stav S02 stav primarniho cerpadla
$h59=$hodnota_data1[53]; //stav S03 stav sekundarniho cerpadla

Ve skriptu se dále pracuje z vyčtenými hodnotami ze kterých se násleně vypočtou výsledky.

Příklad:
$v25=round($h20/100,1); // venkovni teplota
$v26=round($h21/100,1); // teplota panelu
$v27=round($h22/100,1); // teplota chodba
$v28=round($h23/100,1); // primarni okruh teplota
$v41=round($h41/100,1); // aku nadrz horni teplota
$v42=round($h42/100,1); // aku nadrz dolni teplota
$v44=round($h44/100,1); // primarni okruh zpatecka
$v49=round($h48/100,1); // aku nadrz stred
$v50=round($h49/100,1); // teplota topeni zpatecka
$v51=round($h50/100,1); // teplota první patro
$v45=round(1.1*(($h23/100)-($h44/100))/0.86,1); // vykon krbu
$v62=round($h60/100,1); // teplota radiator zpatecka

Takto se naplní textový soubor vysledky.txt Data_cron je umístěn ve struktuře stránky a je spouštěna každou minutu funkcí CRON . Jelikož je tato funkce spouštěna v nejkratším intervalu 1 minuta, v rámci jednoho zpuštění proběhne vyčtení dat celkem 3x , aby se dosáhlo častější aktualizace dat. Adresář ve kterém je umístěn soubor „vysledky.txt“ musí mít nastavena práva také pro zápis a ne pouze čtení (data v tomto souboru se pravidelně přepisují). Tímto jsou konkrétní potřebné hodnoty proměnných ukládány ve vybraném adresáři v „vysledky.txt“ souboru a jsou neustále přepisovány.

Konkrétní výsleky s daty :   vysledky.txt

Skript data_cron poskytuje informace ohledně proměnných v SDS POZOR: ve skriptu data_cron.php je nutné doplnění IPADRES.

Nyní jsou vyčtené a upravené hodnoty z SDS uloženy v textovém souboru vysleky.txt a je nutno je zobrazit na webové stránce.

To umožní další skript:    vypocty.php.

Tento skript (v tomto případě) vybere 63 výsledných hodnot a každé určí své pořadí, což bude později důležité pro konkrétní umístění na webové stránce.

Další skript už načte výsledné hodnoty z konkrétních pozic vytvořených předešlým skriptem vypocty.php a umožní je zobrazit na webové stránce.

Příklad jednoho ze skriptů pro zobrazení hodnot výroby elektrické energie:   vyroba_energie.php.


Zde je možno zobrazit program nahraný v SDS:   program nahravý v SDS.


Před tím než nahrajete výše uvedený program nahrajte tento program aby jste naplnily měsíční a roční stavy elektroměrů (pozor - plníte je do pamětí, které nemají neomezený počet přepisů - v programu je toto ošetřeno). Poté co během několika sekund po nahrání proběhne zápis dat, nahrajte výše uvedený program:   program pro zális stavu elektroměrů stav rok a měsíc.


Další informace budou postupně doplněny

Josef Nešvara