1

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 :-)

2

Re: SDC light v moji databázi

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 ?

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

3

Re: SDC light v moji databázi

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ří. :-)

4

Re: SDC light v moji databázi

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 smile
Budu mít na testy vodoměr s rádiovým vysílačem, tak jsem zvědav smile

SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

5

Re: SDC light v moji databázi

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

6 Naposledy upravil: TiborTeam (2012-02-20 10:18:29)

Re: SDC light v moji databázi

mupy napsal:

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 ?

SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

7

Re: SDC light v moji databázi

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

Kdo nic nezkusí, nic nezíská.

8 Naposledy upravil: TiborTeam (2012-02-20 15:12:12)

Re: SDC light v moji databázi

Udělám konkrétní příklad, jenom vydrž .... nějaké problémy na mail serveru .... sad

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ší ....

SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

9

Re: SDC light v moji databázi

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 :-)

10 Naposledy upravil: TiborTeam (2012-02-23 11:12:09)

Re: SDC light v moji databázi

Za málo .... Musí to fungovat smile ... jediná vada je vždy mezi židlí a klávesnicí tongue

SDS micro DIN - firmware 8.7.2014, SDS micro DIN - firmware Beta xx.x.2014
SDS nováček :-) Správce sítě, programátor, kutil .... :-)

11

Re: SDC light v moji databázi

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

12 Naposledy upravil: vkalina (2012-04-15 18:19:34)

Re: SDC light v moji databázi

mupy napsal:

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
fi

mala ukazka http://62.209.235.86/Teplomer/tcklima.php, http://62.209.235.86/Teplomer

13

Re: SDC light v moji databázi

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

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !