Téma: SDC light v moji databázi
Taková malá kravinka 3 SDC light v datech viz
http://www.jindrovi.cz/dum/table.php
Data zaznamenána od 23.1 2012 je to
ještě ve vývoji :-)
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz
Network Monitoring System - SDS - Síťový Dohledový Systém
Nejste přihlášen. Přihlaste se, nebo se zaregistrujte.
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz » Pochlubte se ! » SDC light v moji databázi
Stránky 1
Chcete-li přispívat, musíte se přihlásit nebo projít procesem registrace.
Taková malá kravinka 3 SDC light v datech viz
http://www.jindrovi.cz/dum/table.php
Data zaznamenána od 23.1 2012 je to
ještě ve vývoji :-)
Tak po tomhle řada majitelů nemovitostí přímo a doslova skočí. Vynikající nápad.
pozn. Nešlo by to upravit tak, aby to hned nastavilo aktuální (nebo včerejší) den ?
Ano mám to v plánu chci udělat měsíční i roční vyučtování a pak si to pomocí cronu posílat mě a všem domácím účastníkům
pomocí emilu.Ale nejsem zrovna moc zdatnej programátor je to všechno pokus omyl.
Snad se podaří. :-)
Vypadá to dobře !
Kdybys chtěl programově pomoct, PHP,SQL, ... tak napiš ....
S tímhle jsem se dostal pouze na moje meteo, ale už se dělají testy na SDS ![]()
Budu mít na testy vodoměr s rádiovým vysílačem, tak jsem zvědav ![]()
Ahoj šel by nějakým způsobem udělat filtr aby se mi hodnota 85 přepsala na předchozí měřenou hodnotu?
Že bych tímto filtrem projel třeba jednou za den projel data v mysql.Nemám vůbec představu odkud na to jít.
Díky
Ahoj šel by nějakým způsobem udělat filtr aby se mi hodnota 85 přepsala na předchozí měřenou hodnotu?
Že bych tímto filtrem projel třeba jednou za den projel data v mysql.Nemám vůbec představu odkud na to jít.
Díky
Ahoj ... Jednou za den ? Na to musíš udělat cron, t.j. přístup do serveru kde ti to běží ....
Jednodušší je udělat přímo do PHPčka kde ukládáš data, aby natáhl předchozí hodnoty a pokud je některá nová nulová, tak ať použije starou hodnotu ....
Jde taky o to, z jakého důvodu chceš přepisovat ... pokud ti SDS nepošle data, tak se ani na serveru nespustí php ...
Další řešení je pak dát až do toho prohlížecího phpčka, např. index.php, část která kontroluje data ...
Já mám tak udělané kontrolu z metea, pokud narazím na nulové anebo moc vysoké, tak je vymažu ....
$mazani = mysql_query("DELETE FROM `w_xmldata` WHERE in_temp = 0");
$mazani = mysql_query("DELETE FROM `w_xmldata` WHERE out_temp >= 50");Takže otázka zní, jaký je důvod přepisovat ?
Mužeš tu prosím trochu rozvést ten skript na přepis nízkých, nebo vysokých hodnot?
Občas mi čidlo pošle do databáze to nesmyslně vysoké číslo. A pak mi to rozodí graf.
Posílám každou minutu, tak pokud bych jej přepsal předchozí hodnotou, nic se nestane.
Díky
Udělám konkrétní příklad, jenom vydrž .... nějaké problémy na mail serveru .... ![]()
Takže asi takhle jednoduše .....
// tady otevru sql a nactu jeden radek, setrideno podle indexu, index mam rrrrddmmhhmmss, takze posledni zaznam
include "open_db.php";
$temp_olda = mysql_query("SELECT * FROM `_sds01` ORDER BY `index` DESC limit 0,1");
$zaznamt=MySQL_Fetch_Array($temp_olda);
$temp_old = $zaznamt["temp00"]; // vytahnu danou teplotu, prvni cidlo mam temp00// temp00 je z SDS a pokud je vetsi jak 30 tak ho nahradim temp_old z sql
if ($temp00 > 30) $temp00 = $temp_old;// vse ukladam do sql .....
$result = mysql_query("INSERT INTO `_sds01` ( `index` ,`rec_date` , `rec_time` , `temp00`, `temp01`, `temp02`, `temp03`, `temp04` , `ad00` , `ad01`, `ad02`, `ad03`, `ad0d`)
VALUES ('$index', '$rec_date', '$rec_time', '$temp00', '$temp01', '$temp02', '$temp03', '$temp04', '$ad00', '$ad01', '$ad02', '$ad03', '$ad0d')");include "close_db.php";
a funguje to TAKHLE
Měl jsem i jiné řešení, kde záznam jsem ukládal jak do SQL tak i TXT soubor kde byl pouze poslední záznam a s tím jsem porovnával .... záleží na tom kolik je záznamů v tabulce, pak by teoreticky přes txt mohlo být rychlejší ....
TiborTeam díky moc, zatím jsem vypotil tohle:
// filtr 85
$den=date("j"); $mesic=date("n"); $rok=date("Y");
$teplota_old = mysql_query("SELECT * FROM `sdc` where den=$den and mesic=$mesic and rok=$rok order by `teplota_predsin` DESC limit 0,1");
$zaznam_old =MySQL_Fetch_Array($teplota_old);
$teplota_predsin_old = $zaznam_old["teplota_predsin"];
$teplota_vstup_kotel_old = $zaznam_old["teplota_vstup_kotel"];
$teplota_vystup_kotel_old = $zaznam_old["teplota_vystup_kotel"];
$teplota_obyvaci_pokoj_old = $zaznam_old["teplota_obyvaci_pokoj"];
$teplota_loznice_old = $zaznam_old["teplota_loznice"];
$teplota_koupelna_old = $zaznam_old["teplota_koupelna"];
$teplota_pokoj_puda_old = $zaznam_old["teplota_pokoj_puda"];
$teplota_obyvak_puda_old = $zaznam_old["teplota_obyvak_puda"];
$teplota_kuchyn_old = $zaznam_old["teplota_kuchyn"];
$teplota_chodba_puda_old = $zaznam_old["teplota_chodba_puda"];
$teplota_rozvadec_old = $zaznam_old["teplota_rozvadec"];
$teplota_sklep_old = $zaznam_old["teplota_sklep"];
$teplota_baterie_old = $zaznam_old["teplota_baterie"];
$teplota_venku_old = $zaznam_old["teplota_venku"];
if ($teplota_predsin = 85) $teplota_predsin = $teplota_predsin_old;
if ($teplota_vstup_kotel = 85) $teplota_vstup_kotel = $teplota_vstup_kotel_old;
if ($teplota_vystup_kotel = 85) $teplota_vystup_kotel = $teplota_vystup_kotel_old;
if ($teplota_obyvaci_pokoj = 85) $teplota_obyvaci_pokoj = $teplota_obyvaci_pokoj_old;
if ($teplota_loznice = 85) $teplota_loznice = $teplota_loznice_old;
if ($teplota_koupelna = 85) $teplota_koupelna = $teplota_koupelna_old;
if ($teplota_pokoj_puda = 85) $teplota_pokoj_puda = $teplota_pokoj_puda_old;
if ($teplota_obyvak_puda = 85) $teplota_obyvak_puda = $teplota_obyvak_puda_old;
if ($teplota_kuchyn = 85) $teplota_kuchyn = $teplota_kuchyn_old;
if ($teplota_chodba_puda = 85) $teplota_chodba_puda = $teplota_chodba_puda_old;
if ($teplota_rozvadec = 85) $teplota_rozvadec = $teplota_rozvadec_old;
if ($teplota_sklep = 85) $teplota_sklep = $teplota_sklep_old;
if ($teplota_baterie = 85) $teplota_baterie = $teplota_baterie_old;
if ($teplota_venku = 85) $teplota_venku = $teplota_venku_old;
mysql_query("INSERT INTO sdc ( den, mesic, rok, hodina, minuta, sec, teplota_predsin, teplota_vstup_kotel, teplota_vystup_kotel, teplota_obyvaci_pokoj, teplota_loznice, teplota_koupelna,
teplota_pokoj_puda, teplota_obyvak_puda, teplota_kuchyn, teplota_chodba_puda, teplota_rozvadec, teplota_sklep, teplota_baterie, teplota_venku, nizky_tarif_cislo,
vysoky_tarif_cislo, nizky_tarif_boiler, vysoky_tarif_server, nizky_tarif_server, cena_elektrina_nizky_tarif, cena_elektrina_vysoky_tarif, vodomer,plynomer, cena_voda, cena_plyn)
VALUES ($den,$mesic,$rok,$hodina,$minuta,$sec,$teplota_predsin,$teplota_vstup_kotel,$teplota_vystup_kotel,$teplota_obyvaci_pokoj,$teplota_loznice,$teplota_koupelna,
$teplota_pokoj_puda,$teplota_obyvak_puda,$teplota_kuchyn,$teplota_chodba_puda,$teplota_rozvadec,$teplota_sklep,$teplota_baterie,$teplota_venku,$nizky_tarif_cislo,
$vysoky_tarif_cislo,$nizky_tarif_boiler,$vysoky_tarif_server,$nizky_tarif_server,$cena_elektrina_nizky_tarif,$cena_elektrina_vysoky_tarif,$vodomer,$plynomer,$cena_voda,$cena_plyn)");
mysql_close();Tak to zatím zkouším jestli to bude fungovat :-)
Za málo .... Musí to fungovat
... jediná vada je vždy mezi židlí a klávesnicí ![]()
Ahoj,
a nemohl by jsi mi doporučit graf s časovou osou v php aby běžel u mě na serveru
a byl jednoduchý na instalaci? Nechci žádný flashe atd. Něco si na styl :
http://jindrovi.cz/dum/graf.php
Díky moc
Ahoj šel by nějakým způsobem udělat filtr aby se mi hodnota 85 přepsala na předchozí měřenou hodnotu?
Že bych tímto filtrem projel třeba jednou za den projel data v mysql.Nemám vůbec představu odkud na to jít.
Díky
Tudle hodnotu mi vyhazuje digitemp, kdyz zachybuje sbernice, dost jsem se s tim trapil, nez jsem zjistil ze to neni 85 numericky ale textove 85.00 staci na to jednoduchy script hned pri vycitani
TEPLOTA=`digitemp -q -t 0 -o "%Y-%m-%d %H:%M:%S cidlo %s %.2C" -q | grep cidlo | awk -F" " '{ print $5 }'`
if [ $TEPLOTA == "85.00" ]; then
continue
else
echo "insert into Boiler values (NULL, CURRENT_TIMESTAMP, '$TEPLOTA');" | mysql -u user --password='xxxxx' teplomer
fimala ukazka http://62.209.235.86/Teplomer/tcklima.php, http://62.209.235.86/Teplomer
Hodnota 85°C je definována výrobcem čidla DS18B20 jak velmi specifická hodnota, která se z čidla přečte v případě, že čidlo má nízké napájecí napětí na svých pinech a proto nemůže úspěšně provést převod (měření) teploty. Je potřeba zkontrolovat celou sběrnici 1-W, popř. provést specifické úpravy.
Hodnota právě 85°C je rozhodnutí výrobce, který vycházel z toho, že tyto čidla budou nejčastěji měřit běžnou venkovní teplotu, a teploty blízké 100°C potkají jen málokdy (pozn. měří až do 125°C).
Stránky 1
Chcete-li přispívat, musíte se přihlásit nebo projít procesem registrace.
SDS PLC/PAC: Měření Energie & OnlineTechnology.cz » Pochlubte se ! » SDC light v moji databázi