1 Naposledy upravil: vkalina (2013-07-08 19:50:25)

Téma: Regulace Akumulačního vytápění na dřevoplyn

Tak se mi povedlo interaktivni grafiku nasoukat primo do modulu, jak bude trocha casu, doprogramuju sds a bude z toho kompletni regulace akumulacniho topeni. Dal jsem si za cil.
1/ Umoznit nastaveni teploty v mistnosti přes WEB
2/ Moznost měnit teplotu vody poustenou do topeni přes WEB
3/ Automatiky dobeh sekunderniho cerpadla po po uzavreni serva
4/ Automaticke otevreni serva pri pretopeni kotle
5/ Rizeni cerpadla dobijejiciho boiler
6/ Zapinani cerpadla primarniho okruhu az pri teplote 70°C
7/ Kratke protoceni cerpadel jednou denně mimo topnou sezonu
8/ No a mozna jednou do budoucna naprogramovat tydeni kalendar pro ovladani teplot v mistnosti (elektronicky programovetelny termosta) - ale to jeste nevim, je tam malo prostoru pro user.htm , tak uvidim jestli se do budoucna nekam pohne velikost, nebo doplnim o dalsi modul. Kazdopadne budu muset koupit jeste  modul PWM10 pro rizeni serva napetim 0-10V. Az to bude odzkousene, jsem ochoten to i nabidnout k prodeji jako oziveny hotovy set,  pokud si nekdo netroufne sam.

2

Re: Regulace Akumulačního vytápění na dřevoplyn

a co takhle http://79.98.159.227/user.htm

takhle se to tam vejde necpu tam zbytečně moc obrázků

jen se mi to nedaří zformátovat a nelibí se mi ten random

3

Re: Regulace Akumulačního vytápění na dřevoplyn

Moc pekne, evidentne jste v scriptu mnohem zkusenejsi, ja ho objevil teprve minuly tyden, doted jsem vsechno resil prez php, takze jsem pouze uprvavil puvodni php kod. Nejspis od Vas nektere veci okoukam, ale necejtim se na to, psat grafiku v javascriptu.   Korektně si mi Vase stranka zobrazuje pouze v Chrome a na mobilu. Docela by mě zajimalo, co pouzivate za tlakove cidlo.  Me se to tam na konec veslo a jeste tam mam malou rezervu na dodelavky.

4 Naposledy upravil: vkalina (2013-04-18 23:03:35)

Re: Regulace Akumulačního vytápění na dřevoplyn

Tak jsem nakonec zvítězil. S odřenýma ušima se mi povedlo do SDS Micro Light E R2 nalejt 128kB stranku vcetne dynamické grafiky. Takže nastupuji do druhé fáze - naprogramovat logiku regulace.
Tady je ukázka již funkční grafiky na modulu s využitím prokletého AJAXu.
http://62.209.235.84/user.htm

Docela se tesim na to, az se s novym firmware zvedne velikost user.htm
par kilo na vrch by se hodilo, abych tam mohl jeste dostat tydenni program.

5 Naposledy upravil: vkalina (2013-07-31 20:38:26)

Re: Regulace Akumulačního vytápění na dřevoplyn

Tak a tady je finální prototyp. Na stole to maká spolehlivě, teď už jen počkat na topnou sezónu, abych mohl tvrdit, že je to bez chyby.

PunBB bbcode test

PunBB bbcode test

6

Re: Regulace Akumulačního vytápění na dřevoplyn

Jaké jsou zkušenosti s SDS-PWM10 ?
Zkoušeli jste i doplnit regulaci na zpětnou vazbu - tj. zapojit výstup 0až10V z modulu PWM10 do jednoho z A/D vstupů SDS MICRO, a "zpětně" kontrolovat správnost požadovaného nastavení, a podle toho upravovat pwm signál, kterým je PWM10 řízen ?
Nebo je jenom použitá kalibrační tabulka (pwm na napětí) ?

Stačili ty dvě relé na použitém SDS ?
Možná do budoucna bude lepší použít SDS IO6 (až se v srpnu '13 dostane do prodeje).

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

7 Naposledy upravil: vkalina (2013-07-15 11:13:04)

Re: Regulace Akumulačního vytápění na dřevoplyn

Zpětnou vazbu na napětí jsem nezkoušel, mám zpětnou vazbu dělanou na teplotu a podle ní upravuji PWM střídu. Hlídá mi to nastavenou teplotu vody do topného okruhu a podle toho to otvírá, případně zavírá servo. Možná si v ostrém provozu budu muset ještě pohrád z prodlevou jednotlivých změn na PWM. To se na stole nedá dost dobře odladit. Jak jsem psal, na stole to chodí bez chyby, ale v ostrém provozu jsem to ještě netestoval, ale myslím, že nebudou nějaké větší komplikace. S dvěma relé jsem vyšel. Boiler jsem vyřešil logikou na ty dvě relátka co jsou již na desce, ale co bych fakt ocenil, je zvětšení prostoru pro ukládání vlastní web stránky, aby se mi tam vešel i týdenní program pro termostat a nemusel jsem to řešit přes pokojový. V tom případě bych to i doplnil o zobrazení otevření serva přes A/D vstup. Teď k tomu ještě dodělávám čelní panel na kterém bude signalizace zapnutí jednotlivých čerpadel a přes LM3915 a BARGRAF indikace velikosti otevření serva. No uvidím, jestli vstupní impedance LM3915 bude dostatečná pro PWM10. Servo je v pohodě to má 100K. Pak bych měl ještě dotaz, daly by se oba moduly koupit i bez ARK svorek ? Pokud bych to chtěl vyrábět v nějaké menší sérii, rád bych to kvůli snížení nákladů implementoval celé na jednu PCB desku, abych to nemusel drátovat a odpadli by mi i patice pro relé a celé by to bylo takové kompaktnější a levnější na výrobu. Jinak doufám, že ty relátka co jsou na desce něco vydrží, docela mi přijde, že při napájení 24V dost hřejou. Pokud by někdo chtěl indikaci PWM, tak přikládám mojí PCB desku.

http://ksystems.cz/Test/signalizace_pwm.pdf

http://www.gme.cz/dokumentace/323/323-003/dsh.323-003.1.pdf

8

Re: Regulace Akumulačního vytápění na dřevoplyn

vkalina napsal:

daly by se oba moduly koupit i bez ARK svorek ?

Kontaktujte eshop - p. Tomáš Prejda, csphone@csphone.cz, určitě to půjde domluvit (s patřičnou slevou), nevidím důvod proč ne.

vkalina napsal:

Jinak doufám, že ty relátka co jsou na desce něco vydrží, docela mi přijde, že při napájení 24V dost hřejou.

Podle fotky jsou ty relátka s cívkou na 12V. Doporučím buď výměnu (za relé s cívkou 24V), nebo to příště uvést do objednávky, ať z eshopu pošlou už rovnou vhodné osazení desky.

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

9 Naposledy upravil: vkalina (2013-08-04 22:53:44)

Re: Regulace Akumulačního vytápění na dřevoplyn

Hm, to je smula. Pajet v desce se mi fakt nechce. Nakonec jsem to vyresil stabilizatorem stejne jsem musel jeden pouzit na BARGRAF, protoze LM3915 při 24V topil jak blazen. Ted uz by to melo byt v pohode. Při vyplych relatkach je odběr 6W s cos F 40 a pokud zapnou dvě relé a rosvítí se celá stupnice BARGRAFu tak se to dostane na 14W

10

Re: Regulace Akumulačního vytápění na dřevoplyn

Pane Kalina ta Vaše regulce kotle je pro mně tak trochu inspirace pro regulaci tepelného čerpadla takže vám dám taky tip. Jelikož jsem neskousl tu grafiku vkládanou binárně tak jsem pátral po něčem jiném. Nakonec jsem skončil  u SVG (Scalable Vector Graphics). Ta má to kouzlo že jím vykreslené prvky lze přímo modifikovat scriptem, takže například barevným gradientem je znázorněno i reálné rozvrstvení teplot v nádrži.  Existuje proto i volně přístupný grafický editor Inscape který své výsledky ukládá přímo v SVG, já použil Corel Draw který to do SVG umí taky exportovat ( a tam mi výsledný kód přišel kompaktnější).  Tolik jen námět pro zimní večery :-)
Bohužel mě se stále nedaří přístup do své SDS protunelovat do vnějšího internetu sbych svůj polotovar předvedl v praxi :-(.

11 Naposledy upravil: vkalina (2013-09-26 23:38:55)

Re: Regulace Akumulačního vytápění na dřevoplyn

To mě zajímá, já to teda taky kreslil v corelu, ale zajímalo by mě, jak vypadá ten Váš script ve vektorech. To zobrazení na internetu by neměl být problém. Koho máte za poskytovatele internetu ? Máte tři možnosti jak to vytáhnout, pokud nedisponujete volnou veřejnou adresou. Buď vypnout web přístup na router z internetu a udělat nat překlad 1:1 , nebo si rict že stranka se vam bude zobrazovat pod jiným portem třeba 8080 a udělat překlad takto :ipadresa SDS:80 se prelozi na verejnou ipadresu routeru:8080 z venku se vam to pak bude zobrazovat http://x.x.x.x:8080 . Pokud ani toto nedáte, zkuste použít funkci DMZ někdy také udávanou jako virtual server. bude se to chovat, jako by SDS mělo verejnou adresu.  Pokud by se nedařilo, tak mi cinkkněte na 777770113 a dáme to do kupy. Nemám problém ani s cisco routery. Regulaci již mám namontovanou, ještě musím vyměnit boiler a pak uvidím jak se to bude chovat. Na jare bych stejným způsobem chtěl udělat solár.  Cerpadla mám taky (tedy klimatizace), teploty tahám sice přez sds, ale rizení jsem zatim nechal na linuxu
http://ksystems.cz/Teplomer/tcklima.php

12 Naposledy upravil: ringojr (2013-09-27 12:53:24)

Re: Regulace Akumulačního vytápění na dřevoplyn

S tím nastavením routeru se možná na vás později obrátím.
Z venku mám od providera Rete Nanostation 5 se statickou adresou,  uvnitř dále ASUS  gl-520, na vnitřním routeru mám již nastaveno že pokud se obrátím na jeho ip adresu tak se dostanu na SDS, ale nedaří se mi obdobně se tam protunelovat venku skrz Nanostation . Ostatně z venku se nedostanu ani k administraci té Nanostation, i když zevnitř si s tím hrát můžu. Asi se budu muset obrátit na providera jestli tam nemá nějaký firewall nebo něco takového jinde ve struktuře sítě.

Na ukázku vám zasílám  část toho scriptu který to vykresluje (na úvod a závěr tam je řádek kódu z původního dema abyste věděl kam to umístit).

<body onLoad="sdsps();">

<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="70%" height="100%" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
viewBox="0 0 22 22"

 xmlns:xlink="http://www.w3.org/1999/xlink">
 <defs>
 <style type="text/css">
   <![CDATA[
    .str0 {stroke:#1F1A17;stroke-width:0.02}
    .str8 {stroke:#0093DD;stroke-width:0.10583}
    .str6 {stroke:#1F1A17;stroke-width:0.10583}
    .str5 {stroke:#DA251D;stroke-width:0.10583}
    .str4 {stroke:#DD137B;stroke-width:0.10583}
    .str7 {stroke:#EF9BA0;stroke-width:0.10583}
    .str3 {stroke:#1F1A17;stroke-width:0.14111}
    .str1 {stroke:#AAA9A9;stroke-width:0.28222}
    .str2 {stroke:#C2C1C1;stroke-width:0.28222}
    .fil1 {fill:none}
    .fil2 {fill:#00923F}
    .fil4 {fill:#FEFEA3}
    .fil0 {fill:#3F4446}
    .fil3 {fill:#DA251D}
    .fil5 {fill:#1F1A17;fill-rule:inherit}
    .filno {fill:#999999}
    .fnt1 {font-weight:normal;font-size: 0.2pt;font-family:'Arial'}
    .fnt3 {font-weight:normal;font-size:0.3pt;font-family:'Arial'}

    ]]>
   </style>
 <linearGradient id="grad1" x1="0" y1="0" x2="0" y2="1">
    <stop id="grad1_s0" stop-color=rgb(0,5,0) offset="0"/>
    <stop id="grad1_s1" stop-color=rgb(0,30,0) offset="0.17"/>
        <stop id="grad1_s2" stop-color=rgb(0,60,0) offset="0.33"/>
    <stop id="grad1_s3" stop-color=rgb(0,80,0) offset="0.44"/>
    <stop id="grad1_s4" stop-color=rgb(0,100,0) offset="0.55"/>
    <stop id="grad1_s5" stop-color=rgb(0,120,0) offset=".67"/>
    <stop id="grad1_s6" stop-color=rgb(0,140,0) offset=".78"/>
    <stop id="grad1_s7" stop-color=rgb(0,160,0) offset="0.89"/> 
    <stop id="grad1_s8" stop-color=rgb(0,180,0) offset="1"/>
    
  </linearGradient>

 </defs>
 <g id="Layer_x0020_1">
  <metadata id="CorelCorpID_0Corel-Layer"/>
  <rect class="fil0 str0" x="-0.0117" y="-0.0178982" width="21.3247" height="22.2071"/>
  <rect class="fil1 str1" x="6.09645" y="6.1099" width="13.9683" height="13.049"/>
  <rect class="fil1 str2" x="6.09645" y="6.10991" width="13.9683" height="5.78135"/>
  <rect class="fil1 str2" x="14.4529" y="6.06688" width="5.49254" height="5.82437"/>
  
  
  <polygon class="fil1 str2" points="6.21847,6.1099 13.5452,0.76646 20.7738,6.1099 "/>
  <rect class="fil1 str3" x="1.10452" y="13.7645" width="4.21593" height="5.49051"/>
  <circle class="fil1 str3" cx="3.23699" cy="16.5169" r="1.44616"/>
  <rect fill="url(#grad1)" x="7.97895" y="7.09035" width="4.11788" height="11.4222" rx="2" ry="1"/>
   <g id="vrtule" fill="#999999">
  <ellipse id="el1"  cx="3.237" cy="15.8054" rx="0.379041" ry="0.711503"/>
  <ellipse   cx="3.237" cy="17.2445" rx="0.379041" ry="0.711503"/>
  <ellipse   transform="matrix(2.742E-014 -1.03532 1.03532 2.742E-014 3.96712 16.4984)" rx="0.36611" ry="0.68723"/>
  <ellipse   transform="matrix(2.742E-014 -1.03532 1.03532 2.742E-014 2.51767 16.4984)" rx="0.36611" ry="0.68723"/>
  <!-- <animateTransform id="vrtule_rot" attributeName="transform" 
                          attributeType="XML"
                          type="rotate" 
                          from="0 3.237 16.52495" 
                          to="360 3.237 16.52495" 
                          dur="5s"
                          repeatCount="indefinite"/> -->
  
  </g>
  <polyline class="fil1 str4" points="1.90017,19.255 1.90017,20.8166 11.2144,20.8166 11.2144,18.5126 "/>
  <polyline class="fil1 str5" points="4.30227,19.255 4.30227,20.0813 8.86136,20.0813 8.86136,18.5126 "/>
  <circle class="fil1 str6" cx="13.6148" cy="15.963" r="0.538905"/>
  <polygon id="OBEH1" class="str6" fill="#999999" points="13.3344,15.5098 13.3344,16.4115 14.1537,15.963 "/>
  <line class="fil1 str5" x1="13.0759" y1="15.9835" x2="12.0968" y2= "15.9835" />
  <circle class="fil1 str6" cx="13.6148" cy="13.737" r="0.538905"/>
  <polygon id="OBEH2" class="str6" fill="#999999" points="13.3344,13.2839 13.3344,14.1856 14.1537,13.737 "/>
  <polygon class="fil4 str6" points="15.0741,15.8294 15.0741,16.1275 15.345,15.9792 "/>
  <polygon class="fil1 str6" points="15.6224,16.1305 15.6224,15.8324 15.3515,15.9807 "/>
  <polygon class="fil4 str6" points="15.1984,16.2492 15.4966,16.2492 15.3483,15.9783 "/>
  <polyline class="fil1 str7" points="15.6224,15.9835 18.0363,15.9835 18.0118,15.9835 "/>
  <polyline class="fil1 str7" points="16.6768,16.243 18.0363,16.243 18.0118,16.243 "/>
  <polyline class="fil1 str7" points="16.6768,16.7606 18.0363,16.7606 18.0118,16.7606 "/>
  <polyline class="fil1 str8" points="16.6768,17.0195 18.0363,17.0195 18.0118,17.0195 "/>
  <polyline class="fil1 str8" points="15.3258,17.2783 18.0363,17.2783 18.0251,17.2783 "/>
  <polyline class="fil1 str7" points="16.6768,16.5018 18.0363,16.5018 18.0118,16.5018 "/>
  <path class="fil1 str7" d="M17.9742 16.243c0.14293,0 0.25883,-0.05795 0.25883,-0.12941 0,-0.067 -0.10187,-0.12212 -0.23237,-0.12875"/>
  <path class="fil1 str7" d="M17.9742 16.7606c0.14293,0 0.25883,-0.05795 0.25883,-0.12941 0,-0.067 -0.10187,-0.12212 -0.23237,-0.12875"/>
  <path class="fil1 str8" d="M17.9742 17.2783c0.14293,0 0.25883,-0.05795 0.25883,-0.12941 0,-0.067 -0.10187,-0.12212 -0.23237,-0.12875"/>
  <path class="fil1 str7" d="M16.7375 16.2437c-0.00869,-0.00044 -0.01753,-0.00067 -0.02646,-0.00067 -0.14293,0 -0.25883,0.05795 -0.25883,0.12942 0,0.07146 0.1159,0.12941 0.25883,0.12941"/>
  <path class="fil1 str7" d="M16.7375 16.7613c-0.00869,-0.00044 -0.01753,-0.00067 -0.02646,-0.00067 -0.14293,0 -0.25883,0.05795 -0.25883,0.12942 0,0.07146 0.1159,0.12941 0.25883,0.12941"/>
  <line class="fil1 str8" x1="15.3258" y1="16.2492" x2="15.3258" y2= "18.0534" />
  <line class="fil1 str5" x1="14.1537" y1="15.963" x2="15.0741" y2= "15.963" />
  <polyline class="fil1 str6" points="16.5666,9.69029 16.5666,11.6804 16.5666,11.6804 "/>
  <polyline class="fil1 str6" points="17.6019,9.69029 17.6019,11.454 17.5897,11.454 "/>
  <line class="fil1 str6" x1="16.5543" y1="9.97199" x2="17.6019" y2= "9.97199" />
  <line class="fil1 str6" x1="16.5543" y1="10.1791" x2="17.6019" y2= "10.1791" />
  <line class="fil1 str6" x1="16.5543" y1="10.3861" x2="17.6019" y2= "10.3861" />
  <line class="fil1 str6" x1="16.5543" y1="10.5932" x2="17.6019" y2= "10.5932" />
  <line class="fil1 str6" x1="16.5543" y1="10.8003" x2="17.6019" y2= "10.8003" />
  <line class="fil1 str6" x1="16.5543" y1="11.0073" x2="17.6019" y2= "11.0073" />
  <line class="fil1 str6" x1="16.5543" y1="11.2144" x2="17.6019" y2= "11.2144" />
  <line class="fil1 str6" x1="18.8905" y1="12.6716" x2="17.3595" y2= "15.5253" />
  <line class="fil1 str5" x1="12.0968" y1="13.7421" x2="13.0759" y2= "13.737" />
  <line class="fil1 str5" x1="14.1537" y1="13.737" x2="17.3595" y2= "13.7252" />
  <polyline class="fil1 str8" points="17.6276,11.4651 17.6348,12.1643 19.849,12.1646 "/>
  <polyline class="fil1 str8" points="19.7759,12.1646 19.7877,18.0534 12.0356,18.0534 "/>

<g>
   <path class="fil5" d="M4.21745 13.6394l0 -1.98488 0.02 0 0 1.98488 -0.02 0zm0.01 0.1251l-0.10668 -0.24892 0.00667 0.00323 0.00666 0.00302 0.00667 0.00281 0.00667 0.00261 0.00667 0.00239 0.00666 0.00219 0.00667 0.00198 0.00667 0.00177 0.00667 0.00157 0.00666 0.00135 0.00667 0.00115 0.00667 0.00093 0.00667 0.00073 0.00666 0.00052 0.00667 0.00032 0.00667 0.0001 0.00667 -0.0001 0.00666 -0.00032 0.00667 -0.00052 0.00667 -0.00073 0.00667 -0.00093 0.00666 -0.00115 0.00667 -0.00135 0.00667 -0.00157 0.00667 -0.00177 0.00666 -0.00198 0.00667 -0.00219 0.00667 -0.00239 0.00667 -0.00261 0.00666 -0.00281 0.00667 -0.00302 0.00667 -0.00323 0 0 -0.10668 0.24892z"/>
</g>
  <polyline class="fil1 str5" points="11.2192,11.0028 8.81666,10.3591 11.2603,9.70429 8.7536,9.03262 11.1806,8.38231 15.0515,8.38231 15.0515,9.22277 14.7261,9.78631 15.4088,9.78631 15.0515,9.22277 15.0515,9.22235 "/>

  <text x="6.06811" y="19.6868"  class="fil4 fnt1">chladivo zpátečka</text>
  <text id="svg_temp10" x="6.06811" y="20.0949"  class="fil4 fnt1">svg_temp10</text>
  <text x="6.12935" y="21.2913"  class="fil4 fnt1">chladivo pára</text>
  <text id="svg_temp9" x="6.82987" y="21.6993"  class="fil4 fnt1">svg_temp9</text>
  <text x="3.73383" y="5.42934"  class="fil4 fnt1">venkovní teplota D</text>
  <text x="3.27381" y="12.0569"  class="fil4 fnt1">U ridici</text>
  <text id="SVG_ad2" x="3.50806" y="12.3426"  class="fil4 fnt1">5V</text>
  <text x="3.01928" y="8.38257"  class="fil4 fnt1">Strida</text>
  <text id="SVG_strida" x="2.75605" y="8.66819"  class="fil4 fnt1">frek/strida</text>
  <text id="svg_temp1" x="4.52261" y="5.71496" class="fil4 fnt1">temp1</text>
  <text x="0.97494" y="13.3825"  class="fil4 fnt1">venkovní teplota TČ</text>
  <text id="SVG_RAM1" x="1.8395" y="13.6681"  class="fil4 fnt1">25 C</text>
  <text id="svg_temp3" x="18.1122" y="7.40934"  class="fil4 fnt1">Koupelna D</text>
  <!-- Následující řádek doplněn ruřně id4 zatím neměřím-->
  <text id="svg_temp4" x="13.4947" y="7.40934"  class="fil4 fnt1">Ložnice D</text>
  <text id="svg_temp2" x="13.4947" y="5.08126"  class="fil4 fnt1">Obývák</text>
  <g transform="matrix(1.00951 0 0 1 6.03449 0.69533)">
   <text x="9.96187" y="14.85"  class="fil4 fnt1">PT ESBE</text>
   <text id="svg_temp16" x="10.1158" y="15.1359"  class="fil4 fnt1">ptesbe</text>
  </g>
  <text x="16.3612" y="17.5793"  class="fil4 fnt1">Vratka PT</text>
  <text id="svg_temp6" x="16.4701" y="17.865"  class="fil4 fnt1">vratkapt</text>
  <text x="18.6847" y="17.6946"  class="fil4 fnt1">Vratka VZT</text>
  <text id="svg_temp8" x="18.8149" y="17.9802"  class="fil4 fnt1">vratkavzt</text>
  <text x="10.6684" y="8.08821"  class="fil4 fnt1">AN7 160</text>
  <text id="svg_temp15" x="10.9172" y="8.37383"  class="fil4 fnt1">AN7</text>
  <text x="10.6684" y="9.64119"  class="fil4 fnt1">AN6 140</text>
  <text id="svg_temp14" x="10.9172" y="9.92681"  class="fil4 fnt1">AN6</text>
  <text x="10.6684" y="11.1942"  class="fil4 fnt1">AN5 120</text>
  <text id="svg_temp13" x="10.9172" y="11.4798"  class="fil4 fnt1">AN5</text>
  <text x="10.3523" y="12.7472"  class="fil4 fnt1">AN4 100+VZT</text>
  <text id="svg_temp7" x="10.9172" y="13.0328"  class="fil4 fnt1">AN4</text>
  <text x="10.5015" y="14.3001"  class="fil4 fnt1">AN3 80+PT</text>
  <text id="svg_temp5" x="10.9172" y="14.5858"  class="fil4 fnt1">AN3</text>
  <text x="10.7395" y="15.8531"  class="fil4 fnt1">AN2 60</text>
  <text id="svg_temp12" x="10.9172" y="16.1387"  class="fil4 fnt1">AN2</text>
  <text x="10.7395" y="17.4061"  class="fil4 fnt1">AN1 30</text>
  <text id="svg_temp11" x="10.9172" y="17.6917"  class="fil4 fnt1">AN1</text>
  <text x="8.0695" y="18.0204"  class="fil4 fnt1">výměník TČ</text>
  <text id="SVG_RAM2" x="8.27312" y="18.3061"  class="fil4 fnt1">výměník</text>
  <text x="7.70682" y="15.8084"  class="fil4 fnt1">podlahové topení TČ</text>
  <text id="SVG_RAM3" x="8.51949" y="16.094"  class="fil4 fnt1">PP TČ</text>
  <text x="8.57436" y="13.5964"  class="fil4 fnt1">TUV TČ</text>
  <text id="SVG_RAM4" x="8.6595" y="13.882"  class="fil4 fnt1">tuv TČ</text>
  <text x="2.66837" y="14.1547"  class="fil4 fnt1">výkon TČ</text>
  <text id="SVG_RAM5" x="2.9359" y="14.4403"  class="fil4 fnt1">25 C</text>
  <polyline class="fil1 str5" points="16.5666,11.6804 16.5666,13.737 16.4992,13.737 "/>
  <rect class="fil1 str3" x="1.60008" y="10.1633" width="3.40848" height="1.49121"/>
  <rect class="fil1 str3" x="1.33971" y="6.25062" width="3.83454" height="2.62737"/>
  <text x="2.33385" y="7.86735"  class="fil4 fnt3">SDS</text>
  <text x="2.57055" y="11.212"  class="fil4 fnt3">A/D</text>
  <text x="1.68657" y="5.4648"  class="fil4 fnt1">Napájení SDS</text>
  <text id="SVG_ad3" x="2.26918" y="5.75042"  class="fil4 fnt1">14V</text>
  <text x="1.75337" y="9.6348"  class="fil4 fnt1">Napajení A/D</text>
  <text id="SVG_ad1" x="2.27918" y="9.92042"  class="fil4 fnt1">24V</text>
  <g>
   <path class="fil5" d="M4.21745 10.1099l0 -1.2319 0.02 0 0 1.2319 -0.02 0zm0.01 0.1251l-0.10668 -0.24892 0.00667 0.00323 0.00666 0.00302 0.00667 0.00281 0.00667 0.00261 0.00667 0.00239 0.00666 0.00219 0.00667 0.00198 0.00667 0.00177 0.00667 0.00157 0.00666 0.00135 0.00667 0.00115 0.00667 0.00093 0.00667 0.00073 0.00666 0.00052 0.00667 0.00032 0.00667 0.0001 0.00667 -0.0001 0.00666 -0.00032 0.00667 -0.00052 0.00667 -0.00073 0.00667 -0.00093 0.00666 -0.00115 0.00667 -0.00135 0.00667 -0.00157 0.00667 -0.00177 0.00666 -0.00198 0.00667 -0.00219 0.00667 -0.00239 0.00667 -0.00261 0.00666 -0.00281 0.00667 -0.00302 0.00667 -0.00323 0 0 -0.10668 0.24892z"/>
  </g>
  <rect class="fil1 str6" x="17.3595" y="12.5715" width="1.53098" height="2.85375"/>
  <line class="fil1 str8" x1="18.8905" y1="13.7498" x2="19.7791" y2= "13.748" />

 </g>
</svg>
 <div id="toppanel">

V podstatě něco obdobného dostanete při tom exportu do SVG v Corelu a ručně tam stačí doplnit jen ty id="xxx"  případně nastavení animací.

Tady je modifikovaná část z dema která vykresluje teploty a ty gradienty:

     function reqTempComplete(){
    if(reqTemp.readyState == 4){
     if(reqTemp.status == 200){
      if (reqTemp.responseText!='') {
       var rE=reqTemp.responseText.split("|");
       if (rE[0]==0) {
        document.getElementById('ds0').innerHTML="VYP";
        document.getElementById('db0').innerHTML="ZAPNI";
       } else {
        document.getElementById('ds0').innerHTML="ZAP";
        document.getElementById('db0').innerHTML="VYPNI";
       }
       var cidlo='';
       var svg_cidlo='';
       for (i=1;i<=16;i++) {
        cidlo='temp'+i;
        svg_cidlo='svg_temp'+i;
        pom=rE[i+8]/100;
        if (pom>200) {
         document.getElementById(cidlo).innerHTML="";
         document.getElementById(svg_cidlo).innerHTML="";
        } else {
         pom=pom.toFixed(2)
         document.getElementById(cidlo).innerHTML=pom+"°C";
         document.getElementById(svg_cidlo).innerHTML=pom+"°C";
    
     if(i==11) {var svgobjg0 = document.getElementById("grad1_s0"); 
        svgobjg0.setAttribute("stop-color","rgb"+temptoRGB(pom));
            var svgobjg1 = document.getElementById("grad1_s1");
        svgobjg1.setAttribute("stop-color","rgb"+temptoRGB(pom)); } 
     if(i==12) {var svgobjg2 = document.getElementById("grad1_s2"); 
        svgobjg2.setAttribute("stop-color","rgb"+temptoRGB(pom)); } 
     if(i==5)  {var svgobjg3 = document.getElementById("grad1_s3"); 
        svgobjg3.setAttribute("stop-color","rgb"+temptoRGB(pom)); }
     if(i==7)  {var svgobjg4 = document.getElementById("grad1_s4"); 
        svgobjg4.setAttribute("stop-color","rgb"+temptoRGB(pom)); } 
     if(i==13) {var svgobjg5 = document.getElementById("grad1_s5"); 
        svgobjg5.setAttribute("stop-color","rgb"+temptoRGB(pom)); } 
     if(i==14) {var svgobjg6 = document.getElementById("grad1_s6"); 
        svgobjg6.setAttribute("stop-color","rgb"+temptoRGB(pom)); } 
     if(i==15) {var svgobjg7 = document.getElementById("grad1_s7"); 
        svgobjg7.setAttribute("stop-color","rgb"+temptoRGB(pom));
            var svgobjg8 = document.getElementById("grad1_s8"); 
        svgobjg8.setAttribute("stop-color","rgb"+temptoRGB(pom));  } 
    } 
      }
     }
    }
   }
 }  

A tady zase kód pro relé doplněný o změny barev oběhových čerpadel

   //rele
   function reqReleComplete(){
        if(reqRele.readyState == 4){
     if(reqRele.status == 200){
      var rE=reqRele.responseText.split("|");
      for (i=1;i<=2;i++) {
    var svgobj = document.getElementById("OBEH"+i);     
     if (rE[i-1]==0) {
    svgobj.setAttribute("fill", "#ff0000");
        document.getElementById("rs"+i).innerHTML="VYP";
    document.getElementById("rb"+i).innerHTML="ZAPNI";
       } else {
    svgobj.setAttribute("fill", "#00ff00");
       document.getElementById("rs"+i).innerHTML="ZAP";
        document.getElementById("rb"+i).innerHTML="VYPNI";
       }
      }
     }
    }
   }

Myslím že s těchto ukázek si to již snadno poskládáte podle svých potřeb.
Celé to funguje dobře v aktuální verzi Firefoxu (Windows i Android), na Chromu se to nepřekresluje.

13

Re: Regulace Akumulačního vytápění na dřevoplyn

Super díky, ani nevím proč mě to nenapadlo. Myslím že ten kód SVG bude úspornější než bitmapa a tak tam toho vic nacpu. zkusim corela uchodit pod linuxem. Na firemni NTB ho radej instalovat nebude.  Nový modul na solár se pokusím spáchat tímto způsobem.  A ted k Vam. Predpokladam, ze nanostation je na L2 vrstve a routovani probiha az na tom asusu. Mohl by jste mi prozradit vasi verejnou adresu. Klidne na email vaclav.kalina@gtsce.com

14

Re: Regulace Akumulačního vytápění na dřevoplyn

Tak se mi pomalu daří oživovat svg grafiku.
Tady je ukázka - bohužel jen pro FIREFOX
http://ksystems.cz/Kotelna/

15 Naposledy upravil: vkalina (2013-12-27 10:52:44)

Re: Regulace Akumulačního vytápění na dřevoplyn

Tak, nějak nejsem schopen rozchodit SVG grafiku v ostatních prohlížečích. pokud SVG script vložil primo do HTML kódu, korektně se zobrazuje pouze pod Firefox. http:/ksystems.cz/Kotelna .Když ji tam vložil jako SVG soubor, zobrazí to všechny prohlížeče, ale nenacitaji se mi ID elementy. Viz http://ksystems.cz/Kotelna/vývoj.html
Ma s tím někdo tady nějakou zkušenost?
Díky

16

Re: Regulace Akumulačního vytápění na dřevoplyn

Kdysi jsem se s tím taky trápil aby to fungovalo ve více prohlížečích ale nakonec jsem to vzdal i z jiných důvodů (jiné prohlížeče měli jinak rozhozené fonty, jiná měřítka pro tabulky převzaté z DEMA a jiné v SVG grafice,..) a nakonec  to dělám jen pro ten Firefox (který mám z toho důvodu i na androidu). Mám dojem že jsem kdysi vyštrachal že pro MSIE  má nějaká inicicalizace  volaných zcela jinou syntaxi než pro Firefox. Dokonce někde byly i knihovny které testují o jaké prohlížeče se jedná a podle toho se potom vytvářely různé větve scriptů pro každý prohlížeč, ale to už byla "vyšší dívčí" která pro mé použití již nepřinášela takový užitek. Ten Firefox tu SVG grafiku podporuje snad nejdéle (z těch nejrozšířenějších prohlížečů) a nejvíce se blíží standardu. MSIE to implementoval později a po svém, ale postupně se snad taky přibližuje standardům a možná vám to časem začně fungovat samo :-)

17

Re: Regulace Akumulačního vytápění na dřevoplyn

No Firefox pod androidem neskutečně žere baterku. Druhá věc je ta, že mi to pod Firefoxem chodí pouze pokud svg script nakopíruji přímo do html stránky. Pokud použiji <embed tak se nezobrazí hodnoty. Už asi vím proč. Ten debilní javascript štrachá pouze v kořenu HTML dokumentu, ale kořen externího svg souboru už nenajde. Vzhledem k velikosti SVGcka (cca 250k) a nemožnosti uložit do SDS víc jak asi 130k to musím načítat z externího zdroje, takže to musím nějak uchodit přes <embed> nebo o<bject> Donce jsem už i nějaké řešení našel, ale nějak mé znalosti mi to neumožňují uchodit
viz. http://interval.cz/clanky/kurz-svg-dom-a-javascript-pri-programovani-animaci/

18

Re: Regulace Akumulačního vytápění na dřevoplyn

Já na to šel obrázeně - kvůli velikosti SVG kódu jsem Inscape zavrhl, použil jako základ SVG soubor vygenerovaný Corelem který byl mnohem úspornější, ten dále "zoptimalizoval" (vyházel nesmyslný počet míst za desetinou čárkou) a dále už edituji ručně (někdy si pomůžu grafickým editorem kde  změnu provedu a potom použiji příslušnou část kódu). Hlavní nevýhoda grafických editorů je že v kódu zůstavají různé posuny, otočení, změna velikostí a další transformace které člověk používá během kreslení ale ve výsledném souboru. Na netu jsou i různé SVG optimalizátory a čističe s jejichž pomocí by měl jít SVG kód velmi výrazně (odgahuji 10-20%) zredukovat.

19

Re: Regulace Akumulačního vytápění na dřevoplyn

No něco už chodí http://ksystems.cz/Kotelna/ Ještě na tom budu muset máknout.
S zapojením soláru budu ještě dost laborovat, takže se grafika bude měnit, takže nemá cenu jí zatím optimalizovat. Externí SVG je ale dostačující řešení. Teď už má user.html velikost  23k, takže je tam rezerva pro spoustu dalších vychytávek

20

Re: Regulace Akumulačního vytápění na dřevoplyn

Tak uz je to funkcni ve vsech prohlizecich

21 Naposledy upravil: vkalina (2014-03-16 19:42:04)

Re: Regulace Akumulačního vytápění na dřevoplyn

Přidal jsem ještě jeden modul SDS MICRO Light IO6 , takže teď to kompletně ovládá solár, kotelnu a boiler. http://ksystems.cz/Kotelna/ Uvidím jak se to bude chovat v léťě, ale asi ještě 3 panely přikoupím. U kotelny jsem do toho chtěl ještě naprogramovat ekviterm, ale letošní zima mi to neumožnila - vystačil jsem si s teplotou topné vody 50°C. Tak snad příští rok

22

Re: Regulace Akumulačního vytápění na dřevoplyn

Mohu se zeptat, jak jste vyřešil měření teploty kolektoru? Solární smyčku jsem zkoušel také (na stole), ale nepovedlo se mi vhodně zapojit čidlo (Pt1000) v odporovém děliči s využitím napěťového vstupu. Digitální čidla podle mne použít nelze, na kolektorech mohou být i daleko vyšší teploty...

23

Re: Regulace Akumulačního vytápění na dřevoplyn

Mám tam normální DS1B20, měří tuším do 127. Mám to i na kotli. Začínám s jedním kolektorem a přidávat budu podle toho jak se to bude chovat v létě. Nepředpokládám, že bych se dostal na vyšší teplotu než 120°C i za cenu toho, že na zpáteču soláru dám odbočku s chladičem od auta nebo klimatizace a budu to dochlazovat ventilátorem. Pak je tu ješťě možnost instalce žaluzie, která se při přehřátí kolektoru sama zatáhne, ale to ukáže až provoz. Ze solárama teprve začínám, tak uvidím. Akorát nechápu, jaký můžete mít problém s PT1000. Pokud má lineární  průběh, tak nevidím důvod proč by to nemohlo fungovat. Akorát já jsem na solár použil IO6tku, protože micro má málo výstupů a makro je zbytečně drahý. Navíc AD vstup ani PWM u regulace soláru nevyužiju.

24

Re: Regulace Akumulačního vytápění na dřevoplyn

Chápu. Je pravda, že když ten solár uhlídáte, tak to DS1B20 asi dají.
Ad Pt1000, nejsem elektronik, ale dle literatury není vhodné napájet čidla stále, protože se kvůli trvalému průchodu proudu zahřívají a měření může být výrazně zkreslené. Napadlo mne v nějakém vhodném intervalu (třeba 1/10 z každé sekundy) spínat/rozpínat relé pro napájení odporového děliče a ve stejné smyčce zaznamenat hodnotu na analogovém vstupu, ale nevím, jak správně na to - netuším, zda není důležitá i volba vhodného (konstantního?) zdroje proudu, či nějaké jeho omezení apod. Pokud máte (kdokoli) nápad, jak vhodně navrhnout odporový dělič a kontinuální měření teploty přes AD vstup a pasivní odporové čidlo, budu za nakopnutí správným směrem rád jistě nejen já. Samozřejmě je možné použít aktivní převodníky odpor/napětí, ale to už je "trochu jiná pohádka".

25

Re: Regulace Akumulačního vytápění na dřevoplyn

Nic na tom není. Do serie s PT1000 zařaďte trimr. PT 1000 má při teploťě 0 odpor 1Kohm a při 500°C 2,8Kohm. Pokud by jste ho připojil rovnou na 12 V bude se dost zahřívat poteče přes něj 12V/1000ohm = 12mA a při tvrdosti zdoje 10W na něm toho moc nenaměříte. Jde o to se rozhodnout jaký úbytek napětí na něm budete chtít měřit a ten pak přepočítáte na teplotu. řekněme že budete měřit úbytek napětí okolo 1V, takže si dpřed PT1000 dejte trimr cca 15Kohm. Připojte rtimr v serii s PT1000 na 12V kterým napájíte SDSko a paraelní výstup z PT1000 přiveďte na AD vstup SDSska. Zajistěte si zdroj teploty 0°C (voda s ledem) a ponořte do něj Čidlo PT1000. Trimrem otáčejte tak, aby se Vám AD vstup SDSka naměřil 1V případně jiné napětí které si určíte jako refenční pro teplotu 0°C. No a pak si odečtěte napětí na AD vstupu při teplotě 100°C (vařící se voda) A jednoduchým vydělením si zpočítáte změnu napětí pči změně teploty. Snad jsem to napsal dostatečně srozumitelně