<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archiwa Technologia grzewcza - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/technologia-grzewcza/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/technologia-grzewcza/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Sun, 24 May 2026 20:10:03 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1-32x32.jpg</url>
	<title>Archiwa Technologia grzewcza - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/technologia-grzewcza/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Zwrot z inwestycji w ogrzewanie podłogowe – realne wyliczenia na 2026 rok.</title>
		<link>https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sat, 07 Mar 2026 14:43:41 +0000</pubDate>
				<category><![CDATA[Domy energooszczędne]]></category>
		<category><![CDATA[Energooszczędne budownictwo]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Koszty energii]]></category>
		<category><![CDATA[Koszty instalacji grzewczych]]></category>
		<category><![CDATA[Koszty ogrzewania]]></category>
		<category><![CDATA[Koszty ogrzewania podłogowego]]></category>
		<category><![CDATA[Modernizacja ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady inwestycyjne]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[efektywność ogrzewania]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[koszty ogrzewania domu]]></category>
		<category><![CDATA[ogrzewanie domu 2026]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka czy grzejniki]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[systemy grzewcze]]></category>
		<category><![CDATA[zwrot z inwestycji ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3718</guid>

					<description><![CDATA[<p>Rosnące ceny energii sprawiają, że inwestorzy coraz częściej analizują nie tylko koszt budowy instalacji grzewczej, ale także jej opłacalność w długiej perspektywie. Właśnie dlatego temat zwrot z inwestycji w ogrzewanie podłogowe budzi dziś ogromne zainteresowanie wśród właścicieli domów i osób planujących budowę. Nowoczesne systemy niskotemperaturowe, współpracujące z pompami ciepła, pozwalają znacząco obniżyć rachunki za ogrzewanie. Sprawdzamy realne wyliczenia na 2026 rok, porównujemy koszty z grzejnikami i pokazujemy, kiedy podłogówka zaczyna przynosić realny zysk.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">Zwrot z inwestycji w ogrzewanie podłogowe – realne wyliczenia na 2026 rok.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Inwestycja w ogrzewanie podłogowe to jedna z tych decyzji, które dzielą inwestorów na dwa obozy: tych, którzy liczą każdą złotówkę wydaną „na starcie”, oraz tych, którzy patrzą na całkowity koszt posiadania domu przez dekady. W 2026 roku, w obliczu uwolnionych cen energii, taryf dynamicznych i rygorystycznych norm unijnych wynikających z dyrektywy EPBD, odpowiedź na pytanie o&nbsp;<strong>zwrot z inwestycji w ogrzewanie podłogowe</strong>&nbsp;nie jest już tylko kwestią komfortu, ale twardej matematyki, którą można precyzyjnie wyliczyć.</p>



<p class="wp-block-paragraph">Czy „podłogówka” to nadal luksus, czy może jedyna droga do przetrwania w dobie drogiego prądu? Sprawdzamy, ile realnie zaoszczędzisz po 10 latach i dlaczego tradycyjne grzejniki stają się dla pomp ciepła „kulą u nogi”. Wstępne koszty instalacji ogrzewania podłogowego są wyższe o około 30-40% w porównaniu do klasycznych grzejników, ale w 2026 roku kluczowym pojęciem jest&nbsp;<strong>COP (Coefficient of Performance)</strong>&nbsp;pompy ciepła.</p>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/" type="link" id="https://projekt-ogrzewania.pl/">Ogrzewanie podłogowe</a> to system niskotemperaturowy (zasilanie ok. 30–35°C), podczas gdy grzejniki wymagają 50–55°C, by pracować efektywnie. Każdy stopień obniżenia temperatury zasilania to około 2-3% oszczędności na rachunku za prąd. W skali dekady, przy uwzględnieniu inflacji i rosnących opłat dystrybucyjnych, różnica ta staje się Twoim czystym zyskiem. <strong>Inwestycja w ogrzewanie podłogowe zwrot</strong> następuje zazwyczaj między 7. a 11. rokiem użytkowania, ale jeśli weźmiemy pod uwagę taryfy dynamiczne (ładowanie „bufora ciepła” w wylewce, gdy prąd jest tani), okres ten może skrócić się nawet do 5-6 lat.</p>



<h2 class="wp-block-heading">Jakie czynniki decydują o opłacalności podłogówki w 2026 roku?</h2>



<p class="wp-block-paragraph">Zanim przejdziemy do szczegółowych wyliczeń, musimy zrozumieć, dlaczego w ogóle ogrzewanie podłogowe może być bardziej ekonomiczne od tradycyjnych grzejników. Odpowiedź kryje się w dwóch słowach:&nbsp;<strong>temperatura zasilania</strong>.</p>



<h3 class="wp-block-heading">Niska temperatura to wyższa efektywność źródła ciepła.</h3>



<ul class="wp-block-list">
<li><strong><a href="https://projekt-ogrzewania.pl/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompy ciepła</a></strong> osiągają tym wyższą efektywność (współczynnik COP), im niższa jest temperatura wody w instalacji. Dla podłogówki COP może wynosić nawet 4,2–4,5, podczas gdy przy grzejnikach spada do 2,8–3,2.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/kociol-gazowy/" type="link" id="https://projekt-ogrzewania.pl/kociol-gazowy/">Kotły kondensacyjne</a></strong> w pełni wykorzystują zjawisko kondensacji pary wodnej właśnie przy niskich temperaturach powrotu. Im chłodniejsza woda wraca do kotła, tym więcej ciepła odzyskujemy ze spalin.</li>
</ul>



<h3 class="wp-block-heading">Taryfy dynamiczne i magazynowanie ciepła – nowość 2026 roku.</h3>



<p class="wp-block-paragraph">W 2026 roku taryfy dynamiczne pozwalają pompie pracować głównie w godzinach taniego prądu (np. między 11:00 a 15:00, gdy fotowoltaika sąsiadów generuje nadwyżki do sieci).&nbsp;<strong>Wylewka anhydrytowa o grubości 6-7 cm magazynuje to ciepło na wieczór</strong>, działając jak tani akumulator. Grzejniki takiej możliwości nie dają – muszą pracować wtedy, gdy jest zimno, czyli często w godzinach szczytu wieczornego, gdy prąd jest najdroższy.</p>



<h3 class="wp-block-heading">Koszt instalacji w 2026 roku – ile trzeba wydać na starcie?</h3>



<p class="wp-block-paragraph">Dla potrzeb naszych wyliczeń przyjmujemy następujące koszty instalacji wewnętrznej (bez źródła ciepła):</p>



<ul class="wp-block-list">
<li><strong>Dom 120 m²</strong>: podłogówka około 27 600 zł, grzejniki około 19 200 zł</li>



<li><strong>Dom 150 m²</strong>: podłogówka około 34 500 zł, grzejniki około 24 000 zł</li>



<li><strong>Dom 200 m²</strong>: podłogówka około 46 000 zł, grzejniki około 32 000 zł</li>
</ul>



<h2 class="wp-block-heading">Realne wyliczenia dla czterech scenariuszy inwestycyjnych (dane na 2026 rok).</h2>



<p class="wp-block-paragraph">Przyjmujemy średnią cenę prądu w 2026 roku na poziomie&nbsp;<strong>1,10 zł/kWh</strong>&nbsp;(z dystrybucją) oraz gazu na poziomie&nbsp;<strong>0,42 zł/kWh</strong>. Standard energetyczny domów: WT 2021 (około&nbsp;<strong>70 kWh/m²/rok</strong>).</p>



<h3 class="wp-block-heading">Scenariusz A: Mały dom (120 m²) + Pompa ciepła powietrzna.</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: powierzchnia 120 m², zapotrzebowanie = 8 400 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + pompa ciepła: 19 200 zł + 35 000 zł = 54 200 zł</li>



<li>Podłogówka + pompa ciepła: 27 600 zł + 35 000 zł = 62 600 zł</li>



<li><strong>Różnica (dopłata do podłogówki)</strong>: 8 400 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki (COP przy 55°C = 3,0): 8 400 / 3,0 = 2 800 kWh × 1,10 zł =&nbsp;<strong>3 080 zł</strong></li>



<li>Podłogówka (COP przy 35°C = 4,2): 8 400 / 4,2 = 2 000 kWh × 1,10 zł =&nbsp;<strong>2 200 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 3 080 – 2 200 =&nbsp;<strong>880 zł</strong></li>
</ul>



<p class="wp-block-paragraph"><strong>Prosty okres zwrotu</strong>: 8 400 zł / 880 zł ≈&nbsp;<strong>9,5 roku</strong></p>



<h3 class="wp-block-heading">Scenariusz B: Średni dom (150 m²) + Pompa ciepła + Taryfy dynamiczne.</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: powierzchnia 150 m², zapotrzebowanie = 10 500 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + pompa ciepła: 24 000 zł + 35 000 zł = 59 000 zł</li>



<li>Podłogówka + pompa ciepła: 34 500 zł + 35 000 zł = 69 500 zł</li>



<li><strong>Różnica</strong>: 10 500 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>&nbsp;(z optymalizacją taryf dynamicznych):</p>



<ul class="wp-block-list">
<li>Grzejniki (COP 3,0, brak akumulacji): 10 500 / 3,0 = 3 500 kWh × 1,10 zł =&nbsp;<strong>3 850 zł</strong></li>



<li>Podłogówka (COP 4,2 + magazynowanie w wylewce pozwala wykorzystać 70% energii w tańszej taryfie 0,80 zł/kWh): 10 500 / 4,2 = 2 500 kWh, z czego 1 750 kWh po 0,80 zł i 750 kWh po 1,10 zł = 1 400 + 825 =&nbsp;<strong>2 225 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 3 850 – 2 225 =&nbsp;<strong>1 625 zł</strong>&nbsp;(dla uśrednienia przyjmijmy 1 450 zł, uwzględniając lata mniej słoneczne)</li>
</ul>



<p class="wp-block-paragraph"><strong>Okres zwrotu</strong>: 10 500 zł / 1 450 zł ≈&nbsp;<strong>7,2 roku</strong></p>



<h3 class="wp-block-heading">Scenariusz C: Duży dom (200 m²) + Pompa ciepła gruntowa.</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: powierzchnia 200 m², zapotrzebowanie = 14 000 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + pompa gruntowa: 32 000 zł + 65 000 zł = 97 000 zł</li>



<li>Podłogówka + pompa gruntowa: 46 000 zł + 65 000 zł = 111 000 zł</li>



<li><strong>Różnica</strong>: 14 000 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki (COP 4,0 dla gruntówki przy 55°C): 14 000 / 4,0 = 3 500 kWh × 1,10 zł =&nbsp;<strong>3 850 zł</strong></li>



<li>Podłogówka (COP 5,0 przy 35°C): 14 000 / 5,0 = 2 800 kWh × 1,10 zł =&nbsp;<strong>3 080 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 3 850 – 3 080 =&nbsp;<strong>770 zł</strong>&nbsp;(Uwaga: to mniej niż w scenariuszu B, bo gruntówka jest już bardzo efektywna nawet z grzejnikami)</li>
</ul>



<p class="wp-block-paragraph"><strong>Okres zwrotu</strong>: 14 000 zł / 770 zł ≈&nbsp;<strong>18 lat</strong>&nbsp;– to pokazuje, że przy gruntowej pompie głównym zyskiem jest komfort, a nie ekonomia.</p>



<h3 class="wp-block-heading">Scenariusz D: Dom 150 m² + Kocioł gazowy kondensacyjny (modernizacja).</h3>



<p class="wp-block-paragraph"><strong>Parametry</strong>: jak w scenariuszu B, 150 m², 10 500 kWh/rok</p>



<p class="wp-block-paragraph"><strong>Koszty instalacji</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki + kocioł: 24 000 zł + 18 000 zł = 42 000 zł</li>



<li>Podłogówka + kocioł: 34 500 zł + 18 000 zł = 52 500 zł</li>



<li><strong>Różnica</strong>: 10 500 zł</li>
</ul>



<p class="wp-block-paragraph"><strong>Roczne koszty ogrzewania</strong>:</p>



<ul class="wp-block-list">
<li>Grzejniki (sprawność 95%): 10 500 / 0,95 = 11 053 kWh gazu × 0,42 zł =&nbsp;<strong>4 642 zł</strong></li>



<li>Podłogówka (sprawność 105%): 10 500 / 1,05 = 10 000 kWh gazu × 0,42 zł =&nbsp;<strong>4 200 zł</strong></li>



<li><strong>Roczna oszczędność</strong>: 4 642 – 4 200 =&nbsp;<strong>442 zł</strong>&nbsp;(w zaokrągleniu 450 zł)</li>
</ul>



<p class="wp-block-paragraph"><strong>Okres zwrotu</strong>: 10 500 zł / 450 zł ≈&nbsp;<strong>23 lata</strong></p>



<p class="wp-block-paragraph"><strong>Wniosek</strong>: Przy gazie podłogówkę wybieramy głównie dla komfortu, a nie czystego zysku. To potwierdza, że prawdziwym beneficjentem niskotemperaturowej podłogówki jest pompa ciepła.</p>



<h2 class="wp-block-heading">Tabela rzeczywistego zwrotu w latach (z inflacją i taryfami dynamicznymi).</h2>



<p class="wp-block-paragraph">Poniższa tabela przedstawia skumulowane oszczędności z wyboru ogrzewania podłogowego nad grzejnikowym dla&nbsp;<strong>domu 150 m² z pompą ciepła i taryfami dynamicznymi</strong>&nbsp;(Scenariusz B). Założono średni wzrost cen energii o 4% rocznie oraz coroczną optymalizację taryfową.</p>



<style>
.roi-table-wrapper {
    width: 100%;
    overflow-x: auto;
    margin: 40px 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.roi-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
    background: #ffffff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(0,0,0,0.06);
}

.roi-table thead {
    background: #1c7c54;
    color: #fff;
    position: sticky;
    top: 0;
    z-index: 2;
}

.roi-table th {
    padding: 18px;
    font-size: 14px;
    text-align: left;
    font-weight: 600;
}

.roi-table td {
    padding: 16px 18px;
    border-bottom: 1px solid #f0f0f0;
    font-size: 15px;
    vertical-align: middle;
}

.roi-table tr:nth-child(even) {
    background: #fafafa;
}

/* POPRAWKA: Selektor ograniczony tylko do ciała tabeli */
.roi-table tbody tr:hover:not(.roi-break) {
    background: #f2f7f5;
}

.roi-bold {
    font-weight: 700;
}

.roi-profit {
    color: #157a5b;
    font-weight: 700;
}

.roi-loss {
    color: #c0392b;
    font-weight: 600;
}

.roi-break {
    background: #fff3dc !important;
    font-weight: 700;
    box-shadow: inset 4px 0 0 #e0a94f;
}

.roi-progress {
    height: 8px;
    background: #e9f3ef;
    border-radius: 6px;
    margin-top: 6px;
    overflow: hidden;
}

.roi-bar {
    height: 100%;
    background: #1c7c54;
    border-radius: 6px;
}

@media(max-width:768px) {
    .roi-table th {
        font-size: 13px;
        padding: 14px;
    }
    .roi-table td {
        font-size: 14px;
        padding: 14px;
    }
}
</style>

<div class="roi-table-wrapper">
    <table class="roi-table">
        <thead>
            <tr>
                <th>Rok</th>
                <th>Koszt eksploatacji<br>(Grzejniki)</th>
                <th>Koszt eksploatacji<br>(Podłogówka)</th>
                <th>Skumulowana oszczędność</th>
                <th>Bilans inwestycji<br>(Nadwyżka / Strata)</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="roi-bold">Rok 0</td>
                <td>–</td>
                <td>–</td>
                <td>–</td>
                <td class="roi-loss">-10 500 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 1</td>
                <td>3 850 zł</td>
                <td>2 225 zł</td>
                <td>1 625 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:8%"></div></div>
                </td>
                <td class="roi-loss">-8 875 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 2</td>
                <td>4 004 zł</td>
                <td>2 314 zł</td>
                <td>3 315 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:17%"></div></div>
                </td>
                <td class="roi-loss">-7 185 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 3</td>
                <td>4 164 zł</td>
                <td>2 407 zł</td>
                <td>5 072 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:26%"></div></div>
                </td>
                <td class="roi-loss">-5 428 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 4</td>
                <td>4 331 zł</td>
                <td>2 503 zł</td>
                <td>6 900 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:35%"></div></div>
                </td>
                <td class="roi-loss">-3 600 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 5</td>
                <td>4 504 zł</td>
                <td>2 603 zł</td>
                <td>8 801 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:45%"></div></div>
                </td>
                <td class="roi-loss">-1 699 zł</td>
            </tr>
            <tr class="roi-break">
                <td class="roi-bold">Rok 6</td>
                <td>4 684 zł</td>
                <td>2 707 zł</td>
                <td>10 778 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:55%"></div></div>
                </td>
                <td class="roi-profit">+278 zł (Próg rentowności)</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 7</td>
                <td>4 872 zł</td>
                <td>2 815 zł</td>
                <td>12 835 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:66%"></div></div>
                </td>
                <td class="roi-profit">+2 335 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 8</td>
                <td>5 067 zł</td>
                <td>2 928 zł</td>
                <td>14 974 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:77%"></div></div>
                </td>
                <td class="roi-profit">+4 474 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 9</td>
                <td>5 270 zł</td>
                <td>3 045 zł</td>
                <td>17 199 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:88%"></div></div>
                </td>
                <td class="roi-profit">+6 699 zł</td>
            </tr>
            <tr>
                <td class="roi-bold">Rok 10</td>
                <td>5 481 zł</td>
                <td>3 167 zł</td>
                <td class="roi-bold">19 513 zł
                    <div class="roi-progress"><div class="roi-bar" style="width:100%"></div></div>
                </td>
                <td class="roi-profit roi-bold">+9 013 zł</td>
            </tr>
        </tbody>
    </table>
</div>



<p class="wp-block-paragraph"><strong>Interpretacja</strong>: W 6. roku użytkowania system podłogowy nie tylko „spłacił” różnicę w cenie zakupu (10 500 zł), ale zaczyna przynosić czysty zysk. Po 10 latach na koncie zostaje dodatkowe&nbsp;<strong>9 013 zł</strong>&nbsp;w porównaniu do sytuacji, w której pozostalibyśmy przy grzejnikach. Po 15 latach zysk przekracza 20 000 zł.</p>



<h2 class="wp-block-heading">Porównanie systemów grzewczych: podłogówka vs grzejniki vs ogrzewanie powietrzne.</h2>



<p class="wp-block-paragraph">Dlaczego ogrzewanie powietrzne (klimatyzacja z funkcją grzania) przegrywa w bilansie 10-letnim? Choć jest tanie w montażu, w 2026 roku traci na&nbsp;<strong>braku bezwładności cieplnej</strong>. Poniższa tabela zestawia kluczowe cechy:</p>



<style>
.system-table-wrapper {
    width: 100%;
    overflow-x: auto;
    margin: 30px 0;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.system-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 720px;
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 35px rgba(0,0,0,0.05);
}

.system-table thead {
    background: #1c7c54;
    color: #ffffff;
}

.system-table th {
    padding: 16px;
    font-size: 15px;
    text-align: left;
    font-weight: 600;
}

.system-table td {
    padding: 14px 16px;
    border-bottom: 1px solid #f0f0f0;
    font-size: 15px;
    vertical-align: top;
}

.system-table tr:nth-child(even) {
    background: #fafafa;
}

/* POPRAWKA: Selektor ograniczony do tbody */
.system-table tbody tr:hover {
    background: #f3f7f5;
}

.system-feature {
    font-weight: 600;
    white-space: nowrap;
}

.system-best {
    color: #1c7c54;
    font-weight: 700;
}

.system-warning {
    color: #c0392b;
    font-weight: 600;
}

@media(max-width:768px) {
    .system-table th {
        font-size: 13px;
    }
    .system-table td {
        font-size: 14px;
    }
}
</style>

<div class="system-table-wrapper">
    <table class="system-table">
        <thead>
            <tr>
                <th>Cecha</th>
                <th>Ogrzewanie podłogowe</th>
                <th>Grzejniki (konwekcyjne)</th>
                <th>Klimatyzacja (powietrze-powietrze)</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="system-feature">Efektywność z PC</td>
                <td class="system-best">Najwyższa (COP 4.0–4.5)</td>
                <td>Średnia (COP 2.8–3.2)</td>
                <td>Wysoka (COP 3.5–4.0), ale brak akumulacji</td>
            </tr>
            <tr>
                <td class="system-feature">Komfort cieplny</td>
                <td class="system-best">Idealny (ciepłe stopy, brak przeciągów)</td>
                <td>Punktowy (zimne strefy przy podłodze)</td>
                <td class="system-warning">Nawiew (ryzyko przeciągów i przesuszenia)</td>
            </tr>
            <tr>
                <td class="system-feature">Akumulacja ciepła</td>
                <td class="system-best">Bardzo wysoka (6–12 godzin w wylewce)</td>
                <td>Bardzo niska (minuty)</td>
                <td>Brak</td>
            </tr>
            <tr>
                <td class="system-feature">Możliwość optymalizacji taryfowej</td>
                <td class="system-best">Pełna – ładujemy tani prąd w południe</td>
                <td>Ograniczona</td>
                <td class="system-warning">Żadna – grzeje gdy jest zimno, czyli drogo</td>
            </tr>
            <tr>
                <td class="system-feature">Estetyka</td>
                <td class="system-best">Niewidoczne</td>
                <td>Zajmują ściany</td>
                <td>Widoczne jednostki wewnętrzne</td>
            </tr>
            <tr>
                <td class="system-feature">Koszt instalacji</td>
                <td>Wysoki</td>
                <td>Niski / Średni</td>
                <td>Średni</td>
            </tr>
        </tbody>
    </table>
</div>



<p class="wp-block-paragraph">Kluczowa różnica: ogrzewanie podłogowe pozwala „kupić” tanią energię w południe i oddawać ją do północy. Klimatyzacja musi pracować wtedy, kiedy jest zimno – czyli często w godzinach szczytu wieczornego, gdy prąd jest najdroższy. W perspektywie 10 lat to setki, a nawet tysiące złotych różnicy.</p>



<h2 class="wp-block-heading"><strong>Kalkulator zwrotu: Podłogówka vs Grzejniki</strong>.</h2>



<style>
.roi-kalkulator {
    max-width: 1100px;
    margin: 20px auto;
    padding: 20px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    color: #333;
    background: #fdfdfd;
    border: 1px solid #eee;
    border-radius: 12px;
}

.roi-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
}

@media(max-width: 900px) {
    .roi-box { grid-template-columns: 1fr; }
}

.roi-panel {
    background: #ffffff;
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 10px 35px rgba(0,0,0,0.05);
}

.roi-title {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 25px;
    text-align: center;
    color: #1c7c54;
}

.roi-input {
    margin-bottom: 20px;
}

.roi-input label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
    font-size: 14px;
}

.roi-input .helper-text {
    font-size: 12px;
    color: #666;
    margin-bottom: 8px;
    display: block;
    line-height: 1.3;
}

.roi-input input,
.roi-input select {
    width: 100%;
    padding: 12px;
    border-radius: 8px;
    border: 1px solid #ccc;
    font-size: 16px;
    box-sizing: border-box;
    transition: all 0.2s ease;
}

.roi-input input:focus {
    border-color: #1c7c54;
    outline: none;
    box-shadow: 0 0 0 3px rgba(28, 124, 84, 0.1);
}

.roi-result {
    font-size: 16px;
    margin-bottom: 18px;
    padding-bottom: 8px;
    border-bottom: 1px solid #f0f0f0;
}

.roi-big {
    font-size: 26px;
    font-weight: 700;
    color: #1c7c54;
    margin-top: 4px;
}

.roi-cta {
    margin-top: 25px;
}

.roi-cta a {
    display: block;
    background: #1c7c54;
    color: white;
    padding: 16px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    text-align: center;
    transition: background 0.3s ease;
    line-height: 1.4;
}

.roi-cta a:hover {
    background: #155f41;
}

#roi-res-zwrot {
    color: #e67e22;
}
</style>

<div class="roi-kalkulator">
    <div class="roi-title">Kalkulator zwrotu: Podłogówka vs Grzejniki</div>
    
    <div class="roi-box">
        <div class="roi-panel">
            <div class="roi-input">
                <label>Powierzchnia domu (m²)</label>
                <input type="number" id="roi-metraz" value="150" min="1">
            </div>

            <div class="roi-input">
                <label>Standard energetyczny</label>
                <select id="roi-standard">
                    <option value="70">Nowy dom (WT 2021) &#8211; 70 kWh/m²</option>
                    <option value="50">Dom energooszczędny &#8211; 50 kWh/m²</option>
                    <option value="100">Dom starszy / modernizowany &#8211; 100 kWh/m²</option>
                </select>
            </div>

            <div class="roi-input">
                <label>Źródło ciepła</label>
                <select id="roi-zrodlo">
                    <option value="pc_powietrze">Pompa ciepła powietrzna</option>
                    <option value="pc_grunt">Pompa ciepła gruntowa</option>
                    <option value="gaz">Kocioł gazowy kondensacyjny</option>
                </select>
            </div>

            <div class="roi-input">
                <label>Cena energii (zł/kWh)</label>
                <input type="number" id="roi-energia" value="1.10" step="0.01">
            </div>

            <div class="roi-input">
                <label>Różnica w koszcie inwestycji (zł)</label>
                <span class="helper-text">Wpisz o ile droższy jest montaż podłogówki od instalacji z grzejnikami (np. 12 000 zł).</span>
                <input type="number" id="roi-roznica" placeholder="Pozostaw puste, by zobaczyć same oszczędności" min="0">
            </div>
        </div>

        <div class="roi-panel">
            <div class="roi-result">
                Roczny koszt – grzejniki
                <div class="roi-big" id="roi-res-grzejniki">0 zł</div>
            </div>

            <div class="roi-result">
                Roczny koszt – podłogówka
                <div class="roi-big" id="roi-res-podlogowka">0 zł</div>
            </div>

            <div class="roi-result">
                Roczna oszczędność na paliwie
                <div class="roi-big" id="roi-res-oszczednosc">0 zł</div>
            </div>

            <div class="roi-result">
                Czas zwrotu różnicy kosztów
                <div class="roi-big" id="roi-res-zwrot">0 lat</div>
            </div>

            <div class="roi-result">
                Bilans po 10 latach użytkowania
                <div class="roi-big" id="roi-res-zysk">0 zł</div>
            </div>

            <div class="roi-cta">
                <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">
                    Zamów profesjonalny projekt, aby realnie obniżyć koszty ogrzewania
                </a>
            </div>
        </div>
    </div>
</div>

<script>
(function() {
    // Funkcja formatująca walutę
    function format(val) {
        return Math.round(val).toLocaleString('pl-PL') + " zł";
    }

    function oblicz() {
        const metraz = parseFloat(document.getElementById("roi-metraz").value) || 0;
        const standard = parseFloat(document.getElementById("roi-standard").value) || 0;
        const cenaEnergii = parseFloat(document.getElementById("roi-energia").value) || 0;
        const roznicaInwestycji = parseFloat(document.getElementById("roi-roznica").value) || 0;
        const zrodlo = document.getElementById("roi-zrodlo").value;

        // Roczne zapotrzebowanie na ciepło (kWh)
        const zapotrzebowanie = metraz * standard;

        // Ustawienie sprawności (COP / Sprawność kotła)
        let copGrzejnik = 3.0, copPodloga = 4.2;

        if (zrodlo === "pc_grunt") { copGrzejnik = 4.0; copPodloga = 5.0; }
        if (zrodlo === "gaz") { copGrzejnik = 0.95; copPodloga = 1.05; }

        // Koszty eksploatacji
        const kosztG = (zapotrzebowanie / copGrzejnik) * cenaEnergii;
        const kosztP = (zapotrzebowanie / copPodloga) * cenaEnergii;
        const oszczednoscRoczna = kosztG - kosztP;
        
        // Logika wyświetlania zwrotu
        let zwrotWynik = "0.0 lat";
        if (oszczednoscRoczna > 0) {
            if (roznicaInwestycji > 0) {
                zwrotWynik = (roznicaInwestycji / oszczednoscRoczna).toFixed(1) + " lat";
            } else {
                zwrotWynik = "0.0 lat";
            }
        } else {
            zwrotWynik = "Brak zwrotu";
        }

        // Zysk po 10 latach (Oszczędności * 10 - koszt początkowy różnicy)
        const bilans10 = (oszczednoscRoczna * 10) - roznicaInwestycji;

        // Renderowanie wyników
        document.getElementById("roi-res-grzejniki").innerText = format(kosztG);
        document.getElementById("roi-res-podlogowka").innerText = format(kosztP);
        document.getElementById("roi-res-oszczednosc").innerText = format(oszczednoscRoczna);
        document.getElementById("roi-res-zwrot").innerText = zwrotWynik;
        document.getElementById("roi-res-zysk").innerText = format(bilans10);
    }

    // Nasłuchiwanie zmian
    const inputs = ["roi-metraz", "roi-standard", "roi-zrodlo", "roi-energia", "roi-roznica"];
    inputs.forEach(id => {
        document.getElementById(id).addEventListener("input", oblicz);
    });

    // Startowe wywołanie
    oblicz();
})();
</script>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego – klucz do realnych oszczędności</h2>



<p class="wp-block-paragraph">Wszystkie powyższe wyliczenia opierają się na założeniu, że instalacja została prawidłowo zaprojektowana i wykonana. W kontekście <strong>zwrotu z inwestycji w ogrzewanie podłogowe</strong> należy podkreślić, że <strong>profesjonalny <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" type="link" id="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt</a> to nie koszt, ale inwestycja, która bezpośrednio przekłada się na oszczędności</strong>.</p>



<p class="wp-block-paragraph">Dlaczego projekt jest tak ważny w 2026 roku? Po pierwsze, określa on optymalny rozstaw rur w zależności od stref obciążenia cieplnego – w pomieszczeniach narażonych na duże straty (przy oknach, drzwiach balkonowych) rury układa się gęściej, co zapobiega wychładzaniu podłogi. Po drugie, projekt uwzględnia opory przepływu i dobiera odpowiednią średnicę rur, aby pompa ciepła pracowała w optymalnym zakresie wydajności. Po trzecie, zawiera wytyczne dotyczące grubości i rodzaju wylewki –&nbsp;<strong>wylewka anhydrytowa o grubości 6-7 cm</strong>&nbsp;to dziś standard, bo najlepiej przewodzi ciepło i magazynuje je na potrzeby taryf dynamicznych.</p>



<p class="wp-block-paragraph">Dla inwestorów modernizujących stare budynki, którzy nie mogą zerwać podłóg, projektanci proponują <strong><a href="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/" type="link" id="https://projekt-ogrzewania.pl/czym-jest-system-suchy-w-wodnym-ogrzewaniu-podlogowym/">systemy suche</a> (cienkowarstwowe)</strong> – ich zwrot jest nieco dłuższy, ale wciąż lepszy niż pozostanie przy wysokotemperaturowych grzejnikach. Koszt projektu (1 500–3 000 zł) zwraca się już w pierwszym sezonie grzewczym dzięki niższym rachunkom i bezawaryjnej pracy systemu.</p>



<h2 class="wp-block-heading">Dodatkowe korzyści: wartość domu przy sprzedaży i prestiż.</h2>



<p class="wp-block-paragraph">W 2026 roku kupujący domy są znacznie bardziej świadomi energetycznie niż jeszcze 5 lat temu.&nbsp;<strong>Certyfikat Energetyczny (Świadectwo Charakterystyki Energetycznej)</strong>&nbsp;jest dokumentem krytycznym przy transakcji.</p>



<ul class="wp-block-list">
<li><strong>Wyższa klasa energetyczna</strong>: Dom z podłogówką i pompą ciepła łatwiej wpada w klasę „A” lub „A+”. To realnie podnosi cenę ofertową nieruchomości o&nbsp;<strong>5–8%</strong>&nbsp;. Dla domu wartego 1 000 000 zł to dodatkowe 50 000 – 80 000 zł.</li>



<li><strong>Uniwersalność wykończenia</strong>: Brak grzejników pod oknami do samej ziemi (portfenetrami) to standard nowoczesnej architektury. Domy z grzejnikami w 2026 roku zaczynają być postrzegane jako „technologicznie przestarzałe”.</li>



<li><strong>Zdrowie i higiena</strong>: Ograniczenie konwekcji (unoszenia się kurzu) to argument, który dla alergików jest wart dopłaty przy zakupie domu.</li>
</ul>



<h2 class="wp-block-heading">FAQ;</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1772881304440"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe naprawdę się opłaca?</strong></strong> <p class="schema-faq-answer">Tak, szczególnie w połączeniu z pompą ciepła. Niska temperatura zasilania zwiększa efektywność systemu, dzięki czemu rachunki za energię mogą być nawet o kilkadziesiąt procent niższe niż przy grzejnikach.</p> </div> <div class="schema-faq-section" id="faq-question-1772881366554"><strong class="schema-faq-question"><strong>Po ilu latach następuje zwrot z inwestycji w ogrzewanie podłogowe?</strong></strong> <p class="schema-faq-answer">W większości nowych domów z pompą ciepła <strong>zwrot z inwestycji w ogrzewanie podłogowe</strong> następuje zazwyczaj po około 6–9 latach użytkowania, w zależności od cen energii i standardu izolacji budynku.</p> </div> <div class="schema-faq-section" id="faq-question-1772881379861"><strong class="schema-faq-question"><strong>Czy podłogówka działa lepiej z pompą ciepła niż z grzejnikami?</strong></strong> <p class="schema-faq-answer">Tak. Ogrzewanie podłogowe jest systemem niskotemperaturowym, dlatego pompa ciepła pracuje z wyższym współczynnikiem COP, co bezpośrednio przekłada się na niższe koszty eksploatacji.</p> </div> <div class="schema-faq-section" id="faq-question-1772881405330"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe można zastosować w modernizowanym domu?</strong></strong> <p class="schema-faq-answer">Tak, istnieją systemy cienkowarstwowe i suche, które pozwalają zamontować podłogówkę bez znacznego podnoszenia poziomu podłogi. W takich przypadkach kluczowy jest dobrze wykonany projekt instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1772881413673"><strong class="schema-faq-question"><strong>Czy podłogówka zwiększa wartość domu?</strong></strong> <p class="schema-faq-answer">Tak. Domy wyposażone w nowoczesne systemy niskotemperaturowe, takie jak ogrzewanie podłogowe i pompy ciepła, uzyskują często wyższą klasę energetyczną, co może zwiększyć wartość nieruchomości nawet o kilka procent.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: czy to się opłaca?</h2>



<p class="wp-block-paragraph">Jeśli budujesz dom w 2026 roku i planujesz w nim mieszkać dłużej niż 7 lat,&nbsp;<strong>inwestycja w ogrzewanie podłogowe zwrot</strong>&nbsp;jest gwarantowany przez samą fizykę i zmiany w systemie rozliczeń energii. Nasze wyliczenia pokazują, że:</p>



<ol start="1" class="wp-block-list">
<li><strong>Przy pompie ciepła i taryfach dynamicznych</strong>&nbsp;okres zwrotu wynosi&nbsp;<strong>6–9 lat</strong>&nbsp;(w zależności od metrażu i izolacji). Po 10 latach zysk sięga kilku-kilkunastu tysięcy złotych.</li>



<li><strong>Przy kotle gazowym</strong>&nbsp;okres zwrotu wydłuża się do 20–25 lat – w tym przypadku podłogówkę wybieramy dla komfortu, a nie dla oszczędności.</li>



<li><strong>Kluczową rolę odgrywa możliwość magazynowania ciepła w wylewce</strong>&nbsp;i wykorzystania tanich taryf – to wyróżnik podłogówki, którego nie ma żaden inny system.</li>



<li><strong>Wartość domu przy sprzedaży rośnie o 5–8%</strong>&nbsp;, co wielokrotnie przewyższa początkową dopłatę do instalacji.</li>
</ol>



<h3 class="wp-block-heading">Rekomendacje na 2026 rok:</h3>



<ul class="wp-block-list">
<li><strong>Dla oszczędnych</strong>: Wybierz system wodny z grubszą wylewką anhydrytową (minimum 6 cm) i sterownikiem obsługującym taryfy dynamiczne. To połączenie daje najszybszy zwrot.</li>



<li><strong>Dla modernizujących</strong>: Jeśli nie możesz zerwać podłóg, rozważ systemy suche (cienkowarstwowe) – ich zwrot jest nieco dłuższy, ale wciąż opłacalny w perspektywie 10-12 lat.</li>
</ul>



<p class="wp-block-paragraph">Inwestycja w ogrzewanie podłogowe to w 2026 roku nie tylko zakup <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rurek</a> i <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/" type="link" id="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/">rozdzielaczy</a>. To zakup <strong>„akumulatora ciepła”</strong>, który jako jedyny pozwala skutecznie walczyć z niestabilnymi cenami energii na wolnym rynku. Decydując się na podłogówkę, zyskujesz nie tylko niższe rachunki, ale przede wszystkim wyższą wartość swojego domu i bezkonkurencyjny komfort przez najbliższe dekady.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">Zwrot z inwestycji w ogrzewanie podłogowe – realne wyliczenia na 2026 rok.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kompleksowy kalkulator ogrzewania podłogowego.</title>
		<link>https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 01 Mar 2026 15:07:17 +0000</pubDate>
				<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Kalkulatory budowlane]]></category>
		<category><![CDATA[Narzędzia i kalkulatory]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Technika instalacyjna]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[długość rury pex]]></category>
		<category><![CDATA[instalacja podłogowa krok po kroku]]></category>
		<category><![CDATA[kalkulator ogrzewania podłogowego]]></category>
		<category><![CDATA[moc ogrzewania podłogowego]]></category>
		<category><![CDATA[obliczenia ogrzewania podłogowego]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[przepływy w pętlach]]></category>
		<category><![CDATA[rozdzielacz podłogówki]]></category>
		<category><![CDATA[rozstaw rur podłogówka]]></category>
		<category><![CDATA[temperatura zasilania podłogówka]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3552</guid>

					<description><![CDATA[<p>Ile metrów rury kupić? Jak dobrać rozstaw pętli? Czy temperatura 35°C wystarczy, aby ogrzać cały dom? Kompleksowy kalkulator ogrzewania podłogowego pozwala przełożyć te pytania na konkretne liczby. W artykule znajdziesz nie tylko wzory i gotowe przeliczniki, ale także realny przykład mieszkania 70 m² rozpisany krok po kroku. To praktyczne narzędzie dla inwestorów, którzy chcą świadomie zaplanować instalację i uniknąć kosztownych błędów wykonawczych.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">Kompleksowy kalkulator ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<style>
:root {
    --rk-intro-dark: #0f172a;
    --rk-intro-darker: #020617;
    --rk-intro-primary: #2563eb; /* Inżynieryjny niebieski */
    --rk-intro-primary-light: #eff6ff;
    --rk-intro-teal: #0d9488; /* Akcent dla parametrów */
    --rk-intro-teal-bg: #f0fdfa;
    --rk-intro-bg: #ffffff;
    --rk-intro-surface: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-muted: #64748b;
    --rk-intro-shadow: 0 10px 30px -10px rgba(37, 99, 235, 0.15);
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border-radius: 24px;
    box-shadow: var(--rk-intro-shadow);
    border: 1px solid var(--rk-intro-border);
    overflow: hidden;
}

/* --- NAGŁÓWEK I WSTĘP --- */
.rk-intro-header {
    background: linear-gradient(145deg, var(--rk-intro-darker) 0%, var(--rk-intro-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
}

.rk-intro-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 5px;
    background: linear-gradient(90deg, var(--rk-intro-primary), var(--rk-intro-teal));
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(37, 99, 235, 0.2);
    color: #60a5fa;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(96, 165, 250, 0.3);
}

.rk-intro-title {
    font-size: 32px;
    font-weight: 900;
    line-height: 1.2;
    margin: 0 0 25px 0;
    color: #ffffff;
}

.rk-intro-title span {
    color: #93c5fd;
}

.rk-intro-lead {
    font-size: 17px;
    line-height: 1.8;
    color: #cbd5e1;
    margin: 0;
    padding: 25px;
    background: rgba(255, 255, 255, 0.03);
    border-left: 4px solid var(--rk-intro-primary);
    border-radius: 0 12px 12px 0;
}

.rk-intro-lead strong {
    color: #ffffff;
    font-weight: 700;
}

.rk-link-light {
    color: #60a5fa;
    text-decoration: none;
    border-bottom: 1px dashed rgba(96, 165, 250, 0.5);
    transition: all 0.3s;
}

.rk-link-light:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* --- INTERAKTYWNY EKSPLORATOR ALGORYTMU --- */
.rk-explorer-section {
    padding: 40px 50px;
    background: var(--rk-intro-surface);
}

.rk-explorer-title {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

/* Nawigacja (Menu pigułkowe) */
.rk-explorer-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 35px;
    background: #ffffff;
    padding: 8px;
    border-radius: 16px;
    border: 1px solid var(--rk-intro-border);
}

.rk-exp-btn {
    flex: 1;
    min-width: 140px;
    padding: 14px 20px;
    background: transparent;
    border: none;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-muted);
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
}

.rk-exp-btn:hover {
    background: var(--rk-intro-surface);
    color: var(--rk-intro-primary);
}

.rk-exp-btn.active {
    background: var(--rk-intro-primary);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

/* Zawartość zakładek */
.rk-exp-content {
    display: none;
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-intro-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    overflow: hidden;
    animation: rkFadeIn 0.4s ease;
}

.rk-exp-content.active {
    display: flex;
}

@keyframes rkFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Layout wewnętrzny: Lewo SVG (Statyczne), Prawo Tekst */
.rk-exp-visual {
    flex: 0 0 40%;
    background: var(--rk-intro-teal-bg);
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid var(--rk-intro-border);
}

.rk-static-svg {
    width: 100%;
    max-width: 180px;
    height: auto;
    filter: drop-shadow(0 10px 15px rgba(13, 148, 136, 0.15));
}

.rk-exp-details {
    flex: 1;
    padding: 35px 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-exp-details h3 {
    margin: 0 0 15px 0;
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-intro-dark);
}

.rk-exp-details p {
    margin: 0 0 20px 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-intro-text);
}

/* Kafelki z parametrami (zamiast lania wody) */
.rk-data-tiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
}

.rk-tile {
    background: var(--rk-intro-surface);
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-intro-border);
}

.rk-tile-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 800;
    color: var(--rk-intro-muted);
    margin-bottom: 5px;
}

.rk-tile-value {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-intro-primary);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-intro-header, .rk-explorer-section { padding: 30px 25px; }
    .rk-intro-title { font-size: 26px; }
    .rk-intro-lead { padding: 20px 15px; font-size: 15px; }
    .rk-exp-content.active { flex-direction: column; }
    .rk-exp-visual { border-right: none; border-bottom: 1px solid var(--rk-intro-border); padding: 40px 20px; }
    .rk-exp-details { padding: 25px; }
    .rk-data-tiles { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/"
    },
    "headline": "Kompleksowy Kalkulator Ogrzewania Podłogowego (Algorytm PN-EN 1264)",
    "description": "Precyzyjne narzędzie inżynieryjne pozwalające wyliczyć strumień masowy, opory hydrauliczne pętli, rozstaw rur i całkowitą długość przewodów PERT/PEX. Kompendium wiedzy matematycznej.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-23",
    "dateModified": "2026-05-23"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#dataset-algorytm",
    "name": "Zestawienie Parametrów Algorytmu PN-EN 1264",
    "description": "Baza danych wytycznych algorytmicznych niezbędnych do przeprowadzenia poprawnych obliczeń hydrauliczno-termicznych systemu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kompleksowy kalkulator ogrzewania podłogowego",
      "algorytm inżynieryjny PN-EN 1264",
      "obliczenia hydrauliczno-termiczne",
      "strumień masowy podłogówki",
      "opory hydrauliczne pętli"
    ],
    "measurementTechnique": "Obliczenia numeryczne na podstawie wzorów fizyki cieplnej i normy europejskiej PN-EN 1264 dot. systemów płaszczyznowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zapotrzebowanie na strumień masowy czynnika grzewczego (kg/h).",
        "Opory hydrauliczne pętli grzewczej i spadki ciśnień (kPa).",
        "Wymagany rozstaw rur dostosowany do strefy i strat ciepła.",
        "Całkowita długość przewodów PEX/PERT na jedno pomieszczenie."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#webapp-wstep",
    "name": "Eksplorator Algorytmu Ogrzewania Podłogowego",
    "description": "Interaktywny widget prezentujący 4 główne filary obliczeniowe profesjonalnego kalkulatora podłogówki, wyposażony w statyczne grafiki inżynierskie.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    
    <div class="rk-intro-header">
        <div class="rk-intro-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Kompendium Inżyniera
        </div>
        <h2 class="rk-intro-title">Kompleksowy Kalkulator <span>Ogrzewania Podłogowego</span></h2>
        
        <p class="rk-intro-lead">
            Błędne zaprojektowanie instalacji płaszczyznowej generuje gigantyczne straty finansowe, niedogrzanie pomieszczeń oraz pękanie wylewek jastrychowych. <strong>Kompleksowy kalkulator ogrzewania podłogowego</strong> to zaawansowany algorytm inżynieryjny oparty na <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" class="rk-link-light">normie PN-EN 1264</a>, który pozwala precyzyjnie wyliczyć zapotrzebowanie na strumień masowy czynnika grzewczego, opory hydrauliczne pętli, wymagany <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" class="rk-link-light">rozstaw rur</a> oraz całkowitą długość <a href="https://projekt-ogrzewania.pl/rura-pert-do-ogrzewania-podlogowego/" class="rk-link-light">przewodów PERT/PEX</a>. Poniższy materiał stanowi kompletne kompendium wiedzy matematycznej i instalacyjnej, niezbędne do przeprowadzenia obliczeń hydrauliczno-termicznych systemu grzewczego (Interaktywny kalkulator jest dostępny w dalszej części artykułu).
        </p>
    </div>

    <div class="rk-explorer-section">
        <h3 class="rk-explorer-title">4 Filary Algorytmu Obliczeniowego</h3>
        
        <div class="rk-explorer-nav">
            <button class="rk-exp-btn active" data-target="tab-masowy">Strumień Masowy</button>
            <button class="rk-exp-btn" data-target="tab-opory">Opory Hydrauliczne</button>
            <button class="rk-exp-btn" data-target="tab-rozstaw">Rozstaw Rur</button>
            <button class="rk-exp-btn" data-target="tab-dlugosc">Długość Przewodów</button>
        </div>

        <div class="rk-exp-content active" id="tab-masowy">
            <div class="rk-exp-visual">
                <svg class="rk-static-svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
                    <rect x="35" y="10" width="30" height="80" rx="4" fill="#ffffff" stroke="#2563eb" stroke-width="4"></rect>
                    <line x1="45" y1="20" x2="55" y2="20" stroke="#64748b" stroke-width="2"></line>
                    <line x1="45" y1="40" x2="55" y2="40" stroke="#64748b" stroke-width="2"></line>
                    <line x1="45" y1="60" x2="55" y2="60" stroke="#64748b" stroke-width="2"></line>
                    <line x1="45" y1="80" x2="55" y2="80" stroke="#64748b" stroke-width="2"></line>
                    <polygon points="40,55 60,55 50,70" fill="#ef4444"></polygon>
                    <path d="M 50 90 L 50 100 M 35 100 L 65 100" stroke="#0d9488" stroke-width="4" stroke-linecap="round"></path>
                </svg>
            </div>
            <div class="rk-exp-details">
                <h3>Zapotrzebowanie na strumień masowy</h3>
                <p>Kalkulator na podstawie projektowego obciążenia cieplnego (OZC) określa dokładną ilość wody (w litrach na minutę), jaka musi przepłynąć przez dany obwód, aby dostarczyć wymaganą moc grzewczą do pomieszczenia. To podstawa regulacji na rotametrach.</p>
                <div class="rk-data-tiles">
                    <div class="rk-tile">
                        <div class="rk-tile-label">Jednostka bazowa</div>
                        <div class="rk-tile-value">kg/h lub l/min</div>
                    </div>
                    <div class="rk-tile">
                        <div class="rk-tile-label">Zależność fizyczna</div>
                        <div class="rk-tile-value">Q = m · c · ΔT</div>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-exp-content" id="tab-opory">
            <div class="rk-exp-visual">
                <svg class="rk-static-svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
                    <path d="M 10 50 Q 30 20 50 50 T 90 50" fill="none" stroke="#e2e8f0" stroke-width="12" stroke-linecap="round"></path>
                    <path d="M 10 50 Q 30 20 50 50 T 90 50" fill="none" stroke="#2563eb" stroke-width="6" stroke-linecap="round"></path>
                    <circle cx="20" cy="30" r="12" fill="#ffffff" stroke="#0d9488" stroke-width="3"></circle>
                    <line x1="20" y1="30" x2="28" y2="22" stroke="#ef4444" stroke-width="2" stroke-linecap="round"></line>
                    <circle cx="80" cy="30" r="12" fill="#ffffff" stroke="#0d9488" stroke-width="3"></circle>
                    <line x1="80" y1="30" x2="72" y2="22" stroke="#ef4444" stroke-width="2" stroke-linecap="round"></line>
                </svg>
            </div>
            <div class="rk-exp-details">
                <h3>Opory hydrauliczne pętli</h3>
                <p>Zbyt długa rura lub zbyt duża prędkość wody generuje ogromne opory tarcia (straty liniowe i miejscowe). Obliczenia te są krytyczne dla poprawnego doboru wysokości podnoszenia pompy obiegowej, aby zapobiec &#8222;niedogrzaniu&#8221; najdalszych pętli.</p>
                <div class="rk-data-tiles">
                    <div class="rk-tile">
                        <div class="rk-tile-label">Maksymalny opór pętli</div>
                        <div class="rk-tile-value">≤ 20 kPa</div>
                    </div>
                    <div class="rk-tile">
                        <div class="rk-tile-label">Optymalna prędkość</div>
                        <div class="rk-tile-value">0,25 &#8211; 0,5 m/s</div>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-exp-content" id="tab-rozstaw">
            <div class="rk-exp-visual">
                <svg class="rk-static-svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
                    <rect x="10" y="10" width="80" height="80" fill="#ffffff" stroke="#cbd5e1" stroke-width="2" rx="4"></rect>
                    <path d="M 20 20 L 80 20 M 80 20 A 10 10 0 0 1 80 40 M 80 40 L 20 40 M 20 40 A 10 10 0 0 0 20 60 M 20 60 L 80 60 M 80 60 A 10 10 0 0 1 80 80 M 80 80 L 20 80" fill="none" stroke="#0d9488" stroke-width="6" stroke-linecap="round"></path>
                    <line x1="45" y1="23" x2="45" y2="37" stroke="#ef4444" stroke-width="2"></line>
                    <polygon points="45,23 42,28 48,28" fill="#ef4444"></polygon>
                    <polygon points="45,37 42,32 48,32" fill="#ef4444"></polygon>
                </svg>
            </div>
            <div class="rk-exp-details">
                <h3>Wymagany rozstaw rur</h3>
                <p>Na podstawie oporu cieplnego warstw posadzki (np. płytki vs panele) oraz wyliczonych strat ciepła, system wskazuje bezpieczny rozstaw montażowy. Zagęszczenie rur (np. co 10 cm w łazience) gwarantuje osiągnięcie właściwej temperatury wnętrza.</p>
                <div class="rk-data-tiles">
                    <div class="rk-tile">
                        <div class="rk-tile-label">Pompy ciepła (Standard)</div>
                        <div class="rk-tile-value">10 &#8211; 15 cm</div>
                    </div>
                    <div class="rk-tile">
                        <div class="rk-tile-label">Strefy brzegowe (Okna)</div>
                        <div class="rk-tile-value">5 &#8211; 10 cm</div>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-exp-content" id="tab-dlugosc">
            <div class="rk-exp-visual">
                <svg class="rk-static-svg" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
                    <circle cx="50" cy="50" r="35" fill="none" stroke="#2563eb" stroke-width="8"></circle>
                    <circle cx="50" cy="50" r="25" fill="none" stroke="#2563eb" stroke-width="8"></circle>
                    <circle cx="50" cy="50" r="15" fill="none" stroke="#2563eb" stroke-width="8"></circle>
                    <path d="M 50 15 L 50 5" stroke="#ef4444" stroke-width="4" stroke-linecap="round"></path>
                    <path d="M 50 5 L 90 5" stroke="#ef4444" stroke-width="4" stroke-linecap="round"></path>
                    <text x="70" y="20" fill="#0f172a" font-size="14" font-weight="900" font-family="sans-serif">Σ L</text>
                </svg>
            </div>
            <div class="rk-exp-details">
                <h3>Całkowita długość przewodów</h3>
                <p>Precyzyjne wyliczenie metrów bieżących (uwzględniające 10% naddatku instalacyjnego oraz trasy doprowadzające do rozdzielacza) zapobiega brakom materiałowym na budowie i pozwala dokładnie oszacować pojemność zładu wodnego układu.</p>
                <div class="rk-data-tiles">
                    <div class="rk-tile">
                        <div class="rk-tile-label">Max dł. obwodu (PEX 16)</div>
                        <div class="rk-tile-value">120 m</div>
                    </div>
                    <div class="rk-tile">
                        <div class="rk-tile-label">Pojemność rury 16&#215;2</div>
                        <div class="rk-tile-value">0,113 l/mb</div>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-intro-app');
        if (container) {
            container.innerHTML = `
                <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900; font-family:sans-serif; border: 2px solid #ef4444;">
                    <div style="font-size:30px; margin-bottom:10px;">⚠️</div>
                    BŁĄD LICENCJI:<br>Kontener interaktywny należy do serwisu Projekt-Ogrzewania.pl. Uruchamianie na nieautoryzowanej domenie jest zabronione prawem.
                </div>
            `;
            return;
        }
    }

    // Logika Zakładek Eksploratora
    const buttons = document.querySelectorAll('.rk-exp-btn');
    const contents = document.querySelectorAll('.rk-exp-content');

    buttons.forEach(btn => {
        btn.addEventListener('click', () => {
            const targetId = btn.getAttribute('data-target');
            
            // Resetuj wszystkie
            buttons.forEach(b => b.classList.remove('active'));
            contents.forEach(c => c.classList.remove('active'));
            
            // Aktywuj kliknięty
            btn.classList.add('active');
            document.getElementById(targetId).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-darker: #020617;
    --rk-calc-brand: #3b82f6; /* Inżynieryjny, mocny niebieski */
    --rk-calc-brand-hover: #2563eb;
    --rk-calc-accent: #f59e0b; /* Bursztyn do akcentowania wzorów */
    --rk-calc-bg: #ffffff;
    --rk-calc-surface: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-muted: #64748b;
    --rk-calc-formula-bg: #1e293b;
    --rk-shadow-soft: 0 10px 25px -5px rgba(59, 130, 246, 0.1);
}

.rk-calc-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-calc-bg);
    border-radius: 20px;
    box-shadow: var(--rk-shadow-soft);
    border: 1px solid var(--rk-calc-border);
    overflow: hidden;
}

/* --- NAGŁÓWEK --- */
.rk-calc-header {
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, var(--rk-calc-darker) 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-calc-brand);
}

.rk-calc-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 15px;
    border: 1px solid rgba(147, 197, 253, 0.3);
}

.rk-calc-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-calc-lead {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-calc-lead strong { color: #ffffff; }

.rk-calc-link {
    color: #60a5fa;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 600;
    transition: color 0.3s;
}

.rk-calc-link:hover { color: #93c5fd; }

/* --- INTERAKTYWNY STEPPER --- */
.rk-calc-interactive {
    padding: 40px 50px;
    background: var(--rk-calc-surface);
}

.rk-calc-subtitle {
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

.rk-stepper-wrapper {
    display: flex;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

/* Lewa strona: Kroki */
.rk-stepper-nav {
    flex: 0 0 220px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    border-right: 1px solid var(--rk-calc-border);
    padding-right: 20px;
}

.rk-step-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    text-align: left;
    background: transparent;
    border: 1px solid transparent;
    padding: 15px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-calc-muted);
    cursor: pointer;
    transition: all 0.3s;
}

.rk-step-btn:hover {
    background: var(--rk-calc-surface);
    color: var(--rk-calc-brand);
}

.rk-step-btn.active {
    background: var(--rk-calc-brand);
    color: #ffffff;
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.rk-step-num {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: var(--rk-calc-border);
    color: var(--rk-calc-text);
    border-radius: 50%;
    font-size: 12px;
    font-weight: 900;
    transition: all 0.3s;
}

.rk-step-btn.active .rk-step-num {
    background: #ffffff;
    color: var(--rk-calc-brand);
}

/* Prawa strona: Zawartość */
.rk-stepper-content {
    flex: 1;
    position: relative;
    min-height: 320px;
}

.rk-step-panel {
    display: none;
    animation: slideInRight 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-step-panel.active {
    display: block;
}

@keyframes slideInRight {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}

.rk-panel-title {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0 0 15px 0;
}

/* Wzór matematyczny */
.rk-formula-box {
    background: var(--rk-calc-formula-bg);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-left: 4px solid var(--rk-calc-accent);
    position: relative;
    overflow: hidden;
}

.rk-formula-box::before {
    content: 'Wzór wg PN-EN';
    position: absolute;
    top: 5px; left: 10px;
    font-size: 10px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
}

.rk-formula-text {
    font-family: 'Courier New', Courier, monospace;
    font-size: 22px;
    font-weight: 700;
    color: #ffffff;
    letter-spacing: 1px;
}

.rk-formula-text sub {
    font-size: 12px;
    color: var(--rk-calc-accent);
}

/* Wyjaśnienie */
.rk-panel-desc {
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-calc-text);
    margin: 0 0 20px 0;
    background: var(--rk-calc-surface);
    padding: 15px;
    border-radius: 8px;
    border: 1px dashed var(--rk-calc-border);
}

/* Wizualizacja SVG (Animacje) */
.rk-panel-visual {
    height: 100px;
    background: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-svg-graphic {
    width: 100%;
    max-width: 250px;
    height: 100%;
}

/* --- Animacje SVG --- */
.anim-ozc-arrow { stroke-dasharray: 4; animation: flowOut 1s linear infinite; stroke: #ef4444; }
@keyframes flowOut { to { stroke-dashoffset: -8; } }

.anim-heat-wave path { stroke: #f59e0b; opacity: 0; animation: radiateUp 1.5s infinite alternate; }
.anim-heat-wave path:nth-child(2) { animation-delay: 0.5s; }
.anim-heat-wave path:nth-child(3) { animation-delay: 1s; }
@keyframes radiateUp { to { opacity: 1; transform: translateY(-5px); } }

.anim-ruler-move { animation: shrinkRuler 3s infinite alternate cubic-bezier(0.4, 0, 0.2, 1); transform-origin: left; }
@keyframes shrinkRuler { 0% { transform: scaleX(1); } 100% { transform: scaleX(0.66); } }

.anim-pipe-roll { stroke-dasharray: 200; stroke-dashoffset: 200; animation: unroll 3s infinite ease-out; stroke: #3b82f6; }
@keyframes unroll { 50%, 100% { stroke-dashoffset: 0; } }

.anim-loop-split { stroke-dasharray: 100; animation: splitFlow 2s infinite linear; stroke: #3b82f6; }
@keyframes splitFlow { to { stroke-dashoffset: -20; } }

/* --- Responsywność --- */
@media (max-width: 768px) {
    .rk-calc-header, .rk-calc-interactive { padding: 30px 20px; }
    .rk-calc-title { font-size: 24px; }
    .rk-stepper-wrapper { flex-direction: column; padding: 15px; gap: 20px; }
    .rk-stepper-nav { flex: auto; border-right: none; border-bottom: 1px solid var(--rk-calc-border); padding-right: 0; padding-bottom: 15px; flex-direction: row; overflow-x: auto; scrollbar-width: none; }
    .rk-stepper-nav::-webkit-scrollbar { display: none; }
    .rk-step-btn { min-width: 160px; justify-content: center; }
    .rk-formula-text { font-size: 18px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#article-algorytm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/"
    },
    "headline": "Jak obliczyć zapotrzebowanie na ciepło i długość rur ogrzewania podłogowego?",
    "description": "Algorytm kalkulatora wg PN-EN 12831 i 1264. Poznaj krok po kroku wzory na projektowe obciążenie cieplne, rozstaw rur i podział na pętle.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-03-05",
    "dateModified": "2026-05-23"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#dataset-wzory",
    "name": "Wzory i algorytmy obliczeniowe PN-EN 12831 i 1264",
    "description": "Zestawienie matematyczne procedur doboru parametrów ogrzewania płaszczyznowego, zapobiegające błędom przewymiarowania instalacji.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia OZC",
      "długość rury podłogówka",
      "rozstaw rur wzór",
      "norma PN-EN 12831",
      "kalkulator ogrzewania podłogowego"
    ],
    "measurementTechnique": "Szeregowanie algorytmiczne wg norm europejskich, przeliczające powierzchnię i straty na zapotrzebowanie hydrauliczne.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Krok 1: Projektowa moc grzewcza Q_obl = A × q",
        "Krok 2: Gęstość strumienia q_s = Q_obl / A_grz",
        "Krok 3: Obliczenie teoretycznego rozstawu rur (a)",
        "Krok 4: Całkowita długość rury L = (A_grz / a × 1,1) + L_d",
        "Krok 5: Podział na pętle N_p = ceil(L / L_max)"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#webapp-algorytm",
    "name": "Symulator Algorytmu Podłogówki",
    "description": "Interaktywny panel (stepper) objaśniający w 5 krokach proces matematyczny zachodzący w kalkulatorze ogrzewania podłogowego wraz z wizualizacjami SVG.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-container" id="rk-calc-app">
    
    <div class="rk-calc-header">
        <div class="rk-calc-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
            Metodologia Obliczeń
        </div>
        <h2 class="rk-calc-title">Jak obliczyć zapotrzebowanie na ciepło i długość rur za pomocą kalkulatora?</h2>
        <p class="rk-calc-lead">
            Zgodnie z normą <strong>PN-EN 12831</strong>, podstawą do wyliczenia jakichkolwiek parametrów podłogówki jest <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-calc-link">Projektowe Obciążenie Cieplne budynku (OZC)</a>. Algorytm kalkulatora konwertuje tę wartość na <a href="https://projekt-ogrzewania.pl/ile-rury-na-m%c2%b2-ogrzewania-podlogowego/" class="rk-calc-link">metry bieżące rury</a> oraz liczbę sekcji <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-calc-link">rozdzielacza</a> w oparciu o parametry fizyczne przegród. Próba doboru instalacji „na oko” (np. uniwersalne przyjmowanie rozstawu co 15 cm) skutkuje niedogrzaniem stref przyokiennych lub przewymiarowaniem <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" class="rk-calc-link">pompy obiegowej</a>, co generuje dodatkowe koszty na poziomie 2500–4000 PLN na etapie zakupu materiałów.
        </p>
    </div>

    <div class="rk-calc-interactive">
        <h3 class="rk-calc-subtitle">Algorytm obliczeniowy krok po kroku</h3>
        
        <div class="rk-stepper-wrapper">
            <div class="rk-stepper-nav">
                <button class="rk-step-btn active" data-step="1">
                    <span class="rk-step-num">1</span> Moc grzewcza
                </button>
                <button class="rk-step-btn" data-step="2">
                    <span class="rk-step-num">2</span> Gęstość strumienia
                </button>
                <button class="rk-step-btn" data-step="3">
                    <span class="rk-step-num">3</span> Rozstaw rur
                </button>
                <button class="rk-step-btn" data-step="4">
                    <span class="rk-step-num">4</span> Długość rury
                </button>
                <button class="rk-step-btn" data-step="5">
                    <span class="rk-step-num">5</span> Podział na pętle
                </button>
            </div>

            <div class="rk-stepper-content">
                
                <div class="rk-step-panel active" id="rk-step-1">
                    <h4 class="rk-panel-title">Wyznaczenie projektowej mocy grzewczej pomieszczenia (Q<sub>obl</sub>)</h4>
                    <div class="rk-formula-box">
                        <div class="rk-formula-text">Q<sub>obl</sub> = A &times; q</div>
                    </div>
                    <div class="rk-panel-desc">
                        Gdzie <strong>A</strong> to powierzchnia użytkowa [m²], a <strong>q</strong> to jednostkowe zapotrzebowanie na ciepło [W/m²] określone wg PN-EN 12831. Dla nowych budynków (WT 2021) przyjmuje się 30–50 W/m², dla domów po termomodernizacji 60–80 W/m².
                    </div>
                    <div class="rk-panel-visual">
                        <svg class="rk-svg-graphic" viewBox="0 0 200 80">
                            <path d="M 80 40 L 100 20 L 120 40 L 120 70 L 80 70 Z" fill="none" stroke="#64748b" stroke-width="4" stroke-linejoin="round"/>
                            <path class="anim-ozc-arrow" d="M 125 45 L 150 45" stroke-width="3" stroke-linecap="round"/>
                            <path class="anim-ozc-arrow" d="M 75 45 L 50 45" stroke-width="3" stroke-linecap="round"/>
                            <path class="anim-ozc-arrow" d="M 100 15 L 100 -5" stroke-width="3" stroke-linecap="round"/>
                        </svg>
                    </div>
                </div>

                <div class="rk-step-panel" id="rk-step-2">
                    <h4 class="rk-panel-title">Wyznaczenie gęstości strumienia cieplnego posadzki (q<sub>s</sub>)</h4>
                    <div class="rk-formula-box">
                        <div class="rk-formula-text">q<sub>s</sub> = Q<sub>obl</sub> / A<sub>grz</sub></div>
                    </div>
                    <div class="rk-panel-desc">
                        Gdzie <strong>A<sub>grz</sub></strong> to rzeczywista powierzchnia grzewcza [m²] (po odliczeniu stałej zabudowy meblowej np. szaf, kominków, wanien). Otrzymujemy parametr W/m² czystej podłogi.
                    </div>
                    <div class="rk-panel-visual">
                        <svg class="rk-svg-graphic" viewBox="0 0 200 80">
                            <path d="M 40 70 L 160 70 L 140 50 L 60 50 Z" fill="#e2e8f0" stroke="#cbd5e1" stroke-width="2"/>
                            <g class="anim-heat-wave" fill="none" stroke-width="3" stroke-linecap="round">
                                <path d="M 70 40 Q 80 30, 90 40 T 110 40"/>
                                <path d="M 90 35 Q 100 25, 110 35 T 130 35"/>
                                <path d="M 110 30 Q 120 20, 130 30 T 150 30"/>
                            </g>
                        </svg>
                    </div>
                </div>

                <div class="rk-step-panel" id="rk-step-3">
                    <h4 class="rk-panel-title">Obliczenie teoretycznego rozstawu rur (a)</h4>
                    <div class="rk-formula-box">
                        <div class="rk-formula-text">a = f( q<sub>s</sub> , t<sub>z</sub> , R<sub>&lambda;,B</sub> )</div>
                    </div>
                    <div class="rk-panel-desc">
                        Rozstaw rur [m] jest funkcją gęstości strumienia, temperatury zasilania oraz oporu cieplnego okładziny podłogowej. Oblicza się go z układu równań normy PN-EN 1264-2. Wynik zaokrągla się w dół do standardów montażowych: <strong>0,10 m, 0,15 m lub 0,20 m</strong>.
                    </div>
                    <div class="rk-panel-visual">
                        <svg class="rk-svg-graphic" viewBox="0 0 200 80">
                            <line x1="50" y1="40" x2="150" y2="40" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                            <line class="anim-ruler-move" x1="50" y1="40" x2="150" y2="40" stroke="#f59e0b" stroke-width="6" stroke-linecap="round"/>
                            <line x1="50" y1="30" x2="50" y2="50" stroke="#64748b" stroke-width="2"/>
                            <line x1="150" y1="30" x2="150" y2="50" stroke="#64748b" stroke-width="2"/>
                        </svg>
                    </div>
                </div>

                <div class="rk-step-panel" id="rk-step-4">
                    <h4 class="rk-panel-title">Wyznaczenie całkowitej długości rury w pomieszczeniu (L)</h4>
                    <div class="rk-formula-box">
                        <div class="rk-formula-text">L = (A<sub>grz</sub> / a &times; 1,1) + L<sub>d</sub></div>
                    </div>
                    <div class="rk-panel-desc">
                        Gdzie <strong>1,1</strong> to stały współczynnik uwzględniający 10% zapasu na wygięcia łuków rur, a <strong>L<sub>d</sub></strong> to długość odcinka doprowadzającego (zasilanie + powrót) z szafki rozdzielaczowej do danego pomieszczenia [m].
                    </div>
                    <div class="rk-panel-visual">
                        <svg class="rk-svg-graphic" viewBox="0 0 200 80">
                            <circle cx="60" cy="40" r="20" fill="none" stroke="#3b82f6" stroke-width="4"/>
                            <circle cx="60" cy="40" r="12" fill="none" stroke="#3b82f6" stroke-width="4"/>
                            <path class="anim-pipe-roll" d="M 60 20 L 160 20" fill="none" stroke-width="4" stroke-linecap="round"/>
                        </svg>
                    </div>
                </div>

                <div class="rk-step-panel" id="rk-step-5">
                    <h4 class="rk-panel-title">Podział na pętle grzewcze (N<sub>p</sub>)</h4>
                    <div class="rk-formula-box">
                        <div class="rk-formula-text">N<sub>p</sub> = ceil( L / L<sub>max</sub> )</div>
                    </div>
                    <div class="rk-panel-desc">
                        Gdzie <strong>L<sub>max</sub></strong> to graniczna długość jednego obwodu (dla rury 16 mm wynosi 120 m). Funkcja <em>ceil</em> zaokrągla wynik matematyczny zawsze w górę do pełnej liczby całkowitej (obwodu na rozdzielaczu).
                    </div>
                    <div class="rk-panel-visual">
                        <svg class="rk-svg-graphic" viewBox="0 0 200 80">
                            <rect x="30" y="20" width="20" height="40" fill="#64748b" rx="2"/>
                            <path class="anim-loop-split" d="M 50 30 L 140 30 Q 160 30, 160 50 Q 160 70, 140 70 L 50 70" fill="none" stroke-width="4" stroke-linecap="round"/>
                            <path class="anim-loop-split" d="M 50 40 L 100 40 Q 120 40, 120 50 Q 120 60, 100 60 L 50 60" fill="none" stroke="#f59e0b" stroke-width="4" stroke-linecap="round"/>
                        </svg>
                    </div>
                </div>

            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-calc-app');
        if (container) {
            container.innerHTML = `
                <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900; font-family:sans-serif; border: 2px solid #ef4444;">
                    <div style="font-size:30px; margin-bottom:10px;">⚠️</div>
                    BŁĄD LICENCJI:<br>Kontener algorytmiczny należy do serwisu Projekt-Ogrzewania.pl. Uruchamianie na nieautoryzowanej domenie jest zabronione prawem.
                </div>
            `;
            return;
        }
    }

    // Logika Steppera
    const stepBtns = document.querySelectorAll('.rk-step-btn');
    const stepPanels = document.querySelectorAll('.rk-step-panel');

    stepBtns.forEach(btn => {
        btn.addEventListener('click', () => {
            const targetStep = btn.getAttribute('data-step');
            
            // Czyszczenie klas aktywnych
            stepBtns.forEach(b => b.classList.remove('active'));
            stepPanels.forEach(p => p.classList.remove('active'));
            
            // Aktywacja wybranego
            btn.classList.add('active');
            document.getElementById('rk-step-' + targetStep).classList.add('active');
        });
    });
});
</script>



<style>
:root {
    --rk-temp-dark: #0f172a;
    --rk-temp-darker: #020617;
    --rk-temp-brand: #0ea5e9; /* Błękit inżynieryjny */
    --rk-temp-safe: #10b981;  /* Szmaragdowy - norma */
    --rk-temp-warn: #f59e0b;  /* Bursztyn - ostrzeżenie */
    --rk-temp-danger: #ef4444; /* Czerwień - awaria */
    --rk-temp-bg: #ffffff;
    --rk-temp-surface: #f8fafc;
    --rk-temp-border: #e2e8f0;
    --rk-temp-text: #334155;
    --rk-temp-muted: #64748b;
    --rk-temp-shadow: 0 15px 35px -10px rgba(15, 23, 42, 0.1);
}

.rk-temp-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-temp-bg);
    border-radius: 24px;
    box-shadow: var(--rk-temp-shadow);
    border: 1px solid var(--rk-temp-border);
    overflow: hidden;
}

/* --- NAGŁÓWEK --- */
.rk-temp-header {
    background: linear-gradient(135deg, var(--rk-temp-darker) 0%, var(--rk-temp-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-temp-brand);
}

.rk-temp-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #38bdf8;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-temp-title {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-temp-title span { color: #7dd3fc; }

.rk-temp-lead {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-temp-link {
    color: #38bdf8;
    text-decoration: none;
    border-bottom: 1px dashed rgba(56, 189, 248, 0.4);
    font-weight: 600;
    transition: all 0.3s;
}

.rk-temp-link:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* --- KONTENER SYMULATORA --- */
.rk-temp-simulator {
    padding: 40px 50px;
    background: var(--rk-temp-surface);
}

.rk-sim-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 30px;
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-temp-border);
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

/* Lewa Strona - Kontrolki i SVG */
.rk-sim-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-slider-box {
    background: var(--rk-temp-surface);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-temp-border);
}

.rk-slider-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
}

.rk-slider-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-temp-dark);
    text-transform: uppercase;
}

.rk-slider-value {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-temp-safe);
    transition: color 0.3s;
}

/* Custom Input Range */
.rk-range-slider {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #cbd5e1;
    outline: none;
    transition: background 0.3s;
}

.rk-range-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-temp-safe);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: background 0.3s, transform 0.1s;
}

.rk-range-slider::-webkit-slider-thumb:active {
    transform: scale(1.1);
}

/* Wizualizacja SVG Przekroju */
.rk-svg-stage {
    flex-grow: 1;
    background: #f1f5f9;
    border-radius: 16px;
    border: 1px dashed var(--rk-temp-border);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    position: relative;
    overflow: hidden;
}

.rk-cross-section { width: 100%; max-width: 350px; height: auto; }

/* Animacje SVG */
.anim-heat-ray { stroke-dasharray: 8 8; animation: heatRise 2s linear infinite; }
@keyframes heatRise { to { stroke-dashoffset: -16; } }

.anim-crack-path { stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset 0.5s ease-out; }
.state-danger .anim-crack-path { stroke-dashoffset: 0; }

.anim-pipe-color { transition: fill 0.3s, stroke 0.3s; }
.state-warn .anim-pipe-color { fill: var(--rk-temp-warn); stroke: #d97706; }
.state-warn .anim-heat-ray { stroke: var(--rk-temp-warn); animation-duration: 1.2s; }
.state-danger .anim-pipe-color { fill: var(--rk-temp-danger); stroke: #b91c1c; }
.state-danger .anim-heat-ray { stroke: var(--rk-temp-danger); animation-duration: 0.7s; }

/* Prawa Strona - Metryki */
.rk-sim-metrics {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-metric-card {
    background: #ffffff;
    border: 1px solid var(--rk-temp-border);
    border-radius: 12px;
    padding: 20px;
    transition: all 0.3s;
    position: relative;
    overflow: hidden;
}

.rk-metric-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0; width: 4px;
    background: var(--rk-temp-safe);
    transition: background 0.3s;
}

.state-warn .rk-metric-card::before { background: var(--rk-temp-warn); }
.state-danger .rk-metric-card::before { background: var(--rk-temp-danger); }

.rk-metric-title {
    font-size: 12px;
    color: var(--rk-temp-muted);
    font-weight: 800;
    text-transform: uppercase;
    margin-bottom: 8px;
}

.rk-metric-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-temp-dark);
}

.rk-metric-desc {
    font-size: 13px;
    color: var(--rk-temp-text);
    margin-top: 8px;
    line-height: 1.4;
}

/* Ostrzeżenie (Awaria) */
.rk-alert-box {
    display: none;
    background: #fef2f2;
    border: 1px solid #fecaca;
    padding: 15px;
    border-radius: 12px;
    color: #991b1b;
    font-size: 13px;
    line-height: 1.5;
    margin-top: auto;
    animation: alertPop 0.3s ease-out;
}

.rk-alert-box strong { font-weight: 800; color: #7f1d1d; display: block; font-size: 14px; margin-bottom: 4px; }
.state-danger .rk-alert-box { display: block; }

@keyframes alertPop {
    0% { opacity: 0; transform: scale(0.95); }
    100% { opacity: 1; transform: scale(1); }
}

/* Strefy Temperatur (Limity) */
.rk-zones-info {
    padding: 30px 50px 40px;
    background: #ffffff;
    border-top: 1px solid var(--rk-temp-border);
}

.rk-zones-info h3 {
    margin: 0 0 20px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-temp-dark);
}

.rk-zones-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-zone-item {
    background: #f8fafc;
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-temp-border);
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-zone-icon {
    width: 40px; height: 40px;
    background: #e0f2fe;
    color: var(--rk-temp-brand);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-zone-item h4 { margin: 0; font-size: 15px; font-weight: 800; color: var(--rk-temp-dark); }
.rk-zone-limit { font-size: 20px; font-weight: 900; color: var(--rk-temp-brand); }
.rk-zone-text { font-size: 13px; color: var(--rk-temp-muted); line-height: 1.5; margin: 0; }

@media (max-width: 768px) {
    .rk-temp-header, .rk-temp-simulator, .rk-zones-info { padding: 30px 20px; }
    .rk-temp-title { font-size: 24px; }
    .rk-sim-layout { grid-template-columns: 1fr; padding: 20px; gap: 20px; }
    .rk-zones-grid { grid-template-columns: 1fr; }
    .rk-svg-stage { height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#article-temperatura",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/"
    },
    "headline": "Maksymalna temperatura zasilania ogrzewania podłogowego według normy PN-EN 1264",
    "description": "Zgodnie z PN-EN 1264 maksymalna temperatura zasilania to 50°C. Przekroczenie limitu prowadzi do uszkodzeń mechanicznych wylewki (naprężenia ścinające 2,5 MPa) i degradacji paneli.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-24",
    "dateModified": "2026-05-24"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#dataset-limity",
    "name": "Wartości graniczne temperatur powierzchniowych (PN-EN 1264)",
    "description": "Zestawienie dopuszczalnych temperatur powierzchni posadzki dla poszczególnych stref przebywania w budynku mieszkalnym.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna temperatura ogrzewania podłogowego",
      "norma PN-EN 1264",
      "strefa brzegowa temperatura",
      "naprężenia ścinające wylewki",
      "temperatura zasilania podłogówki"
    ],
    "measurementTechnique": "Określenie parametrów granicznych na podstawie normy europejskiej PN-EN 1264.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Strefa stałego przebywania ludzi (salony, sypialnie): max 29°C.",
        "Strefy łazienkowe i sanitarne: max 33°C.",
        "Strefy brzegowe (do 1 m od okien): max 35°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/#webapp-symulator",
    "name": "Symulator Naprężeń Termicznych Posadzki",
    "description": "Interaktywny kalkulator wizualizujący wpływ temperatury zasilania na naprężenia wylewki, temperaturę powierzchni oraz ryzyko pęknięć mechanicznych (uszkodzenia płytek, syndrom ciężkich nóg).",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-temp-container" id="rk-temp-app">
    
    <div class="rk-temp-header">
        <div class="rk-temp-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
            Reżim Temperaturowy
        </div>
        <h2 class="rk-temp-title">Maksymalna temperatura zasilania <span>według PN-EN 1264</span></h2>
        <p class="rk-temp-lead">
            Maksymalna temperatura zasilania instalacji ogrzewania podłogowego w układzie ciągłym wynosi <strong>50°C</strong> zgodnie z wymaganiami normy <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" class="rk-temp-link">PN-EN 1264</a>. Niedopełnienie tych obostrzeń i wpuszczenie w jastrych parametru rzędu 55–60°C (brak <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-temp-link">zaworu mieszającego</a> na starym kotle) generuje ogromne naprężenia ścinające. Skutkuje to pękaniem płytek, degradacją termiczną paneli i &#8222;syndromem ciężkich nóg&#8221;.
        </p>
    </div>

    <div class="rk-temp-simulator">
        <div class="rk-sim-layout state-safe" id="rk-sim-core">
            
            <div class="rk-sim-controls">
                <div class="rk-slider-box">
                    <div class="rk-slider-header">
                        <span class="rk-slider-label">Zasilanie Układu (T<sub>z</sub>)</span>
                        <span class="rk-slider-value" id="val-supply">35°C</span>
                    </div>
                    <input type="range" class="rk-range-slider" id="rk-temp-slider" min="25" max="65" step="1" value="35">
                </div>

                <div class="rk-svg-stage">
                    <svg class="rk-cross-section" viewBox="0 0 200 150" xmlns="http://www.w3.org/2000/svg">
                        <rect x="10" y="110" width="180" height="30" fill="#cbd5e1" rx="4"/>
                        <circle cx="30" cy="125" r="2" fill="#94a3b8"/> <circle cx="50" cy="115" r="2" fill="#94a3b8"/>
                        <rect x="10" y="50" width="180" height="60" fill="#e2e8f0" rx="2"/>
                        <rect x="10" y="40" width="43" height="8" fill="#94a3b8" rx="1"/>
                        <rect x="55" y="40" width="43" height="8" fill="#94a3b8" rx="1"/>
                        <rect x="100" y="40" width="43" height="8" fill="#94a3b8" rx="1"/>
                        <rect x="145" y="40" width="45" height="8" fill="#94a3b8" rx="1"/>
                        <circle class="anim-pipe-color" cx="100" cy="85" r="12" fill="#10b981" stroke="#047857" stroke-width="3"/>
                        <circle cx="100" cy="85" r="6" fill="rgba(255,255,255,0.4)"/>
                        <path class="anim-heat-ray" d="M 80 70 Q 75 50 80 30" fill="none" stroke="#10b981" stroke-width="2" stroke-linecap="round"/>
                        <path class="anim-heat-ray" d="M 100 65 Q 100 45 100 25" fill="none" stroke="#10b981" stroke-width="2" stroke-linecap="round"/>
                        <path class="anim-heat-ray" d="M 120 70 Q 125 50 120 30" fill="none" stroke="#10b981" stroke-width="2" stroke-linecap="round"/>
                        <path class="anim-crack-path" d="M 98 40 L 92 60 L 105 80 L 100 110" fill="none" stroke="#0f172a" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
                    </svg>
                </div>
            </div>

            <div class="rk-sim-metrics">
                <div class="rk-metric-card">
                    <div class="rk-metric-title">Temperatura Posadzki</div>
                    <div class="rk-metric-val" id="val-surface">24.5°C</div>
                    <div class="rk-metric-desc" id="desc-surface">Pełny komfort. Zgodnie z PN-EN 1264.</div>
                </div>
                
                <div class="rk-metric-card">
                    <div class="rk-metric-title">Naprężenia Wylewki</div>
                    <div class="rk-metric-val" id="val-stress">0.4 MPa</div>
                    <div class="rk-metric-desc" id="desc-stress">Stabilna praca w granicach wytrzymałości jastrychu.</div>
                </div>

                <div class="rk-alert-box">
                    <strong>Koszt naprawy: min. 15 000 PLN!</strong>
                    Naprężenia ścinające przekraczają wytrzymałość betonu na rozciąganie. Bezpowrotne odklejenie gresu i degradacja rur.
                </div>
            </div>

        </div>
    </div>

    <div class="rk-zones-info">
        <h3>Wartości graniczne temperatur (Powierzchnia)</h3>
        <div class="rk-zones-grid">
            
            <div class="rk-zone-item">
                <div class="rk-zone-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
                </div>
                <h4>Salony i Sypialnie</h4>
                <div class="rk-zone-limit">max 29°C</div>
                <p class="rk-zone-text">Strefa stałego przebywania ludzi. Zabezpiecza przed &#8222;syndromem ciężkich nóg&#8221;.</p>
            </div>

            <div class="rk-zone-item">
                <div class="rk-zone-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M2 12h20"></path><path d="M5 12v5a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-5"></path><path d="M7 21h10"></path><path d="M12 12v-5"></path><path d="M8 7h8"></path><path d="M12 7V4"></path><path d="M10 4h4"></path></svg>
                </div>
                <h4>Łazienki i Sanitarne</h4>
                <div class="rk-zone-limit">max 33°C</div>
                <p class="rk-zone-text">Dopuszcza się wyższą temperaturę z uwagi na zwiększone zapotrzebowanie na komfort (bosa stopa).</p>
            </div>

            <div class="rk-zone-item">
                <div class="rk-zone-icon">
                    <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                </div>
                <h4>Strefy Brzegowe</h4>
                <div class="rk-zone-limit">max 35°C</div>
                <p class="rk-zone-text">Pas o szerokości do 1 m <a href="https://projekt-ogrzewania.pl/strefa-brzegowa-obwodowa-w-ogrzewaniu-podlogowym/" class="rk-temp-link" style="color:var(--rk-temp-muted);">wzdłuż dużych przeszkleń</a> w celu kompensacji strat zimna.</p>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-temp-app');
        if (container) {
            container.innerHTML = `
                <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900; font-family:sans-serif; border: 2px solid #ef4444;">
                    <div style="font-size:30px; margin-bottom:10px;">⚠️</div>
                    BŁĄD LICENCJI:<br>Kontener interaktywny należy do serwisu Projekt-Ogrzewania.pl. Uruchamianie na nieautoryzowanej domenie jest zabronione prawem.
                </div>
            `;
            return;
        }
    }

    // Logika Symulatora Temperatur
    const slider = document.getElementById('rk-temp-slider');
    const layout = document.getElementById('rk-sim-core');
    
    const valSupply = document.getElementById('val-supply');
    const valSurface = document.getElementById('val-surface');
    const valStress = document.getElementById('val-stress');
    const descSurface = document.getElementById('desc-surface');
    const descStress = document.getElementById('desc-stress');
    const sliderThumb = document.querySelector('.rk-range-slider');

    function updateSimulation() {
        const temp = parseInt(slider.value);
        valSupply.textContent = temp + '°C';

        // Prosta interpolacja fizyczna dla estymacji:
        // Powierzchnia rośnie z temperaturą zasilania.
        const surfaceTemp = (20 + (temp - 25) * 0.45).toFixed(1);
        valSurface.textContent = surfaceTemp + '°C';

        // Naprężenia w betonie rosną eksponencjalnie pow. 40 stopni
        let stress = 0.2 + ((temp - 25) * 0.02);
        if(temp > 45) {
            stress = stress + Math.pow((temp - 45)*0.15, 2);
        }
        valStress.textContent = stress.toFixed(1) + ' MPa';

        // Stany logiczne
        layout.classList.remove('state-safe', 'state-warn', 'state-danger');

        if (temp <= 40) {
            layout.classList.add('state-safe');
            descSurface.textContent = 'Pełny komfort. Zgodnie z PN-EN 1264.';
            descStress.textContent = 'Stabilna praca w granicach wytrzymałości jastrychu.';
            sliderThumb.style.setProperty('--rk-temp-safe', '#10b981'); // update thumb via custom prop if needed (CSS takes care mostly)
            slider.style.background = `linear-gradient(to right, #10b981 ${(temp-25)/40*100}%, #cbd5e1 ${(temp-25)/40*100}%)`;
        } 
        else if (temp > 40 && temp <= 50) {
            layout.classList.add('state-warn');
            descSurface.textContent = 'Temperatura na granicy dopuszczalności. Ryzyko dyskomfortu (syndrom ciężkich nóg).';
            descStress.textContent = 'Zwiększona praca płyty grzewczej. Dylatacje mocno obciążone.';
            slider.style.background = `linear-gradient(to right, #f59e0b ${(temp-25)/40*100}%, #cbd5e1 ${(temp-25)/40*100}%)`;
        } 
        else if (temp > 50) {
            layout.classList.add('state-danger');
            descSurface.textContent = 'Przekroczenie normy! Degardacja klejów i uszkodzenia paneli.';
            descStress.textContent = 'Naprężenia ścinające wykraczają poza wytrzymałość betonu na rozciąganie.';
            slider.style.background = `linear-gradient(to right, #ef4444 ${(temp-25)/40*100}%, #cbd5e1 ${(temp-25)/40*100}%)`;
        }
    }

    if(slider) {
        slider.addEventListener('input', updateSimulation);
        updateSimulation(); // init
    }
});
</script>



<style>
:root {
    --rk-pitch-dark: #0f172a;
    --rk-pitch-darker: #020617;
    --rk-pitch-brand: #10b981; /* Zielony / szmaragdowy akcent efektywności OZE i SCOP */
    --rk-pitch-brand-light: #e6f4ea;
    --rk-pitch-accent: #3b82f6; /* Niebieski dla pompy ciepła i krzywej grzewczej */
    --rk-pitch-bg: #ffffff;
    --rk-pitch-surface: #f8fafc;
    --rk-pitch-border: #cbd5e1;
    --rk-pitch-text: #334155;
    --rk-pitch-muted: #64748b;
    --rk-pitch-shadow: 0 15px 35px -10px rgba(16, 185, 129, 0.1);
}

.rk-pitch-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-pitch-bg);
    border-radius: 24px;
    box-shadow: var(--rk-pitch-shadow);
    border: 1px solid var(--rk-pitch-border);
    overflow: hidden;
}

/* --- NAGŁÓWEK --- */
.rk-pitch-header {
    background: linear-gradient(135deg, var(--rk-pitch-darker) 0%, var(--rk-pitch-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-pitch-brand);
}

.rk-pitch-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #34d399;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(52, 211, 153, 0.3);
}

.rk-pitch-title {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-pitch-title span { color: #34d399; }

.rk-pitch-lead {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-pitch-link {
    color: #34d399;
    text-decoration: none;
    border-bottom: 1px dashed rgba(52, 211, 153, 0.4);
    font-weight: 600;
    transition: all 0.3s;
}

.rk-pitch-link:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* --- INTERAKTYWNY PANEL OPTYMALIZACJI --- */
.rk-pitch-interactive {
    padding: 40px 50px;
    background: var(--rk-pitch-surface);
}

.rk-sim-layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 30px;
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-pitch-border);
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

/* Lewa Strona - Wybór rozstawu i wykres */
.rk-sim-controls {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-pitch-selector-title {
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-pitch-dark);
    text-transform: uppercase;
    margin: 0 0 12px 0;
    letter-spacing: 0.5px;
}

/* Menu Przełączników Kafelkowych */
.rk-pitch-tiles {
    display: flex;
    gap: 12px;
}

.rk-pitch-tile-btn {
    flex: 1;
    background: var(--rk-pitch-surface);
    border: 2px solid var(--rk-pitch-border);
    border-radius: 14px;
    padding: 15px 10px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.rk-pitch-tile-btn:hover {
    border-color: var(--rk-pitch-accent);
    background: #f0f6ff;
}

.rk-pitch-tile-btn.active {
    border-color: var(--rk-pitch-brand);
    background: var(--rk-pitch-brand-light);
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15);
}

.rk-tile-step {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-pitch-dark);
}

.rk-tile-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-pitch-muted);
}

.rk-pitch-tile-btn.active .rk-tile-step { color: #065f46; }
.rk-pitch-tile-btn.active .rk-tile-label { color: #047857; }

/* Statyczny moduł graficzny SVG */
.rk-svg-viewport {
    background: #f8fafc;
    border-radius: 16px;
    border: 1px dashed var(--rk-pitch-border);
    padding: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 180px;
}

.rk-geometry-svg { width: 100%; max-width: 320px; height: auto; }

/* Dynamiczne stany CSS mapowane przez JS na klasę kontenera głównego */
.rk-pipe-line { fill: none; stroke: var(--rk-pitch-accent); stroke-width: 5; stroke-linecap: round; transition: all 0.4s ease; }
.rk-heat-circle { fill: #fca5a5; opacity: 0.4; transition: all 0.4s ease; }

/* Stany geometrii ułożenia rur */
.geom-10 .rk-pipe-15, .geom-10 .rk-pipe-20 { display: none; }
.geom-15 .rk-pipe-10, .geom-15 .rk-pipe-20 { display: none; }
.geom-20 .rk-pipe-10, .geom-20 .rk-pipe-15 { display: none; }

/* Prawa Strona - Parametry Techniczno-Ekonomiczne */
.rk-sim-results {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-tech-card {
    background: #ffffff;
    border: 1px solid var(--rk-pitch-border);
    border-radius: 12px;
    padding: 18px 20px;
    position: relative;
    overflow: hidden;
}

.rk-tech-card::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
    background: var(--rk-pitch-brand);
}

.rk-card-label {
    font-size: 11px;
    color: var(--rk-pitch-muted);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.rk-card-value {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-pitch-dark);
}

.rk-card-comment {
    font-size: 13px;
    color: var(--rk-pitch-text);
    margin-top: 6px;
    line-height: 1.4;
}

/* Panel Błędu Krytycznego (Garaż/Sypialnia co 20 przy przeszkleniach) */
.rk-crit-panel {
    display: none;
    background: #fef2f2;
    border: 1px solid #fecaca;
    padding: 15px;
    border-radius: 12px;
    color: #991b1b;
    font-size: 13px;
    line-height: 1.5;
    animation: panelPop 0.3s ease-out;
}
.rk-crit-panel strong { font-weight: 800; color: #7f1d1d; display: block; font-size: 14px; margin-bottom: 3px; }
.geom-20 .rk-crit-panel { display: block; }

@keyframes panelPop {
    from { opacity: 0; transform: scale(0.96); }
    to { opacity: 1; transform: scale(1); }
}

@media (max-width: 768px) {
    .rk-pitch-header, .rk-pitch-interactive { padding: 30px 20px; }
    .rk-pitch-title { font-size: 24px; }
    .rk-sim-layout { grid-template-columns: 1fr; padding: 20px; gap: 25px; }
    .rk-svg-viewport { min-height: 160px; }
    .rk-pitch-tiles { gap: 8px; }
    .rk-pitch-tile-btn { padding: 12px 6px; }
    .rk-tile-step { font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/"
    },
    "headline": "Jaki rozstaw rur ogrzewania podłogowego zastosować przy pompie ciepła?",
    "description": "Analiza wpływu geometrii rozstawu rur (10 cm vs 15 cm) na temperaturę zasilania pompy ciepła, współczynniki COP/SCOP oraz roczne oszczędności eksploatacyjne.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-24",
    "dateModified": "2026-05-24"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/#dataset",
    "name": "Zestawienie Wydajności i Zużycia Rur w Zależności od Rozstawu",
    "description": "Twarde dane przeliczeniowe łączące rozstaw rur (co 10, 15, 20 cm) z jednostkowym zużyciem materiału oraz maksymalną mocą cieplną posadzki gresowej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "rozstaw rur pompa ciepła",
      "zużycie rury na metr kwadratowy",
      "maksymalna moc grzewcza podłogówki",
      "krzywa grzewcza pompy ciepła",
      "obniżenie temperatury zasilania SCOP"
    ],
    "measurementTechnique": "Analiza numeryczna oporów przewodzenia jastrychu wg normy PN-EN 1264 i symulacja strat COP sprężarek inwerterowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rozstaw 10 cm: Zużycie 10,0 mb/m2, moc 75-85 W/m2 przy Tz=35°C. Idealny do łazienek.",
        "Rozstaw 15 cm: Zużycie 6,7 mb/m2, moc 55-65 W/m2 przy Tz=35°C. Standard salonowy.",
        "Rozstaw 20 cm: Zużycie 5,0 mb/m2, moc 35-45 W/m2 przy Tz=35°C. Ryzyko taktowania pompy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/#webapp",
    "name": "Interaktywny Symulator Geometrii Pętli Grzewczych",
    "description": "Narzędzie pozwalające przełączać gęstość ułożenia rur (10, 15, 20 cm) i obserwować w czasie rzeczywistym zużycie mb rury, wymaganą temperaturę zasilania oraz prognozowane koszty eksploatacji.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pitch-container" id="rk-pitch-app">
    
    <div class="rk-pitch-header">
        <div class="rk-pitch-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg>
            Geometria Układu OZE
        </div>
        <h2 class="rk-pitch-title">Jaki rozstaw rur ogrzewania podłogowego <span>zastosować przy pompie ciepła?</span></h2>
        <p class="rk-pitch-lead">
            Optymalny rozstaw rur grzewczych przy zasilaniu z niskotemperaturowej pompy ciepła wynosi <strong>10 cm</strong> w łazienkach oraz strefach brzegowych oraz <strong>15 cm</strong> w pozostałych pomieszczeniach mieszkalnych. Zco gęstszego rozstawu pozwala obniżyć temperaturę zasilania o <strong>4–6°C</strong> przy zachowaniu tej samej mocy grzewczej posadzki. Każde obniżenie temperatury wody o 1°C zwiększa efektywność średnioroczną pompy ciepła (współczynnik SCOP) o ok. <strong>2,5%</strong>, co bezpośrednio tnie rachunki za energię elektryczną.
        </p>
    </div>

    <div class="rk-pitch-interactive">
        <div class="rk-sim-layout geom-15" id="rk-pitch-core">
            
            <div class="rk-sim-controls">
                <div>
                    <h3 class="rk-pitch-selector-title">Wybierz gęstość ułożenia przewodów:</h3>
                    <div class="rk-pitch-tiles">
                        <button class="rk-pitch-tile-btn" data-geom="10">
                            <span class="rk-tile-step">co 10 cm</span>
                            <span class="rk-tile-label">Gęsty (Łazienki)</span>
                        </button>
                        <button class="rk-pitch-tile-btn active" data-geom="15">
                            <span class="rk-tile-step">co 15 cm</span>
                            <span class="rk-tile-label">Standard (Pokoje)</span>
                        </button>
                        <button class="rk-pitch-tile-btn" data-geom="20">
                            <span class="rk-tile-step">co 20 cm</span>
                            <span class="rk-tile-label">Rzadki (Garaże)</span>
                        </button>
                    </div>
                </div>

                <div class="rk-svg-viewport">
                    <svg class="rk-geometry-svg" viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
                        <rect x="5" y="30" width="190" height="60" fill="#e2e8f0" rx="4" stroke="#cbd5e1" stroke-width="1"/>
                        
                        <g class="rk-pipe-10">
                            <circle class="rk-heat-circle" cx="20" cy="65" r="16"/><circle class="rk-heat-circle" cx="50" cy="65" r="16"/><circle class="rk-heat-circle" cx="80" cy="65" r="16"/><circle class="rk-heat-circle" cx="110" cy="65" r="16"/><circle class="rk-heat-circle" cx="140" cy="65" r="16"/><circle class="rk-heat-circle" cx="170" cy="65" r="16"/>
                            <circle class="rk-pipe-line" cx="20" cy="65" r="6"/><circle class="rk-pipe-line" cx="50" cy="65" r="6"/><circle class="rk-pipe-line" cx="80" cy="65" r="6"/><circle class="rk-pipe-line" cx="110" cy="65" r="6"/><circle class="rk-pipe-line" cx="140" cy="65" r="6"/><circle class="rk-pipe-line" cx="170" cy="65" r="6"/>
                        </g>

                        <g class="rk-pipe-15">
                            <circle class="rk-heat-circle" cx="30" cy="65" r="22"/><circle class="rk-heat-circle" cx="85" cy="65" r="22"/><circle class="rk-heat-circle" cx="140" cy="65" r="22"/>
                            <circle class="rk-pipe-line" cx="30" cy="65" r="6"/><circle class="rk-pipe-line" cx="85" cy="65" r="6"/><circle class="rk-pipe-line" cx="140" cy="65" r="6"/>
                        </g>

                        <g class="rk-pipe-20">
                            <circle class="rk-heat-circle" cx="40" cy="65" r="28"/><circle class="rk-heat-circle" cx="130" cy="65" r="28"/>
                            <circle class="rk-pipe-line" cx="40" cy="65" r="6"/><circle class="rk-pipe-line" cx="130" cy="65" r="6"/>
                        </g>
                    </svg>
                </div>
            </div>

            <div class="rk-sim-results">
                <div class="rk-tech-card">
                    <div class="rk-card-label">Zużycie rury grzewczej</div>
                    <div class="rk-card-value" id="val-usage">6,7 mb/m²</div>
                    <div class="rk-card-comment">Standard inżynieryjny dla salonów i sypialni.</div>
                </div>

                <div class="rk-tech-card">
                    <div class="rk-card-label">Maksymalna moc (T<sub>z</sub> = 35°C)</div>
                    <div class="rk-card-value" id="val-power">55 – 65 W/m²</div>
                    <div class="rk-card-comment">Idealnie pokrywa zapotrzebowanie budynków WT 2021 z <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowego-czy-to-sie-oplaca/" class="rk-pitch-link" style="color:var(--rk-pitch-muted);">rekuperacją</a>.</div>
                </div>

                <div class="rk-tech-card">
                    <div class="rk-card-label">Parametry Krzywej Grzewczej</div>
                    <div class="rk-card-value" id="val-curve">35 / 30 °C</div>
                    <div class="rk-card-comment" id="val-cop-comment">Zapewnia wysoki współczynnik COP pompy na poziomie ok. 4,2.</div>
                </div>

                <div class="rk-crit-panel">
                    <strong>Błąd Krytyczny Projektu!</strong>
                    Rzadki układ rur w salonie z dużymi przeszkleniami wymusza podniesienie zasilania do 45°C. Współczynnik COP spada z 4,2 do 3,1, generując <strong>dodatkowy koszt 1200–1800 PLN</strong> co sezon.
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-pitch-app');
        if (container) {
            container.innerHTML = `
                <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900; font-family:sans-serif; border: 2px solid #ef4444;">
                    <div style="font-size:30px; margin-bottom:10px;">⚠️</div>
                    BŁĄD LICENCJI:<br>Kontener inżynieryjny należy do serwisu Projekt-Ogrzewania.pl. Wykryto próbę kradzieży kodu źródłowego.
                </div>
            `;
            return;
        }
    }

    // Logika kafelków interaktywnych
    const core = document.getElementById('rk-pitch-core');
    const tiles = document.querySelectorAll('.rk-pitch-tile-btn');
    
    const valUsage = document.getElementById('val-usage');
    const valPower = document.getElementById('val-power');
    const valCurve = document.getElementById('val-curve');
    const valCopComment = document.getElementById('val-cop-comment');

    const dataMap = {
        "10": {
            usage: "10,0 mb/m²",
            power: "75 – 85 W/m²",
            curve: "30 / 26 °C",
            comment: "Maksymalna efektywność pompy ciepła. Standard dla łazienek i stref brzegowych.",
            className: "geom-10"
        },
        "15": {
            usage: "6,7 mb/m²",
            power: "55 – 65 W/m²",
            curve: "35 / 30 °C",
            comment: "Zapewnia wysoki współczynnik COP pompy na poziomie ok. 4,2.",
            className: "geom-15"
        },
        "20": {
            usage: "5,0 mb/m²",
            power: "35 – 45 W/m²",
            curve: "45 / 40 °C",
            comment: "Drastyczny spadek sprawności sprężarki pompy ciepła.",
            className: "geom-20"
        }
    };

    tiles.forEach(tile => {
        tile.addEventListener('click', function() {
            tiles.forEach(t => t.classList.remove('active'));
            this.classList.add('active');

            const geom = this.getAttribute('data-geom');
            const data = dataMap[geom];

            // Aktualizacja metryk technicznych
            valUsage.textContent = data.usage;
            valPower.textContent = data.power;
            valCurve.textContent = data.curve;
            valCopComment.textContent = data.comment;

            // Aktualizacja rzutu geometrycznego przez klasy CSS
            core.className = "rk-sim-layout " + data.className;
        });
    });
});
</script>



<style>
:root {
    --rk-loop-dark: #0f172a;
    --rk-loop-darker: #020617;
    --rk-loop-primary: #0ea5e9; /* Hydronic Blue */
    --rk-loop-primary-light: #e0f2fe;
    --rk-loop-success: #10b981;
    --rk-loop-warning: #f59e0b;
    --rk-loop-danger: #ef4444;
    --rk-loop-bg: #ffffff;
    --rk-loop-surface: #f8fafc;
    --rk-loop-border: #cbd5e1;
    --rk-loop-text: #334155;
    --rk-loop-muted: #64748b;
    --rk-loop-shadow: 0 15px 35px -10px rgba(14, 165, 233, 0.15);
}

.rk-loop-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-loop-bg);
    border-radius: 24px;
    box-shadow: var(--rk-loop-shadow);
    border: 1px solid var(--rk-loop-border);
    overflow: hidden;
}

/* --- NAGŁÓWEK --- */
.rk-loop-header {
    background: linear-gradient(135deg, var(--rk-loop-darker) 0%, var(--rk-loop-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-loop-primary);
}

.rk-loop-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #38bdf8;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-loop-header h2 {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-loop-lead {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-loop-link {
    color: #38bdf8;
    text-decoration: none;
    border-bottom: 1px dashed rgba(56, 189, 248, 0.4);
    font-weight: 600;
    transition: all 0.3s;
}

.rk-loop-link:hover {
    color: #ffffff;
    border-bottom-style: solid;
}

/* --- PANEL INTERAKTYWNY --- */
.rk-loop-interactive {
    padding: 40px 50px;
    background: var(--rk-loop-surface);
}

.rk-loop-interactive h3 {
    text-align: center;
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-loop-dark);
    margin: 0 0 30px 0;
}

.rk-sim-grid {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 30px;
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-loop-border);
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

/* Lewa sekcja - Średnica, Suwak i Wykres */
.rk-sim-workspace {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Selektor Średnic (Pigułki) */
.rk-diameter-selector {
    display: flex;
    gap: 10px;
    background: var(--rk-loop-surface);
    padding: 6px;
    border-radius: 14px;
    border: 1px solid var(--rk-loop-border);
}

.rk-diameter-btn {
    flex: 1;
    padding: 12px;
    background: transparent;
    border: none;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-loop-muted);
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
}

.rk-diameter-btn:hover {
    color: var(--rk-loop-primary);
}

.rk-diameter-btn.active {
    background: var(--rk-loop-primary);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(14, 165, 233, 0.25);
}

/* Box Suwaka Długości */
.rk-length-slider-box {
    background: var(--rk-loop-surface);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-loop-border);
}

.rk-slider-labels {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.rk-slider-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-loop-dark);
    text-transform: uppercase;
}

.rk-slider-counter {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-loop-primary);
    transition: color 0.3s;
}

.rk-main-range {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #cbd5e1;
    outline: none;
}

.rk-main-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-loop-primary);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
    transition: transform 0.1s;
}

.rk-main-range::-webkit-slider-thumb:active {
    transform: scale(1.1);
}

/* Wizualizacja SVG (Zegar i Rotametr) */
.rk-svg-viewport {
    background: #ffffff;
    border-radius: 16px;
    border: 1px dashed var(--rk-loop-border);
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 180px;
}

.rk-hydraulic-svg {
    width: 100%;
    max-width: 380px;
    height: auto;
}

/* Animacje i Przejścia elementów SVG */
.svg-gauge-pointer { transform-origin: 75px 55px; transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1); stroke: var(--rk-loop-success); }
.svg-rotameter-float { transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1); fill: #334155; }
.svg-pipe-flow { stroke-dasharray: 8; animation: hydraulicFlow 2s linear infinite; stroke: var(--rk-loop-primary); }

@keyframes hydraulicFlow { to { stroke-dashoffset: -16; } }

/* Klasy stanów wtryskiwane przez JS */
.state-safe .svg-gauge-pointer { stroke: var(--rk-loop-success); }
.state-warn .svg-gauge-pointer { stroke: var(--rk-loop-warning); }
.state-danger .svg-gauge-pointer { stroke: var(--rk-loop-danger); }
.state-danger .svg-pipe-flow { animation-duration: 8s; stroke: #94a3b8; } /* Drastyczny spadek przepływu */

/* Prawa sekcja - Wyświetlacz Wyników */
.rk-sim-outputs {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-output-card {
    background: #ffffff;
    border: 1px solid var(--rk-loop-border);
    border-radius: 12px;
    padding: 16px 20px;
    position: relative;
    overflow: hidden;
}

.rk-output-card::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
    background: var(--rk-loop-success);
    transition: background-color 0.3s;
}

.state-safe .rk-card-hydraulics::before { background: var(--rk-loop-success); }
.state-warn .rk-card-hydraulics::before { background: var(--rk-loop-warning); }
.state-danger .rk-card-hydraulics::before { background: var(--rk-loop-danger); }

.rk-card-label {
    font-size: 11px;
    color: var(--rk-loop-muted);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}

.rk-card-value {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-loop-dark);
    transition: color 0.3s;
}

.state-safe .rk-val-status { color: var(--rk-loop-success); }
.state-warn .rk-val-status { color: var(--rk-loop-warning); }
.state-danger .rk-val-status { color: var(--rk-loop-danger); }

.rk-card-comment {
    font-size: 13px;
    color: var(--rk-loop-text);
    margin-top: 6px;
    line-height: 1.4;
}

/* Panel Błędu Krytycznego (Za długa pętla) */
.rk-error-panel {
    display: none;
    background: #fef2f2;
    border: 1px solid #fecaca;
    padding: 15px;
    border-radius: 12px;
    color: #991b1b;
    font-size: 13px;
    line-height: 1.5;
    animation: panelPop 0.3s ease-out;
}
.rk-error-panel strong { font-weight: 800; color: #7f1d1d; display: block; font-size: 14px; margin-bottom: 4px; }
.state-danger .rk-error-panel { display: block; }

@keyframes panelPop {
    from { opacity: 0; transform: scale(0.96); }
    to { opacity: 1; transform: scale(1); }
}

/* --- TABELA LIMITÓW --- */
.rk-loop-limits {
    padding: 35px 50px 45px;
    background: #ffffff;
    border-top: 1px solid var(--rk-loop-border);
}

.rk-loop-limits h3 {
    margin: 0 0 20px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-loop-dark);
}

.rk-limits-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-limit-item {
    background: var(--rk-loop-surface);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-loop-border);
    text-align: center;
}

.rk-limit-diameter {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-loop-muted);
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-limit-length {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-loop-primary);
    margin-bottom: 8px;
}

.rk-limit-desc {
    font-size: 13px;
    color: var(--rk-loop-text);
    line-height: 1.5;
    margin: 0;
}

@media (max-width: 768px) {
    .rk-loop-header, .rk-loop-interactive, .rk-loop-limits { padding: 30px 20px; }
    .rk-loop-header h2 { font-size: 24px; }
    .rk-sim-grid { grid-template-columns: 1fr; padding: 20px; gap: 25px; }
    .rk-limits-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-diameter-selector { flex-direction: column; gap: 6px; }
    .rk-diameter-btn { padding: 10px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/"
    },
    "headline": "Ile wynosi maksymalna długość pętli ogrzewania podłogowego dla rury PEX/PERT 16x2 mm?",
    "description": "Zgodnie z kryteriami inżynieryjnymi, maksymalna długość obwodu 16 mm wynosi 120 m. Przekroczenie limitu 20 kPa blokuje równoważenie instalacji na rotametrach rozdzielacza.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-24",
    "dateModified": "2026-05-24"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#dataset",
    "name": "Graniczne opory hydrauliczne pętli grzewczych PEX/PERT",
    "description": "Zestawienie fizycznych limitów długości obwodów ogrzewania podłogowego w relacji do średnicy zewnętrznej i dopuszczalnych spadków ciśnień.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "maksymalna długość pętli podłogówki",
      "rura pex 16mm opory",
      "strata ciśnienia w obwodzie",
      "rotametr rozdzielacza przepływ",
      "zrównoważenie hydrauliczne instalacji"
    ],
    "measurementTechnique": "Modelowanie spadków ciśnień z uwzględnieniem chropowatości bezwzględnej rur plastikowych oraz lepkości kinematicznej wody przy średniej temperaturze pracy.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Rura o średnicy 16x2 mm: Absolutne maksimum wynosi 120 m. Rekomendowana długość robocza to 80-100 m.",
        "Rura o średnicy 17x2 mm: Maksymalny limit wynosi 140 m.",
        "Rura o średnicy 20x2 mm: Maksymalna długość obwodu to 160 m."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/#webapp",
    "name": "Interaktywny Symulator Oporów Hydraulicznych Pętli",
    "description": "Aplikacja obliczeniowa pozwalająca dynamicznie zmieniać długość obwodu oraz średnicę rury, prezentując w czasie rzeczywistym spadek ciśnienia (kPa) i wpływ na rotametry.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Canvas/SVG support",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-loop-container" id="rk-loop-app">
    
    <div class="rk-loop-header">
        <div class="rk-loop-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21.5 2v6h-6M21.34 15.57a10 10 0 1 1-.57-8.38l5.67-5.67"></path></svg>
            Kryterium Hydrauliczne
        </div>
        <h2>Ile wynosi maksymalna długość pętli ogrzewania podłogowego dla rury PEX/PERT 16&#215;2 mm?</h2>
        <p class="rk-loop-lead">
            Maksymalna dopuszczalna długość jednej pętli grzewczej dla najpopularniejszej średnicy rury 16&#215;2 mm wynosi <strong>120 m</strong> (wliczając odcinki przyłączeniowe). Przekroczenie tej granicy powoduje drastyczny wzrost oporów hydraulicznych powyżej dopuszczalnej wartości <strong>20 kPa (0,2 bar)</strong>. Konsekwencją jest całkowity brak możliwości zrównoważenia hydraulicznego układu na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-loop-link">rotametrach</a>, co prowadzi do „upośledzenia przepływu” i permanentnego niedogrzania strefy mieszkalnej.
        </p>
    </div>

    <div class="rk-loop-interactive">
        <h3>Interaktywny Analizator Spadków Ciśnienia</h3>
        <div class="rk-sim-grid state-safe" id="rk-loop-core">
            
            <div class="rk-sim-workspace">
                <div>
                    <div class="rk-pitch-selector-title">Wybierz średnicę zewnętrzną przewodu:</div>
                    <div class="rk-diameter-selector">
                        <button class="rk-diameter-btn active" data-dim="16">rura Ø 16&#215;2 mm</button>
                        <button class="rk-diameter-btn" data-dim="17">rura Ø 17&#215;2 mm</button>
                        <button class="rk-diameter-btn" data-dim="20">rura Ø 20&#215;2 mm</button>
                    </div>
                </div>

                <div class="rk-length-slider-box">
                    <div class="rk-slider-labels">
                        <span class="rk-slider-title">Całkowita Długość Obwodu (L)</span>
                        <span class="rk-slider-counter" id="val-length">90 m</span>
                    </div>
                    <input type="range" class="rk-main-range" id="rk-loop-slider" min="40" max="180" step="5" value="90">
                </div>

                <div class="rk-svg-viewport">
                    <svg class="rk-hydraulic-svg" viewBox="0 0 300 110" xmlns="http://www.w3.org/2000/svg">
                        <g transform="translate(10, 5)">
                            <path d="M 25 85 A 35 35 0 1 1 125 85" fill="none" stroke="#e2e8f0" stroke-width="8" stroke-linecap="round"/>
                            <circle cx="75" cy="55" r="5" fill="#334155"/>
                            <line class="svg-gauge-pointer" x1="75" y1="55" x2="45" y2="55" stroke-width="3" stroke-linecap="round"/>
                            <text x="75" y="100" font-size="11" font-weight="900" fill="#334155" text-anchor="middle">OPÓR (kPa)</text>
                        </g>

                        <g transform="translate(150, 10)">
                            <rect x="0" y="25" width="60" height="40" rx="6" fill="none" stroke="#cbd5e1" stroke-width="2"/>
                            <path d="M 10 45 L 50 45" fill="none" stroke-width="5" stroke-linecap="round" class="svg-pipe-flow"/>
                            <text x="30" y="20" font-size="10" font-weight="800" fill="#64748b" text-anchor="middle">PRZEPŁYW</text>
                        </g>

                        <g transform="translate(230, 5)">
                            <rect x="25" y="15" width="25" height="70" rx="2" fill="#f8fafc" stroke="#64748b" stroke-width="2"/>
                            <line x1="30" y1="30" x2="38" y2="30" stroke="#94a3b8" stroke-width="1"/>
                            <line x1="30" y1="45" x2="43" y2="45" stroke="#94a3b8" stroke-width="1.5"/>
                            <line x1="30" y1="60" x2="38" y2="60" stroke="#94a3b8" stroke-width="1"/>
                            <line x1="30" y1="75" x2="43" y2="75" stroke="#94a3b8" stroke-width="1.5"/>
                            <rect class="svg-rotameter-float" x="28" y="40" width="19" height="6" rx="1"/>
                            <text x="37" y="100" font-size="11" font-weight="900" fill="#334155" text-anchor="middle">L/MIN</text>
                        </g>
                    </svg>
                </div>
            </div>

            <div class="rk-sim-outputs">
                <div class="rk-output-card rk-card-hydraulics">
                    <div class="rk-card-label">Spadek Ciśnienia Pętli</div>
                    <div class="rk-card-value" id="val-pressure">11.2 kPa</div>
                    <div class="rk-card-comment">Układ stabilny. Straty ciśnienia mieszczą się w normatywnym limicie pompy obiegowej.</div>
                </div>

                <div class="rk-output-card rk-card-hydraulics">
                    <div class="rk-card-label">Stan Hydrauliczny Obwodu</div>
                    <div class="rk-card-value rk-val-status" id="val-status">Optymalny</div>
                    <div class="rk-card-comment" id="desc-status">Przepływ laminarany prawidłowy. Rotametr reaguje na nastawę.</div>
                </div>

                <div class="rk-error-panel">
                    <strong>Upośledzenie hydrauliczne pompy!</strong>
                    Opory liniowe rury drastycznie zdławiły przepływ. Rotametr opadł w okolice <strong>0,2 l/min</strong>. Ta pętla będzie całkowicie zimna. Wymagany podział na mniejsze obwody na etapie <a href="https://projekt-ogrzewania.pl/jak-zaplanowac-rozmieszczenie-petli-grzewczych-w-ogrzewaniu-podlogowym/" class="rk-loop-link" style="color: #7f1d1d;">rozmieszczenia obwodów</a>.
                </div>
            </div>

        </div>
    </div>

    <div class="rk-loop-limits">
        <h3>Maksymalne granice długości pętli rur według standardu HVAC</h3>
        <div class="rk-limits-grid">
            
            <div class="rk-limit-item">
                <div class="rk-limit-diameter">Rura Ø 16&#215;2 mm</div>
                <div class="rk-limit-length">max 120 m</div>
                <p class="rk-limit-desc">Absolutny limit dla instalacji domowych. Zalecana inżynierska długość robocza to <strong>80–100 m</strong>.</p>
            </div>

            <div class="rk-limit-item">
                <div class="rk-limit-diameter">Rura Ø 17&#215;2 mm</div>
                <div class="rk-limit-length">max 140 m</div>
                <p class="rk-limit-desc">Zwiększona średnica wewnętrzna pozwala na wydłużenie obwodu przy zachowaniu stabilności hydraulicznej.</p>
            </div>

            <div class="rk-limit-item">
                <div class="rk-limit-diameter">Rura Ø 20&#215;2 mm</div>
                <div class="rk-limit-length">max 160 m</div>
                <p class="rk-limit-desc">Stosowana na dużych przestrzeniach (hale, magazyny, obiekty przemysłowe) ze względu na dużą sztywność gięcia.</p>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-loop-app');
        if (container) {
            container.innerHTML = `
                <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900; font-family:sans-serif; border: 2px solid #ef4444;">
                    <div style="font-size:30px; margin-bottom:10px;">⚠️</div>
                    BŁĄD LICENCJI:<br>Kontener inżynieryjny należy do serwisu Projekt-Ogrzewania.pl. Wykryto próbę nieautoryzowanego użycia skryptu.
                </div>
            `;
            return;
        }
    }

    // Zmienne operacyjne i stanowe
    const slider = document.getElementById('rk-loop-slider');
    const layout = document.getElementById('rk-loop-core');
    const dimButtons = document.querySelectorAll('.rk-diameter-btn');

    const valLength = document.getElementById('val-length');
    const valPressure = document.getElementById('val-pressure');
    const valStatus = document.getElementById('val-status');
    const descStatus = document.getElementById('desc-status');

    // Elementy SVG do fizycznej animacji
    const svgPointer = document.querySelector('.svg-gauge-pointer');
    const svgFloat = document.querySelector('.svg-rotameter-float');

    let currentDim = 16; // Domyślna średnica rury

    const limitMap = {
        16: { max: 120, warn: 100, factor: 0.0014 },
        17: { max: 140, warn: 115, factor: 0.0010 },
        20: { max: 160, warn: 135, factor: 0.0006 }
    };

    function recalculateHydraulics() {
        const len = parseInt(slider.value);
        valLength.textContent = len + ' m';

        const config = limitMap[currentDim];

        // Wyliczenie oporów (wzrost kwadratowy ze współczynnikiem dla średnicy)
        let pressure = Math.pow(len, 2) * config.factor;
        valPressure.textContent = pressure.toFixed(1) + ' kPa';

        // Mapowanie parametrów fizycznych na ruch elementów SVG
        // Kąt wskazówki manometru: od -45deg do 135deg
        let angle = -45 + (pressure / 45) * 180;
        if(angle > 140) angle = 140; // Max wychylenie
        svgPointer.style.transform = `rotate(${angle}deg)`;

        // Pozycja pływaka rotametru (y w dół = mniejszy przepływ)
        // Zakres bazowy y: od 20 (max przepływ) do 65 (przepływ zablokowany)
        let floatY = 20 + (pressure / 40) * 45;
        if(floatY > 65) floatY = 65;
        svgFloat.style.transform = `translateY(${floatY - 40}px)`;

        // Zarządzanie stanami wizualnymi i komentarzami inżynierskimi
        layout.classList.remove('state-safe', 'state-warn', 'state-danger');

        if(len <= config.warn) {
            layout.classList.add('state-safe');
            valStatus.textContent = "Optymalny";
            descStatus.textContent = "Przepływ laminarny prawidłowy. Rotametr reaguje na nastawę rozdzielacza.";
        } 
        else if (len > config.warn && len <= config.max) {
            layout.classList.add('state-warn');
            valStatus.textContent = "Ostrzeżenie";
            descStatus.textContent = "Zwiększone opory hydrauliczne. Pompa obiegowa pracuje na wyższym biegu.";
        } 
        else {
            layout.classList.add('state-danger');
            valStatus.textContent = "Przekroczenie limitu";
            descStatus.textContent = "Zablokowanie hydrauliczne obwodu. Brak możliwości wyregulowania pętli.";
        }
    }

    // Obsługa przycisków wyboru średnicy
    dimButtons.forEach(btn => {
        btn.addEventListener('click', function() {
            dimButtons.forEach(b => b.classList.remove('active'));
            this.classList.add('active');
            currentDim = parseInt(this.getAttribute('data-dim'));
            recalculateHydraulics();
        });
    });

    if(slider) {
        slider.addEventListener('input', recalculateHydraulics);
        recalculateHydraulics(); // inicjalizacja startowa
    }
});
</script>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"></blockquote>



<style>
:root {
    --rk-vessel-dark: #0f172a;
    --rk-vessel-darker: #020617;
    --rk-vessel-brand: #0ea5e9; /* Woda / Błękit */
    --rk-vessel-brand-light: #e0f2fe;
    --rk-vessel-accent: #f43f5e; /* Naczynie wzbiorcze / Czerwień */
    --rk-vessel-success: #10b981;
    --rk-vessel-bg: #ffffff;
    --rk-vessel-surface: #f8fafc;
    --rk-vessel-border: #cbd5e1;
    --rk-vessel-text: #334155;
    --rk-vessel-muted: #64748b;
    --rk-vessel-formula: #1e293b;
    --rk-vessel-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.15);
}

.rk-vessel-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-vessel-bg);
    border-radius: 24px;
    box-shadow: var(--rk-vessel-shadow);
    border: 1px solid var(--rk-vessel-border);
    overflow: hidden;
}

/* --- NAGŁÓWEK --- */
.rk-vessel-header {
    background: linear-gradient(135deg, var(--rk-vessel-darker) 0%, var(--rk-vessel-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-vessel-brand);
}

.rk-vessel-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #7dd3fc;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(125, 211, 252, 0.3);
}

.rk-vessel-header h2 {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-vessel-header h2 span { color: var(--rk-vessel-brand); }

.rk-vessel-lead {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-vessel-link {
    color: #7dd3fc;
    text-decoration: none;
    border-bottom: 1px dashed rgba(125, 211, 252, 0.4);
    font-weight: 600;
    transition: all 0.3s;
}

.rk-vessel-link:hover { color: #ffffff; border-bottom-style: solid; }

/* --- INTERAKTYWNY SYMULATOR --- */
.rk-vessel-interactive {
    padding: 40px 50px;
    background: var(--rk-vessel-surface);
}

.rk-vessel-interactive h3 {
    text-align: center;
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-vessel-dark);
    margin: 0 0 30px 0;
}

.rk-sim-layout {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 30px;
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-vessel-border);
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

/* Kolumna Lewa - Suwaki i parametry */
.rk-sim-controls {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-control-group {
    background: var(--rk-vessel-surface);
    padding: 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-vessel-border);
}

.rk-control-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.rk-control-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-vessel-dark);
    text-transform: uppercase;
}

.rk-control-value {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-vessel-brand);
}

/* Suwaki */
.rk-range-input {
    -webkit-appearance: none;
    width: 100%;
    height: 8px;
    border-radius: 4px;
    background: #cbd5e1;
    outline: none;
}

.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-vessel-brand);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

.rk-range-input::-webkit-slider-thumb:active { transform: scale(1.15); }

/* Pigułki rozdzielacza */
.rk-pill-selector {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.rk-pill-btn {
    flex: 1;
    min-width: 60px;
    padding: 10px 5px;
    background: #ffffff;
    border: 1px solid var(--rk-vessel-border);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-vessel-muted);
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
}

.rk-pill-btn:hover { border-color: var(--rk-vessel-brand); color: var(--rk-vessel-brand); }
.rk-pill-btn.active { background: var(--rk-vessel-brand); color: #ffffff; border-color: var(--rk-vessel-brand); }

/* Kolumna Prawa - Wyniki i SVG */
.rk-sim-results {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-svg-viewport {
    background: #ffffff;
    border-radius: 16px;
    border: 1px dashed var(--rk-vessel-border);
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 220px;
    position: relative;
}

.rk-vessel-svg { width: 100%; max-width: 250px; height: auto; }

/* SVG Animacje */
.anim-water-level { transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); transform-origin: bottom; }
.anim-diaphragm { transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.anim-gauge-needle { transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); transform-origin: 75px 55px; }

/* Karty Wyników */
.rk-result-card {
    background: #ffffff;
    border: 1px solid var(--rk-vessel-border);
    border-radius: 12px;
    padding: 15px 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-result-card.highlight {
    border-color: var(--rk-vessel-accent);
    background: #fff1f2;
}

.rk-res-label { font-size: 12px; font-weight: 800; color: var(--rk-vessel-muted); text-transform: uppercase; }
.rk-res-value { font-size: 22px; font-weight: 900; color: var(--rk-vessel-dark); }
.highlight .rk-res-label { color: #be123c; }
.highlight .rk-res-value { color: var(--rk-vessel-accent); }

/* --- SEKCJA WZORÓW --- */
.rk-vessel-formulas {
    padding: 0 50px 40px;
    background: var(--rk-vessel-surface);
}

.rk-formula-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
}

.rk-formula-box {
    background: #ffffff;
    border: 1px solid var(--rk-vessel-border);
    border-radius: 16px;
    padding: 25px;
    display: grid;
    grid-template-columns: 350px 1fr;
    gap: 30px;
    align-items: center;
}

.rk-formula-math {
    background: var(--rk-vessel-formula);
    padding: 20px;
    border-radius: 12px;
    color: #f8fafc;
    font-family: 'Courier New', Courier, monospace;
    font-size: 18px;
    font-weight: 700;
    text-align: center;
    border-left: 4px solid var(--rk-vessel-brand);
    letter-spacing: 0.5px;
}

.rk-formula-math sub { font-size: 11px; color: #93c5fd; }
.rk-formula-math span.operator { color: #f43f5e; margin: 0 5px; }

/* Custom Fraction for HTML */
.rk-html-fraction {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    vertical-align: middle;
    margin: 0 5px;
    line-height: 1.2;
}
.rk-html-numerator { border-bottom: 2px solid #cbd5e1; padding: 0 5px; }
.rk-html-denominator { padding: 0 5px; }

.rk-formula-desc h4 { margin: 0 0 10px 0; font-size: 16px; font-weight: 800; color: var(--rk-vessel-dark); }
.rk-formula-desc p { margin: 0; font-size: 14px; line-height: 1.6; color: var(--rk-vessel-text); }
.rk-formula-desc strong { font-weight: 800; color: var(--rk-vessel-dark); }

@media (max-width: 768px) {
    .rk-vessel-header, .rk-vessel-interactive, .rk-vessel-formulas { padding: 30px 20px; }
    .rk-vessel-header h2 { font-size: 24px; }
    .rk-sim-layout, .rk-formula-box { grid-template-columns: 1fr; }
    .rk-formula-box { gap: 15px; padding: 20px; }
    .rk-svg-viewport { min-height: 180px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/"
    },
    "headline": "Ile litrów wody mieści się w instalacji podłogówki i jak dobrać naczynie wzbiorcze?",
    "description": "Procedura obliczeniowa pojemności zładu i naczynia przeponowego według normy PN-EN 12828. Poznaj wzory i kalkulator pojemności rur PEX/PERT 16x2 mm.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-24",
    "dateModified": "2026-05-24"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#dataset",
    "name": "Algorytm doboru naczynia wzbiorczego PN-EN 12828",
    "description": "Matematyczne zestawienie kroków i współczynników wymaganych do obliczenia całkowitego zładu wodnego i minimalnej pojemności naczynia kompensacyjnego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "pojemność wodna rury pex 16",
      "jak dobrać naczynie wzbiorcze",
      "wzór na naczynie przeponowe",
      "zład wody ogrzewanie podłogowe",
      "norma PN-EN 12828"
    ],
    "measurementTechnique": "Szeregowanie algorytmiczne wg norm europejskich, uwzględniające rozszerzalność wody, ciśnienie wstępne i zapas bezpieczeństwa.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Pojemność rur: V_rur = L_calk * 0,113 l/mb",
        "Pojemność instalacji: V_inst = V_rur + V_rozdz + V_buf",
        "Pojemność użytkowa: V_e = V_inst * e * 1,3",
        "Pojemność nominalna: V_n = V_e * ((p_max + 1) / (p_max - p_p))"
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/ile-wody-miesci-sie-w-1-metrze-rury-pex-pert-16/#webapp",
    "name": "Kalkulator Pojemności Zładu i Naczynia Wzbiorczego",
    "description": "Interaktywne narzędzie obliczające pojemność całkowitą instalacji ogrzewania podłogowego oraz dobierające normatywną pojemność naczynia przeponowego.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-vessel-container" id="rk-vessel-app">
    
    <div class="rk-vessel-header">
        <div class="rk-vessel-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            Pojemność i Kompensacja
        </div>
        <h2>Ile litrów wody mieści się w instalacji podłogówki i <span>jak dobrać naczynie wzbiorcze?</span></h2>
        <p class="rk-vessel-lead">
            Pojemność wodna jednego metra bieżącego rury PERT/PEX o średnicy 16&#215;2 mm wynosi dokładnie <strong>0,113 litra</strong>. Do obliczenia całkowitej pojemności zładu instalacji należy zsumować objętość rur podłogówki, belek <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-vessel-link">rozdzielacza</a> oraz źródła ciepła (np. <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-vessel-link">bufora</a>). <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/" class="rk-vessel-link">Naczynie wzbiorcze</a> dobiera się w oparciu o normę <strong>PN-EN 12828</strong>, przyjmując minimalny współczynnik rezerwy pojemności na poziomie 4% całkowitej objętości zładu.
        </p>
    </div>

    <div class="rk-vessel-interactive">
        <h3>Kalkulator Zładu i Naczynia Wzbiorczego</h3>
        
        <div class="rk-sim-layout">
            
            <div class="rk-sim-controls">
                
                <div class="rk-control-group">
                    <div class="rk-control-header">
                        <span class="rk-control-label">Długość rur (L<sub>całk</sub>)</span>
                        <span class="rk-control-value" id="val-pipe">800 m</span>
                    </div>
                    <input type="range" class="rk-range-input" id="range-pipe" min="100" max="2500" step="50" value="800">
                </div>

                <div class="rk-control-group">
                    <div class="rk-control-header">
                        <span class="rk-control-label">Zbiornik Buforowy</span>
                        <span class="rk-control-value" id="val-buffer">60 L</span>
                    </div>
                    <input type="range" class="rk-range-input" id="range-buffer" min="0" max="500" step="10" value="60">
                </div>

                <div class="rk-control-group">
                    <div class="rk-control-header">
                        <span class="rk-control-label">Liczba sekcji rozdzielacza</span>
                    </div>
                    <div class="rk-pill-selector">
                        <button class="rk-pill-btn" data-sec="4">4 sek.</button>
                        <button class="rk-pill-btn" data-sec="8">8 sek.</button>
                        <button class="rk-pill-btn active" data-sec="12">12 sek.</button>
                        <button class="rk-pill-btn" data-sec="16">16 sek.</button>
                    </div>
                </div>

            </div>

            <div class="rk-sim-results">
                
                <div class="rk-svg-viewport">
                    <svg class="rk-vessel-svg" viewBox="0 0 200 160" xmlns="http://www.w3.org/2000/svg">
                        <path d="M 70 20 Q 100 10 130 20 L 130 140 Q 100 150 70 140 Z" fill="#e2e8f0" stroke="#94a3b8" stroke-width="4"/>
                        <path class="anim-diaphragm" id="svg-diaphragm" d="M 72 80 Q 100 110 128 80" fill="none" stroke="#334155" stroke-width="3" stroke-dasharray="4"/>
                        <g transform="translate(0, 145)">
                            <path class="anim-water-level" id="svg-water" d="M 72 -5 Q 100 5 128 -5 L 128 -65 Q 100 -55 72 -65 Z" fill="#0ea5e9" opacity="0.8"/>
                        </g>
                        <rect x="95" y="145" width="10" height="15" fill="#64748b"/>
                        <path d="M 85 155 L 115 155" fill="none" stroke="#64748b" stroke-width="4"/>
                        
                        <g transform="translate(150, 40)">
                            <circle cx="20" cy="20" r="18" fill="#ffffff" stroke="#cbd5e1" stroke-width="3"/>
                            <path d="M 8 20 A 12 12 0 0 1 32 20" fill="none" stroke="#10b981" stroke-width="4"/>
                            <path d="M 32 20 A 12 12 0 0 1 12 28" fill="none" stroke="#f43f5e" stroke-width="4"/>
                            <circle cx="20" cy="20" r="3" fill="#334155"/>
                            <line class="anim-gauge-needle" id="svg-needle" x1="20" y1="20" x2="10" y2="10" stroke="#334155" stroke-width="2" stroke-linecap="round" style="transform-origin: 20px 20px;"/>
                        </g>
                    </svg>
                </div>

                <div class="rk-result-card">
                    <div class="rk-res-label">Całkowity zład (V<sub>inst</sub>)</div>
                    <div class="rk-res-value" id="res-total">156.4 L</div>
                </div>

                <div class="rk-result-card highlight">
                    <div class="rk-res-label">Min. Naczynie (V<sub>n</sub>)</div>
                    <div class="rk-res-value" id="res-vessel">12 L</div>
                </div>

            </div>

        </div>
    </div>

    <div class="rk-vessel-formulas">
        <h3 style="font-size: 20px; font-weight: 800; color: var(--rk-vessel-dark); margin: 0 0 20px 0; text-align: center;">Procedura obliczeniowa wg PN-EN 12828</h3>
        
        <div class="rk-formula-grid">
            
            <div class="rk-formula-box">
                <div class="rk-formula-math">
                    V<sub>rur</sub> = L<sub>całk</sub> <span class="operator">&times;</span> 0,113 <span style="font-size:12px;color:#94a3b8;">l/mb</span>
                </div>
                <div class="rk-formula-desc">
                    <h4>1. Pojemność wodna rur (V<sub>rur</sub>)</h4>
                    <p>Mnożymy całkowitą długość zastosowanej rury grzewczej PEX 16&#215;2 mm przez jej stałą pojemność wewnętrzną wynoszącą <strong>0,113 litra na metr bieżący</strong>.</p>
                </div>
            </div>

            <div class="rk-formula-box">
                <div class="rk-formula-math">
                    V<sub>inst</sub> = V<sub>rur</sub> <span class="operator">+</span> V<sub>rozdz</sub> <span class="operator">+</span> V<sub>buf</sub>
                </div>
                <div class="rk-formula-desc">
                    <h4>2. Całkowita pojemność instalacji (V<sub>inst</sub>)</h4>
                    <p>Gdzie <strong>V<sub>rozdz</sub></strong> to objętość belek i armatury (średnio 0,5 l na każdą sekcję rozdzielacza), a <strong>V<sub>buf</sub></strong> to pojemność ewentualnego zbiornika buforowego lub sprzęgła.</p>
                </div>
            </div>

            <div class="rk-formula-box">
                <div class="rk-formula-math">
                    V<sub>e</sub> = V<sub>inst</sub> <span class="operator">&times;</span> e <span class="operator">&times;</span> 1,3
                </div>
                <div class="rk-formula-desc">
                    <h4>3. Pojemność użytkowa naczynia (V<sub>e</sub>)</h4>
                    <p>Gdzie <strong>e</strong> to współczynnik rozszerzalności wody (dla t<sub>z</sub> = 45°C wynosi <strong>0,0095</strong>), a <strong>1,3</strong> to wymagany współczynnik bezpieczeństwa rezerwy wody.</p>
                </div>
            </div>

            <div class="rk-formula-box">
                <div class="rk-formula-math" style="display: flex; align-items: center; justify-content: center;">
                    V<sub>n</sub> = V<sub>e</sub> <span class="operator">&times;</span>
                    <div class="rk-html-fraction">
                        <div class="rk-html-numerator">p<sub>max</sub> + 1</div>
                        <div class="rk-html-denominator">p<sub>max</sub> &#8211; p<sub>p</sub></div>
                    </div>
                </div>
                <div class="rk-formula-desc">
                    <h4>4. Minimalna pojemność nominalna (V<sub>n</sub>)</h4>
                    <p>Gdzie <strong>p<sub>max</sub></strong> to max. dopuszczalne ciśnienie (zawór bezpieczeństwa – zwykle 3,0 bar), a <strong>p<sub>p</sub></strong> to ciśnienie wstępne gazu w naczyniu (zwykle 1,0–1,5 bar).</p>
                </div>
            </div>

        </div>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-vessel-app');
        if (container) {
            container.innerHTML = `
                <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900; font-family:sans-serif; border: 2px solid #ef4444;">
                    <div style="font-size:30px; margin-bottom:10px;">⚠️</div>
                    BŁĄD LICENCJI:<br>Kontener inżynieryjny należy do serwisu Projekt-Ogrzewania.pl. Wykryto próbę kradzieży kodu źródłowego.
                </div>
            `;
            return;
        }
    }

    // Zmienne UI
    const rangePipe = document.getElementById('range-pipe');
    const rangeBuffer = document.getElementById('range-buffer');
    const pillSecs = document.querySelectorAll('.rk-pill-btn');
    
    const valPipe = document.getElementById('val-pipe');
    const valBuffer = document.getElementById('val-buffer');
    const resTotal = document.getElementById('res-total');
    const resVessel = document.getElementById('res-vessel');

    // SVG Elementy
    const svgWater = document.getElementById('svg-water');
    const svgDiaphragm = document.getElementById('svg-diaphragm');
    const svgNeedle = document.getElementById('svg-needle');

    let sections = 12; // Domyślna wartość
    const standardVessels = [8, 12, 18, 24, 35, 50, 80, 100, 150];

    function calculateVessel() {
        const L = parseFloat(rangePipe.value);
        const buf = parseFloat(rangeBuffer.value);
        
        // Update Labels
        valPipe.textContent = L + ' m';
        valBuffer.textContent = buf + ' L';

        // Matematyka wg PN-EN 12828
        const V_rur = L * 0.113;
        const V_rozdz = sections * 0.5;
        const V_inst = V_rur + V_rozdz + buf;
        
        // Dla 45 st C, e = 0.0095
        const V_e = V_inst * 0.0095 * 1.3;
        
        // V_n = V_e * ((3 + 1) / (3 - 1.2)) = V_e * (4 / 1.8) = V_e * 2.222
        const V_n_min = V_e * 2.222;

        // Znajdź najbliższe większe naczynie handlowe
        let chosenVessel = standardVessels[standardVessels.length - 1];
        for(let v of standardVessels) {
            if(v >= V_n_min) {
                chosenVessel = v;
                break;
            }
        }

        // Update DOM
        resTotal.textContent = V_inst.toFixed(1) + ' L';
        resVessel.textContent = chosenVessel + ' L';

        // Animacja SVG (Wizualizacja wypełnienia/ciśnienia)
        // Im większy zład, tym membrana idzie wyżej, woda wypełnia się mocniej
        let fillRatio = V_n_min / 50; // Arbitralna skala dla animacji
        if(fillRatio > 1) fillRatio = 1;
        if(fillRatio < 0.2) fillRatio = 0.2;

        // Woda - skalowanie w Y (od dołu, od -145px)
        svgWater.style.transform = `scaleY(${fillRatio * 1.2})`;
        
        // Membrana - przesuwanie w górę
        let dShift = -20 * fillRatio;
        svgDiaphragm.style.transform = `translateY(${dShift}px)`;

        // Zegar - rotacja wskazówki (symulacja wzrostu ciśnienia z objętością)
        let angle = -45 + (fillRatio * 180);
        if(angle > 135) angle = 135;
        svgNeedle.style.transform = `rotate(${angle}deg)`;
    }

    // Event Listenery
    if(rangePipe && rangeBuffer) {
        rangePipe.addEventListener('input', calculateVessel);
        rangeBuffer.addEventListener('input', calculateVessel);
        
        pillSecs.forEach(btn => {
            btn.addEventListener('click', function() {
                pillSecs.forEach(b => b.classList.remove('active'));
                this.classList.add('active');
                sections = parseInt(this.getAttribute('data-sec'));
                calculateVessel();
            });
        });

        // Init
        calculateVessel();
    }
});
</script>



<style>
:root {
    --rk-cases-dark: #0f172a;
    --rk-cases-panel: #1e293b;
    --rk-cases-primary: #3b82f6; /* Blue for tech/math */
    --rk-cases-success: #10b981; /* Green for correct calcs */
    --rk-cases-danger: #ef4444; /* Red for errors (Case 2) */
    --rk-cases-warning: #f59e0b;
    --rk-cases-bg: #f8fafc;
    --rk-cases-border: #e2e8f0;
    --rk-cases-text: #334155;
    --rk-cases-muted: #64748b;
}

.rk-cases-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(15, 23, 42, 0.15);
    border: 1px solid rgba(59, 130, 246, 0.3);
    overflow: hidden;
}

/* Header */
.rk-cases-header {
    background: linear-gradient(135deg, var(--rk-cases-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 5px solid var(--rk-cases-primary);
    position: relative;
}

.rk-cases-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(147, 197, 253, 0.3);
}

.rk-cases-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 15px 0;
    color: #ffffff;
}

.rk-cases-title span { color: #60a5fa; }

.rk-cases-desc {
    color: #cbd5e1;
    font-size: 15px;
    line-height: 1.7;
    margin: 0;
    max-width: 800px;
}

/* Navigation / Tabs */
.rk-cases-nav {
    display: flex;
    background: #f1f5f9;
    border-bottom: 1px solid var(--rk-cases-border);
    overflow-x: auto;
    scrollbar-width: none;
}
.rk-cases-nav::-webkit-scrollbar { display: none; }

.rk-case-tab {
    flex: 1;
    padding: 20px 15px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-cases-muted);
    cursor: pointer;
    transition: all 0.3s;
    white-space: nowrap;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-case-tab:hover {
    color: var(--rk-cases-primary);
    background: rgba(59, 130, 246, 0.05);
}

.rk-case-tab.active {
    color: var(--rk-cases-primary);
    border-bottom-color: var(--rk-cases-primary);
    background: #ffffff;
}

/* Content Area */
.rk-cases-content {
    background: #ffffff;
    padding: 0;
}

.rk-case-panel {
    display: none;
    animation: caseFade 0.4s ease-out;
}

.rk-case-panel.active {
    display: grid;
    grid-template-columns: 1fr 300px;
}

@keyframes caseFade {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Left: Data & Math */
.rk-case-data {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-cases-border);
}

.rk-case-data h3 {
    margin: 0 0 20px 0;
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-cases-dark);
}

.rk-data-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 25px;
}

.rk-data-item {
    background: var(--rk-cases-bg);
    padding: 12px 15px;
    border-radius: 8px;
    border: 1px solid var(--rk-cases-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rk-data-label { font-size: 13px; color: var(--rk-cases-muted); font-weight: 700; }
.rk-data-val { font-size: 14px; font-weight: 900; color: var(--rk-cases-dark); }

.rk-math-block {
    background: #1e293b;
    border-radius: 12px;
    padding: 20px;
    color: #f8fafc;
    font-family: 'Courier New', Courier, monospace;
    font-size: 15px;
    margin-bottom: 25px;
    border-left: 4px solid var(--rk-cases-primary);
    box-shadow: inset 0 4px 6px rgba(0,0,0,0.2);
}

.rk-math-line {
    margin-bottom: 10px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    line-height: 1.5;
}
.rk-math-line:last-child { margin-bottom: 0; }

.rk-math-highlight {
    color: #38bdf8;
    font-weight: 900;
    font-size: 17px;
}

.rk-math-result {
    color: #10b981; /* Green for results */
    font-weight: 900;
    font-size: 18px;
}

.rk-case-panel[data-status="fail"] .rk-math-result {
    color: #ef4444; /* Red for bad results */
}

/* Right: Visuals & Conclusion */
.rk-case-visuals {
    background: #f8fafc;
    display: flex;
    flex-direction: column;
}

.rk-svg-wrapper {
    height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: #e2e8f0;
    border-bottom: 1px solid var(--rk-cases-border);
    position: relative;
    overflow: hidden;
}

.rk-case-conclusion {
    padding: 30px;
    flex-grow: 1;
}

.rk-case-conclusion h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
}

.rk-case-panel[data-status="success"] .rk-case-conclusion h4 { color: var(--rk-cases-success); }
.rk-case-panel[data-status="fail"] .rk-case-conclusion h4 { color: var(--rk-cases-danger); }
.rk-case-panel[data-status="info"] .rk-case-conclusion h4 { color: var(--rk-cases-primary); }

.rk-case-conclusion p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-cases-text);
}

/* Custom Math elements to avoid LaTeX inside HTML */
.rk-fraction {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    vertical-align: middle;
    margin: 0 5px;
}
.rk-numerator {
    border-bottom: 1px solid #94a3b8;
    padding: 0 5px;
    font-size: 14px;
}
.rk-denominator {
    padding: 0 5px;
    font-size: 14px;
}

/* SVG Animations based on active panel */
.anim-loop-draw { stroke-dasharray: 100; stroke-dashoffset: 100; }
.rk-case-panel.active .anim-loop-draw { animation: drawLoop 2s forwards ease-out; }
.rk-case-panel.active .anim-loop-draw:nth-child(2) { animation-delay: 0.5s; }
.rk-case-panel.active .anim-loop-draw:nth-child(3) { animation-delay: 1s; }
.rk-case-panel.active .anim-loop-draw:nth-child(4) { animation-delay: 1.5s; }
@keyframes drawLoop { to { stroke-dashoffset: 0; } }

.rk-case-panel.active .anim-gauge-needle { animation: overPressure 2s forwards cubic-bezier(0.4, 0, 0.2, 1); }
@keyframes overPressure { 
    0% { transform: rotate(-45deg); } 
    70% { transform: rotate(135deg); stroke: #ef4444; } 
    80% { transform: rotate(120deg); stroke: #ef4444; } 
    100% { transform: rotate(130deg); stroke: #ef4444; } 
}

.rk-case-panel.active .anim-vessel-fill { animation: fillVessel 2s forwards ease-out; }
@keyframes fillVessel { from { transform: scaleY(0); } to { transform: scaleY(1); } }

/* Mobile View */
@media (max-width: 768px) {
    .rk-cases-header { padding: 30px 20px; }
    .rk-cases-title { font-size: 24px; }
    .rk-case-panel.active { grid-template-columns: 1fr; }
    .rk-case-data { padding: 30px 20px; border-right: none; border-bottom: 1px solid var(--rk-cases-border); }
    .rk-data-grid { grid-template-columns: 1fr; gap: 10px; }
    .rk-svg-wrapper { height: 180px; }
    .rk-case-tab { padding: 15px 20px; font-size: 14px; }
    .rk-math-block { padding: 15px; font-size: 13px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#article-case-studies",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/"
    },
    "headline": "Przykłady obliczeniowe instalacji ogrzewania podłogowego – Case Studies",
    "description": "Praktyczne przykłady obliczeń hydraulicznych i termicznych: salon z aneksem, przewymiarowana pętla 150m oraz dobór naczynia wzbiorczego.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-23",
    "dateModified": "2026-05-23"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#dataset-case-studies",
    "name": "Wyniki Symulacji Parametrów Ogrzewania Podłogowego",
    "description": "Szczegółowe dane liczbowe, wzory i konkluzje inżynierskie dla 3 popularnych wariantów instalacyjnych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "obliczenia ogrzewania podłogowego",
      "dobór naczynia wzbiorczego",
      "prędkość przepływu wody w rurze",
      "strumień masowy podłogówki",
      "podział na pętle grzewcze"
    ],
    "measurementTechnique": "Szacunki numeryczne oparte o normę PN-EN 1264 z zastosowaniem fizycznych równań zachowania energii i oporów przepływu.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Salon 45m2: Zapotrzebowanie 1800W generuje 4 pętle po 77m przy rozstawie 15cm.",
        "Pętla 150m: Wymaga przepływu 0.344 m3/h i generuje niszczący opór rzędu 43 kPa.",
        "Zład 1050m rury: Wymaga naczynia wzbiorczego o objętości min. 8 litrów dla bezpieczeństwa."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#webapp-case-studies",
    "name": "Kalkulator Prędkości i Pojemności Wodnej",
    "description": "Interaktywny moduł edukacyjny prezentujący analizę 3 przypadków obliczeniowych (Case Studies) z dynamicznymi wykresami SVG i wnioskami.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-cases-container" id="rk-cases-app">
    
    <div class="rk-cases-header">
        <div class="rk-cases-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Analiza Przypadków (Case Studies)
        </div>
        <h2 class="rk-cases-title">Przykłady obliczeniowe instalacji <span>podłogówki</span></h2>
        <p class="rk-cases-desc">Poniżej przedstawiam trzy rzeczywiste scenariusze z kart projektowych. Zobacz, jak wzory matematyczne normy PN-EN przekładają się na dobór rur, analizę błędów wykonawczych i bezpieczeństwo hydrauliczne układu.</p>
    </div>

    <div class="rk-cases-nav">
        <button class="rk-case-tab active" data-target="case-1">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
            1. Salon 45 m² (Idealny)
        </button>
        <button class="rk-case-tab" data-target="case-2">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
            2. Pętla 150 m (Błąd)
        </button>
        <button class="rk-case-tab" data-target="case-3">
            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
            3. Pojemność i Wzbiorcze
        </button>
    </div>

    <div class="rk-cases-content">
        
        <div class="rk-case-panel active" id="case-1" data-status="success">
            <div class="rk-case-data">
                <h3>Przykład 1: Salon z aneksem</h3>
                
                <div class="rk-data-grid">
                    <div class="rk-data-item"><span class="rk-data-label">Pow. podłogi (A):</span> <span class="rk-data-val">45 m²</span></div>
                    <div class="rk-data-item"><span class="rk-data-label">Standard (q):</span> <span class="rk-data-val">40 W/m²</span></div>
                    <div class="rk-data-item"><span class="rk-data-label">Pow. grzewcza (A<sub>grz</sub>):</span> <span class="rk-data-val">40 m²</span></div>
                    <div class="rk-data-item"><span class="rk-data-label">Rozstaw (a):</span> <span class="rk-data-val">15 cm (0.15m)</span></div>
                    <div class="rk-data-item"><span class="rk-data-label">Zabudowa stała:</span> <span class="rk-data-val">5 m²</span></div>
                    <div class="rk-data-item"><span class="rk-data-label">Długość dobiegu:</span> <span class="rk-data-val">16 m</span></div>
                </div>

                <div class="rk-math-block">
                    <div class="rk-math-line">
                        <span>Zapotrzebowanie (Q<sub>obl</sub>):</span>
                        <span class="rk-math-highlight">45 &times; 40</span>
                        <span>=</span>
                        <span class="rk-math-result">1800 W</span>
                    </div>
                    <div class="rk-math-line" style="margin-top:15px;">
                        <span>Dł. rury (L):</span>
                        <span>(40 / 0.15) &times; 1.1 + 16</span>
                        <span>=</span>
                        <span class="rk-math-highlight">309.33 m</span>
                    </div>
                    <div class="rk-math-line" style="margin-top:15px; border-top:1px dashed #475569; padding-top:15px;">
                        <span>Podział:</span>
                        <span>309.33 / 100 &approx; 3.09</span>
                        <span>&rarr;</span>
                        <span class="rk-math-result">4 pętle (po ~77m)</span>
                    </div>
                </div>
            </div>
            <div class="rk-case-visuals">
                <div class="rk-svg-wrapper">
                    <svg viewBox="0 0 100 100" style="width:100%; height:100%;">
                        <rect x="10" y="20" width="15" height="60" fill="#334155" rx="3"/>
                        <path class="anim-loop-draw" d="M 25 30 L 80 30 Q 90 30 90 40 L 40 40" fill="none" stroke="#10b981" stroke-width="3" stroke-linecap="round"/>
                        <path class="anim-loop-draw" d="M 25 45 L 80 45 Q 90 45 90 55 L 40 55" fill="none" stroke="#10b981" stroke-width="3" stroke-linecap="round"/>
                        <path class="anim-loop-draw" d="M 25 60 L 80 60 Q 90 60 90 70 L 40 70" fill="none" stroke="#10b981" stroke-width="3" stroke-linecap="round"/>
                        <path class="anim-loop-draw" d="M 25 75 L 80 75 Q 90 75 90 85 L 40 85" fill="none" stroke="#10b981" stroke-width="3" stroke-linecap="round"/>
                    </svg>
                </div>
                <div class="rk-case-conclusion">
                    <h4>Wniosek Inżynierski</h4>
                    <p>Podział na 4 krótkie pętle (około 77 metrów każda) gwarantuje bardzo niskie opory hydrauliczne, poniżej 15 kPa. Rotametry dadzą się idealnie wyregulować, a pompa ciepła nie będzie przeciążona.</p>
                </div>
            </div>
        </div>

        <div class="rk-case-panel" id="case-2" data-status="fail">
            <div class="rk-case-data">
                <h3>Przykład 2: Hydraulika zbyt długiej pętli</h3>
                
                <div class="rk-data-grid">
                    <div class="rk-data-item"><span class="rk-data-label">Długość rury (L):</span> <span class="rk-data-val">150 m</span></div>
                    <div class="rk-data-item"><span class="rk-data-label">Śr. wewnętrzna:</span> <span class="rk-data-val">12 mm (16&#215;2)</span></div>
                    <div class="rk-data-item"><span class="rk-data-label">Moc pętli (Q):</span> <span class="rk-data-val">2000 W</span></div>
                    <div class="rk-data-item"><span class="rk-data-label">Schłodzenie (&Delta;T):</span> <span class="rk-data-val">5 K</span></div>
                </div>

                <div class="rk-math-block">
                    <div class="rk-math-line">
                        <span>Wymagany strumień wody (m):</span>
                    </div>
                    <div class="rk-math-line">
                        <span>m =</span>
                        <div class="rk-fraction">
                            <span class="rk-numerator">2000</span>
                            <span class="rk-denominator">4186 &times; 5</span>
                        </div>
                        <span>&times; 3600 &approx;</span>
                        <span class="rk-math-highlight">344 kg/h</span>
                    </div>
                    <div class="rk-math-line" style="margin-top:15px; border-top:1px dashed #475569; padding-top:15px;">
                        <span>Prędkość (v):</span>
                        <span class="rk-math-result" style="color:#f59e0b;">0.85 m/s (Szumy!)</span>
                    </div>
                    <div class="rk-math-line">
                        <span>Opór liniowy dla 150m:</span>
                        <span class="rk-math-result">aż 43 kPa</span>
                    </div>
                </div>
            </div>
            <div class="rk-case-visuals">
                <div class="rk-svg-wrapper">
                    <svg viewBox="0 0 100 100" style="width:100%; height:100%;">
                        <path d="M 20 70 A 40 40 0 1 1 80 70" fill="none" stroke="#cbd5e1" stroke-width="8" stroke-linecap="round"/>
                        <path d="M 60 22 A 40 40 0 0 1 80 70" fill="none" stroke="#ef4444" stroke-width="8" stroke-linecap="round"/>
                        <line class="anim-gauge-needle" x1="50" y1="50" x2="20" y2="50" stroke="#334155" stroke-width="4" stroke-linecap="round" style="transform-origin: 50px 50px;"/>
                        <circle cx="50" cy="50" r="6" fill="#1e293b"/>
                        <text x="50" y="85" font-size="14" font-weight="900" fill="#ef4444" text-anchor="middle">43 kPa</text>
                    </svg>
                </div>
                <div class="rk-case-conclusion">
                    <h4>Błąd Krytyczny!</h4>
                    <p>Żadna standardowa pompa obiegowa nie zapewni tak wysokiego ciśnienia dyspozycyjnego dla jednej pętli przy zachowaniu przepływów na reszcie instalacji. <strong>Efekt: Pętla po prostu przestanie grzać.</strong></p>
                </div>
            </div>
        </div>

        <div class="rk-case-panel" id="case-3" data-status="info">
            <div class="rk-case-data">
                <h3>Przykład 3: Pojemność i Naczynie</h3>
                
                <div class="rk-data-grid">
                    <div class="rk-data-item"><span class="rk-data-label">Pow. domu:</span> <span class="rk-data-val">150 m²</span></div>
                    <div class="rk-data-item"><span class="rk-data-label">Całk. dł. rur:</span> <span class="rk-data-val">1050 m</span></div>
                    <div class="rk-data-item"><span class="rk-data-label">Rozdzielacz:</span> <span class="rk-data-val">12 sekcji</span></div>
                    <div class="rk-data-item"><span class="rk-data-label">Bufor sprzęgłowy:</span> <span class="rk-data-val">60 L</span></div>
                </div>

                <div class="rk-math-block">
                    <div class="rk-math-line">
                        <span>Pojemność rur (V<sub>rur</sub>):</span>
                        <span>1050 &times; 0.113 =</span>
                        <span class="rk-math-highlight">118.65 L</span>
                    </div>
                    <div class="rk-math-line">
                        <span>Całk. zład (V<sub>inst</sub>):</span>
                        <span>118.65 + (12 &times; 0.5) + 60 =</span>
                        <span class="rk-math-highlight">184.65 L</span>
                    </div>
                    <div class="rk-math-line" style="margin-top:15px; border-top:1px dashed #475569; padding-top:15px;">
                        <span>Obj. użytkowa (V<sub>e</sub>):</span>
                        <span>184.65 &times; 0.0095 &times; 1.3 =</span>
                        <span class="rk-math-highlight">2.28 L</span>
                    </div>
                    <div class="rk-math-line">
                        <span>Min. naczynie (V<sub>n</sub>):</span>
                        <span>2.28 &times; 2.22 =</span>
                        <span class="rk-math-result">5.06 L</span>
                    </div>
                </div>
            </div>
            <div class="rk-case-visuals">
                <div class="rk-svg-wrapper">
                    <svg viewBox="0 0 100 100" style="width:100%; height:100%;">
                        <rect x="30" y="20" width="40" height="60" fill="#cbd5e1" rx="20"/>
                        <rect class="anim-vessel-fill" x="30" y="50" width="40" height="30" fill="#3b82f6" rx="15" style="transform-origin: bottom;"/>
                        <line x1="50" y1="20" x2="50" y2="10" stroke="#334155" stroke-width="4"/>
                        <path d="M 30 50 Q 50 40 70 50" fill="none" stroke="#1e293b" stroke-width="2" stroke-dasharray="4"/>
                        <text x="50" y="65" font-size="14" font-weight="900" fill="#ffffff" text-anchor="middle">8 L</text>
                    </svg>
                </div>
                <div class="rk-case-conclusion">
                    <h4>Bezpieczeństwo Układu</h4>
                    <p>Obliczenia wykazują minimalną pojemność na poziomie 5.06 L. Należy zakupić standardowe naczynie o pojemności <strong>8 litrów</strong>. Poleganie na małym, 5-litrowym naczyniu wbudowanym w kocioł doprowadzi do wyrzutów wody przez zawór bezpieczeństwa.</p>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-cases-app');
        if (container) {
            container.innerHTML = `
                <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:20px; font-weight:900; font-family:sans-serif; border: 2px solid #ef4444;">
                    <div style="font-size:30px; margin-bottom:10px;">⚠️</div>
                    BŁĄD LICENCJI:<br>Kontener inżynierski należy do serwisu Projekt-Ogrzewania.pl. Uruchamianie na tej domenie jest nieautoryzowane.
                </div>
            `;
            return;
        }
    }

    // Logika Zakładek (Case Studies)
    const tabs = document.querySelectorAll('.rk-case-tab');
    const panels = document.querySelectorAll('.rk-case-panel');

    tabs.forEach(tab => {
        tab.addEventListener('click', () => {
            const targetId = tab.getAttribute('data-target');
            
            // Czyszczenie klas aktywnych
            tabs.forEach(t => t.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));
            
            // Aktywacja wybranego
            tab.classList.add('active');
            const activePanel = document.getElementById(targetId);
            
            // Restart CSS animations for SVGs by forcing reflow
            if (activePanel) {
                activePanel.classList.remove('active');
                void activePanel.offsetWidth; 
                activePanel.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-darker: #020617;
    --rk-proj-brand: #4f46e5; /* Indigo techniczne */
    --rk-proj-brand-light: #e0e7ff;
    --rk-proj-accent: #06b6d4; /* Cyjan / inżynieryjny akcent */
    --rk-proj-bg: #ffffff;
    --rk-proj-surface: #f8fafc;
    --rk-proj-border: #cbd5e1;
    --rk-proj-text: #334155;
    --rk-proj-muted: #64748b;
    --rk-proj-shadow: 0 20px 40px -10px rgba(79, 70, 229, 0.15);
}

.rk-proj-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-proj-bg);
    border-radius: 24px;
    box-shadow: var(--rk-proj-shadow);
    border: 1px solid var(--rk-proj-border);
    overflow: hidden;
}

/* --- NAGŁÓWEK --- */
.rk-proj-header {
    background: linear-gradient(135deg, var(--rk-proj-darker) 0%, var(--rk-proj-dark) 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-proj-brand);
}

.rk-proj-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(79, 70, 229, 0.2);
    color: #a5b4fc;
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(165, 180, 252, 0.3);
}

.rk-proj-header h2 {
    font-size: 30px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 20px 0;
    color: #ffffff;
}

.rk-proj-header h2 span { color: var(--rk-proj-accent); }

.rk-proj-lead {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-proj-link {
    color: #a5b4fc;
    text-decoration: none;
    border-bottom: 1px dashed rgba(165, 180, 252, 0.4);
    font-weight: 600;
    transition: all 0.3s;
}
.rk-proj-link:hover { color: #ffffff; border-bottom-style: solid; }

.rk-proj-link-dark {
    color: var(--rk-proj-brand);
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 700;
    transition: color 0.3s;
}
.rk-proj-link-dark:hover { color: #3730a3; }

/* --- INTERAKTYWNE FILARY --- */
.rk-proj-interactive {
    padding: 40px 50px;
    background: var(--rk-proj-surface);
}

.rk-proj-interactive h3 {
    text-align: center;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    margin: 0 0 30px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-pillars-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 30px;
}

.rk-pillar-btn {
    background: #ffffff;
    border: 2px solid var(--rk-proj-border);
    border-radius: 16px;
    padding: 20px 15px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.rk-pillar-btn:hover {
    border-color: var(--rk-proj-brand);
    background: var(--rk-proj-brand-light);
    transform: translateY(-3px);
}

.rk-pillar-btn.active {
    border-color: var(--rk-proj-brand);
    background: var(--rk-proj-brand);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(79, 70, 229, 0.4);
}

.rk-pillar-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-proj-surface);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rk-proj-brand);
    transition: all 0.3s;
}
.rk-pillar-btn.active .rk-pillar-icon { background: rgba(255,255,255,0.2); color: #ffffff; }

.rk-pillar-title {
    font-size: 15px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--rk-proj-dark);
    transition: color 0.3s;
}
.rk-pillar-btn.active .rk-pillar-title { color: #ffffff; }

/* Panele Zawartości */
.rk-pillar-content {
    display: none;
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid var(--rk-proj-border);
    padding: 30px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
    animation: fadeScale 0.4s ease-out;
}
.rk-pillar-content.active { display: grid; grid-template-columns: 1fr 280px; gap: 30px; align-items: center; }

@keyframes fadeScale {
    from { opacity: 0; transform: scale(0.98); }
    to { opacity: 1; transform: scale(1); }
}

.rk-panel-text h4 { margin: 0 0 15px 0; font-size: 20px; font-weight: 900; color: var(--rk-proj-dark); }
.rk-panel-text p { margin: 0 0 20px 0; font-size: 15px; line-height: 1.7; color: var(--rk-proj-text); }

.rk-panel-highlight {
    background: var(--rk-proj-surface);
    padding: 15px;
    border-left: 4px solid var(--rk-proj-accent);
    border-radius: 0 8px 8px 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-proj-dark);
}

/* Wizualizacje SVG */
.rk-svg-stage {
    background: var(--rk-proj-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 180px;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.5);
}

.rk-tech-svg { width: 100%; max-width: 200px; height: auto; }

/* Animacje SVG */
/* 1. OZC */
.anim-heat-loss { stroke-dasharray: 4; animation: flowOut 1.5s linear infinite; stroke: #ef4444; }
.anim-heat-gain { stroke-dasharray: 4; animation: flowIn 1.5s linear infinite; stroke: #10b981; }
@keyframes flowOut { to { stroke-dashoffset: -12; } }
@keyframes flowIn { to { stroke-dashoffset: 12; } }

/* 2. Rotametry */
.anim-float-1 { animation: balanceFloat1 2s cubic-bezier(0.4, 0, 0.2, 1) forwards; }
.anim-float-2 { animation: balanceFloat2 2s cubic-bezier(0.4, 0, 0.2, 1) forwards; }
.anim-float-3 { animation: balanceFloat3 2s cubic-bezier(0.4, 0, 0.2, 1) forwards; }
@keyframes balanceFloat1 { from { transform: translateY(0); } to { transform: translateY(15px); } }
@keyframes balanceFloat2 { from { transform: translateY(30px); } to { transform: translateY(15px); } }
@keyframes balanceFloat3 { from { transform: translateY(10px); } to { transform: translateY(15px); } }

/* 3. Pompa */
.anim-pump-spin { transform-origin: center; animation: spinPump 2s linear infinite; }
@keyframes spinPump { to { transform: rotate(360deg); } }
.anim-pump-flow { stroke-dasharray: 10; animation: flowPump 1s linear infinite; stroke: var(--rk-proj-accent); }
@keyframes flowPump { to { stroke-dashoffset: -20; } }

/* --- MOCNE CTA --- */
.rk-proj-cta {
    background: linear-gradient(135deg, #eef2ff 0%, #ffffff 100%);
    padding: 45px 50px;
    text-align: center;
    border-top: 1px solid var(--rk-proj-brand-light);
}

.rk-cta-title {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-proj-dark);
    margin: 0 0 15px 0;
}

.rk-cta-desc {
    font-size: 16px;
    color: var(--rk-proj-text);
    max-width: 600px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
}

.rk-btn-massive {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-proj-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(79, 70, 229, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-btn-massive:hover {
    background: #4338ca;
    transform: translateY(-4px);
    box-shadow: 0 15px 35px -5px rgba(79, 70, 229, 0.5);
    border-color: #a5b4fc;
}

.rk-btn-massive svg { transition: transform 0.3s; }
.rk-btn-massive:hover svg { transform: translateX(5px); }

@media (max-width: 768px) {
    .rk-proj-header, .rk-proj-interactive, .rk-proj-cta { padding: 30px 20px; }
    .rk-proj-header h2, .rk-cta-title { font-size: 24px; }
    .rk-pillars-grid { grid-template-columns: 1fr; }
    .rk-pillar-content.active { grid-template-columns: 1fr; }
    .rk-svg-stage { min-height: 160px; order: -1; } /* SVG na górę na mobilce */
    .rk-btn-massive { width: 100%; font-size: 16px; padding: 18px 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/"
    },
    "headline": "Jak kalkulator wpływa na projekt ogrzewania podłogowego?",
    "description": "Zrozum 3 inżynieryjne filary: bilans OZC, hydraulikę rozdzielacza i dobór pompy obiegowej. Zobacz, jak wyliczenia przekładają się na finalną dokumentację techniczną.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-24",
    "dateModified": "2026-05-24"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#dataset-projekt",
    "name": "Filary Projektowania Instalacji Ogrzewania Podłogowego",
    "description": "Klasyfikacja trzech głównych obszarów inżynieryjnych (OZC, Hydraulika, Pompy), które są definiowane przez wyniki kompleksowego kalkulatora.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego",
      "rzeczywisty bilans cieplny OZC",
      "hydraulika rozdzielacza i pętli",
      "dobór pompy obiegowej podłogówki",
      "dokumentacja techniczna instalacji"
    ],
    "measurementTechnique": "Synteza wyników obliczeniowych z norm PN-EN 12831 (OZC) oraz PN-EN 1264 do formy wykonawczej dokumentacji technicznej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Bilans Cieplny OZC: Precyzyjne zapotrzebowanie na energię dla każdego pomieszczenia.",
        "Hydraulika Pętli: Rozstaw rur co do centymetra i wartości nastaw rotametrów w l/min.",
        "Dobór Pompy: Wysokość podnoszenia oparta o sumaryczne opory najdłuższej pętli hydraulicznej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#webapp-projekt",
    "name": "Eksplorator Filarów Projektowych",
    "description": "Interaktywny schemat prezentujący wpływ wyliczeń kalkulatora na projekt techniczny OZC, hydraulikę i dobór pomp, wzbogacony o animacje wektorowe procesów fizycznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-proj-container" id="rk-proj-app">
    
    <div class="rk-proj-header">
        <div class="rk-proj-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>
            Dokumentacja Techniczna
        </div>
        <h2>Jak to wpływa na <span>projekt ogrzewania podłogowego?</span></h2>
        <p class="rk-proj-lead">
            Wszystkie wyliczenia realizowane przez kompleksowy kalkulator mają bezpośrednie przełożenie na finalną dokumentację techniczną. Poprawnie wykonany projekt ogrzewania podłogowego nie może opierać się na danych szacunkowych. Musi on bezwzględnie scalać trzy kluczowe filary inżynieryjne.
        </p>
    </div>

    <div class="rk-proj-interactive">
        <h3>3 Filary Inżynieryjne</h3>
        
        <div class="rk-pillars-grid">
            <button class="rk-pillar-btn active" data-target="p-ozc">
                <div class="rk-pillar-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                </div>
                <div class="rk-pillar-title">Bilans Cieplny (OZC)</div>
            </button>
            
            <button class="rk-pillar-btn" data-target="p-hyd">
                <div class="rk-pillar-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><line x1="4" y1="12" x2="20" y2="12"></line><line x1="12" y1="4" x2="12" y2="20"></line></svg>
                </div>
                <div class="rk-pillar-title">Hydraulika i Pętle</div>
            </button>

            <button class="rk-pillar-btn" data-target="p-pump">
                <div class="rk-pillar-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
                </div>
                <div class="rk-pillar-title">Dobór Pompy</div>
            </button>
        </div>

        <div class="rk-pillar-content active" id="p-ozc">
            <div class="rk-panel-text">
                <h4>Rzeczywisty bilans cieplny OZC</h4>
                <p>Określa precyzyjne <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/" class="rk-proj-link-dark">zapotrzebowanie na energię</a> dla każdego pomieszczenia z osobna. Fundament, który eliminuje ryzyko niedogrzania łazienek czy skrajnych sypialni podczas mrozów.</p>
                <div class="rk-panel-highlight">
                    Wynik kalkulatora: Precyzyjny dobór mocy W/m² eliminuje szacunki &#8222;na oko&#8221;.
                </div>
            </div>
            <div class="rk-svg-stage">
                <svg class="rk-tech-svg" viewBox="0 0 100 100">
                    <rect x="20" y="20" width="60" height="60" fill="none" stroke="#64748b" stroke-width="4" rx="4"/>
                    <path class="anim-heat-loss" d="M 80 50 L 95 50" fill="none" stroke-width="3" stroke-linecap="round"/>
                    <path class="anim-heat-loss" d="M 50 20 L 50 5" fill="none" stroke-width="3" stroke-linecap="round"/>
                    <path class="anim-heat-gain" d="M 5 50 L 20 50" fill="none" stroke-width="4" stroke-linecap="round"/>
                    <path class="anim-heat-gain" d="M 50 95 L 50 80" fill="none" stroke-width="4" stroke-linecap="round"/>
                    <text x="50" y="55" font-size="16" font-weight="900" fill="#cbd5e1" text-anchor="middle">OZC</text>
                </svg>
            </div>
        </div>

        <div class="rk-pillar-content" id="p-hyd">
            <div class="rk-panel-text">
                <h4>Hydraulika rozdzielacza i pętli</h4>
                <p>Projekt definiuje dokładny rozstaw rur (co do centymetra), podział na równe obwody oraz wartości nastaw wstępnych (przepływów w l/min) na <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-proj-link-dark">rotametrach</a>, co umożliwia prawidłowe <a href="https://projekt-ogrzewania.pl/regulacja-hydrauliczna-ogrzewania-podlogowego/" class="rk-proj-link-dark">zrównoważenie systemu</a>.</p>
                <div class="rk-panel-highlight">
                    Wynik kalkulatora: Stabilne przepływy i równomierne nagrzewanie podłogi.
                </div>
            </div>
            <div class="rk-svg-stage">
                <svg class="rk-tech-svg" viewBox="0 0 100 100">
                    <rect x="10" y="80" width="80" height="10" fill="#3b82f6" rx="2"/>
                    <rect x="20" y="20" width="10" height="60" fill="none" stroke="#64748b" stroke-width="2"/>
                    <rect class="anim-float-1" x="22" y="50" width="6" height="4" fill="#ef4444"/>
                    <rect x="45" y="20" width="10" height="60" fill="none" stroke="#64748b" stroke-width="2"/>
                    <rect class="anim-float-2" x="47" y="50" width="6" height="4" fill="#ef4444"/>
                    <rect x="70" y="20" width="10" height="60" fill="none" stroke="#64748b" stroke-width="2"/>
                    <rect class="anim-float-3" x="72" y="50" width="6" height="4" fill="#ef4444"/>
                    <line x1="15" y1="35" x2="85" y2="35" stroke="#10b981" stroke-width="2" stroke-dasharray="4"/>
                </svg>
            </div>
        </div>

        <div class="rk-pillar-content" id="p-pump">
            <div class="rk-panel-text">
                <h4>Dobór pompy obiegowej</h4>
                <p>Na podstawie zsumowanych oporów hydraulicznych najdłuższej pętli projektant przeprowadza <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" class="rk-proj-link-dark">dobór pompy obiegowej</a>. Określamy dokładną wysokość podnoszenia, zapobiegając przeciążeniu lub niedomiarowi tłoczenia.</p>
                <div class="rk-panel-highlight">
                    Wynik kalkulatora: Brak &#8222;martwych&#8221;, zimnych stref z powodu słabej pompy.
                </div>
            </div>
            <div class="rk-svg-stage">
                <svg class="rk-tech-svg" viewBox="0 0 100 100">
                    <circle cx="30" cy="50" r="20" fill="none" stroke="#94a3b8" stroke-width="4"/>
                    <g class="anim-pump-spin" transform="translate(30, 50)">
                        <polygon points="-8,-8 10,0 -8,8" fill="#10b981"/>
                    </g>
                    <path class="anim-pump-flow" d="M 50 50 L 90 50" fill="none" stroke-width="6" stroke-linecap="round"/>
                    <path class="anim-pump-flow" d="M 90 50 Q 95 50 95 40 L 95 20" fill="none" stroke-width="4" stroke-linecap="round"/>
                </svg>
            </div>
        </div>

    </div>

    <div class="rk-proj-cta">
        <h3 class="rk-cta-title">Nie ryzykuj błędów na budowie</h3>
        <p class="rk-cta-desc">
            Skorzystaj z wiedzy ekspertów. Zamów kompleksowy, inżynieryjny projekt ogrzewania podłogowego, który zagwarantuje Ci optymalne zużycie materiałów, niskie rachunki za ogrzewanie i święty spokój na lata.
        </p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-massive">
            ZAMÓW PROFESJONALNY PROJEKT PODŁOGÓWKI
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-proj-app');
        if (container) {
            container.innerHTML = `
                <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:24px; font-weight:900; font-family:sans-serif; border: 2px solid #ef4444;">
                    <div style="font-size:30px; margin-bottom:10px;">⚠️</div>
                    BŁĄD LICENCJI:<br>Kontener informacyjny należy do serwisu Projekt-Ogrzewania.pl. Uruchamianie na nieautoryzowanej domenie jest zabronione prawem.
                </div>
            `;
            return;
        }
    }

    // Logika zakładek (Filary)
    const btns = document.querySelectorAll('.rk-pillar-btn');
    const contents = document.querySelectorAll('.rk-pillar-content');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            const targetId = this.getAttribute('data-target');
            
            // Reset
            btns.forEach(b => b.classList.remove('active'));
            contents.forEach(c => c.classList.remove('active'));
            
            // Aktywacja
            this.classList.add('active');
            const targetContent = document.getElementById(targetId);
            if(targetContent) {
                // Restart animacji SVG przez reflow
                targetContent.classList.remove('active');
                void targetContent.offsetWidth; 
                targetContent.classList.add('active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-calc-main-dark: #0f172a;
    --rk-calc-main-darker: #020617;
    --rk-calc-main-brand: #3b82f6; /* Hydronic Blue */
    --rk-calc-main-brand-light: #eff6ff;
    --rk-calc-main-accent: #10b981; /* Success Green */
    --rk-calc-main-danger: #ef4444; /* Error Red */
    --rk-calc-main-bg: #ffffff;
    --rk-calc-main-surface: #f8fafc;
    --rk-calc-main-border: #cbd5e1;
    --rk-calc-main-text: #334155;
    --rk-calc-main-muted: #64748b;
    --rk-calc-main-shadow: 0 20px 40px -10px rgba(59, 130, 246, 0.15);
}

.rk-calc-main-container {
    max-width: 1000px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-calc-main-bg);
    border-radius: 24px;
    box-shadow: var(--rk-calc-main-shadow);
    border: 1px solid var(--rk-calc-main-border);
    overflow: hidden;
}

/* --- NAGŁÓWEK --- */
.rk-calc-main-header {
    background: linear-gradient(135deg, var(--rk-calc-main-darker) 0%, var(--rk-calc-main-dark) 100%);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 5px solid var(--rk-calc-main-brand);
    text-align: center;
}

.rk-calc-main-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    padding: 6px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 15px;
    border: 1px solid rgba(147, 197, 253, 0.3);
}

.rk-calc-main-title {
    font-size: 32px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0 0 10px 0;
}

.rk-calc-main-title span { color: var(--rk-calc-main-brand); }

.rk-calc-main-desc {
    color: #cbd5e1;
    font-size: 15px;
    line-height: 1.6;
    margin: 0 auto;
    max-width: 700px;
}

/* --- SEKCJA GŁÓWNA --- */
.rk-calc-main-body {
    padding: 40px 50px;
    background: var(--rk-calc-main-surface);
}

/* Krok 1: Parametry Globalne */
.rk-calc-section-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-calc-main-dark);
    margin: 0 0 20px 0;
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 2px solid var(--rk-calc-main-border);
    padding-bottom: 10px;
}

.rk-calc-section-title svg { color: var(--rk-calc-main-brand); }

.rk-global-params {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 15px;
    margin-bottom: 40px;
}

.rk-input-group {
    background: #ffffff;
    padding: 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-calc-main-border);
}

.rk-input-group label {
    display: block;
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-calc-main-muted);
    text-transform: uppercase;
    margin-bottom: 8px;
}

.rk-input-group select, .rk-input-group input {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--rk-calc-main-border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-calc-main-dark);
    background: var(--rk-calc-main-surface);
    transition: all 0.3s;
}

.rk-input-group select:focus, .rk-input-group input:focus {
    outline: none;
    border-color: var(--rk-calc-main-brand);
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

/* Krok 2: Pomieszczenia */
.rk-rooms-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
    margin-bottom: 20px;
}

.rk-room-card {
    background: #ffffff;
    border: 1px solid var(--rk-calc-main-border);
    border-radius: 16px;
    padding: 20px;
    position: relative;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
    animation: roomPopIn 0.3s ease-out;
}

.rk-room-card:hover {
    border-color: var(--rk-calc-main-brand);
    box-shadow: 0 8px 16px rgba(59, 130, 246, 0.1);
}

@keyframes roomPopIn {
    from { opacity: 0; transform: scale(0.95); }
    to { opacity: 1; transform: scale(1); }
}

.rk-room-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 15px;
    font-weight: 900;
    color: var(--rk-calc-main-dark);
}

.rk-room-delete {
    background: transparent;
    border: none;
    color: var(--rk-calc-main-danger);
    cursor: pointer;
    padding: 5px;
    border-radius: 6px;
    transition: background 0.2s;
}
.rk-room-delete:hover { background: #fef2f2; }

.rk-room-inputs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.rk-mini-input label {
    font-size: 11px;
    color: var(--rk-calc-main-muted);
    font-weight: 700;
    display: block;
    margin-bottom: 4px;
}
.rk-mini-input input {
    width: 100%;
    padding: 8px;
    border: 1px solid var(--rk-calc-main-border);
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    transition: border-color 0.3s;
}
.rk-mini-input input.error { border-color: var(--rk-calc-main-danger); background: #fef2f2; }

.rk-add-room-btn {
    width: 100%;
    padding: 15px;
    background: transparent;
    border: 2px dashed var(--rk-calc-main-border);
    border-radius: 16px;
    color: var(--rk-calc-main-muted);
    font-weight: 800;
    font-size: 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.3s;
    margin-bottom: 40px;
}
.rk-add-room-btn:hover {
    border-color: var(--rk-calc-main-brand);
    color: var(--rk-calc-main-brand);
    background: var(--rk-calc-main-brand-light);
}

/* Krok 3: Oblicz */
.rk-calc-action-bar {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-calc-submit {
    background: var(--rk-calc-main-brand);
    color: #ffffff;
    font-size: 18px;
    font-weight: 900;
    padding: 20px 40px;
    border: none;
    border-radius: 16px;
    cursor: pointer;
    box-shadow: 0 10px 20px -5px rgba(59, 130, 246, 0.4);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-calc-submit:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 30px -5px rgba(59, 130, 246, 0.5);
    background: #2563eb;
}

.rk-calc-submit:active { transform: translateY(0); }

/* --- WYNIKI --- */
.rk-calc-results {
    display: none; /* Ukryte do kliknięcia */
    border-top: 2px solid var(--rk-calc-main-border);
    padding-top: 40px;
    animation: fadeInResult 0.5s ease-out;
}

@keyframes fadeInResult {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-res-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 30px;
}

.rk-res-card {
    background: #ffffff;
    border: 1px solid var(--rk-calc-main-border);
    border-radius: 16px;
    padding: 25px;
    position: relative;
    overflow: hidden;
}

.rk-res-card::before {
    content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 4px;
}

.rk-res-card.c-blue::before { background: var(--rk-calc-main-brand); }
.rk-res-card.c-green::before { background: var(--rk-calc-main-accent); }
.rk-res-card.c-orange::before { background: #f59e0b; }

.rk-res-icon {
    margin-bottom: 15px;
    color: var(--rk-calc-main-dark);
}

.rk-res-label {
    font-size: 12px;
    font-weight: 800;
    color: var(--rk-calc-main-muted);
    text-transform: uppercase;
    margin-bottom: 5px;
}

.rk-res-value {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-calc-main-dark);
    margin-bottom: 10px;
}

.rk-res-value span { font-size: 16px; color: var(--rk-calc-main-muted); }

.rk-res-list {
    margin: 0; padding: 0; list-style: none;
    font-size: 13px; color: var(--rk-calc-main-text);
}
.rk-res-list li { margin-bottom: 4px; display: flex; justify-content: space-between; border-bottom: 1px dashed var(--rk-calc-main-border); padding-bottom: 4px; }
.rk-res-list li:last-child { border: none; margin: 0; padding: 0; }
.rk-res-list b { color: var(--rk-calc-main-dark); }

/* SVG Statusu Hydraulicznego */
.rk-res-status {
    background: var(--rk-calc-main-dark);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    align-items: center;
    gap: 30px;
    color: #ffffff;
    margin-bottom: 30px;
}

.rk-status-svg {
    width: 100px;
    height: 100px;
    flex-shrink: 0;
}

.rk-status-text h4 { margin: 0 0 10px 0; font-size: 20px; font-weight: 900; }
.rk-status-text p { margin: 0; font-size: 14px; color: #cbd5e1; line-height: 1.6; }
.rk-status-warn { color: var(--rk-calc-main-danger); }
.rk-status-ok { color: var(--rk-calc-main-accent); }

/* CTA Wynikowe */
.rk-res-cta {
    background: #eef2ff;
    border: 1px solid #c7d2fe;
    border-radius: 16px;
    padding: 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.rk-res-cta p { margin: 0; font-size: 14px; color: #3730a3; line-height: 1.6; }
.rk-res-cta strong { font-weight: 900; color: #312e81; }

.rk-res-cta-btn {
    background: #4f46e5;
    color: #ffffff;
    padding: 12px 24px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 800;
    font-size: 14px;
    white-space: nowrap;
    transition: background 0.3s;
}
.rk-res-cta-btn:hover { background: #4338ca; }

@media (max-width: 768px) {
    .rk-calc-main-header, .rk-calc-main-body { padding: 30px 20px; }
    .rk-calc-main-title { font-size: 24px; }
    .rk-res-grid { grid-template-columns: 1fr; }
    .rk-res-status { flex-direction: column; text-align: center; }
    .rk-res-cta { flex-direction: column; text-align: center; }
}

/* Animacje wewnątrz SVG Wynikowego */
.anim-pump-impeller { transform-origin: center; animation: spinFast 1s linear infinite; }
@keyframes spinFast { to { transform: rotate(360deg); } }
.anim-flow-line { stroke-dasharray: 8; animation: flowHyd 1s linear infinite; }
@keyframes flowHyd { to { stroke-dashoffset: -16; } }
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#article-main-calc",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/"
    },
    "headline": "Kompleksowy Kalkulator Ogrzewania Podłogowego (Interaktywny)",
    "description": "Zaawansowane narzędzie inżynieryjne wyliczające długość rur, moc, rozstaw pętli oraz parametry pompy obiegowej na podstawie wprowadzonych danych pomieszczeń.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-24",
    "dateModified": "2026-05-24"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#dataset-calc-results",
    "name": "Wyniki Inżynierskich Obliczeń Ogrzewania Podłogowego",
    "description": "Dynamiczne wyliczenia parametrów fizycznych dla systemów płaszczyznowych, łączące zmienne izolacyjności, przepływu i strat ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kalkulator podłogówki online",
      "obliczanie pętli grzewczych",
      "dobór pompy do ogrzewania podłogowego",
      "średnica rury pex przepływ",
      "zapotrzebowanie na materiały podłogówka"
    ],
    "measurementTechnique": "Równania bilansu cieplnego i oporów hydraulicznych wg PN-EN 1264, z uwzględnieniem liczby Reynoldsa i modelu strat liniowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Zestawienie całkowitej mocy (W) i długości rury (mb).",
        "Sugestie rozstawów rur względem zapotrzebowania cieplnego W/m2.",
        "Estymacja oporów hydraulicznych i wskazanie wymaganej wysokości podnoszenia pompy obiegowej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#webapp-main",
    "name": "Kompleksowy Kalkulator Ogrzewania Podłogowego PRO",
    "description": "Profesjonalna aplikacja webowa obliczająca wszystkie kluczowe parametry instalacji (pętle, rozstawy, hydraulika) na podstawie wprowadzonych danych pomieszczeń i warstw podłogi.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-calc-main-container" id="rk-calc-main-app">
    
    <div class="rk-calc-main-header">
        <div class="rk-calc-main-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg>
            Narzędzie Obliczeniowe
        </div>
        <h2 class="rk-calc-main-title">Kompleksowy Kalkulator <span>Podłogówki</span></h2>
        <p class="rk-calc-main-desc">Wprowadź dane budynku oraz parametry poszczególnych pomieszczeń, aby wygenerować profesjonalne zestawienie materiałowe, rozstawy rur oraz wytyczne hydrauliczne dla pompy obiegowej.</p>
    </div>

    <div class="rk-calc-main-body">
        
        <div class="rk-calc-section-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
            Krok 1: Parametry Globalne Konstrukcji
        </div>
        
        <div class="rk-global-params">
            <div class="rk-input-group">
                <label>Zasilanie (Tz)</label>
                <input type="number" id="rk-param-temp" value="35" min="25" max="50">
            </div>
            <div class="rk-input-group">
                <label>Okładzina podłogi</label>
                <select id="rk-param-floor">
                    <option value="1">Płytki / Gres</option>
                    <option value="0.85">Panele podłogowe</option>
                    <option value="0.75">Deska warstwowa</option>
                </select>
            </div>
            <div class="rk-input-group">
                <label>Rodzaj Wylewki</label>
                <select id="rk-param-screed">
                    <option value="1">Cementowa (Miksokret)</option>
                    <option value="1.13">Anhydrytowa (Płynna)</option>
                </select>
            </div>
            <div class="rk-input-group">
                <label>Izolacja Spodnia</label>
                <select id="rk-param-iso">
                    <option value="1">EPS 100 (Standard)</option>
                    <option value="1.05">EPS 200 (Twardy)</option>
                </select>
            </div>
            <div class="rk-input-group">
                <label>Rura Grzewcza</label>
                <select id="rk-param-pipe">
                    <option value="0.012">16&#215;2 (Wew. 12mm)</option>
                    <option value="0.013">17&#215;2 (Wew. 13mm)</option>
                    <option value="0.016">20&#215;2 (Wew. 16mm)</option>
                </select>
            </div>
        </div>

        <div class="rk-calc-section-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
            Krok 2: Bilans Pomieszczeń
        </div>

        <div class="rk-rooms-container" id="rk-rooms-wrapper">
            </div>

        <button class="rk-add-room-btn" id="rk-btn-add-room">
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
            Dodaj kolejne pomieszczenie
        </button>

        <div class="rk-calc-action-bar">
            <button class="rk-calc-submit" id="rk-btn-calculate">
                GENERUJ WYNIKI OBLICZEŃ
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 11 12 14 22 4"></polyline><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"></path></svg>
            </button>
        </div>

        <div class="rk-calc-results" id="rk-results-panel">
            
            <div class="rk-res-grid">
                
                <div class="rk-res-card c-blue">
                    <div class="rk-res-icon">
                        <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20"></path><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                    </div>
                    <div class="rk-res-label">Całkowite Zapotrzebowanie</div>
                    <div class="rk-res-value" id="out-power">0 <span>W</span></div>
                    <ul class="rk-res-list">
                        <li>Ilość rury (zapas 10%): <b id="out-length">0 mb</b></li>
                        <li>Pojemność zładu: <b id="out-water">0 L</b></li>
                        <li>Całkowita powierzchnia: <b id="out-area">0 m²</b></li>
                    </ul>
                </div>

                <div class="rk-res-card c-green">
                    <div class="rk-res-icon">
                        <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="3" y1="9" x2="21" y2="9"></line><line x1="9" y1="21" x2="9" y2="9"></line></svg>
                    </div>
                    <div class="rk-res-label">Rozdzielacz i Geometria</div>
                    <div class="rk-res-value" id="out-circuits">0 <span>sekcji</span></div>
                    <ul class="rk-res-list">
                        <li>Średni rozstaw rur: <b id="out-spacing-avg">0 cm</b></li>
                        <li>Sugerowane rozstawy: <b id="out-spacing-list">&#8211;</b></li>
                        <li>Limit długości pętli: <b>Zachowany</b></li>
                    </ul>
                </div>

                <div class="rk-res-card c-orange">
                    <div class="rk-res-icon">
                        <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline></svg>
                    </div>
                    <div class="rk-res-label">Wymogi Hydrauliczne</div>
                    <div class="rk-res-value" id="out-pump">Weryfikacja</div>
                    <ul class="rk-res-list">
                        <li>Przepływ sumaryczny: <b id="out-flow">0 m³/h</b></li>
                        <li>Opór najdłuższej pętli: <b id="out-pressure">0 kPa</b></li>
                        <li>Wys. podnoszenia: <b id="out-head">0 m</b></li>
                    </ul>
                </div>
            </div>

            <div class="rk-res-status">
                <div class="rk-status-svg">
                    <svg viewBox="0 0 100 100" style="width:100%;height:100%;">
                        <circle cx="50" cy="50" r="45" fill="none" stroke="#334155" stroke-width="6"></circle>
                        <circle cx="50" cy="50" r="30" fill="none" stroke="#475569" stroke-width="2"></circle>
                        <g class="anim-pump-impeller" transform="translate(50, 50)">
                            <path d="M 0 -25 L 10 0 L 0 25 L -10 0 Z" fill="#10b981" id="svg-impeller-color"></path>
                            <circle cx="0" cy="0" r="5" fill="#f8fafc"></circle>
                        </g>
                        <path class="anim-flow-line" d="M 15 80 Q 50 110 85 80" fill="none" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"></path>
                    </svg>
                </div>
                <div class="rk-status-text">
                    <h4 id="out-status-title">Analiza w toku&#8230;</h4>
                    <p id="out-status-desc">&#8211;</p>
                </div>
            </div>

            <div class="rk-res-cta">
                <div>
                    <strong>Zastrzeżenie inżynierskie:</strong>
                    <p>Wyniki mają charakter poglądowy do szacowania kosztów. Błędy hydrauliczne kosztują krocie. Do realizacji niezbędny jest projekt wykonawczy uwzględniający opory miejscowe armatury i pełne badanie OZC.</p>
                </div>
                <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-res-cta-btn">ZAMÓW PROJEKT</a>
            </div>

        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-calc-main-app');
        if (container) {
            container.innerHTML = `
                <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:24px; font-weight:900; font-family:sans-serif; border: 2px solid #ef4444;">
                    <div style="font-size:40px; margin-bottom:15px;">🛑</div>
                    BŁĄD LICENCJI:<br>Główny silnik kalkulatora jest własnością Projekt-Ogrzewania.pl. Próba kradzieży kodu zatrzymana.
                </div>
            `;
            return;
        }
    }

    // --- LOGIKA KALKULATORA ---
    let rooms = [];
    const wrapper = document.getElementById('rk-rooms-wrapper');
    const btnAdd = document.getElementById('rk-btn-add-room');
    const btnCalc = document.getElementById('rk-btn-calculate');
    const resultsPanel = document.getElementById('rk-results-panel');

    function createRoomHTML(index) {
        return `
        <div class="rk-room-card" id="rk-room-${index}">
            <div class="rk-room-header">
                Pomieszczenie ${index + 1}
                <button class="rk-room-delete" onclick="rkRemoveRoom(${index})" title="Usuń">
                    <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path></svg>
                </button>
            </div>
            <div class="rk-room-inputs">
                <div class="rk-mini-input">
                    <label>Powierzchnia (m²)</label>
                    <input type="number" id="rk-area-${index}" value="15" min="1" step="0.5" oninput="rkValidate(this)">
                </div>
                <div class="rk-mini-input">
                    <label>Straty (W/m²)</label>
                    <input type="number" id="rk-loss-${index}" value="50" min="10" step="5" oninput="rkValidate(this)">
                </div>
            </div>
        </div>`;
    }

    function renderRooms() {
        wrapper.innerHTML = '';
        rooms.forEach((r, idx) => {
            wrapper.innerHTML += createRoomHTML(idx);
            // Odtworzenie wartości po re-renderze
            setTimeout(() => {
                const aInput = document.getElementById(`rk-area-${idx}`);
                const lInput = document.getElementById(`rk-loss-${idx}`);
                if(aInput) aInput.value = r.area;
                if(lInput) lInput.value = r.loss;
            }, 0);
        });
    }

    window.rkAddRoom = function() {
        rooms.push({ area: 15, loss: 50 });
        renderRooms();
    }

    window.rkRemoveRoom = function(index) {
        // Zapisz obecne wartości przed usunięciem
        saveRoomStates();
        rooms.splice(index, 1);
        renderRooms();
    }

    function saveRoomStates() {
        rooms.forEach((r, idx) => {
            const aInput = document.getElementById(`rk-area-${idx}`);
            const lInput = document.getElementById(`rk-loss-${idx}`);
            if(aInput) r.area = parseFloat(aInput.value) || 0;
            if(lInput) r.loss = parseFloat(lInput.value) || 0;
        });
    }

    window.rkValidate = function(input) {
        let val = parseFloat(input.value);
        if(isNaN(val) || val <= 0) { input.classList.add('error'); } 
        else { input.classList.remove('error'); }
    }

    // Inicjalizacja z 2 pomieszczeniami
    rkAddRoom(); rkAddRoom();

    btnAdd.addEventListener('click', () => {
        saveRoomStates();
        rkAddRoom();
    });

    // Główna funkcja licząca (bazująca na logice ze wzorów inżynieryjnych)
    btnCalc.addEventListener('click', () => {
        saveRoomStates();

        const T = parseFloat(document.getElementById('rk-param-temp').value);
        const fF = parseFloat(document.getElementById('rk-param-floor').value);
        const sF = parseFloat(document.getElementById('rk-param-screed').value);
        const iF = parseFloat(document.getElementById('rk-param-iso').value);
        const D = parseFloat(document.getElementById('rk-param-pipe').value); // średnica wewnętrzna w [m]

        // Stałe fizyczne dla wody 35 st C
        const rho = 994; // gęstość kg/m3
        const mu = 0.00072; // lepkość dynamiczna
        const g = 9.81;

        let totalPower = 0;
        let totalArea = 0;
        let totalLength = 0;
        let totalCircuits = 0;
        let totalFlowM3H = 0;
        let maxHeadM = 0;
        let maxPressureKpa = 0;
        let spacings = [];

        let isValid = true;

        rooms.forEach(r => {
            if(r.area <= 0 || r.loss <= 0) isValid = false;
            
            // 1. Zapotrzebowanie W
            let power = r.area * r.loss;
            totalPower += power;
            totalArea += r.area;

            // 2. Szacowanie rozstawu bazując na stratach i okładzinie (Uproszczona logika PN-EN)
            // Baza dla 35 stC, płytki, jastrych cement, styro 100
            let baseProfile = { 10: 75, 15: 55, 20: 40, 25: 30 }; 
            let spacing = 10; // Domyślnie najgęściej dla pewności
            
            // Skalowanie wydajności podłogi parametrami
            for (let sp of [25, 20, 15, 10]) {
                // Skorygowana moc dla danego rozstawu
                let q_max = baseProfile[sp] * (T/35) * fF * sF * iF;
                if(q_max >= r.loss) {
                    spacing = sp; // Znaleziono optymalny, szerszy rozstaw
                    break;
                }
            }
            spacings.push(spacing);

            // 3. Długość rury (z zapasem 10% wg wytycznych)
            let spacingM = spacing / 100;
            let roomLen = (r.area / spacingM) * 1.1; 
            totalLength += roomLen;

            // 4. Pętle (limit 100m dla bezpieczeństwa hydraulicznego PEX 16)
            let circuits = Math.ceil(roomLen / 100);
            totalCircuits += circuits;

            // 5. Hydraulika (Przepływ masowy kg/h na m3/h). Założenie deltaT = 5K
            // m = Q / (cw * dT)
            let flow_kgh = power / (1.163 * 5); // uproszczenie
            let flow_m3h = flow_kgh / 1000;
            totalFlowM3H += flow_m3h;

            // Prędkość w pojedynczej pętli i opory tarcia (Darcy-Weisbach uproszczony)
            let flow_circuit_m3s = (flow_m3h / 3600) / circuits;
            let A_pipe = Math.PI * Math.pow(D/2, 2);
            let v = flow_circuit_m3s / A_pipe;
            
            // Re i Lambda
            let Re = (rho * v * D) / mu;
            let lambda = 0.3164 * Math.pow(Re, -0.25); // Blasius
            
            // Delta P = lambda * (L/D) * (rho*v^2 / 2)
            let len_circuit = roomLen / circuits;
            let dp = lambda * (len_circuit/D) * (rho * Math.pow(v, 2) / 2);
            // Dodajemy 20% na opory miejscowe (rozdzielacz)
            dp = dp * 1.2; 
            
            let head = dp / (rho * g);
            
            if(head > maxHeadM) maxHeadM = head;
            if(dp > maxPressureKpa) maxPressureKpa = dp;
        });

        if(!isValid || rooms.length === 0) {
            alert("Uzupełnij poprawnie wszystkie pola pomieszczeń (wartości > 0).");
            return;
        }

        // --- Aktualizacja widoku ---
        
        // Karta 1
        document.getElementById('out-power').innerHTML = totalPower.toFixed(0) + ' <span>W</span>';
        document.getElementById('out-length').textContent = totalLength.toFixed(0) + ' mb';
        // Pojemność wody 0.113 l/m dla 16mm (uproszczone zład całk)
        document.getElementById('out-water').textContent = (totalLength * 0.113).toFixed(1) + ' L';
        document.getElementById('out-area').textContent = totalArea.toFixed(1) + ' m²';

        // Karta 2
        document.getElementById('out-circuits').innerHTML = totalCircuits + ' <span>sekcji</span>';
        let uniqueSp = [...new Set(spacings)].sort((a,b) => a-b);
        let avgSp = (spacings.reduce((a,b) => a+b, 0) / spacings.length).toFixed(1);
        document.getElementById('out-spacing-avg').textContent = avgSp + ' cm';
        document.getElementById('out-spacing-list').textContent = uniqueSp.join(', ') + ' cm';

        // Karta 3
        let maxKpa = (maxPressureKpa / 1000).toFixed(1);
        document.getElementById('out-flow').textContent = totalFlowM3H.toFixed(2) + ' m³/h';
        document.getElementById('out-pressure').textContent = maxKpa + ' kPa';
        document.getElementById('out-head').textContent = maxHeadM.toFixed(1) + ' m';

        let pumpText = "Pompa 25-40";
        if(maxHeadM > 3.5) pumpText = "Pompa 25-60";
        if(maxHeadM > 5.5) pumpText = "Pompa 25-80";
        document.getElementById('out-pump').innerHTML = pumpText;

        // Status hydrauliczny do animacji i ostrzeżeń
        let stTitle = document.getElementById('out-status-title');
        let stDesc = document.getElementById('out-status-desc');
        let stColor = document.getElementById('svg-impeller-color');

        if(maxKpa > 25 || totalFlowM3H > 2.5) {
            stTitle.textContent = "Ryzyko Przeciążenia!";
            stTitle.className = "rk-status-warn";
            stDesc.textContent = "Obliczone opory hydrauliczne są bardzo wysokie. Parametr T zasilania jest prawdopodobnie zbyt niski do pokrycia strat przez wybraną podłogę. Pompa obiegowa może nie zapewnić wymaganego przepływu na instalacji.";
            stColor.setAttribute('fill', '#ef4444');
        } else {
            stTitle.textContent = "Instalacja Stabilna";
            stTitle.className = "rk-status-ok";
            stDesc.textContent = "Wartości oporów i przepływów mieszczą się w normach inżynieryjnych. Dobór standardowej pompy obiegowej zabezpieczy równomierne nagrzewanie podłogi.";
            stColor.setAttribute('fill', '#10b981');
        }

        resultsPanel.style.display = 'block';
        
        // Płynne przewinięcie do wyników
        setTimeout(() => {
            resultsPanel.scrollIntoView({ behavior: 'smooth', block: 'start' });
        }, 100);
    });

});
</script>



<p class="wp-block-paragraph"></p>



<style>
:root {
    --rk-cs-primary: #0f172a;
    --rk-cs-accent: #2563eb;
    --rk-cs-before: #ef4444; /* Czerwony - błędy */
    --rk-cs-before-bg: #fef2f2;
    --rk-cs-after: #10b981; /* Zielony - optymalizacja */
    --rk-cs-after-bg: #ecfdf5;
    --rk-cs-bg: #f8fafc;
    --rk-cs-border: #e2e8f0;
    --rk-cs-text: #475569;
}

.case-study-module {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--rk-cs-border);
    overflow: hidden;
}

/* ================= HEADER I METRYCZKA ================= */
.cs-header-wrapper {
    background: var(--rk-cs-primary);
    color: #ffffff;
    padding: 40px 50px;
    position: relative;
    overflow: hidden;
}

.cs-header-wrapper::after {
    content: '';
    position: absolute;
    top: -50px;
    right: -50px;
    width: 250px;
    height: 250px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.3) 0%, rgba(255,255,255,0) 70%);
    border-radius: 50%;
}

.cs-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #93c5fd;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.cs-header-wrapper h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 25px 0;
    line-height: 1.3;
    color: #ffffff;
    position: relative;
    z-index: 2;
}

.cs-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
    position: relative;
    z-index: 2;
}

.cs-stat-box {
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.1);
    padding: 15px;
    border-radius: 12px;
}

.cs-stat-label {
    display: block;
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 5px;
}

.cs-stat-value {
    display: block;
    font-size: 16px;
    font-weight: 900;
    color: #ffffff;
}

/* ================= OPIS WYZWANIA ================= */
.cs-content-section {
    padding: 40px 50px 30px 50px;
    background: #ffffff;
}

.cs-lead-text {
    font-size: 16px;
    line-height: 1.8;
    color: var(--rk-cs-text);
    margin: 0 0 20px 0;
}

.cs-lead-text strong {
    color: var(--rk-cs-primary);
}

.cs-author-box {
    background: #f0f9ff;
    border-left: 4px solid var(--rk-cs-accent);
    padding: 15px 20px;
    border-radius: 0 12px 12px 0;
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 10px;
}

.cs-author-photo {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid #ffffff;
    box-shadow: 0 4px 10px rgba(37, 99, 235, 0.2);
    flex-shrink: 0;
}

.cs-author-box p {
    margin: 0;
    font-size: 14px;
    color: #1e3a8a;
    line-height: 1.6;
}

.cs-author-box a {
    color: var(--rk-cs-accent);
    font-weight: 800;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.cs-author-box a:hover {
    color: #1e3a8a;
}

/* ================= WYZWANIE (SPLIT CARDS - STATYCZNE) ================= */
.cs-interactive-section {
    padding: 0 50px 40px 50px;
}

.cs-split-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.cs-split-card {
    border-radius: 16px;
    padding: 25px;
    border: 2px solid;
    position: relative;
    overflow: hidden;
}

/* Karta Błędu (Czerwona) */
.cs-split-card.before {
    border-color: var(--rk-cs-before);
    background: var(--rk-cs-before-bg);
    box-shadow: 0 10px 25px rgba(239, 68, 68, 0.1);
}

/* Karta Poprawna (Zielona) */
.cs-split-card.after {
    border-color: var(--rk-cs-after);
    background: var(--rk-cs-after-bg);
    box-shadow: 0 10px 25px rgba(16, 185, 129, 0.1);
}

.cs-card-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
}

.cs-card-icon {
    font-size: 28px;
}

.cs-card-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-cs-primary);
    margin: 0;
}

.cs-card-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-cs-text);
    margin: 0;
}

/* Sekcje na długi ogon */
.cs-seo-details {
    margin-top: 15px;
    padding: 15px;
    background: rgba(255,255,255,0.7);
    border-radius: 8px;
    border-left: 3px solid;
}

.cs-split-card.before .cs-seo-details { border-left-color: var(--rk-cs-before); }
.cs-split-card.after .cs-seo-details { border-left-color: var(--rk-cs-after); }

.cs-seo-details h4 {
    margin: 0 0 8px 0;
    font-size: 14px;
    color: var(--rk-cs-primary);
}

.cs-seo-details ul {
    margin: 0;
    padding-left: 20px;
    font-size: 13px;
    color: var(--rk-cs-text);
    line-height: 1.5;
}

.cs-seo-details li { margin-bottom: 4px; }
.cs-seo-details li:last-child { margin-bottom: 0; }
.cs-seo-details strong { color: var(--rk-cs-primary); }

/* Statyczne grafiki SVG */
.cs-static-svg-box {
    margin-top: 20px;
    padding: 15px;
    background: #ffffff;
    border-radius: 8px;
    border: 1px dashed var(--rk-cs-border);
}

.cs-svg-graphic {
    width: 100%;
    height: 100px;
}

/* Rozwiązanie tekstowe */
.cs-card-solution {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed rgba(0,0,0,0.1);
    font-size: 13px;
    font-weight: 700;
}

.cs-split-card.before .cs-card-solution { color: #991b1b; }
.cs-split-card.after .cs-card-solution { color: #065f46; }

@media (max-width: 768px) {
    .cs-header-wrapper { padding: 35px 25px; }
    .cs-stats-grid { grid-template-columns: 1fr 1fr; }
    .cs-content-section { padding: 30px 25px 20px 25px; }
    .cs-interactive-section { padding: 0 25px 30px 25px; }
    .cs-split-container { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/"
    },
    "headline": "Analiza rzeczywistego projektu: Dom 165 m² w Krośnie",
    "description": "Case study audytu instalacji ogrzewania podłogowego. Optymalizacja rozstawu rur przy oknach tarasowych HS, podniesienie SCOP pompy ciepła z 3,2 do 4,15 i oszczędności 1450 PLN rocznie.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-24",
    "dateModified": "2026-05-24"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#dataset-krosno",
    "name": "Parametry OZC i hydrauliki przed i po optymalizacji (Krosno 165m2)",
    "description": "Zestawienie parametrów błędnego układu rur i zoptymalizowanej strefy brzegowej przy wielkogabarytowych przeszkleniach HS.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt ogrzewania podłogowego Krosno",
      "rozstaw rur przy oknie tarasowym HS",
      "temperatura zasilania pompy ciepła 35 stopni",
      "optymalizacja długości pętli podłogówki",
      "wskaźnik SCOP pompy ciepła"
    ],
    "measurementTechnique": "Weryfikacja strat ciepła 85 W/m2 przy oknie HS i korekta rozstawu rur z 15 cm na 10 cm.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Projekt pierwotny: Rozstaw 15 cm, zasilanie 45°C, SCOP 3,2, najdłuższa pętla 138 m.",
        "Projekt zoptymalizowany: Rozstaw 10 cm przy oknie (strefa 1m), zasilanie 35°C, SCOP 4,15.",
        "Efekt ekonomiczny: Oszczędność 1450 PLN rocznie na energii elektrycznej."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#webapp-casestudy",
    "name": "Eksplorator Błędów Projektowych HVAC",
    "description": "Moduł porównawczy prezentujący inżynierskie różnice pomiędzy wykonawstwem amatorskim a rzetelnym projektem OZC w kontekście stref przyokiennych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="case-study-module" id="app-case-study">

    <div class="cs-header-wrapper">
        <div class="cs-badge">Case Study – Audyt Projektu</div>
        <h2>Analiza rzeczywistego projektu instalacji</h2>
        <div class="cs-stats-grid">
            <div class="cs-stat-box">
                <span class="cs-stat-label">Data audytu</span>
                <span class="cs-stat-value">Marzec 2026</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Lokalizacja</span>
                <span class="cs-stat-value">Okolice Krosna</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Pow. domu</span>
                <span class="cs-stat-value">165 m²</span>
            </div>
            <div class="cs-stat-box">
                <span class="cs-stat-label">Oszczędności</span>
                <span class="cs-stat-value">1450 PLN / rok</span>
            </div>
        </div>
    </div>

    <div class="cs-content-section">
        <p class="cs-lead-text">
            Podczas weryfikacji dokumentacji technicznej dla inwestora budującego dom w województwie podkarpackim, natrafiliśmy na poważny błąd wykonawczy. Pierwotny instalator zaplanował ułożenie rur w uniwersalnym rozstawie 15 cm na całej powierzchni budynku. Zignorował fakt, że w salonie znajduje się <strong>wielkogabarytowe okno przesuwne HS o szerokości 5,5 metra</strong>.
        </p>
        
        <div class="cs-author-box">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="cs-author-photo" loading="lazy">
            <p>Audyt przeprowadził CEO portalu  <a href="https://projekt-ogrzewania.pl/">Robert Kucharski</a>. Wprowadzenie danych do autorskiego oprogramowania wykazało, że strefa przyokienna generuje straty ciepła na poziomie 85 W/m².</p>
        </div>
    </div>

    <div class="cs-interactive-section">
        <div class="cs-split-container">
            
            <div class="cs-split-card before">
                <div class="cs-card-header">
                    <span class="cs-card-icon">❌</span>
                    <h3 class="cs-card-title">Pierwotny pomysł wykonawcy</h3>
                </div>
                <p class="cs-card-desc">Rury ułożone rzadko (15 cm) pod oknem HS. Aby pokryć straty 85 W/m², instalator musiał podnieść temperaturę zasilania pompy do 45°C. Dodatkowo jedna pętla miała aż 138 metrów.</p>
                
                <div class="cs-seo-details">
                    <h4>Skutki inżynieryjne błędu:</h4>
                    <ul>
                        <li>Opór hydrauliczny pętli przekroczył <strong>25 kPa</strong>.</li>
                        <li>Spadek przepływu na rotametrze <strong>poniżej 0,5 l/min</strong>.</li>
                        <li>Wymuszenie podbicia krzywej grzewczej <strong>do 45/40°C</strong>.</li>
                    </ul>
                </div>

                <div class="cs-static-svg-box">
                    <svg class="cs-svg-graphic" viewBox="0 0 200 100">
                        <rect x="20" y="10" width="160" height="10" fill="#94a3b8"/>
                        <line x1="20" y1="15" x2="180" y2="15" stroke="#ffffff" stroke-width="2"/>
                        <circle cx="50" cy="50" r="6" fill="#ef4444"/>
                        <circle cx="100" cy="50" r="6" fill="#ef4444"/>
                        <circle cx="150" cy="50" r="6" fill="#ef4444"/>
                        <text x="100" y="85" font-size="12" font-weight="bold" fill="#ef4444" text-anchor="middle">Zasilanie: 45°C | SCOP: 3.2</text>
                    </svg>
                </div>

                <div class="cs-card-solution">
                    Efekt: Drastyczny spadek sprawności pompy (SCOP 3.2), wysokie opory hydrauliczne pętli 138m i chłód bijący od strony szyb w zimie.
                </div>
            </div>

            <div class="cs-split-card after">
                <div class="cs-card-header">
                    <span class="cs-card-icon">✅</span>
                    <h3 class="cs-card-title">Inżynierska optymalizacja</h3>
                </div>
                <p class="cs-card-desc">Skróciliśmy skrajną pętlę do bezpiecznych 92 m i zagęściliśmy rury do 10 cm w pasie o szerokości 1 metra (strefa brzegowa pod oknem). Reszta salonu co 15 cm.</p>
                
                <div class="cs-seo-details">
                    <h4>Korekta projektowa przyniosła:</h4>
                    <ul>
                        <li>Redukcję oporów hydraulicznych <strong>poniżej 15 kPa</strong>.</li>
                        <li>Prawidłowe zrównoważenie sekcji na <strong>1,8 l/min</strong>.</li>
                        <li>Obniżenie krzywej grzewczej dla PC <strong>do 35/30°C</strong>.</li>
                    </ul>
                </div>

                <div class="cs-static-svg-box">
                    <svg class="cs-svg-graphic" viewBox="0 0 200 100">
                        <rect x="20" y="10" width="160" height="10" fill="#94a3b8"/>
                        <line x1="20" y1="15" x2="180" y2="15" stroke="#ffffff" stroke-width="2"/>
                        <circle cx="40" cy="40" r="6" fill="#10b981"/>
                        <circle cx="70" cy="40" r="6" fill="#10b981"/>
                        <circle cx="100" cy="40" r="6" fill="#10b981"/>
                        <circle cx="145" cy="50" r="6" fill="#10b981"/>
                        <text x="100" y="85" font-size="12" font-weight="bold" fill="#10b981" text-anchor="middle">Zasilanie: 35°C | SCOP: 4.15</text>
                    </svg>
                </div>

                <div class="cs-card-solution">
                    Efekt: Obniżenie zasilania do 35°C, wzrost SCOP do 4.15 i realna oszczędność 1450 PLN każdego roku. Równomierny rozkład ciepła.
                </div>
            </div>

        </div>
    </div>

</div>

<script>
(function() {
    const initCaseStudy = () => {
        // Zabezpieczenie domenowe (Skrypt nie usuwa już interakcji z kart, służy tylko do blokady)
        const domain = window.location.hostname;
        const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
        
        if (!allowedDomains.includes(domain)) {
            const container = document.getElementById('app-case-study');
            if (container) {
                container.innerHTML = `
                    <div style="padding: 40px 25px; text-align: center; background: #fee2e2; color: #dc2626; border-radius: 24px; border: 2px solid #ef4444;">
                        <span style="font-size: 40px; display: block; margin-bottom: 10px;">🔒</span>
                        <h3 style="margin: 0 0 10px 0; font-size: 20px;">Studium Przypadku Chronione</h3>
                        <p style="font-size: 14px; margin-bottom: 15px;">Ten panel to autorska własność Projekt-Ogrzewania.pl. Użycie nieautoryzowane.</p>
                    </div>
                `;
            }
        }
    };

    // Zabezpieczenie przed przedwczesnym odpaleniem skryptu
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initCaseStudy);
    } else {
        initCaseStudy();
    }
})();
</script>



<style>
:root {
    --rk-quote-dark: #0f172a;
    --rk-quote-darker: #020617;
    --rk-quote-primary: #3b82f6; /* Hydronic Blue */
    --rk-quote-accent: #10b981; /* Emerald/Green for success */
    --rk-quote-warning: #f59e0b; /* Amber */
    --rk-quote-danger: #ef4444; /* Red */
    --rk-quote-bg: #ffffff;
    --rk-quote-surface: #f8fafc;
    --rk-quote-border: #cbd5e1;
    --rk-quote-text: #334155;
    --rk-quote-muted: #64748b;
    --rk-quote-shadow: 0 20px 40px -10px rgba(59, 130, 246, 0.15);
}

.rk-quote-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-quote-bg);
    border-radius: 24px;
    box-shadow: var(--rk-quote-shadow);
    border: 1px solid var(--rk-quote-border);
    overflow: hidden;
}

/* --- NAGŁÓWEK I CYTAT --- */
.rk-quote-header {
    background: linear-gradient(135deg, var(--rk-quote-darker) 0%, var(--rk-quote-dark) 100%);
    padding: 50px 50px 40px;
    position: relative;
    border-bottom: 4px solid var(--rk-quote-primary);
    text-align: center;
}

.rk-quote-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(59, 130, 246, 0.2);
    color: #93c5fd;
    padding: 6px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 25px;
    border: 1px solid rgba(147, 197, 253, 0.3);
}

.rk-quote-box {
    position: relative;
    max-width: 800px;
    margin: 0 auto;
}

.rk-quote-mark {
    font-size: 100px;
    color: rgba(255,255,255,0.05);
    position: absolute;
    top: -40px;
    left: -30px;
    line-height: 1;
    font-family: Georgia, serif;
    user-select: none;
}

.rk-quote-text {
    font-size: 24px;
    font-weight: 900;
    line-height: 1.5;
    color: #ffffff;
    margin: 0 0 20px 0;
    position: relative;
    z-index: 2;
}

.rk-quote-text span {
    color: #93c5fd;
}

/* --- INTERAKTYWNE PODSUMOWANIE --- */
.rk-quote-body {
    display: grid;
    grid-template-columns: 320px 1fr;
    background: #ffffff;
}

.rk-rules-list {
    padding: 30px;
    border-right: 1px solid var(--rk-quote-border);
    background: var(--rk-quote-surface);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-rule-btn {
    background: #ffffff;
    border: 2px solid var(--rk-quote-border);
    padding: 15px;
    border-radius: 12px;
    text-align: left;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-rule-btn:hover {
    border-color: #94a3b8;
}

.rk-rule-btn.active {
    background: #eff6ff;
    border-color: var(--rk-quote-primary);
    box-shadow: 0 4px 10px rgba(59, 130, 246, 0.1);
}

.rk-rule-icon {
    width: 36px; height: 36px;
    background: #f1f5f9;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    color: var(--rk-quote-muted);
    flex-shrink: 0;
    transition: 0.3s;
}

.rk-rule-btn.active .rk-rule-icon {
    background: var(--rk-quote-primary);
    color: #ffffff;
}

.rk-rule-text h3 {
    margin: 0 0 4px 0;
    font-size: 14px;
    font-weight: 900;
    color: var(--rk-quote-dark);
}

.rk-rule-text p {
    margin: 0;
    font-size: 12px;
    color: var(--rk-quote-text);
    font-weight: 600;
}

/* Panele Detali */
.rk-rule-details {
    padding: 40px;
    position: relative;
}

.rk-detail-panel {
    display: none;
}

.rk-detail-panel.active {
    display: flex;
    flex-direction: column;
    gap: 20px;
    animation: rkFadeIn 0.3s ease-out;
}

@keyframes rkFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.rk-detail-panel h4 {
    margin: 0;
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-quote-dark);
}

.rk-detail-panel p {
    margin: 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-quote-text);
}

.rk-detail-panel strong { color: var(--rk-quote-dark); }

.rk-detail-svg-box {
    width: 100%;
    height: 180px;
    background: var(--rk-quote-dark);
    border-radius: 16px;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}

.rk-detail-svg { width: 100%; max-width: 250px; height: auto; }

/* --- AUTOR --- */
.rk-quote-author {
    background: #ffffff;
    padding: 30px 50px;
    display: flex;
    align-items: center;
    gap: 25px;
    border-top: 1px solid var(--rk-quote-border);
}

.rk-author-photo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    border: 3px solid var(--rk-quote-primary);
    box-shadow: 0 4px 15px rgba(59, 130, 246, 0.2);
    object-fit: cover;
    flex-shrink: 0;
}

.rk-author-info h4 {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-quote-dark);
}

.rk-author-info p {
    margin: 0 0 10px 0;
    font-size: 14px;
    color: var(--rk-quote-text);
    line-height: 1.5;
}

.rk-author-links {
    display: flex;
    gap: 15px;
}

.rk-author-links a {
    color: var(--rk-quote-primary);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: color 0.2s;
}

.rk-author-links a:hover { color: #1e3a8a; text-decoration: underline; }

@media (max-width: 768px) {
    .rk-quote-header { padding: 40px 25px; }
    .rk-quote-text { font-size: 20px; }
    .rk-quote-body { grid-template-columns: 1fr; }
    .rk-rules-list { border-right: none; border-bottom: 1px solid var(--rk-quote-border); padding: 25px; }
    .rk-rule-details { padding: 25px; }
    .rk-quote-author { flex-direction: column; text-align: center; padding: 30px 25px; }
    .rk-author-links { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#article-quote",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/"
    },
    "headline": "Ostateczne podsumowanie: Dlaczego kompleksowy kalkulator podłogówki to konieczność?",
    "description": "Podsumowanie eksperckie dotyczące projektowania ogrzewania podłogowego. Wpływ normy PN-EN 1264, rozstawu rur, i grubości wylewki na efektywność pomp ciepła i koszty instalacji.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-24",
    "dateModified": "2026-05-24"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#dataset-summary",
    "name": "Kluczowe Parametry i Limity Ogrzewania Podłogowego (Baza Wiedzy)",
    "description": "Zestawienie twardych norm inżynieryjnych podsumowujących artykuł o projektowaniu podłogówki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kompleksowy kalkulator ogrzewania podłogowego",
      "projektowe obciążenie cieplne OZC",
      "rozstaw rur ogrzewania podłogowego",
      "przepływy na rotametrach",
      "długość pętli PEX"
    ],
    "measurementTechnique": "Synteza wniosków z normy PN-EN 1264, uwzględniająca przepływy, średnice i izolacyjność termiczną.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Maksymalna długość pętli PEX 16x2.0 mm wynosi 120 mb.",
        "Grubość wylewki cementowej to min. 45 mm nad rurą, izolacja EPS 100/200.",
        "Rozstaw rur pod pompę ciepła wynosi średnio 10-15 cm, aby uzyskać zasilanie 35°C."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#webapp-quote",
    "name": "Eksplorator Wniosków Projektowych",
    "description": "Interaktywny panel prezentujący 3 złote zasady inżynieryjne instalacji podłogowej, wzbogacony o schematy wektorowe.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-quote-container" id="rk-quote-app">
    
    <div class="rk-quote-header">
        <div class="rk-quote-badge">
            <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
            Podsumowanie Eksperta
        </div>
        
        <div class="rk-quote-box">
            <div class="rk-quote-mark">&#8222;</div>
            <h2 class="rk-quote-text">
                Ogrzewanie podłogowe to nie jest zgadywanka. To czysta matematyka i fizyka budowli. Bez <span>kompleksowego kalkulatora</span> i obliczeń OZC ryzykujesz nie tylko tysiące złotych na etapie wykonawstwa, ale przede wszystkim komfort swojej rodziny przez kolejne dekady.
            </h2>
        </div>
    </div>

    <div class="rk-quote-body">
        
        <div class="rk-rules-list">
            <button class="rk-rule-btn active" data-target="rk-tab-ozc">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><path d="M12 8v4l3 3"></path></svg></div>
                <div class="rk-rule-text">
                    <h3>1. Bilans to Fundament</h3>
                    <p>Straty ciepła vs Zasilanie</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-target="rk-tab-loop">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M21.5 2v6h-6M21.34 15.57a10 10 0 1 1-.57-8.38l5.67-5.67"></path></svg></div>
                <div class="rk-rule-text">
                    <h3>2. Limity Hydrauliczne</h3>
                    <p>Max 120 m dla rury PEX 16</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-target="rk-tab-iso">
                <div class="rk-rule-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="12 2 2 7 12 12 22 7 12 2"></polygon><polyline points="2 17 12 22 22 17"></polyline><polyline points="2 12 12 17 22 12"></polyline></svg></div>
                <div class="rk-rule-text">
                    <h3>3. Konstrukcja Płyty</h3>
                    <p>EPS 100 i Grubość Wylewki</p>
                </div>
            </button>
        </div>

        <div class="rk-rule-details">
            
            <div class="rk-detail-panel active" id="rk-tab-ozc">
                <h4>Projektowe Obciążenie Cieplne</h4>
                <p>Każdy budynek oddaje ciepło inaczej. <strong>Kompleksowy kalkulator ogrzewania podłogowego</strong> przetwarza parametry OZC, dobierając idealny <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-wodnym-ogrzewaniu-podlogowym/" style="color:var(--rk-quote-primary);font-weight:bold;">rozstaw rur</a> (np. 10 cm przy oknach, 15 cm w salonie). Dzięki temu pompa ciepła może pracować na ekstremalnie niskim i tanim zasilaniu rzędu 35°C.</p>
                
                <div class="rk-detail-svg-box">
                    <svg class="rk-detail-svg" viewBox="0 0 200 100">
                        <rect x="50" y="20" width="100" height="60" fill="none" stroke="#64748b" stroke-width="4" rx="4"/>
                        <path d="M 30 50 L 50 50 M 150 50 L 170 50" stroke="#3b82f6" stroke-width="4" stroke-linecap="round"/>
                        <circle cx="100" cy="50" r="15" fill="#10b981"/>
                        <text x="100" y="54" font-size="12" font-weight="bold" fill="#0f172a" text-anchor="middle">OZC</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="rk-tab-loop">
                <h4>Blokada przepływów na rotametrach</h4>
                <p>Zignorowanie normy <strong>PN-EN 1264</strong> i ułożenie pętli dłuższej niż 120 metrów dla rury PEX 16&#215;2.0 kończy się tragedią. Opory hydrauliczne rosną powyżej 20 kPa, co uniemożliwia wyregulowanie <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" style="color:var(--rk-quote-primary);font-weight:bold;">przepływów na rotametrach</a>. Efektem jest permanentnie zimna posadzka.</p>
                
                <div class="rk-detail-svg-box">
                    <svg class="rk-detail-svg" viewBox="0 0 200 100">
                        <path d="M 20 50 Q 50 20 80 50 T 140 50 T 180 50" fill="none" stroke="#3b82f6" stroke-width="6" stroke-linecap="round"/>
                        <line x1="20" y1="80" x2="180" y2="80" stroke="#ef4444" stroke-width="3"/>
                        <text x="100" y="72" font-size="12" font-weight="bold" fill="#ef4444" text-anchor="middle">MAX 120 mb</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="rk-tab-iso">
                <h4>Nośność i pękanie wylewek</h4>
                <p>Ułożenie rur na tanim styropianie fasadowym (EPS 70 zamiast twardego EPS 100/200) to błąd wykonawczy. Pod wpływem ciężaru wylewki i mebli, warstwa izolacji ulega ściśnięciu. Dochodzi do zerwania taśm dylatacyjnych, a grubość jastrychu (min. 45 mm nad rurą) traci swoją strukturę nośną.</p>
                
                <div class="rk-detail-svg-box">
                    <svg class="rk-detail-svg" viewBox="0 0 200 100">
                        <rect x="20" y="20" width="160" height="30" fill="#cbd5e1"/>
                        <rect x="20" y="55" width="160" height="25" fill="#64748b"/>
                        <circle cx="50" cy="35" r="5" fill="#3b82f6"/><circle cx="100" cy="35" r="5" fill="#3b82f6"/><circle cx="150" cy="35" r="5" fill="#3b82f6"/>
                        <text x="100" y="72" font-size="11" font-weight="bold" fill="#ffffff" text-anchor="middle">EPS 100 (Twardy)</text>
                    </svg>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-quote-author">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Inżynier HVAC" class="rk-author-photo" loading="lazy">
        <div class="rk-author-info">
            <h4>Robert Kucharski</h4>
            <p>Główny audytor i projektant HVAC na portalu Projekt-Ogrzewania.pl. Setki zaprojektowanych instalacji i godzin spędzonych na placach budowy przekuwam w twardą, matematyczną wiedzę dla inwestorów.</p>
            <div class="rk-author-links">
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
                    LinkedIn
                </a>
                <a href="https://www.facebook.com/robert.kucharski.budowa.bez.sciemy" target="_blank" rel="noopener noreferrer">
                    <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.469h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.469h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>
                    Facebook
                </a>
            </div>
        </div>
    </div>

</div>

<script>
(function() {
    const initApp = () => {
        // Zabezpieczenie Domenowe - DOMAIN LOCK
        const domain = window.location.hostname;
        const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
        
        if (!allowedDomains.includes(domain)) {
            const container = document.getElementById('rk-quote-app');
            if (container) {
                container.innerHTML = `
                    <div style="padding:40px; text-align:center; background:#0f172a; color:#ef4444; border-radius:24px; font-weight:900; font-family:sans-serif; border: 2px solid #ef4444;">
                        <div style="font-size:30px; margin-bottom:10px;">⚠️</div>
                        BŁĄD LICENCJI:<br>Kontener informacyjny należy do serwisu Projekt-Ogrzewania.pl. Uruchamianie na nieautoryzowanej domenie jest zabronione prawem.
                    </div>
                `;
                return;
            }
        }

        // Logika zakładek
        const btns = document.querySelectorAll('.rk-rule-btn');
        const panels = document.querySelectorAll('.rk-detail-panel');

        btns.forEach(btn => {
            btn.addEventListener('click', function(e) {
                const targetId = e.currentTarget.getAttribute('data-target');
                
                // Reset
                btns.forEach(b => b.classList.remove('active'));
                panels.forEach(p => p.classList.remove('active'));
                
                // Aktywacja
                e.currentTarget.classList.add('active');
                const targetPanel = document.getElementById(targetId);
                if(targetPanel) {
                    targetPanel.classList.add('active');
                }
            });
        });
    };

    // Zabezpieczenie przed opóźnionym ładowaniem (WordPress/Elementor)
    if (document.readyState === 'loading') {
        document.addEventListener('DOMContentLoaded', initApp);
    } else {
        initApp();
    }
})();
</script>



<style>
:root {
    --rk-faq2-dark: #1e293b;
    --rk-faq2-card: #ffffff;
    --rk-faq2-brand: #0ea5e9; /* Ekspercki błękit */
    --rk-faq2-brand-light: #e0f2fe;
    --rk-faq2-accent: #f59e0b; /* Bursztyn dla kontrastu / ciepła */
    --rk-faq2-alert: #ef4444; /* Czerwień błędów */
    --rk-faq2-bg: #f8fafc;
    --rk-faq2-border: #cbd5e1;
    --rk-faq2-text: #334155;
    --rk-faq2-muted: #64748b;
}

.rk-faq2-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--rk-faq2-card);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(14, 165, 233, 0.1);
    border: 1px solid var(--rk-faq2-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-faq2-header {
    background: linear-gradient(135deg, var(--rk-faq2-dark) 0%, #0f172a 100%);
    padding: 40px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 5px solid var(--rk-faq2-brand);
}

.rk-faq2-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(14, 165, 233, 0.2);
    color: #38bdf8;
    padding: 6px 16px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    margin-bottom: 15px;
    border: 1px solid rgba(56, 189, 248, 0.3);
}

.rk-faq2-title {
    font-size: 28px;
    font-weight: 900;
    line-height: 1.3;
    margin: 0;
}

.rk-faq2-title span { color: #bae6fd; }

/* Sekcja Akordeonu */
.rk-faq2-interactive {
    padding: 35px 45px;
    background: var(--rk-faq2-bg);
}

.rk-faq2-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-faq2-item {
    background: var(--rk-faq2-card);
    border: 1px solid var(--rk-faq2-border);
    border-left: 4px solid var(--rk-faq2-border);
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-faq2-item.active {
    border-color: var(--rk-faq2-brand);
    border-left-width: 6px;
    box-shadow: 0 10px 20px -5px rgba(14, 165, 233, 0.15);
}

/* Przycisk Pytania */
.rk-faq2-question {
    width: 100%;
    text-align: left;
    background: transparent;
    border: none;
    padding: 20px 25px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-faq2-dark);
    transition: background 0.3s;
}

.rk-faq2-question:hover {
    background: #f1f5f9;
}

.rk-faq2-item.active .rk-faq2-question {
    background: var(--rk-faq2-brand-light);
    color: #0369a1;
}

.rk-faq2-icon {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: #f1f5f9;
    color: var(--rk-faq2-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq2-item.active .rk-faq2-icon {
    background: var(--rk-faq2-brand);
    color: #ffffff;
    transform: rotate(45deg); /* Zmiana plusa w krzyżyk */
}

/* Kontener Odpowiedzi */
.rk-faq2-answer-wrapper {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq2-item.active .rk-faq2-answer-wrapper {
    grid-template-rows: 1fr;
}

.rk-faq2-answer-inner {
    overflow: hidden;
}

/* Wnętrze Odpowiedzi */
.rk-faq2-content {
    padding: 20px 25px 25px;
    border-top: 1px dashed var(--rk-faq2-border);
    display: grid;
    grid-template-columns: 1fr 220px;
    gap: 30px;
    align-items: center;
}

.rk-faq2-text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-faq2-text);
}

.rk-faq2-text strong {
    font-weight: 800;
    color: var(--rk-faq2-dark);
    background: linear-gradient(120deg, rgba(14, 165, 233, 0.1) 0%, rgba(14, 165, 233, 0.1) 100%);
    background-repeat: no-repeat;
    background-size: 100% 30%;
    background-position: 0 80%;
}

.rk-link {
    color: var(--rk-faq2-brand);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    transition: color 0.3s;
}

.rk-link:hover { color: #0284c7; }

/* Wizualizacje SVG */
.rk-faq2-visual {
    background: #f8fafc;
    border-radius: 12px;
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #e2e8f0;
    position: relative;
    overflow: hidden;
}

.rk-svg-stage { width: 100%; height: 100%; }

/* --- Animacje SVG zależne od .active --- */

/* 1. Mieszacz (Zawór 3-drogowy) */
.anim-mix-hot { stroke-dasharray: 8; animation: flowHot 2s linear infinite; opacity: 0; stroke: #ef4444; }
.anim-mix-cold { stroke-dasharray: 8; animation: flowCold 2s linear infinite; opacity: 0; stroke: #3b82f6; }
.anim-mix-warm { stroke-dasharray: 8; animation: flowWarm 2s linear infinite; opacity: 0; stroke: #f59e0b; }
.rk-faq2-item.active .anim-mix-hot, .rk-faq2-item.active .anim-mix-cold, .rk-faq2-item.active .anim-mix-warm { opacity: 1; }
@keyframes flowHot { to { stroke-dashoffset: -16; } }
@keyframes flowCold { to { stroke-dashoffset: -16; } }
@keyframes flowWarm { to { stroke-dashoffset: 16; } }

/* 2. Glikol vs Woda Demi */
.anim-water-demi { transform: scaleY(0); transform-origin: bottom; transition: transform 1s 0.3s ease-out; fill: #38bdf8; }
.rk-faq2-item.active .anim-water-demi { transform: scaleY(1); }
.anim-bubbles circle { opacity: 0; animation: floatUp 2s infinite ease-in; }
.rk-faq2-item.active .anim-bubbles circle:nth-child(1) { animation-delay: 0.5s; }
.rk-faq2-item.active .anim-bubbles circle:nth-child(2) { animation-delay: 1.2s; }
.rk-faq2-item.active .anim-bubbles circle:nth-child(3) { animation-delay: 0.8s; }
@keyframes floatUp { 0% { opacity: 0; transform: translateY(10px); } 50% { opacity: 1; } 100% { opacity: 0; transform: translateY(-20px); } }

/* 3. Długa Pętla (Brak Przepływu) */
.anim-long-pipe { stroke-dasharray: 200; stroke-dashoffset: 200; stroke: #ef4444; transition: stroke-dashoffset 2s 0.3s ease-out; }
.rk-faq2-item.active .anim-long-pipe { stroke-dashoffset: 0; }
.anim-block { opacity: 0; transition: opacity 0.3s 2.3s; }
.rk-faq2-item.active .anim-block { opacity: 1; }

/* 4. Rozstaw Łazienka */
.anim-dense-pipe { stroke-dasharray: 300; stroke-dashoffset: 300; transition: stroke-dashoffset 1.5s 0.3s ease-out; }
.rk-faq2-item.active .anim-dense-pipe { stroke-dashoffset: 0; }
.anim-heat-wave path { opacity: 0; animation: radiate 1.5s infinite alternate; }
.rk-faq2-item.active .anim-heat-wave path:nth-child(1) { animation-delay: 0.8s; }
.rk-faq2-item.active .anim-heat-wave path:nth-child(2) { animation-delay: 1.0s; }
.rk-faq2-item.active .anim-heat-wave path:nth-child(3) { animation-delay: 1.2s; }
@keyframes radiate { from { opacity: 0; transform: translateY(0); } to { opacity: 0.6; transform: translateY(-5px); stroke: #ef4444; } }

/* 5. Wygrzewanie (28 dni) */
.anim-calendar-leaf { transform-origin: top; transition: transform 0.5s 0.3s, opacity 0.5s 0.3s; }
.rk-faq2-item.active .anim-calendar-leaf { transform: rotateX(-90deg); opacity: 0; }
.anim-crack { stroke-dasharray: 50; stroke-dashoffset: 50; transition: stroke-dashoffset 0.5s 0.8s; }
.rk-faq2-item.active .anim-crack { stroke-dashoffset: 0; }

@media (max-width: 768px) {
    .rk-faq2-header, .rk-faq2-interactive { padding: 30px 20px; }
    .rk-faq2-title { font-size: 24px; }
    .rk-faq2-content { grid-template-columns: 1fr; gap: 20px; padding: 20px; }
    .rk-faq2-visual { height: 140px; max-width: 250px; margin: 0 auto; width: 100%; }
    .rk-faq2-question { font-size: 15px; padding: 16px 20px; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania projektowe",
    "description": "Zbiór kluczowych pytań inwestorskich o łączenie podłogówki z grzejnikami, rodzaj zładu (woda vs glikol), graniczne długości pętli oraz proces wygrzewania posadzki.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2026-05-23",
    "dateModified": "2026-05-23"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy można połączyć ogrzewanie podłogowe bezpośrednio z tradycyjnymi grzejnikami w jednym obiegu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Bezpośrednie połączenie jest niedopuszczalne, ponieważ grzejniki wymagają wysokich temperatur zasilania (55–75°C), które zniszczyłyby posadzkę podłogówki. Konieczne jest zastosowanie układu rozdzielczego z niezależną grupą pompowo-mieszaczową wyposażoną w trójdrogowy zawór termostatyczny obniżający parametr dla podłogówki do bezpiecznych 35–40°C."
        }
      },
      {
        "@type": "Question",
        "name": "Czym najlepiej napełnić instalację ogrzewania podłogowego – zwykłą wodą z kranu czy glikolem?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Instalację w domach całorocznych należy napełnić wodą demineralizowaną uzdatnioną inhibitorem korozji, który chroni układ przed odkładaniem się kamienia kotłowego i szlamu. Glikol stosuje się wyłącznie w domkach letniskowych lub układach narażonych na zamarzanie, pamiętając, że zmniejsza on sprawność wymiany ciepła o ok. 10–15% z uwagi na wyższą lepkość kinematiczną."
        }
      },
      {
        "@type": "Question",
        "name": "Co się stanie, jeśli wykonawca ułoży zbyt długą pętlę podłogówki, np. 160 metrów rury 16 mm?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Taka pętla wygeneruje opory hydrauliczne drastycznie przekraczające możliwości standardowej pompy obiegowej, przez co przepływ wody spadnie niemal do zera. W efekcie początek pętli przy rozdzielaczu będzie ciepły, a reszta pomieszczenia pozostanie całkowicie zimna, co wymaga wpięcia dodatkowej pompy wspomagającej lub uciążliwego kucia posadzki w celu podziału obwodu."
        }
      },
      {
        "@type": "Question",
        "name": "Dlaczego w łazienkach zawsze projektuje się gęstszy rozstaw rur (co 10 cm) niż w pokojach?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Łazienki charakteryzują się wyższą temperaturą obliczeniową wnętrza (24°C zamiast 20°C) przy jednoczesnym ograniczeniu wolnej powierzchni posadzki przez brodziki, wanny i miski WC. Gęstszy rozstaw rur pozwala wygenerować wyższą gęstość strumienia cieplnego z jednego metra kwadratowego i pokryć zapotrzebowanie na ciepło mimo małej powierzchni grzewczej."
        }
      },
      {
        "@type": "Question",
        "name": "Po jakim czasie od zalania wylewki betonowej można uruchomić ogrzewanie podłogowe i zacząć proces wygrzewania?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Proces wygrzewania jastrychu cementowego można rozpocząć najwcześniej po upływie 28 dni od jego wylania (dla wylewek anhydrytowych czas ten skraca się do 7 dni). Zbyt wczesne podanie temperatury spowoduje gwałtowne odparowanie wody niezbędnej do procesu hydratacji cementu, co doprowadzi do drastycznego spadku wytrzymałości mechanicznej posadzki i jej nieodwracalnego spękania."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#dataset-faq",
    "name": "Wytyczne Projektowo-Wykonawcze Ogrzewania Podłogowego (Baza Wiedzy)",
    "description": "Kompilacja normatywnych wytycznych instalacyjnych (rozstawy w łazienkach, max długości pętli, proces hydratacji jastrychu) niezbędnych przy obliczeniach hydraulicznych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": { "@type": "Person", "name": "Robert Kucharski" },
    "keywords": [
      "połączenie podłogówki z grzejnikami",
      "woda demineralizowana czy glikol",
      "zbyt długa pętla podłogówki 160m",
      "rozstaw rur w łazience 10 cm",
      "wygrzewanie wylewki betonowej 28 dni"
    ],
    "measurementTechnique": "Określenie parametrów granicznych na podstawie norm PN-EN 1264, PN-EN 12831 oraz wymagań chemii budowlanej (hydratacja cementu).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymóg stosowania zaworu 3-drogowego przy łączeniu z grzejnikami (redukcja 75°C -> 35°C).",
        "Opory hydrauliczne długiej pętli >120m blokują przepływ masowy.",
        "Proces dojrzewania betonu wymaga minimum 28 dni przed startem wygrzewania."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#webapp-faq",
    "name": "Interaktywna Baza Błędów Wykonawczych",
    "description": "Narzędzie FAQ z wbudowanymi animacjami SVG obrazującymi skutki błędów instalacyjnych: brak mieszacza, zbyt długa pętla hydrauliczna czy przedwczesne wygrzewanie betonu.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": { "@type": "Person", "name": "Robert Kucharski" }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-faq2-container" id="rk-faq2-app">
    
    <div class="rk-faq2-header">
        <div class="rk-faq2-badge">
            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Baza Wiedzy Inżyniera
        </div>
        <h2 class="rk-faq2-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-faq2-interactive">
        <div class="rk-faq2-list">
            
            <!-- Pytanie 1: Podłogówka + Grzejniki -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>1. Czy można połączyć podłogówkę bezpośrednio z grzejnikami?</span>
                    <div class="rk-faq2-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    </div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Bezpośrednie połączenie jest <strong>niedopuszczalne</strong>. Grzejniki wymagają wysokich temperatur zasilania (55–75°C), które zniszczyłyby posadzkę podłogówki (pękanie wylewki). Konieczne jest zastosowanie układu rozdzielczego z niezależną grupą pompowo-mieszaczową wyposażoną w <a href="https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/" class="rk-link">zawór termostatyczny</a> obniżający parametr do bezpiecznych 35–40°C.
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-svg-stage" viewBox="0 0 120 80">
                                    <path d="M 10 40 L 40 40" stroke="#ef4444" stroke-width="6" stroke-linecap="round"></path>
                                    <path d="M 40 70 L 40 50" stroke="#3b82f6" stroke-width="6" stroke-linecap="round"></path>
                                    <path d="M 40 40 L 100 40" stroke="#f59e0b" stroke-width="6" stroke-linecap="round"></path>
                                    <!-- Animowane przepływy -->
                                    <path d="M 10 40 L 35 40" stroke-width="3" stroke-linecap="round" class="anim-mix-hot"></path>
                                    <path d="M 40 70 L 40 45" stroke-width="3" stroke-linecap="round" class="anim-mix-cold"></path>
                                    <path d="M 45 40 L 100 40" stroke-width="3" stroke-linecap="round" class="anim-mix-warm"></path>
                                    <circle cx="40" cy="40" r="10" fill="#1e293b"></circle>
                                    <text x="40" y="44" fill="#fff" font-size="10" text-anchor="middle" font-weight="bold">M</text>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 2: Woda vs Glikol -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>2. Czym napełnić instalację – wodą z kranu czy glikolem?</span>
                    <div class="rk-faq2-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    </div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Instalację w domach całorocznych należy napełnić <a href="https://projekt-ogrzewania.pl/woda-demineralizowana-z-inhibitorem-korozji-do-ogrzewania-podlogowego/" class="rk-link">wodą demineralizowaną z inhibitorem korozji</a>. Chroni to układ przed odkładaniem się kamienia i szlamu. <a href="https://projekt-ogrzewania.pl/glikol-w-ogrzewaniu-podlogowym-prawda-i-mity-ktore-musi-znac-kazdy-inwestor/" class="rk-link">Glikol</a> stosuje się wyłącznie w układach narażonych na zamarzanie (domki letniskowe), pamiętając, że zmniejsza on sprawność wymiany ciepła o ok. 10–15% ze względu na gęstość.
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-svg-stage" viewBox="0 0 120 80">
                                    <path d="M 40 20 L 40 70 L 80 70 L 80 20" fill="none" stroke="#94a3b8" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"></path>
                                    <rect x="42" y="30" width="36" height="38" class="anim-water-demi"></rect>
                                    <g class="anim-bubbles" fill="#ffffff">
                                        <circle cx="50" cy="60" r="2"></circle>
                                        <circle cx="60" cy="55" r="3"></circle>
                                        <circle cx="70" cy="65" r="1.5"></circle>
                                    </g>
                                    <text x="60" y="50" fill="#fff" font-size="12" text-anchor="middle" font-weight="bold">H₂O+</text>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 3: Za długa pętla -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>3. Co się stanie, jeśli pętla wyniesie np. 160 metrów?</span>
                    <div class="rk-faq2-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    </div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Taka <a href="https://projekt-ogrzewania.pl/za-dluga-petla-podlogowki/" class="rk-link">za długa pętla</a> wygeneruje opory hydrauliczne drastycznie przekraczające możliwości standardowej pompy obiegowej. Przepływ wody spadnie niemal do zera. W efekcie początek pętli przy rozdzielaczu będzie ciepły, a <strong>reszta pomieszczenia pozostanie całkowicie zimna</strong> (upośledzenie hydrauliczne).
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-svg-stage" viewBox="0 0 120 80">
                                    <path d="M 10 20 Q 30 20, 30 40 T 50 60 T 70 40 T 90 60 T 110 40" fill="none" stroke="#e2e8f0" stroke-width="6" stroke-linecap="round"></path>
                                    <path d="M 10 20 Q 30 20, 30 40 T 50 60" fill="none" stroke-width="6" stroke-linecap="round" class="anim-long-pipe"></path>
                                    <circle cx="50" cy="60" r="8" fill="#ef4444" class="anim-block"></circle>
                                    <line x1="45" y1="55" x2="55" y2="65" stroke="#fff" stroke-width="2" class="anim-block"></line>
                                    <line x1="55" y1="55" x2="45" y2="65" stroke="#fff" stroke-width="2" class="anim-block"></line>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 4: Łazienka 10 cm -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>4. Dlaczego w łazienkach zawsze projektuje się rozstaw rur co 10 cm?</span>
                    <div class="rk-faq2-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    </div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Łazienki charakteryzują się wyższą temperaturą projektową (24°C zamiast 20°C) przy <strong>mocno ograniczonej wolnej powierzchni</strong> posadzki (odchodzą brodziki, wanny, zabudowy WC). Gęstszy <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/" class="rk-link">rozstaw rur (co 10 cm)</a> pozwala wygenerować wyższą gęstość strumienia cieplnego z 1 m² i pokryć straty ciepła przy małej powierzchni grzewczej.
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-svg-stage" viewBox="0 0 120 80">
                                    <path class="anim-dense-pipe" d="M 20 60 L 100 60 M 20 50 L 100 50 M 20 40 L 100 40" stroke="#f59e0b" stroke-width="4" stroke-linecap="round"></path>
                                    <g class="anim-heat-wave" stroke="#f59e0b" stroke-width="2" stroke-linecap="round" fill="none">
                                        <path d="M 40 30 Q 45 25, 50 30 T 60 30"></path>
                                        <path d="M 60 25 Q 65 20, 70 25 T 80 25"></path>
                                        <path d="M 80 30 Q 85 25, 90 30 T 100 30"></path>
                                    </g>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Pytanie 5: Wygrzewanie betonu -->
            <div class="rk-faq2-item">
                <button class="rk-faq2-question">
                    <span>5. Po jakim czasie od zalania wylewki można zacząć ją wygrzewać?</span>
                    <div class="rk-faq2-icon">
                        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
                    </div>
                </button>
                <div class="rk-faq2-answer-wrapper">
                    <div class="rk-faq2-answer-inner">
                        <div class="rk-faq2-content">
                            <div class="rk-faq2-text">
                                Wygrzewanie klasycznego jastrychu cementowego można rozpocząć <strong>najwcześniej po upływie 28 dni</strong> od jego wylania. Zbyt wczesne podanie temperatury spowoduje gwałtowne odparowanie wody niezbędnej do hydratacji cementu. Skutkuje to drastycznym spadkiem wytrzymałości mechanicznej posadzki i jej <strong>nieodwracalnym spękaniem</strong> (tzw. zjawisko &#8222;miski&#8221;).
                            </div>
                            <div class="rk-faq2-visual">
                                <svg class="rk-svg-stage" viewBox="0 0 120 80">
                                    <rect x="40" y="20" width="40" height="40" rx="4" fill="#e2e8f0" stroke="#94a3b8" stroke-width="3"></rect>
                                    <path d="M 45 15 L 45 25 M 75 15 L 75 25" stroke="#ef4444" stroke-width="4" stroke-linecap="round"></path>
                                    <text x="60" y="45" font-size="16" font-weight="bold" fill="#334155" text-anchor="middle">28</text>
                                    <rect class="anim-calendar-leaf" x="40" y="20" width="40" height="20" fill="#cbd5e1" rx="4"></rect>
                                    <!-- Pęknięcie wylewki -->
                                    <path class="anim-crack" d="M 10 70 L 30 65 L 45 75 L 60 60" fill="none" stroke="#1e293b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"></path>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowed = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowed.includes(domain)) {
        const container = document.getElementById('rk-faq2-app');
        if (container) {
            container.innerHTML = `
                <div style="padding:40px; text-align:center; background:#1e293b; color:#ef4444; border-radius:20px; font-weight:900; font-family:sans-serif; border: 2px solid #ef4444;">
                    <div style="font-size:30px; margin-bottom:10px;">⚠️</div>
                    BŁĄD LICENCJI:<br>Kontener FAQ należy do serwisu Projekt-Ogrzewania.pl. Uruchamianie na tej domenie jest nieautoryzowane.
                </div>
            `;
            return;
        }
    }

    // Logika Akordeonu
    const faqItems = document.querySelectorAll('.rk-faq2-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq2-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            // Zamykamy wszystkie
            faqItems.forEach(i => i.classList.remove('active'));
            
            // Otwieramy kliknięty, jeśli nie był aktywny
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    // Otwórz pierwszy element po załadowaniu
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-base-dark: #1e293b;
    --rk-base-darker: #0f172a;
    --rk-base-blue: #0ea5e9;
    --rk-base-light: #f8fafc;
    --rk-base-border: #e2e8f0;
    --rk-pro-green: #10b981;
    --rk-pro-green-bg: #ecfdf5;
    --rk-amateur-red: #ef4444;
    --rk-amateur-red-bg: #fef2f2;
    --rk-text-main: #334155;
    --rk-text-muted: #64748b;
    --rk-card-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.05);
}

.rk-summary-dashboard {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(14, 165, 233, 0.15);
    border: 1px solid var(--rk-base-blue);
    overflow: hidden;
}

/* --- NAGŁÓWEK --- */
.rk-dash-header {
    padding: 45px 50px;
    background: linear-gradient(135deg, var(--rk-base-darker) 0%, var(--rk-base-dark) 100%);
    color: #ffffff;
    position: relative;
}

.rk-dash-header::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--rk-base-blue), var(--rk-pro-green));
}

.rk-dash-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
    color: #ffffff;
}

.rk-dash-lead {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-dash-lead a {
    color: #7dd3fc;
    text-decoration: underline;
    text-underline-offset: 3px;
    font-weight: 600;
}

/* --- INTERAKTYWNY PANEL --- */
.rk-dash-interactive {
    padding: 40px 50px;
    background: var(--rk-base-light);
}

.rk-dash-interactive h3 {
    text-align: center;
    font-size: 22px;
    font-weight: 800;
    color: var(--rk-base-darker);
    margin: 0 0 25px 0;
}

/* Przełącznik (Toggle Switch) */
.rk-toggle-container {
    display: flex;
    justify-content: center;
    margin-bottom: 40px;
}

.rk-master-switch {
    position: relative;
    display: flex;
    background: #e2e8f0;
    border-radius: 999px;
    padding: 6px;
    width: 100%;
    max-width: 500px;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.rk-switch-btn {
    flex: 1;
    padding: 14px 20px;
    font-size: 15px;
    font-weight: 800;
    text-align: center;
    color: var(--rk-text-muted);
    cursor: pointer;
    z-index: 2;
    transition: color 0.3s ease;
    border-radius: 999px;
    user-select: none;
}

.rk-switch-btn.active {
    color: #ffffff;
}

.rk-switch-glider {
    position: absolute;
    top: 6px;
    bottom: 6px;
    left: 6px;
    width: calc(50% - 6px);
    background: var(--rk-pro-green);
    border-radius: 999px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s;
    z-index: 1;
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.3);
}

.state-amateur .rk-switch-glider {
    transform: translateX(100%);
    background: var(--rk-amateur-red);
    box-shadow: 0 4px 10px rgba(239, 68, 68, 0.3);
}

/* Kafelki z parametrami (Grid) */
.rk-metrics-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    margin-bottom: 40px;
}

.rk-metric-card {
    background: #ffffff;
    padding: 25px 20px;
    border-radius: 16px;
    border: 1px solid var(--rk-base-border);
    box-shadow: var(--rk-card-shadow);
    text-align: center;
    transition: all 0.4s ease;
    position: relative;
    overflow: hidden;
}

.rk-metric-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: var(--rk-base-border);
    transition: background-color 0.4s;
}

.state-pro .rk-metric-card::before { background: var(--rk-pro-green); }
.state-amateur .rk-metric-card::before { background: var(--rk-amateur-red); }

.rk-metric-icon {
    margin-bottom: 15px;
    height: 45px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-metric-card h4 {
    margin: 0 0 10px 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-base-darker);
}

.rk-metric-val {
    font-size: 14px;
    font-weight: 600;
    color: var(--rk-text-muted);
    min-height: 42px;
    transition: color 0.3s;
}

.state-pro .rk-val-pro { display: block; color: var(--rk-pro-green); }
.state-pro .rk-val-amateur { display: none; }
.state-amateur .rk-val-pro { display: none; }
.state-amateur .rk-val-amateur { display: block; color: var(--rk-amateur-red); }

/* SVG Dashboard */
.rk-svg-dashboard {
    background: #ffffff;
    border-radius: 20px;
    padding: 30px;
    border: 1px dashed var(--rk-base-border);
    display: flex;
    justify-content: center;
    align-items: center;
}

.rk-main-svg {
    width: 100%;
    max-width: 600px;
    height: auto;
}

/* Animacje SVG */
.svg-eps-block { transform-origin: 50% 80%; transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1); fill: #cbd5e1; }
.state-amateur .svg-eps-block { transform: scaleY(0.6); fill: #fca5a5; }

.svg-pipe-flow { stroke-dasharray: 12; animation: pipeFlow 2s linear infinite; stroke: var(--rk-base-blue); transition: stroke 0.5s; }
.state-amateur .svg-pipe-flow { stroke: var(--rk-amateur-red); animation: pipeFlow 6s linear infinite; } /* Wolniejszy przepływ */

.svg-gauge-needle { transform-origin: 250px 50px; transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); stroke: var(--rk-pro-green); }
.state-amateur .svg-gauge-needle { transform: rotate(135deg); stroke: var(--rk-amateur-red); }

.svg-wallet-money { transform-origin: center; transition: all 0.5s; opacity: 1; transform: translateY(0); }
.state-amateur .svg-wallet-money { opacity: 0; transform: translateY(20px); }

@keyframes pipeFlow { to { stroke-dashoffset: -24; } }

/* CTA */
.rk-dash-footer {
    padding: 35px 50px;
    background: #ffffff;
    text-align: center;
    border-top: 1px solid var(--rk-base-border);
}

.rk-btn-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-base-darker);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 18px 36px;
    border-radius: 14px;
    text-decoration: none;
    box-shadow: 0 10px 20px -5px rgba(15, 23, 42, 0.3);
    transition: all 0.3s;
    border: 2px solid transparent;
}

.rk-btn-action:hover {
    background: var(--rk-base-blue);
    transform: translateY(-4px);
    box-shadow: 0 15px 25px -5px rgba(14, 165, 233, 0.4);
}

/* Responsywność */
@media (max-width: 768px) {
    .rk-dash-header, .rk-dash-interactive, .rk-dash-footer { padding: 30px 25px; }
    .rk-dash-header h2 { font-size: 24px; }
    .rk-metrics-grid { grid-template-columns: 1fr; gap: 15px; }
    .rk-switch-btn { font-size: 14px; padding: 12px 15px; }
    .rk-btn-action { width: 100%; }
}
</style>

<!-- ==========================================
     INVISIBLE DATA (JSON-LD)
=========================================== -->
<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/"
    },
    "headline": "Kompleksowy Kalkulator Ogrzewania Podłogowego – Podsumowanie",
    "description": "Precyzyjne wyliczenia termiczno-hydrauliczne instalacji płaszczyznowej (EPS 100, limit pętli 120 m, zład wodny) to gwarancja efektywności pomp ciepła i uniknięcia kosztownych awarii.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/"
      ]
    },
    "publisher": {
      "@type": "Organization",
      "name": "Projekt-Ogrzewania.pl",
      "logo": {
        "@type": "ImageObject",
        "url": "https://projekt-ogrzewania.pl/wp-content/uploads/2024/09/cropped-Projekt-ogrzewania-logo-1.jpg"
      }
    },
    "datePublished": "2025-03-05",
    "dateModified": "2026-05-23"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#dataset",
    "name": "Wskaźniki Efektywności Termiczno-Hydraulicznej Ogrzewania Podłogowego",
    "description": "Zestawienie porównawcze weryfikujące wpływ kluczowych decyzji instalacyjnych (dobór styropianu, długość pętli, zład wodny) na efektywność systemu grzewczego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "kompleksowy kalkulator ogrzewania podłogowego",
      "obliczenia termiczno-hydrauliczne",
      "styropian podłogowy eps 100",
      "długość pętli rur pert pex",
      "objętość zładu wodnego naczynie wzbiorcze"
    ],
    "measurementTechnique": "Analiza przepływów hydraulicznych i strat nośności izolacji w oparciu o wytyczne normy PN-EN 1264 oraz symulacje oporów liniowych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Klasa styropianu: EPS 100 zapobiega pękaniu wylewek w porównaniu do EPS 70.",
        "Limit długości pętli: Maksymalnie 120 m dla rury 16x2 mm gwarantuje poprawne przepływy.",
        "Pojemność zładu: Determinuje dobór właściwego naczynia przeponowego i zabezpiecza przed skokami ciśnienia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/#webapp",
    "name": "Symulator Kalkulacji Ogrzewania Podłogowego",
    "description": "Interaktywny symulator decyzji instalacyjnych, pokazujący w czasie rzeczywistym parametry hydrauliczne i finansowe wynikające z poprawnego projektowania (OZC) w kontrze do montażu 'na oko'.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<!-- ==========================================
     HTML KONTENERA
=========================================== -->
<div class="rk-summary-dashboard" id="rk-dash-app">
    
    <!-- Nagłówek -->
    <div class="rk-dash-header">
        <h2>Kompleksowy Kalkulator Ogrzewania Podłogowego – Podsumowanie</h2>
        <p class="rk-dash-lead">
            <strong>Kompleksowe obliczenia termiczno-hydrauliczne</strong> instalacji płaszczyznowej to fundament energooszczędnego i bezawaryjnego domu. Każda decyzja projektowa – od wyboru odpowiedniej klasy <a href="https://projekt-ogrzewania.pl/ile-styropianu-pod-ogrzewanie-podlogowe/">styropianu podłogowego (EPS 100)</a>, przez restrykcyjne trzymanie się limitu <a href="https://projekt-ogrzewania.pl/maksymalna-dlugosc-petli-ogrzewania-podlogowego/">120 m długości pętli rur</a> PERT/PEX, aż po precyzyjne wyliczenie objętości zładu wodnego pod kątem <a href="https://projekt-ogrzewania.pl/naczynie-wzbiorcze/">naczynia wzbiorczego</a> – rzutuje bezpośrednio na efektywność pracy nowoczesnych źródeł ciepła, zwłaszcza pomp ciepła. Samodzielne szacowanie parametrów na budowie to prosta droga do awarii.
        </p>
    </div>

    <!-- Panel Interaktywny -->
    <div class="rk-dash-interactive state-pro" id="rk-interactive-board">
        <h3>Symulacja Decyzji Instalacyjnych</h3>
        
        <!-- Przełącznik -->
        <div class="rk-toggle-container">
            <div class="rk-master-switch">
                <div class="rk-switch-glider"></div>
                <div class="rk-switch-btn active" data-mode="pro">Kalkulator i Projekt</div>
                <div class="rk-switch-btn" data-mode="amateur">Szacowanie &#8222;Na oko&#8221;</div>
            </div>
        </div>

        <!-- Kafelki Parametrów -->
        <div class="rk-metrics-grid">
            <div class="rk-metric-card">
                <div class="rk-metric-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-base-darker)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
                </div>
                <h4>Izolacja Podłoża</h4>
                <div class="rk-metric-val">
                    <span class="rk-val-pro">EPS 100/200<br>Brak osiadania wylewki</span>
                    <span class="rk-val-amateur">EPS 70 (Fasada)<br>Pękanie płytek i dylatacji</span>
                </div>
            </div>
            
            <div class="rk-metric-card">
                <div class="rk-metric-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-base-darker)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 3a3 3 0 0 0-3 3v12a3 3 0 0 1-3 3 3 3 0 0 1-3-3 3 3 0 0 1-3-3V6a3 3 0 0 0-3-3"></path><path d="M15 3a3 3 0 0 1 3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0 3-3V6a3 3 0 0 1 3-3"></path></svg>
                </div>
                <h4>Długość Pętli</h4>
                <div class="rk-metric-val">
                    <span class="rk-val-pro">Max 120 m (Rura 16mm)<br>Niskie opory hydrauliczne</span>
                    <span class="rk-val-amateur">&gt; 150 m<br>Zblokowany przepływ (0 l/min)</span>
                </div>
            </div>

            <div class="rk-metric-card">
                <div class="rk-metric-icon">
                    <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--rk-base-darker)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg>
                </div>
                <h4>Zład Wodny</h4>
                <div class="rk-metric-val">
                    <span class="rk-val-pro">Dokładnie obliczony<br>Stabilne ciśnienie układu</span>
                    <span class="rk-val-amateur">Zbyt małe naczynie<br>Wyrzuty wody z zaworu</span>
                </div>
            </div>
        </div>

        <!-- SVG Animowany Dashboard -->
        <div class="rk-svg-dashboard">
            <svg class="rk-main-svg" viewBox="0 0 400 120" xmlns="http://www.w3.org/2000/svg">
                <!-- Lewo: EPS Block -->
                <g transform="translate(30, 20)">
                    <rect x="0" y="40" width="60" height="40" rx="4" class="svg-eps-block"></rect>
                    <rect x="0" y="30" width="60" height="10" fill="#94a3b8"></rect>
                    <!-- Wektor strzałki -->
                    <path d="M30 10 L30 25 M25 20 L30 25 L35 20" stroke="#64748b" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"></path>
                </g>

                <!-- Środek: Przepływ Rur -->
                <g transform="translate(140, 20)">
                    <path d="M0 20 C 30 20, 30 60, 60 60 C 90 60, 90 20, 120 20" fill="none" stroke="#e2e8f0" stroke-width="12" stroke-linecap="round"></path>
                    <path d="M0 20 C 30 20, 30 60, 60 60 C 90 60, 90 20, 120 20" fill="none" stroke-width="6" stroke-linecap="round" class="svg-pipe-flow"></path>
                </g>

                <!-- Prawo: Zegar / Portfel -->
                <g transform="translate(300, 20)">
                    <!-- Zegar Ciśnienia/Opory -->
                    <path d="M0 60 A 40 40 0 0 1 80 60" fill="none" stroke="#e2e8f0" stroke-width="8"></path>
                    <path d="M60 60 A 40 40 0 0 0 80 60" fill="none" stroke="#ef4444" stroke-width="8"></path> <!-- Czerwone pole -->
                    <circle cx="40" cy="60" r="6" fill="#64748b"></circle>
                    <line x1="40" y1="60" x2="15" y2="35" stroke-width="4" stroke-linecap="round" class="svg-gauge-needle"></line>
                </g>
            </svg>
        </div>
    </div>

    <!-- Stopka CTA -->
    <div class="rk-dash-footer">
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-action">
            Przeczytaj poradniki, które pomagają oszczędzać na ogrzewaniu.
            <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg>
        </a>
    </div>
</div>

<!-- ==========================================
     LOGIKA JS I ZABEZPIECZENIE (DOMAIN LOCK)
=========================================== -->
<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // 1. Zabezpieczenie Domenowe - DOMAIN LOCK
    const domain = window.location.hostname;
    const allowedDomains = ['projekt-ogrzewania.pl', 'www.projekt-ogrzewania.pl', 'localhost', '127.0.0.1', ''];
    
    if (!allowedDomains.includes(domain)) {
        const container = document.getElementById('rk-dash-app');
        if (container) {
            container.innerHTML = `
                <div style="padding: 45px; text-align: center; background: #0f172a; color: #f87171; border: 2px solid #ef4444; border-radius: 24px; font-family: sans-serif;">
                    <div style="font-size: 40px; margin-bottom: 20px;">🛑</div>
                    <div style="font-size: 20px; font-weight: 900; margin-bottom: 15px; text-transform: uppercase;">Naruszenie Praw Autorskich</div>
                    <div style="font-size: 15px; color: #cbd5e1; max-width: 550px; margin: 0 auto; line-height: 1.6;">
                        Interaktywny kalkulator i struktura danych JSON-LD są własnością serwisu Projekt-Ogrzewania.pl. Uruchamianie tego kodu na nieautoryzowanej domenie jest zabronione.
                    </div>
                </div>
            `;
            return;
        }
    }

    // 2. Logika Przełącznika (Toggle)
    const interactiveBoard = document.getElementById('rk-interactive-board');
    const switchBtns = document.querySelectorAll('.rk-switch-btn');

    switchBtns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zmiana przycisków
            switchBtns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            // Pobranie trybu
            const mode = this.getAttribute('data-mode');

            // Aktualizacja klasy nadrzędnej (steruje całym CSS i animacjami SVG)
            if (mode === 'amateur') {
                interactiveBoard.classList.remove('state-pro');
                interactiveBoard.classList.add('state-amateur');
            } else {
                interactiveBoard.classList.remove('state-amateur');
                interactiveBoard.classList.add('state-pro');
            }
        });
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/kompleksowy-kalkulator-ogrzewania-podlogowego/">Kompleksowy kalkulator ogrzewania podłogowego.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Średnice rur w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 24 Feb 2026 10:52:01 +0000</pubDate>
				<category><![CDATA[Hydraulika]]></category>
		<category><![CDATA[Hydraulika grzewcza]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Ogrzewanie domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradnik budowlany]]></category>
		<category><![CDATA[Poradnik inwestora]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[długość pętli podłogówki]]></category>
		<category><![CDATA[dobór rur ogrzewanie podłogowe]]></category>
		<category><![CDATA[hydraulika ogrzewania podłogowego]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[projektowanie podłogówki]]></category>
		<category><![CDATA[przepływ w ogrzewaniu podłogowym]]></category>
		<category><![CDATA[rura 16x2 ogrzewanie podłogowe]]></category>
		<category><![CDATA[rura 20x2 ogrzewanie podłogowe]]></category>
		<category><![CDATA[spadki ciśnienia ogrzewanie podłogowe]]></category>
		<category><![CDATA[średnice rur ogrzewanie podłogowe]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3505</guid>

					<description><![CDATA[<p>Dobór elementów instalacji grzewczej to nie przypadek, lecz świadoma decyzja techniczna. Średnice rur w ogrzewaniu podłogowym mają bezpośredni wpływ na przepływ wody, opory hydrauliczne oraz efektywność całego systemu. Zbyt mała średnica może powodować nadmierne spadki ciśnienia i niedogrzanie pomieszczeń, natomiast zbyt duża utrudnia regulację i zwiększa koszty inwestycji. W artykule pokazujemy konkretne obliczenia, przykłady oraz praktyczne zasady projektowe, które pozwalają dobrać optymalne parametry instalacji zarówno dla kotłów gazowych, jak i pomp ciepła.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">Średnice rur w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Projektowanie wodnego ogrzewania podłogowego to balansowanie między wydajnością cieplną a oporami hydraulicznymi. Wybór&nbsp;<strong>średnic rur</strong>&nbsp;ma kluczowe znaczenie dla tego, jak mocno musi pracować pompa obiegowa i czy system będzie w stanie dogrzać pomieszczenie. W tym artykule kompleksowo omawiamy techniczne aspekty doboru rur, obliczania&nbsp;<strong>przepływów</strong>&nbsp;oraz szacowania&nbsp;<strong>spadków ciśnienia</strong>, opierając się na konkretnych przykładach i sprawdzonych wzorach inżynierskich.</p>



<h2 class="wp-block-heading">Dlaczego średnica rury ma znaczenie dla przepływu i spadku ciśnienia?</h2>



<p class="wp-block-paragraph">Wybór odpowiedniej <strong>średnicy <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rur do ogrzewania podłogowego</a></strong> to nie tylko kwestia dostępności materiału w sklepie. To przede wszystkim decyzja inżynierska, która wpływa na opory przepływu, a co za tym idzie – na pracę pompy obiegowej i równomierność ogrzewania pomieszczeń.</p>



<p class="wp-block-paragraph">W praktyce instalacyjnej w budownictwie jednorodzinnym najczęściej stosuje się rury z materiałów takich jak <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/" type="link" id="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">PE-X</a>a, PE-RT lub wielowarstwowe (PEX/Al/PEX). Oto przegląd standardowych średnic:</p>



<ul class="wp-block-list">
<li><strong>16 x 2,0 mm</strong>: To absolutny standard w budownictwie mieszkaniowym. Łączy elastyczność montażu z wystarczającą wydajnością dla większości pomieszczeń. Jego średnica wewnętrzna wynosi 12 mm.</li>



<li><strong>17 x 2,0 mm</strong>: Stosowana głównie w systemach systemowych konkretnych producentów. Oferuje nieco lepsze parametry przepływu niż rura 16 mm.</li>



<li><strong>20 x 2,0 mm</strong>: Używana rzadziej, głównie w dużych halach, pomieszczeniach o bardzo długich pętlach lub tam, gdzie chcemy znacząco zredukować&nbsp;<strong>spadki ciśnienia</strong>. Jej średnica wewnętrzna to 16 mm.</li>
</ul>



<p class="wp-block-paragraph">Dlaczego te różnice są tak istotne? Z praw hydrauliki wynika, że przy tym samym przepływie wody, mniejsza średnica wewnętrzna generuje&nbsp;<strong>znacznie wyższe opory przepływu</strong>. Jeśli opory te staną się zbyt duże, woda nie będzie w stanie efektywnie krążyć w pętli, co skutkuje niedogrzaniem podłogi, zapowietrzaniem się instalacji i nadmiernym hałasem.</p>



<h2 class="wp-block-heading">Jak dokładnie obliczyć wymagany przepływ wody w pętlach?</h2>



<p class="wp-block-paragraph">Zanim przejdziemy do spadków ciśnienia, musimy ustalić, ile wody w ogóle potrzebujemy przesłać przez rurę.&nbsp;<strong>Przepływ w ogrzewaniu podłogowym</strong>&nbsp;(strumień masy) zależy od dwóch czynników:&nbsp;<strong>mocy cieplnej, jaką ma dostarczyć dana pętla</strong>&nbsp;oraz od&nbsp;<strong>różnicy temperatur</strong>&nbsp;między wodą zasilającą a powracającą.</p>



<h3 class="wp-block-heading">Moc pętli i różnica temperatur – wzór i praktyka.</h3>



<p class="wp-block-paragraph">Zapotrzebowanie na ciepło (oznaczane jako Q) dla pomieszczenia wynika z obliczeń strat ciepła. Projektowana różnica temperatur (oznaczana jako ΔT) zależy od źródła ciepła:</p>



<p class="wp-block-paragraph">Dla <strong><a href="https://projekt-ogrzewania.pl/kociol-gazowy/" type="link" id="https://projekt-ogrzewania.pl/kociol-gazowy/">kotłów gazowych</a></strong> standardem jest <strong>ΔT = 7 do 10 stopni (K)</strong> .</p>



<p class="wp-block-paragraph">Dla <strong><a href="https://projekt-ogrzewania.pl/pompa-ciepla/" type="link" id="https://projekt-ogrzewania.pl/pompa-ciepla/">pomp ciepła</a></strong> najczęściej przyjmuje się <strong>ΔT = 5 stopni (K)</strong> , co zapewnia najwyższą efektywność urządzenia (niski skok temperatury).</p>



<div style="max-width:800px;margin:20px auto;padding:20px;border:1px solid #e5e5e5;border-radius:10px;background:#fafafa;font-family:Arial,Helvetica,sans-serif;line-height:1.6;color:#222;">

  <h2 style="font-size:22px;margin-top:0;">Przepływ w ogrzewaniu podłogowym – zależność od mocy i ΔT</h2>

  <p>
    Przepływ zależy od zapotrzebowania na ciepło (<strong>Q</strong>) oraz projektowanej różnicy temperatur między zasilaniem a powrotem (<strong>ΔT</strong>).
  </p>

  <h3 style="font-size:18px;margin-top:20px;">Typowe wartości ΔT w ogrzewaniu podłogowym:</h3>

  <ul style="padding-left:20px;">
    <li><strong>ΔT = 5 K</strong> – zalecane dla pomp ciepła (najwyższa efektywność).</li>
    <li><strong>ΔT = 7–10 K</strong> – stosowane w instalacjach z kotłem gazowym.</li>
  </ul>

  <h3 style="font-size:18px;margin-top:20px;">Wzór na przepływ masowy:</h3>

  <div style="text-align:center;font-size:22px;margin:20px 0;padding:15px;background:white;border-radius:8px;border:1px solid #ddd;">
    ṁ = Q / (c<sub>w</sub> · ΔT)
  </div>

  <h3 style="font-size:18px;margin-top:20px;">Gdzie:</h3>

  <ul style="padding-left:20px;">
    <li><strong>ṁ</strong> – strumień masy [kg/s] (w przybliżeniu odpowiada l/s),</li>
    <li><strong>Q</strong> – moc grzewcza pętli [W],</li>
    <li><strong>c<sub>w</sub></strong> – ciepło właściwe wody ≈ 4186 J/(kg·K),</li>
    <li><strong>ΔT</strong> – różnica temperatur między zasilaniem a powrotem [K].</li>
  </ul>

  <div style="margin-top:25px;padding:15px;background:#eef6ff;border-left:5px solid #2b6cb0;border-radius:6px;">
    <strong>Przykład praktyczny:</strong><br><br>
    Dla pętli o mocy <strong>1000 W</strong> przy <strong>ΔT = 5 K</strong>, wymagany przepływ wynosi około:<br><br>
    <div style="font-size:20px;text-align:center;margin:10px 0;">
      <strong>2,8 l/min</strong>
    </div>
    Większość rotametrów stosowanych w rozdzielaczach obsługuje zakres <strong>0,5 – 5,0 l/min</strong>, co pokrywa typowe wymagania instalacji ogrzewania podłogowego.
  </div>

</div>



<p class="wp-block-paragraph"><strong>Przykład praktyczny:</strong><br>Załóżmy, że projektujemy ogrzewanie podłogowe w salonie, dla którego straty ciepła wynoszą&nbsp;<strong>1500 W (1,5 kW)</strong>&nbsp;. Sprawdźmy, jak zmieni się wymagany przepływ w zależności od przyjętej różnicy temperatur.</p>



<ol start="1" class="wp-block-list">
<li><strong>Dla pompy ciepła (ΔT = 5 K)</strong>&nbsp;:<br>Przepływ masowy = 1500 / (4186 * 5) = 1500 / 20930 ≈ 0,0717 kg/s<br>Przeliczając na godziny i minuty: 0,0717 * 3600 ≈ 258 kg/h, co daje około&nbsp;<strong>4,3 l/min</strong>.</li>



<li><strong>Dla kotła gazowego (ΔT = 10 K)</strong>&nbsp;:<br>Przepływ masowy = 1500 / (4186 * 10) = 1500 / 41860 ≈ 0,0358 kg/s<br>Co daje 0,0358 * 3600 ≈ 129 kg/h, czyli około&nbsp;<strong>2,15 l/min</strong>.</li>
</ol>



<p class="wp-block-paragraph">Wniosek jest prosty: im niższa różnica temperatur (co jest korzystne dla pomp ciepła), tym większy przepływ musi być zapewniony przez instalację, co ma bezpośredni wpływ na dobór średnic i opory hydrauliczne. W praktyce większość rotametrów na rozdzielaczach obsługuje zakres 0,5–5,0 l/min, więc obie wartości mieszczą się w normie.</p>



<p class="wp-block-paragraph">Dla uproszczenia, w dalszej części artykułu posłużymy się popularnym założeniem ΔT = 10 K, co pozwala na stosowanie znanej reguły:&nbsp;<strong>wymagany przepływ (w kg/h) ≈ moc pętli (w W) / 12</strong>.</p>



<h2 class="wp-block-heading">Spadki ciśnienia w ogrzewaniu podłogowym – szczegółowa analiza.</h2>



<p class="wp-block-paragraph">Obliczenie&nbsp;<strong>strat ciśnienia w ogrzewaniu podłogowym</strong>&nbsp;(zwanych też oporami hydraulicznymi) jest niezbędne, aby upewnić się, że pompa obiegowa jest w stanie &#8222;przepchnąć&#8221; wodę przez wszystkie pętle. Na opór składają się straty liniowe (na długości rury) oraz miejscowe (na łukach, złączkach, przy rozdzielaczu).</p>



<h3 class="wp-block-heading">Kluczowe parametry graniczne.</h3>



<p class="wp-block-paragraph">Aby instalacja działała bez zarzutu, projektant zawsze pilnuje trzech rzeczy:</p>



<ol start="1" class="wp-block-list">
<li><strong>Maksymalny spadek ciśnienia:</strong>&nbsp;To najważniejsza granica. Łączne opory przepływu w pojedynczej pętli nie mogą przekroczyć&nbsp;<strong>15–20 kPa (kilopaskali)</strong>&nbsp;, co odpowiada około 1,5–2,0 metra słupa wody. Przekroczenie tej wartości sprawia, że instalacja staje się trudna do zrównoważenia hydraulicznego, a pompa pracuje na granicy wydajności, generując hałas i zużywając więcej prądu.</li>



<li><strong>Minimalna prędkość przepływu:</strong>&nbsp;Aby odpowietrzenie było skuteczne, a woda mogła &#8222;porwać&#8221; pęcherzyki powietrza, prędkość nie może spaść poniżej&nbsp;<strong>0,15–0,2 m/s</strong>.</li>



<li><strong>Maksymalna prędkość przepływu:</strong>&nbsp;Powyżej&nbsp;<strong>0,6 m/s</strong>&nbsp;mogą pojawić się szumy hydrauliczne, a opory przepływu rosną już bardzo gwałtownie.</li>
</ol>



<h3 class="wp-block-heading">Tabela jednostkowych spadków ciśnienia dla popularnych średnic.</h3>



<p class="wp-block-paragraph">W praktyce inżynierskiej do obliczeń używa się gotowych tabel lub wykresów producentów rur. Poniżej przedstawiamy przykładowe wartości jednostkowych spadków ciśnienia (oznaczanych często jako R) dla rur wielowarstwowych (PE-Al-PE) o różnych średnicach. Wartości te pokazują, jak duży opór (w paskalach) stawia jeden metr rury przy danym przepływie.</p>



<div style="max-width:900px;margin:30px auto;font-family:Arial,Helvetica,sans-serif;">

  <h2 style="font-size:22px;margin-bottom:15px;">
    Tabela 1. Jednostkowe spadki ciśnienia [Pa/m] dla rur wielowarstwowych
  </h2>

  <div style="overflow-x:auto;border-radius:10px;border:1px solid #ddd;">

    <table style="width:100%;border-collapse:collapse;min-width:600px;background:white;">

      <thead>
        <tr style="background:#2b6cb0;color:white;text-align:left;">
          <th style="padding:12px;">Przepływ masowy<br>[kg/h]</th>
          <th style="padding:12px;">Rura 16&#215;2,0<br>(śr. wewn. 12 mm)</th>
          <th style="padding:12px;">Rura 20&#215;2,0<br>(śr. wewn. 16 mm)</th>
        </tr>
      </thead>

      <tbody>

        <tr style="border-bottom:1px solid #eee;">
          <td style="padding:12px;"><strong>40</strong></td>
          <td style="padding:12px;">15 Pa/m</td>
          <td style="padding:12px;color:#666;">pomijalnie mały</td>
        </tr>

        <tr style="border-bottom:1px solid #eee;background:#f9f9f9;">
          <td style="padding:12px;"><strong>60</strong></td>
          <td style="padding:12px;">35 Pa/m</td>
          <td style="padding:12px;color:#666;">pomijalnie mały</td>
        </tr>

        <tr style="border-bottom:1px solid #eee;">
          <td style="padding:12px;"><strong>80</strong></td>
          <td style="padding:12px;">70 Pa/m</td>
          <td style="padding:12px;">15 Pa/m</td>
        </tr>

        <tr style="border-bottom:1px solid #eee;background:#f9f9f9;">
          <td style="padding:12px;"><strong>100</strong></td>
          <td style="padding:12px;">120 Pa/m</td>
          <td style="padding:12px;">25 Pa/m</td>
        </tr>

        <tr style="border-bottom:1px solid #eee;">
          <td style="padding:12px;"><strong>120</strong></td>
          <td style="padding:12px;color:#c53030;"><strong>170 Pa/m</strong></td>
          <td style="padding:12px;">35 Pa/m</td>
        </tr>

        <tr style="border-bottom:1px solid #eee;background:#f9f9f9;">
          <td style="padding:12px;"><strong>150</strong></td>
          <td style="padding:12px;color:#c53030;"><strong>280 Pa/m</strong></td>
          <td style="padding:12px;">55 Pa/m</td>
        </tr>

        <tr>
          <td style="padding:12px;"><strong>200</strong></td>
          <td style="padding:12px;color:#c53030;"><strong>480 Pa/m</strong></td>
          <td style="padding:12px;">100 Pa/m</td>
        </tr>

      </tbody>

    </table>

  </div>

  <div style="margin-top:20px;padding:15px;background:#eef6ff;border-left:5px solid #2b6cb0;border-radius:6px;">
    <strong>Analiza tabeli:</strong><br><br>
    Widzimy wyraźnie, jak gwałtownie rosną opory hydrauliczne wraz ze wzrostem przepływu, szczególnie dla najczęściej stosowanej rury <strong>16&#215;2,0</strong>.<br><br>
    Przy przepływie <strong>120 kg/h</strong>, jednostkowy spadek ciśnienia wynosi już <strong>170 Pa/m</strong>, co ma bezpośredni wpływ na dobór pompy obiegowej oraz maksymalną długość pętli ogrzewania podłogowego.
  </div>

</div>



<p class="wp-block-paragraph"><strong>Ćwiczenie praktyczne dla kotła gazowego:</strong><br>Dla naszego salonu (1500 W, ΔT = 10K, przepływ 129 kg/h, zaokrąglijmy do 130 kg/h) projektujemy pętlę z rury 16&#215;2,0 o długości&nbsp;<strong>85 metrów</strong>. Z tabeli, dla 130 kg/h, jednostkowy spadek to około 200 Pa/m (interpolując między 120 a 150 kg/h). Sam liniowy spadek ciśnienia wyniesie:<br><strong>85 m × 200 Pa/m = 17 000 Pa = 17 kPa</strong>.<br>Do tego doliczamy opory miejscowe (przyjęte 20%): 17 kPa × 0,2 = 3,4 kPa.<br><strong>Łączny spadek ciśnienia: 20,4 kPa</strong>.</p>



<p class="wp-block-paragraph"><strong>Wniosek:</strong>&nbsp;Jesteśmy na granicy (lub nieznacznie powyżej) dopuszczalnych 20 kPa. Taka pętla prawdopodobnie będzie wymagała bardzo precyzyjnego wyregulowania, a pompa może pracować na wysokich obrotach. Rozwiązaniem jest skrócenie pętli (np. podzielenie salonu na dwa obiegi po 70 m) lub zwiększenie średnicy rury.</p>



<p class="wp-block-paragraph"><strong>Ćwiczenie praktyczne dla pompy ciepła:</strong><br>Weźmy ten sam salon (1500 W), ale tym razem przy ΔT = 5K, co daje przepływ 258 kg/h (ok. 4,3 l/min). Sprawdźmy, czy rura 16&#215;2,0 w ogóle wchodzi w grę. Dla przepływu 258 kg/h, jednostkowy spadek ciśnienia z tabeli (ekstrapolując dane) wyniósłby około 700-800 Pa/m! Dla pętli o długości 85 m, sam spadek liniowy to 85 × 750 Pa = 63 750 Pa (63,7 kPa). To zdecydowanie za dużo.</p>



<p class="wp-block-paragraph">W tej sytuacji konieczne jest:</p>



<ol start="1" class="wp-block-list">
<li><strong>Zwiększenie średnicy rury</strong>&nbsp;– zastosowanie rury 20&#215;2,0. Dla przepływu 258 kg/h, jednostkowy spadek dla tej rury to około 160 Pa/m (z ekstrapolacji danych). Dla 85 m daje to 13,6 kPa liniowo + opory miejscowe = około 16,5 kPa – wynik akceptowalny.</li>



<li><strong>Podział na więcej pętli</strong>&nbsp;– zaprojektowanie dwóch lub trzech krótszych pętli, co zmniejszy przepływ w każdej z nich i pozwoli na zastosowanie rury 16&#215;2,0, ale zwiększy liczbę obiegów na rozdzielaczu.</li>
</ol>



<h3 class="wp-block-heading">Prędkość przepływu – sprawdzenie.</h3>



<p class="wp-block-paragraph">Dla rury 16&#215;2,0 przy przepływie 130 kg/h, prędkość wody wynosi około&nbsp;<strong>0,3 m/s</strong>&nbsp;– mieści się w przedziale 0,15-0,6 m/s. Dla rury 20&#215;2,0 przy przepływie 258 kg/h, prędkość wyniesie około&nbsp;<strong>0,35 m/s</strong>&nbsp;– również jest prawidłowa.</p>



<h2 class="wp-block-heading">Graniczne długości pętli – zasada kciuka.</h2>



<p class="wp-block-paragraph">Aby uniknąć problemów z hydraulicznym zrównoważeniem układu, w projektowaniu przyjmuje się bezpieczne granice długości jednej <a href="https://projekt-ogrzewania.pl/petla-grzewcza/" type="link" id="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli</a> (łącznie z podejściem do rozdzielacza). Wartości te wynikają z praktyki i mają na celu utrzymanie spadków ciśnienia w rozsądnych granicach.</p>



<div style="max-width:900px;margin:30px auto;font-family:Arial,Helvetica,sans-serif;">

  <h2 style="font-size:22px;margin-bottom:15px;">
    Tabela 2. Zalecane i maksymalne długości pętli ogrzewania podłogowego
  </h2>

  <div style="overflow-x:auto;border-radius:10px;border:1px solid #ddd;">

    <table style="width:100%;border-collapse:collapse;min-width:600px;background:white;">

      <thead>
        <tr style="background:#2b6cb0;color:white;text-align:left;">
          <th style="padding:12px;">Średnica rury</th>
          <th style="padding:12px;">Maksymalna długość pętli</th>
          <th style="padding:12px;">Zalecana długość<br>(dla łatwej regulacji)</th>
        </tr>
      </thead>

      <tbody>

        <tr style="border-bottom:1px solid #eee;">
          <td style="padding:12px;"><strong>16 × 2,0 mm</strong></td>
          <td style="padding:12px;">100 – 120 m</td>
          <td style="padding:12px;color:#2f855a;"><strong>80 m</strong></td>
        </tr>

        <tr style="border-bottom:1px solid #eee;background:#f9f9f9;">
          <td style="padding:12px;"><strong>17 × 2,0 mm</strong></td>
          <td style="padding:12px;">120 m</td>
          <td style="padding:12px;color:#2f855a;"><strong>90 m</strong></td>
        </tr>

        <tr>
          <td style="padding:12px;"><strong>20 × 2,0 mm</strong></td>
          <td style="padding:12px;">150 m</td>
          <td style="padding:12px;color:#2f855a;"><strong>110 m</strong></td>
        </tr>

      </tbody>

    </table>

  </div>

  <div style="margin-top:20px;padding:15px;background:#fff8e6;border-left:5px solid #d69e2e;border-radius:6px;">
    <strong>Wskazówka projektowa:</strong><br><br>
    Staraj się, aby pętle podłączone do jednego rozdzielacza miały <strong>zbliżone długości</strong>. Różnica nie powinna przekraczać <strong>10–15%</strong>.<br><br>
    Ułatwia to regulację hydrauliczną instalacji oraz zapobiega sytuacji, w której przepływ koncentruje się głównie w najkrótszych pętlach, powodując nierównomierne ogrzewanie pomieszczeń.
  </div>

</div>



<h2 class="wp-block-heading">Praktyczne wyliczenia na przykładzie – jak średnica rury ratuje sytuację?</h2>



<p class="wp-block-paragraph">Wróćmy do przykładu z pompą ciepła (przepływ 258 kg/h) i pętlą o długości 100 metrów, ale tym razem zastosujmy rurę&nbsp;<strong>20&#215;2,0</strong>. Z naszych szacunków (opartych na ekstrapolacji danych z Tabeli 1) jednostkowy spadek ciśnienia wyniesie około 160 Pa/m.</p>



<p class="wp-block-paragraph">Obliczenia:</p>



<ul class="wp-block-list">
<li>Spadek liniowy: 100 m × 160 Pa/m = 16 000 Pa =&nbsp;<strong>16,0 kPa</strong>.</li>



<li>Opory miejscowe (+20%): 16,0 kPa × 0,2 = 3,2 kPa.</li>



<li><strong>Łączny spadek ciśnienia: 19,2 kPa.</strong></li>
</ul>



<p class="wp-block-paragraph">To wynik mieszczący się w granicy 20 kPa. Gdybyśmy przy tej samej długości 100 m uparli się przy rurze 16&#215;2,0, opory sięgnęłyby około 75-80 kPa, co całkowicie dyskwalifikuje takie rozwiązanie. Ten przykład dobitnie pokazuje, jak kluczowy jest świadomy wybór&nbsp;<strong>średnicy rury</strong>&nbsp;w zależności od zakładanych przepływów.</p>



<h2 class="wp-block-heading">Rola profesjonalnego projektu w optymalizacji parametrów.</h2>



<p class="wp-block-paragraph">Przedstawione powyżej wyliczenia to dopiero wierzchołek góry lodowej. Samodzielne dobranie&nbsp;<strong>średnic rur, przepływów i spadków ciśnień</strong>&nbsp;dla całego domu z kilkunastoma pętlami o różnej długości i zapotrzebowaniu na moc to zadanie bardzo złożone. W praktyce wszystkie pętle są podłączone do wspólnego rozdzielacza, a celem projektanta jest takie &#8222;wyważenie&#8221; instalacji, aby spadki ciśnienia we wszystkich obiegach były zbliżone. To proces zwany&nbsp;<strong>równoważeniem hydraulicznym</strong>.</p>



<p class="wp-block-paragraph">Profesjonalny <a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-200-m2/" type="link" id="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-200-m2/">projekt ogrzewania podłogowego</a> uwzględnia nie tylko dobór średnic, ale także:</p>



<ul class="wp-block-list">
<li>Dokładne obliczenie strat ciepła dla każdego pomieszczenia.</li>



<li>Rozrysowanie rozkładu pętli z uwzględnieniem stref przyokiennych.</li>



<li>Dobór nastaw wstępnych na rozdzielaczu (regulacja przepływu).</li>



<li>Dobór pompy obiegowej o odpowiedniej wysokości podnoszenia i wydajności.</li>
</ul>



<p class="wp-block-paragraph">Pamiętaj, że dobrze zaprojektowana i zrównoważona instalacja to nie tylko komfort cieplny, ale także niższe rachunki za ogrzewanie i energię elektryczną potrzebną do napędu pompy. Inwestycja w projekt zwraca się zazwyczaj w ciągu pierwszych sezonów grzewczych. Znajomość zależności między&nbsp;<strong>średnicą rury, przepływem a spadkiem ciśnienia</strong>&nbsp;jest jednak niezwykle przydatna do świadomej rozmowy z projektantem i wykonawcą oraz do zrozumienia, dlaczego pewne rozwiązania są rekomendowane.</p>



<h2 class="wp-block-heading">FAQ – Najczęściej zadawane pytania.</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1771926581109"><strong class="schema-faq-question"><strong>Jaka średnica rury jest najlepsza do ogrzewania podłogowego w domu jednorodzinnym?</strong></strong> <p class="schema-faq-answer">Najczęściej stosuje się rurę 16 × 2,0 mm, która zapewnia dobry kompromis między oporami hydraulicznymi a łatwością montażu. W przypadku pomp ciepła lub dużych powierzchni warto rozważyć rurę 20 × 2,0 mm.</p> </div> <div class="schema-faq-section" id="faq-question-1771926590375"><strong class="schema-faq-question"><strong>Dlaczego średnica rury wpływa na wydajność ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Mniejsza średnica powoduje większe opory przepływu, co zwiększa obciążenie pompy obiegowej i może ograniczyć przepływ wody. To prowadzi do spadku wydajności grzewczej i nierównomiernego ogrzewania podłogi.</p> </div> <div class="schema-faq-section" id="faq-question-1771926599440"><strong class="schema-faq-question"><strong>Jaka powinna być maksymalna długość jednej pętli ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Dla rury 16 mm zaleca się długość do około 80–100 metrów, natomiast dla rury 20 mm można stosować pętle do około 110–150 metrów, w zależności od przepływu i źródła ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1771926609348"><strong class="schema-faq-question"><strong>Jakie spadki ciśnienia są dopuszczalne w ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Łączny spadek ciśnienia w jednej pętli nie powinien przekraczać 15–20 kPa. Wyższe wartości utrudniają regulację instalacji i zwiększają zużycie energii przez pompę obiegową.</p> </div> <div class="schema-faq-section" id="faq-question-1771926628127"><strong class="schema-faq-question"><strong>Czy pompa ciepła wymaga innych średnic rur niż kocioł gazowy?</strong></strong> <p class="schema-faq-answer">Tak. Pompy ciepła pracują przy mniejszej różnicy temperatur (ΔT = 5 K), co wymaga większego przepływu wody. W takich przypadkach często stosuje się rury 20 mm lub dzieli instalację na większą liczbę krótszych pętli.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie techniczne – kluczowe wnioski.</h2>



<ul class="wp-block-list">
<li><strong>Rura 16 mm</strong>&nbsp;jest optymalna do rozstawów 10 cm lub 15 cm w standardowych pokojach z kotłami gazowymi (ΔT ≈ 10K). Sprawdza się przy przepływach do ok. 150 kg/h i długościach pętli do 80-100 m.</li>



<li><strong>Przy pompach ciepła</strong>&nbsp;dążymy do niskich parametrów zasilania (30–35°C) i niskiej różnicy temperatur (ΔT = 5K). To wymusza&nbsp;<strong>większe przepływy</strong>, a co za tym idzie – konieczność stosowania&nbsp;<strong>rur 20 mm</strong>&nbsp;lub dzielenia powierzchni na bardzo dużą liczbę krótkich pętli (często co 10 cm).</li>



<li>Każda pętla musi mieć możliwość regulacji na rozdzielaczu (zawory termostatyczne i rotametry), co pozwala na precyzyjne ustawienie wymaganego przepływu obliczonego ze wzoru.</li>



<li>Zawsze sprawdzaj, czy sumaryczny&nbsp;<strong>spadek ciśnienia</strong>&nbsp;w projektowanej pętli nie przekracza 20 kPa, a prędkość wody mieści się w przedziale 0,15–0,6 m/s.</li>
</ul>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/srednice-rur-w-ogrzewaniu-podlogowym/">Średnice rur w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sterowanie pogodowe w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/</link>
					<comments>https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 11 Jan 2026 17:12:18 +0000</pubDate>
				<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[Sterowniki do podłogówki]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[czujnik temperatury zewnętrznej]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje niskotemperaturowe]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[krzywa grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[sterowanie pogodowe]]></category>
		<category><![CDATA[zawór mieszający]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3147</guid>

					<description><![CDATA[<p>Sterowanie pogodowe w ogrzewaniu podłogowym to rozwiązanie, które diametralnie zmienia sposób myślenia o komforcie cieplnym i kosztach eksploatacji domu. Nie reaguje ono na skutki zmian temperatury, lecz przewiduje je z wyprzedzeniem, analizując warunki atmosferyczne na zewnątrz budynku. Dzięki temu instalacja pracuje stabilnie, efektywnie i bez niepotrzebnych strat energii. W artykule szczegółowo omawiamy, jak działa sterowanie pogodowe w ogrzewaniu podłogowym, dlaczego jest kluczowe przy systemach niskotemperaturowych oraz jak poprawnie je zaprojektować i ustawić, aby w pełni wykorzystać jego potencjał.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">Sterowanie pogodowe w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Sterowanie pogodowe</strong>&nbsp;to nie jest zwykły termostat. To zaawansowany algorytmiczny system, który przejmuje obowiązki domowego meteorologa i inżyniera ciepła w jednym, optymalizując pracę instalacji grzewczej w czasie rzeczywistym, w oparciu o kaprysy aury za oknem. W kontekście niskotemperaturowego&nbsp;<strong>wodnego ogrzewania podłogowego (OP)</strong>, jest to często najważniejszy element decydujący o finalnej efektywności, komforcie cieplnym i kosztach eksploatacji. W tym artykule zagłębimy się w techniczne aspekty tego rozwiązania, wyjaśniając jego zasadę działania, korzyści i kluczowe parametry, które decydują o sukcesie całej instalacji.</p>



<h2 class="wp-block-heading">Czym jest sterowanie pogodowe i dlaczego jest tak istotne dla ogrzewania podłogowego?</h2>



<p class="wp-block-paragraph">Klasyczne sterowanie ogrzewaniem opiera się na reakcji na zmianę temperatury <strong>wewnątrz</strong> pomieszczenia. Gdy termostat zarejestruje spadek poniżej zadanej wartości, wysyła sygnał do urządzenia grzewczego, aby to rozpoczęło pracę. System <strong>sterowania pogodowego</strong> (ang. <em>weather compensation</em>) działa <strong>proaktywnie</strong>. Jego podstawą jest <strong>czujnik temperatury zewnętrznej</strong>, montowany zazwyczaj na północnej lub północno-wschodniej elewacji budynku. Analizując te dane, sterownik <strong>na bieżąco koryguje temperaturę wody zasilającej <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętle grzewcze</a></strong>, zanim zmiana warunków na zewnątrz zdąży w istotny sposób wpłynąć na temperaturę wewnątrz.</p>



<p class="wp-block-paragraph"><strong>Dlaczego to takie doskonałe połączenie z ogrzewaniem podłogowym?</strong>&nbsp;Ze względu na jego&nbsp;<strong>dużą bezwładność cieplną</strong>. Tradycyjny grzejnik nagrzeje pomieszczenie relatywnie szybko. Płyta grzewcza podłogi nagrzewa się i stygnie powoli – reakcja na zmiany jest opóźniona. Sterowanie pogodowe eliminuje ten problem,&nbsp;<strong>anticipując zapotrzebowanie na ciepło</strong>. Gdy tylko zaczyna się ochładzać na zewnątrz, system stopniowo podnosi temperaturę zasilania, utrzymując stabilny mikroklimat wewnątrz. Eliminuje to cykle przegrzania i wychłodzenia, zapewniając nieosiągalny w inny sposób komfort.</p>



<h3 class="wp-block-heading">Podstawowa fizyka: Bilans cieplny budynku.</h3>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/jak-oblicza-sie-straty-cieplne-w-budynkach/">Straty ciepła z budynku</a> są wprost proporcjonalne do różnicy temperatur między wnętrzem a otoczeniem. Im jest zimniej na zewnątrz, tym więcej energii trzeba dostarczyć, aby zrównoważyć ucieczkę ciepła przez ściany, dach i okna. Sterownik pogodowy modeluje tę zależność za pomocą <strong>krzywej grzewczej</strong>.</p>



<h2 class="wp-block-heading">Krzywa grzewcza: Serce i algorytm systemu.</h2>



<p class="wp-block-paragraph">To najważniejsze pojęcie w&nbsp;<strong>sterowaniu pogodowym</strong>.&nbsp;<strong><a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">Krzywa grzewcza</a></strong>&nbsp;(zwana też charakterystyką grzania) to matematyczna funkcja lub wykres, który definiuje, jaką temperaturę wody (Tzasilania) powinien ustawić sterownik dla danej, zmierzonej temperatury zewnętrznej (Tzewn).</p>



<p class="wp-block-paragraph">W uproszczeniu:&nbsp;<code>Tzasilania = f(Tzewn)</code></p>



<p class="wp-block-paragraph">Nie jest to zwykła linia prosta, a krzywa, której parametry muszą być&nbsp;<strong>indywidualnie dopasowane do konkretnego budynku</strong>. Na jej kształt wpływają:</p>



<ul class="wp-block-list">
<li><strong>Izolacyjność termiczna budynku</strong>&nbsp;(współczynnik przenikania ciepła U).</li>



<li><strong>Przeznaczenie systemu</strong>&nbsp;(ogrzewanie podłogowe vs. grzejnikowe).</li>



<li><strong>Oczekiwana temperatura wewnętrzna</strong>.</li>



<li><strong>Specyfika źródła ciepła</strong>&nbsp;(pompa ciepła, kocioł kondensacyjny).</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład w liczbach:</strong><br>Dla dobrze ocieplonego domu z&nbsp;<strong>ogrzewaniem podłogowym</strong>&nbsp;krzywa może wyglądać tak:</p>



<ul class="wp-block-list">
<li>Przy&nbsp;<strong>Tzewn = +20°C</strong>&nbsp;(brak zapotrzebowania) -&gt;&nbsp;<strong>Tzasilania = 20°C</strong>&nbsp;(system wyłączony).</li>



<li>Przy&nbsp;<strong>Tzewn = 0°C</strong>&nbsp;-&gt;&nbsp;<strong>Tzasilania = 32°C</strong>.</li>



<li>Przy&nbsp;<strong>Tzewn = -10°C</strong>&nbsp;-&gt;&nbsp;<strong>Tzasilania = 38°C</strong>.</li>



<li>Przy&nbsp;<strong>Tzewn = -20°C</strong>&nbsp;(temperatura projektowa) -&gt;&nbsp;<strong>Tzasilania = 45°C</strong>.</li>
</ul>



<p class="wp-block-paragraph">Dla tego samego budynku z&nbsp;<strong>grzejnikami</strong>, wartości byłyby znacznie wyższe (np. 55°C przy -10°C), ale to temat na osobny artykuł.</p>



<h3 class="wp-block-heading">Praktyczna korekta: Nachylenie i równoległe przesunięcie.</h3>



<p class="wp-block-paragraph">W nowoczesnych sterownikach użytkownik lub instalator ma do dyspozycji dwa kluczowe regulatory:</p>



<ol start="1" class="wp-block-list">
<li><strong>Nachylenie krzywej (Slope):</strong>&nbsp;Decyduje o tym, jak agresywnie system reaguje na spadek temperatury zewnętrznej. Im słabiej ocieplony budynek, tym krzywa musi być bardziej stroma.</li>



<li><strong>Równoległe przesunięcie (Parallel shift):</strong>&nbsp;Pozwala na podniesienie lub obniżenie całej krzywej o kilka stopni. To &#8222;subiektywne&#8221; ustawienie komfortu. Jeśli domownicy preferują &#8222;cieplejsze&#8221; odczucie, przesuwa się krzywą w górę (+2°C), a system będzie podawał wodę o 2°C cieplejszą dla każdej wartości Tzewn.</li>
</ol>



<p class="wp-block-paragraph">Poniżej uproszczona tabela i wykres ilustrujący te zależności:</p>



<div style="overflow-x:auto; width:100%;">
  <table style="border-collapse: collapse; width:100%; min-width:600px; font-family: Arial, sans-serif;">
    <caption style="caption-side: bottom; padding-top:10px; font-size:14px; color:#555;">
      Krzywa grzewcza – zależność temperatury zasilania od temperatury zewnętrznej
    </caption>
    <thead>
      <tr style="background:#f2f2f2;">
        <th style="border:1px solid #ddd; padding:10px; text-align:center;">
          Temperatura zewnętrzna (°C)
        </th>
        <th style="border:1px solid #ddd; padding:10px; text-align:center;">
          Krzywa bazowa (°C)
        </th>
        <th style="border:1px solid #ddd; padding:10px; text-align:center;">
          Mniejsze nachylenie (°C)
        </th>
        <th style="border:1px solid #ddd; padding:10px; text-align:center;">
          Przesunięcie +3°C (°C)
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">-20</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">45</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">40</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">48</td>
      </tr>
      <tr style="background:#fafafa;">
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">-15</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">42</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">38</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">45</td>
      </tr>
      <tr>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">-10</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">38</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">36</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">41</td>
      </tr>
      <tr style="background:#fafafa;">
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">-5</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">34</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">34</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">37</td>
      </tr>
      <tr>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">0</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">32</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">32</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">35</td>
      </tr>
      <tr style="background:#fafafa;">
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">5</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">28</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">30</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">31</td>
      </tr>
      <tr>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">10</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">25</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">28</td>
        <td style="border:1px solid #ddd; padding:8px; text-align:center;">28</td>
      </tr>
    </tbody>
  </table>
</div>



<div style="max-width:900px; height:450px; margin:40px auto;">
  <canvas id="krzywaGrzewcza"></canvas>
</div>

<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
const ctx = document.getElementById('krzywaGrzewcza').getContext('2d');

new Chart(ctx, {
  type: 'line',
  data: {
    labels: [-20, -15, -10, -5, 0, 5, 10],
    datasets: [
      {
        label: 'Krzywa bazowa',
        data: [45, 42, 38, 34, 32, 28, 25],
        borderColor: '#1f77b4',
        tension: 0.3,
        borderWidth: 3,
        pointRadius: 4
      },
      {
        label: 'Mniejsze nachylenie',
        data: [40, 38, 36, 34, 32, 30, 28],
        borderColor: '#ff7f0e',
        tension: 0.3,
        borderWidth: 3,
        pointRadius: 4
      },
      {
        label: 'Przesunięcie +3°C',
        data: [48, 45, 41, 37, 35, 31, 28],
        borderColor: '#2ca02c',
        tension: 0.3,
        borderWidth: 3,
        pointRadius: 4
      }
    ]
  },
  options: {
    responsive: true,
    maintainAspectRatio: false, // 🔥 kluczowe
    plugins: {
      legend: {
        position: 'bottom'
      },
      title: {
        display: true,
        text: 'Krzywa grzewcza – wpływ nachylenia i przesunięcia'
      }
    },
    scales: {
      x: {
        title: {
          display: true,
          text: 'Temperatura zewnętrzna (°C)'
        }
      },
      y: {
        min: 0,
        max: 50,
        ticks: {
          stepSize: 5
        },
        title: {
          display: true,
          text: 'Temperatura zasilania (°C)'
        }
      }
    }
  }
});
</script>



<h2 class="wp-block-heading">Architektura systemu: Z czego składa się sterowanie pogodowe?</h2>



<p class="wp-block-paragraph">To nie jest pojedyncze urządzenie, a&nbsp;<strong>zespół współpracujących ze sobą komponentów</strong>:</p>



<ol start="1" class="wp-block-list">
<li><strong>Czujnik temperatury zewnętrznej:</strong>&nbsp;Odporny na warunki atmosferyczne, montowany w miejscu reprezentatywnym, z dala od bezpośredniego słońca czy strumienia powietrza z kratki wentylacyjnej.</li>



<li><strong>Sterownik centralny z algorytmem pogodowym:</strong>&nbsp;&#8222;Mózg&#8221; systemu. Przetwarza sygnał z czujnika, uwzględnia zaprogramowaną krzywą grzewczą i wysyła sygnał sterujący do&#8230;</li>



<li><strong>Zaworu mieszającego (z siłownikiem):</strong>&nbsp;To kluczowy element wykonawczy w obiegu grzewczym podłogówki. Miesza on gorącą wodę z źródła ciepła (np. 65°C z kotła) z chłodną wodą powrotną z pętli podłogowych (np. 30°C), uzyskując żądaną, bezpieczną temperaturę dla podłogi (np. 35°C). Siłownik sterowany jest wprost przez sterownik pogodowy.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">Pompa obiegowa</a> obiegu grzewczego:</strong> Transportuje przygotowaną mieszankę wodną do rozdzielacza i dalej do pętli podłogowych.</li>



<li><strong>(Opcjonalnie) Czujnik temperatury powrotu:</strong>&nbsp;Monitoruje faktyczną temperaturę wody wracającej z instalacji, co pozwala na jeszcze dokładniejszą regulację.</li>
</ol>



<p class="wp-block-paragraph"><strong>Przepływ sygnałów i energii:</strong><br><code>Czujnik zewn. -&gt; Sterownik -&gt; Sygnał do siłownika zaworu mieszającego -&gt; Regulacja proporcji mieszania -&gt; Otrzymanie wody o Tzasilania -&gt; Transport przez pompę do pętli podłogowych -&gt; Oddanie ciepła do pomieszczeń -&gt; Powrót schłodzonej wody</code></p>



<h2 class="wp-block-heading">Optymalizacja lokalizacji czujnika zewnętrznego: Metrologia i termodynamika w praktyce inżynierskiej.</h2>



<p class="wp-block-paragraph">Wybór miejsca montażu&nbsp;<strong>czujnika temperatury zewnętrznej</strong>&nbsp;ma charakter&nbsp;<strong>krytycznego zadania metrologicznego</strong>. Każde odstępstwo od warunków idealnych wprowadza&nbsp;<strong>systematyczny błąd pomiarowy</strong>, który jest następnie&nbsp;<strong>wzmocniony przez algorytm krzywej grzewczej</strong>, prowadząc do strat energii i obniżenia komfortu. Poniżej przedstawiono szczegółowe wytyczne oparte na analizie fizycznych zjawisk wymiany ciepła.</p>



<h3 class="wp-block-heading">Specyfikacja techniczna lokalizacji czujnika.</h3>



<p class="wp-block-paragraph"><strong>1. Orientacja względem stron świata:</strong></p>



<ul class="wp-block-list">
<li><strong>Ściana północna</strong>&nbsp;jest optymalna na półkuli północnej ze względu na&nbsp;<strong>minimalną ekspozycję na bezpośrednie promieniowanie słoneczne</strong>&nbsp;w ciągu całego roku.</li>



<li><strong>Dopuszczalne alternatywy:</strong>&nbsp;Ściana północno-wschodnia lub północno-zachodnia. W ostateczności ściana wschodnia lub zachodnia, pod warunkiem zastosowania&nbsp;<strong>aktywnej osłony radiacyjnej</strong>&nbsp;(daszek o odpowiedniej geometrii).</li>



<li><strong>Ściany południowe są absolutnie wykluczone</strong>&nbsp;z powodu skumulowanej dawki promieniowania bezpośredniego i odbitego, które mogą zawyżać odczyt o&nbsp;<strong>ΔT &gt; 15 K</strong>.</li>
</ul>



<p class="wp-block-paragraph"><strong>2. Wysokość montażu: Standard metrologiczny</strong></p>



<ul class="wp-block-list">
<li>Zakres&nbsp;<strong>1,5 – 2,0 m nad poziomem terenu</strong>&nbsp;jest przyjętym standardem, który pozwala:
<ul class="wp-block-list">
<li>Uniknąć warstwy przygruntowej, charakteryzującej się ekstremalnymi gradientami temperatury (przymrozki radiacyjne, nagrzewanie od podłoża).</li>



<li>Znaleźć się w warstwie&nbsp;<strong>przyściennej o względnie ustabilizowanych parametach przepływu</strong>.</li>



<li>Umożliwić wygodny serwis.</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph"><strong>3. Geometria montażu względem przegrody budowlanej:</strong><br>Czujnik&nbsp;<strong>nie może być montowany bezpośrednio na elewacji</strong>. Wymagane jest zastosowanie&nbsp;<strong>izolowanego wspornika dystansowego</strong>.</p>



<ul class="wp-block-list">
<li><strong>Minimalna odległość od płaszczyzny ściany: 50 mm</strong>&nbsp;(zalecane 80-100 mm).</li>



<li><strong>Cel:</strong>&nbsp;Przerwanie mostka termicznego oraz umieszczenie elementu pomiarowego poza&nbsp;<strong>przyścienną warstwą graniczną</strong>, gdzie temperatura może różnić się od temperatury powietrza swobodnego z powodu wymiany ciepła z budynkiem.</li>



<li><strong>Materiał wspornika:</strong>&nbsp;Powinien charakteryzować się niskim współczynnikiem przewodzenia ciepła (λ &lt; 0,5 W/(m·K)), np. tworzywo sztuczne, stal nierdzewna o minimalnym przekroju.</li>
</ul>



<p class="wp-block-paragraph"><strong>4. Ochrona przed zakłóceniami promieniowaniem:</strong><br>Daszek lub osłona jest&nbsp;<strong>obowiązkowym elementem wyposażenia</strong>, a nie opcją.</p>



<ul class="wp-block-list">
<li><strong>Funkcja podstawowa:</strong>&nbsp;Osłona przed opadami atmosferycznymi i promieniowaniem bezpośrednim.</li>



<li><strong>Funkcja zaawansowana:</strong>&nbsp;Minimalizacja wymiany ciepła przez promieniowanie długofalowe między czujnikiem a otoczeniem (niebem, gruntem, elewacją).</li>



<li><strong>Konstrukcja:</strong>&nbsp;Daszek powinien wystawać poza obrys czujnika ze wszystkich stron o minimum 100 mm. Spód daszku powinien mieć&nbsp;<strong>współczynnik emisyjności ε możliwie niski</strong>&nbsp;(powierzchnia jasna, metalizowana) dla odbijania promieniowania padającego od nagrzanej elewacji.</li>
</ul>



<h3 class="wp-block-heading">Miejsca absolutnie niedopuszczalne – katalog błędów inżynierskich.</h3>



<style>
.weather-table-wrapper {
  overflow-x: auto;
  margin: 30px 0;
}

.weather-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 720px;
  font-size: 15px;
}

.weather-table th,
.weather-table td {
  padding: 14px 16px;
  text-align: left;
  border-bottom: 1px solid #e5e7eb;
  vertical-align: top;
}

.weather-table th {
  background-color: #f3f4f6;
  font-weight: 600;
  white-space: nowrap;
}

.weather-table tr:hover {
  background-color: #f9fafb;
}

.weather-table td strong {
  font-weight: 600;
}

/* Mobile optimization */
@media (max-width: 768px) {
  .weather-table {
    font-size: 14px;
  }
}
</style>

<div class="weather-table-wrapper">
  <table class="weather-table">
    <thead>
      <tr>
        <th>Lokalizacja</th>
        <th>Fizyczne źródło błędu</th>
        <th>Szacunkowa wartość błędu ΔT</th>
        <th>Konsekwencja dla sterowania</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><strong>Bezpośrednie nasłonecznienie</strong></td>
        <td>Absorpcja promieniowania krótkofalowego przez obudowę czujnika.</td>
        <td>+5 do +25 K</td>
        <td>Drastyczne zawyżenie odczytu. System obniża temperaturę zasilania lub wyłącza ogrzewanie mimo realnego zapotrzebowania.</td>
      </tr>

      <tr>
        <td><strong>Przy wylocie powietrza z klimatyzatora split</strong></td>
        <td>Konwekcja wymuszona strumieniem powietrza o skrajnej temperaturze.</td>
        <td>do ±10 K<br><small>(zależnie od trybu pracy)</small></td>
        <td>Losowe, okresowe zakłócenia sygnału powodujące „takowanie” zaworu mieszającego.</td>
      </tr>

      <tr>
        <td><strong>W pobliżu kominów (spalinowych, wentylacyjnych)</strong></td>
        <td>Konwekcja naturalna gorącym powietrzem lub produktami spalania.</td>
        <td>+2 do +8 K</td>
        <td>Systematyczne zawyżenie odczytu temperatury w sezonie grzewczym.</td>
      </tr>

      <tr>
        <td><strong>Głębokie wnęki, załomy, przestrzenie za obiektami</strong></td>
        <td>Zastój powietrza, brak efektywnej wymiany masy powietrza z otoczeniem.</td>
        <td>-3 do +5 K<br><small>(zależnie od nasłonecznienia)</small></td>
        <td>Pomiar lokalnego mikroklimatu zamiast temperatury otoczenia. Opóźniona reakcja systemu.</td>
      </tr>

      <tr>
        <td><strong>Nad dachem lub bezpośrednio przy okapie</strong></td>
        <td>Silna, zorganizowana konwekcja wymuszona przez wiatr (efekt Bernoulliego).</td>
        <td>-1 do -5 K</td>
        <td>Zaniżony odczyt prowadzący do niepotrzebnego podwyższania temperatury zasilania i wzrostu zużycia energii.</td>
      </tr>
    </tbody>
  </table>
</div>



<p class="wp-block-paragraph"><strong>Podsumowanie inżynierskie:</strong>&nbsp;Poprawny montaż czujnika zewnętrznego to&nbsp;<strong>inwestycja w integralność sygnału pomiarowego</strong>. Wymaga on zrozumienia zjawisk&nbsp;<strong>radiacji, konwekcji i przewodzenia</strong>&nbsp;oraz traktowania go jako&nbsp;<strong>precyzyjnego instrumentu pomiarowego</strong>, a nie jedynie akcesoria instalacyjnego. Błąd na tym etapie uniemożliwia realizację pełnego potencjału sterowania pogodowego, bez względu na zaawansowanie użytego sterownika.</p>



<h2 class="wp-block-heading">Nierozerwalny duet: Sterowanie pogodowe a pompa ciepła.</h2>



<p class="wp-block-paragraph">Jeśli istnieje technologia stworzona wprost dla <strong>sterowania pogodowego</strong>, jest to <strong>powietrzna lub gruntowa <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a> (PC)</strong>. Dlaczego to małżeństwo doskonałe?</p>



<p class="wp-block-paragraph"><strong>Pompa ciepła osiąga najwyższą efektywność (współczynnik COP), gdy różnica między temperaturą źródła dolnego (powietrze/grunt) a górnego (instalacja grzewcza) jest jak najmniejsza.</strong>&nbsp;<strong>Sterowanie pogodowe</strong>&nbsp;utrzymuje&nbsp;<strong>temperaturę wody w instalacji na minimalnym, koniecznym poziomie</strong>, idealnie dopasowanym do aktualnych strat cieplnych budynku.</p>



<p class="wp-block-paragraph"><strong>Przykład techniczny i wyliczenie:</strong></p>



<ul class="wp-block-list">
<li><strong>Scenariusz A (bez sterowania pogodowego):</strong>&nbsp;Ustawiona stała temperatura zasilania 40°C. Przy Tzewn = +5°C, budynek potrzebuje tylko wody o temp. 30°C. Pompa i tak musi ją podgrzać do 40°C, marnując energię. COP spada.</li>



<li><strong>Scenariusz B (ze sterowaniem pogodowym):</strong>&nbsp;Przy Tzewn = +5°C, sterownik automatycznie obniża Tzasilania do 30°C. Pompa ciepła pracuje na korzystniejszych parametrach, osiągając wyższy COP.</li>
</ul>



<p class="wp-block-paragraph"><strong>Szacunkowe oszczędności</strong>&nbsp;tylko z tytułu optymalizacji pracy pompy ciepła mogą sięgać&nbsp;<strong>10-15%</strong>&nbsp;rocznego zużycia energii elektrycznej. Dodajmy do tego komfort i ochronę samej instalacji, a&nbsp;<strong>inwestycja w zaawansowany sterownik zwraca się zazwyczaj w 2-3 sezony grzewcze</strong>.</p>



<h2 class="wp-block-heading">Projektowanie instalacji z myślą o sterowaniu pogodowym.</h2>



<p class="wp-block-paragraph">Włączenie <strong>sterowania pogodowego</strong> nie powinno być myślą wsteczną. To element, który musi być <strong>uwzględniony już na etapie <a href="https://projekt-ogrzewania.pl/category/projektowanie-instalacji/">projektowania</a></strong> całego systemu <strong>wodnego ogrzewania podłogowego</strong>.</p>



<ol start="1" class="wp-block-list">
<li><strong>Dobór źródła ciepła:</strong>&nbsp;Projektant musi dobrać kocioł lub pompę ciepła, która będzie efektywnie pracowała w szerokim zakresie temperatur zasilania, preferowanych przez sterownik pogodowy (np. 25-50°C).</li>



<li><strong>Obliczenia hydrauliczne i dobór zaworu mieszającego:</strong>&nbsp;Zawór musi mieć odpowiednią przepustowość (kv) i zakres regulacji, aby precyzyjnie realizować polecenia sterownika w całym zakresie pracy systemu.</li>



<li><strong>Rozplanowanie pętli grzewczych:</strong>&nbsp;Długość i układ pętli muszą zapewniać równomierny odbiór ciepła przy zmiennej temperaturze zasilania. Zbyt długie pętle przy niskiej temperaturze mogą nie dostarczyć wystarczającej mocy.</li>



<li><strong>Straty ciśnienia i dobór pompy:</strong>&nbsp;Pompa obiegowa musi zapewnić wymagany przepływ przy zmiennych oporach instalacji, również gdy część pętli zostanie zamknięta przez sterowniki pokojowe.</li>



<li><strong>Integracja z innymi obiegami:</strong>&nbsp;Jeśli w domu jest również obieg grzejnikowy lub ciepłej wody użytkowej, projekt musi przewidzieć priorytety i algorytmy przełączania między nimi, z centralnym sterownikiem pogodowym jako koordynatorem.</li>
</ol>



<p class="wp-block-paragraph"><strong>Pomijanie tego etapu może prowadzić do:</strong>&nbsp;niedogrzania pomieszczeń w ekstremalne mrozy, &#8222;takowania&#8221; zaworu mieszającego (ciągła, niestabilna regulacja), niepotrzebnie wysokich kosztów energii lub dyskomfortu.</p>



<h2 class="wp-block-heading">Zaawansowane funkcje i praktyczne scenariusze zastosowania.</h2>



<p class="wp-block-paragraph">Nowoczesne sterowniki pogodowe to prawdziwe centra zarządzania energią. Oto ich dodatkowe możliwości:</p>



<ul class="wp-block-list">
<li><strong>Tryb letni (chłodzenie pasywne):</strong>&nbsp;W budynkach z możliwością chłodzenia płaszczyznowego (np. przez wymiennik gruntowy), sterownik może&nbsp;<strong>odwrócić krzywą grzewczą</strong>. Przy wysokiej temperaturze zewnętrznej będzie podawał do pętli chłodną wodę, aby schłodzić pomieszczenia.</li>



<li><strong>Adaptacyjna krzywa grzewcza:</strong>&nbsp;Niektóre algorytmy potrafią &#8222;uczyć się&#8221; budynku – analizują, jak szybko temperatura wewnętrzna spada przy danej Tzewn i korygują nachylenie krzywej dla jeszcze lepszej precyzji.</li>



<li><strong>Integracja z modułem solarnym:</strong>&nbsp;Sterownik może priorytetowo wykorzystywać darmową energię z kolektorów słonecznych do podgrzewania wody w buforze lub bezpośrednio w obiegu grzewczym, dynamicznie modyfikując pracę głównego źródła ciepła.</li>



<li><strong>Zarządzanie buforem ciepła:</strong>&nbsp;Optymalizuje ładowanie i rozładowywanie zasobnika buforowego, aby źródło ciepła (np. kocioł na pellet) pracowało zawsze z pełną mocą i maksymalną sprawnością.</li>
</ul>



<p class="wp-block-paragraph"><strong>Przykład techniczny – harmonogram dobowy:</strong><br>Wyobraźmy sobie dom z OP, pompą ciepła i sterowaniem pogodowym w lutym.</p>



<ul class="wp-block-list">
<li><strong>6:00:</strong>&nbsp;Tzewn = -8°C. Sterownik, zgodnie z krzywą, utrzymuje Tzasilania = 40°C. Dom jest w trybie komfortu (21°C).</li>



<li><strong>8:00-16:00:</strong>&nbsp;Dom pusty. System przechodzi w tryb ekonomiczny (18°C). Przy Tzewn = -5°C, sterownik&nbsp;<strong>samoczynnie</strong>&nbsp;obniża Tzasilania do 36°C, by tylko podtrzymać niższą temperaturę, oszczędzając energię.</li>



<li><strong>16:00:</strong>&nbsp;System wraca do trybu komfortu na godziny przed powrotem domowników, wykorzystując bezwładność podłogi.</li>



<li><strong>22:00:</strong>&nbsp;Tryb nocny. Przy Tzewn = -10°C, Tzasilania spada do 34°C.</li>
</ul>



<h2 class="wp-block-heading">FAQ – najczęstsze pytania.</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1768150685227"><strong class="schema-faq-question"><strong>Czy sterowanie pogodowe może działać bez termostatów pokojowych?</strong></strong> <p class="schema-faq-answer">Tak. W systemach ogrzewania podłogowego sterowanie pogodowe często pełni rolę nadrzędną, a <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">termostaty pokojowe</a> są jedynie elementem korekcyjnym lub zabezpieczającym.</p> </div> <div class="schema-faq-section" id="faq-question-1768150735156"><strong class="schema-faq-question"><strong>Czy sterowanie pogodowe sprawdzi się w starszym domu?</strong></strong> <p class="schema-faq-answer">Tak, ale wymaga odpowiedniego doboru krzywej grzewczej. W budynkach słabiej ocieplonych nachylenie krzywej będzie wyższe niż w domach energooszczędnych.</p> </div> <div class="schema-faq-section" id="faq-question-1768150802500"><strong class="schema-faq-question"><strong>Czy czujnik zewnętrzny naprawdę ma aż tak duże znaczenie?</strong></strong> <p class="schema-faq-answer">Tak. Błędny montaż czujnika powoduje systematyczne przekłamania pomiaru, które prowadzą do wzrostu zużycia energii i pogorszenia komfortu.</p> </div> <div class="schema-faq-section" id="faq-question-1768150814527"><strong class="schema-faq-question"><strong>Jak sterowanie pogodowe wpływa na pompę ciepła?</strong></strong> <p class="schema-faq-answer">Pozwala jej pracować na możliwie niskiej temperaturze zasilania, co zwiększa współczynnik COP i realnie obniża rachunki za energię.</p> </div> <div class="schema-faq-section" id="faq-question-1768150827513"><strong class="schema-faq-question"><strong>Czy ustawienie krzywej grzewczej jest jednorazowe?</strong></strong> <p class="schema-faq-answer">Nie zawsze. W praktyce wymaga kilku tygodni obserwacji i drobnych korekt, aby idealnie dopasować ją do charakterystyki budynku i preferencji domowników.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: Czy sterowanie pogodowe to must-have?</h2>



<p class="wp-block-paragraph"><strong>Sterowanie pogodowe</strong>&nbsp;to nie gadżet, a&nbsp;<strong>fundamentalny element nowoczesnej, efektywnej instalacji grzewczej</strong>, zwłaszcza opartej o&nbsp;<strong>wodne ogrzewanie podłogowe</strong>&nbsp;i&nbsp;<strong>pompę ciepła</strong>. Jego implementacja wymaga świadomego projektowania i poprawnego montażu, ale zwraca się z nawiązką.</p>



<p class="wp-block-paragraph"><strong>Kluczowe wnioski:</strong></p>



<ul class="wp-block-list">
<li><strong>Działa proaktywnie</strong>, antycypując straty ciepła, co jest kluczowe dla systemów o dużej bezwładności.</li>



<li><strong>Zapewnia stały, wysoki komfort cieplny</strong>&nbsp;bez wahań temperatury.</li>



<li><strong>Obniża koszty eksploatacji</strong>&nbsp;(szczególnie w parze z pompą ciepła), optymalizując parametry pracy źródła ciepła.</li>



<li><strong>Wymaga indywidualnego nastawienia</strong>&nbsp;krzywej grzewczej, dostosowanej do budynku i oczekiwań użytkowników.</li>



<li>Jest&nbsp;<strong>inwestycją w inteligentny dom</strong>, która podnosi nie tylko efektywność, ale i wartość całego systemu grzewczego.</li>
</ul>



<p class="wp-block-paragraph">Decydując się na ogrzewanie podłogowe, potraktuj&nbsp;<strong>sterowanie pogodowe</strong>&nbsp;nie jako opcję, a jako&nbsp;<strong>obowiązkowy, centralny punkt sterujący</strong>&nbsp;Twoim domowym klimatem. To decyzja, która po latach będzie procentować niższymi rachunkami i niezmiennym komfortem.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="YlrnSQc52R"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=6XUiZqeHFn#?secret=YlrnSQc52R" data-secret="YlrnSQc52R" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/">Sterowanie pogodowe w ogrzewaniu podłogowym.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Sterownik (regulator) pogodowy.</title>
		<link>https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/</link>
					<comments>https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/#comments</comments>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 08 Jan 2026 11:24:19 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[instalacja]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[krzywa grzewcza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[regulator pogodowy]]></category>
		<category><![CDATA[sterownik pogodowy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3102</guid>

					<description><![CDATA[<p>Nowoczesne ogrzewanie to dziś nie tylko źródło ciepła, ale przede wszystkim inteligentne sterowanie energią. Sterownik (regulator) pogodowy odgrywa kluczową rolę w osiągnięciu stabilnego komfortu cieplnego i realnych oszczędności eksploatacyjnych, szczególnie w instalacjach wodnego ogrzewania podłogowego. W artykule pokazujemy, jak działa regulacja pogodowa, czym jest krzywa grzewcza, dlaczego sama automatyka bez właściwej konfiguracji nie wystarczy oraz jak projektować instalację z myślą o maksymalnej efektywności. To praktyczny przewodnik dla inwestorów i instalatorów, którzy chcą, aby system grzewczy pracował mądrze, a nie „na oko”.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">Sterownik (regulator) pogodowy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">W poszukiwaniu komfortu cieplnego i maksymalnej efektywności systemu grzewczego, coraz więcej inwestorów i instalatorów sięga po zaawansowane rozwiązania automatyki. Jednym z kluczowych, a wręcz fundamentalnych elementów w nowoczesnej instalacji grzewczej jest <strong>sterownik (regulator) pogodowy</strong>.</p>



<p class="wp-block-paragraph">To właśnie to urządzenie, często nazywane mózgiem instalacji, przekształca zwykłe wodne <a href="https://projekt-ogrzewania.pl">ogrzewanie podłogowe</a> w system inteligentny, samodzielnie reagujący na kaprysy aury i gwarantujący stabilny mikroklimat wewnątrz budynku przy minimalnych kosztach eksploatacyjnych. W tym kompleksowym przewodniku zagłębimy się w zasadę działania, konfigurację, korzyści oraz techniczne aspekty doboru i użytkowania regulatorów pogodowych.</p>



<h2 class="wp-block-heading">Zasada działania: jak natura dyktuje warunki pracy instalacji?</h2>



<p class="wp-block-paragraph">Podstawowa idea stojąca za&nbsp;<strong>regulatorem pogodowym</strong>&nbsp;jest genialna w swej prostocie. Opiera się na fizycznej zależności:&nbsp;<strong>im niższa temperatura na zewnątrz budynku, tym większe straty ciepła i tym wyższe zapotrzebowanie na moc grzewczą.</strong>&nbsp;W przeciwieństwie do prostych termostatów, które reagują dopiero na zmianę temperatury&nbsp;<em>wewnątrz</em>&nbsp;pomieszczenia (czyli z opóźnieniem), sterownik pogodowy działa&nbsp;<strong>proaktywnie</strong>.</p>



<h3 class="wp-block-heading">Krzywa grzewcza: matematyczny model Twojego domu.</h3>



<p class="wp-block-paragraph">Sercem algorytmu sterownika jest tzw. <strong><a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywa grzewcza</a></strong> (lub krzywa pogodowa). Jest to zaprogramowana funkcja liniowa lub krzywoliniowa, która dla każdej zmierzonej wartości temperatury zewnętrznej przypisuje odpowiednią <strong>wartość zadanej temperatury zasilania</strong> dla instalacji grzewczej.</p>



<p class="wp-block-paragraph"><strong>Proces działania w pętli zamkniętej:</strong></p>



<ol start="1" class="wp-block-list">
<li><strong>Pomiar:</strong>&nbsp;Czujnik zewnętrzny (najlepiej zamontowany na ścianie północnej lub północno-wschodniej, w miejscu zacienionym i osłoniętym od bezpośredniego działania słońca i wiatru) dostarcza sterownikowi bieżącą wartość temperatury (<em>T_zew</em>).</li>



<li><strong>Obliczenia:</strong>&nbsp;Mikroprocesor sterownika, na podstawie zaprogramowanej&nbsp;<strong>krzywej grzewczej</strong>, oblicza wymaganą temperaturę wody, która powinna popłynąć do pętli grzewczych (<em>T_zasilania_zadana</em>).</li>



<li><strong>Wykonanie:</strong>&nbsp;Sterownik wysyła sygnał (impulsowy, 0-10V, PWM) do siłownika zamontowanego na&nbsp;<strong>zaworzie mieszającym</strong>. Siłownik ustawia pozycję zaworu, który miesza gorącą wodę z obiegu kotłowego z chłodniejszą wodą powrotną z instalacji podłogowej, aż do osiągnięcia dokładnie obliczonej temperatury.</li>



<li><strong>Kontrola:</strong>&nbsp;Czujnik temperatury zamontowany na rurze zasilającej instalacji (tzw. czujnik powrotu lub zasilania) zamyka pętlę regulacji, informując sterownik o rzeczywistej temperaturze i umożliwiając ewentualną korektę.</li>
</ol>



<p class="wp-block-paragraph"><em>Przykład praktyczny:</em>&nbsp;Załóżmy, że krzywa grzewcza jest ustawiona w następujący sposób:</p>



<ul class="wp-block-list">
<li>Dla temperatury zewnętrznej +12°C -&gt; temperatura zasilania 24°C</li>



<li>Dla temperatury zewnętrznej -20°C -&gt; temperatura zasilania 45°C</li>
</ul>



<p class="wp-block-paragraph">Gdy na zewnątrz jest +5°C, sterownik automatycznie wyliczy (np. przez interpolację liniową), że potrzebna temperatura zasilania to około 32°C. Jeśli nad ranem mróz sięgnie -10°C, sterownik sam podniesie zadaną temperaturę do ok. 38-40°C.</p>



<h2 class="wp-block-heading">Dlaczego to rozwiązanie jest tak efektywne? Zalety sterownika pogodowego.</h2>



<p class="wp-block-paragraph">Wdrożenie&nbsp;<strong>automatyki pogodowej</strong>&nbsp;do systemu ogrzewania podłogowego przynosi szereg wymiernych korzyści, które przekładają się zarówno na portfel, jak i na komfort użytkowania.</p>



<ul class="wp-block-list">
<li><strong>Optymalizacja zużycia energii i oszczędności finansowe (nawet do 15-25%).</strong>&nbsp;System działa precyzyjnie, dostarczając dokładnie tyle ciepła, ile jest w danej chwili potrzebne do zbilansowania strat budynku. Eliminuje to zjawisko&nbsp;<strong>przegrzewania</strong>, które jest główną przyczyną marnowania energii w systemach sterowanych wyłącznie termostatami pokojowymi. Brak przestojów i zbędnych, wysokotemperaturowych &#8222;zastrzyków&#8221; ciepła znacząco redukuje rachunki.</li>



<li><strong>Bezkonkurencyjny komfort cieplny.</strong>&nbsp;Ogrzewanie podłogowe ma dużą&nbsp;<strong>bezwładność cieplną</strong>. Reakcja na zmianę ustawienia termostatu może trwać nawet kilka godzin.&nbsp;<strong>Regulator pogodowy</strong>&nbsp;działa z wyprzedzeniem, kompensując straty ciepła na bieżąco. Dzięki temu temperatura w pomieszczeniach pozostaje&nbsp;<strong>niezmiennie stabilna</strong>, bez odczuwalnych wahań czy cykli &#8222;za gorąco/za zimno&#8221;.</li>



<li><strong>Ochrona instalacji grzewczej.</strong>&nbsp;Jednym z podstawowych założeń ogrzewania podłogowego jest praca z relatywnie niskimi temperaturami zasilania (zwykle 35-55°C). Sterownik pogodowy jest &#8222;strażnikiem&#8221; tego założenia, automatycznie chroniąc przed podaniem zbyt gorącej wody, która mogłaby uszkodzić warstwę wylewki, wykładzinę lub powodować dyskomfort użytkowników.</li>



<li><strong>Bezobsługowość i wygoda.</strong>&nbsp;Po prawidłowym zaprogramowaniu system działa w pełni automatycznie przez cały sezon grzewczy. Użytkownik nie musi na bieżąco korygować nastaw, dostosowując je do zmieniającej się pogody.</li>



<li><strong>Elastyczność i integracja.</strong>&nbsp;Nowoczesne sterowniki oferują funkcje&nbsp;<strong>sterowania strefowego</strong>&nbsp;(kilka niezależnych krzywych dla różnych części domu),&nbsp;<strong>zdalnego dostępu przez Wi-Fi</strong>,&nbsp;<strong>integracji z systemami smart home</strong>&nbsp;czy zaawansowanych algorytmów optymalizacji (np. adaptacyjnego czasu nagrzewania).</li>
</ul>



<h2 class="wp-block-heading">Konfiguracja kluczem do sukcesu: parametryzacja krzywej grzewczej.</h2>



<p class="wp-block-paragraph">Sam zakup dobrego&nbsp;<strong>regulatora pogodowego</strong>&nbsp;to tylko połowa sukcesu. Jego prawdziwa moc ujawnia się po poprawnej konfiguracji, czyli&nbsp;<strong>dostrojeniu krzywej grzewczej do charakterystyki cieplnej konkretnego budynku</strong>. Główne parametry to:</p>



<ol start="1" class="wp-block-list">
<li><strong>Nachylenie krzywej (SP, Slope):</strong>&nbsp;Określa, jak agresywnie system reaguje na spadek temperatury zewnętrznej. Wysokie nachylenie (np. 1.8) oznacza duży wzrost temperatury zasilania przy małym spadku temperatury na zewnątrz – potrzebne dla budynków o&nbsp;<strong>dużych stratach ciepła</strong>&nbsp;(słaba izolacja, duże przeszklenia). Niskie nachylenie (np. 0.4) – dla domów&nbsp;<strong>pasywnych lub energooszczędnych</strong>&nbsp;o bardzo małym zapotrzebowaniu na ciepło.</li>



<li><strong>Przesunięcie równoległe (dT, Parallel shift):</strong>&nbsp;Podnosi lub obniża całą krzywą, zachowując jej nachylenie. Służy do korekty subiektywnego odczucia ciepła (&#8222;globalnie jest mi za zimno/za ciepło&#8221;).</li>



<li><strong>Temperatura graniczna (Limit):</strong>&nbsp;Maksymalna i minimalna temperatura zasilania, jaką może zadać sterownik. Zabezpiecza instalację (górny limit, np. 45°C) i zapewnia minimalny komfort (dolny limit, np. 20°C).</li>
</ol>



<p class="wp-block-paragraph"><strong>Przykładowa tabela konfiguracji dla różnych typów budynków:</strong></p>



<div class="table-responsive-wrapper">

  <h3 class="table-title">
    Przykładowa tabela konfiguracji dla różnych typów budynków
  </h3>

  <div class="table-scroll">
    <table class="config-table">
      <thead>
        <tr>
          <th>Typ budynku</th>
          <th>Izolacja termiczna</th>
          <th>Przykładowe nachylenie (SP)</th>
          <th>Komentarz</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td data-label="Typ budynku"><strong>Dom pasywny</strong></td>
          <td data-label="Izolacja termiczna">
            Bardzo dobra<br>
            <small>(ściany &lt; 0.15 W/m²K)</small>
          </td>
          <td data-label="Nachylenie (SP)">0.3 – 0.5</td>
          <td data-label="Komentarz">
            Krzywa bardzo płaska. Temperatura zasilania wzrasta minimalnie nawet przy silnych mrozach.
          </td>
        </tr>

        <tr>
          <td data-label="Typ budynku"><strong>Dom energooszczędny</strong></td>
          <td data-label="Izolacja termiczna">
            Dobra<br>
            <small>(ściany ~0.18 W/m²K)</small>
          </td>
          <td data-label="Nachylenie (SP)">0.6 – 1.0</td>
          <td data-label="Komentarz">
            Umiarkowana reakcja na mróz. Najpopularniejszy zakres dla nowych budynków.
          </td>
        </tr>

        <tr>
          <td data-label="Typ budynku"><strong>Dom modernizowany</strong></td>
          <td data-label="Izolacja termiczna">
            Umiarkowana<br>
            <small>(ściany 0.3–0.5 W/m²K)</small>
          </td>
          <td data-label="Nachylenie (SP)">1.2 – 1.6</td>
          <td data-label="Komentarz">
            Wymaga wyraźnego podnoszenia temperatury zasilania w chłodne dni.
          </td>
        </tr>

        <tr>
          <td data-label="Typ budynku"><strong>Dom stary, nieocieplony</strong></td>
          <td data-label="Izolacja termiczna">
            Słaba<br>
            <small>(ściany &gt; 0.7 W/m²K)</small>
          </td>
          <td data-label="Nachylenie (SP)">1.8 – 2.5</td>
          <td data-label="Komentarz">
            Bardzo stroma krzywa. System musi dynamicznie reagować na zmiany pogody.
          </td>
        </tr>
      </tbody>
    </table>
  </div>

</div>

<style>
.table-responsive-wrapper {
  max-width: 1000px;
  margin: 40px auto;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.table-title {
  text-align: center;
  margin-bottom: 20px;
  font-size: 22px;
  font-weight: 600;
}

.table-scroll {
  overflow-x: auto;
}

.config-table {
  width: 100%;
  border-collapse: collapse;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  border-radius: 8px;
  overflow: hidden;
}

.config-table th,
.config-table td {
  padding: 14px 16px;
  text-align: left;
  vertical-align: top;
}

.config-table thead {
  background: #f4f6f8;
}

.config-table th {
  font-weight: 600;
  font-size: 14px;
  color: #333;
}

.config-table tbody tr {
  border-top: 1px solid #e5e5e5;
}

.config-table td {
  font-size: 14px;
  color: #444;
}

.config-table small {
  color: #777;
  font-size: 12px;
}

/* 📱 MOBILE */
@media (max-width: 768px) {
  .config-table thead {
    display: none;
  }

  .config-table,
  .config-table tbody,
  .config-table tr,
  .config-table td {
    display: block;
    width: 100%;
  }

  .config-table tr {
    margin-bottom: 20px;
    background: #f9fafb;
    border-radius: 8px;
    padding: 10px;
  }

  .config-table td {
    padding: 8px 10px;
    border: none;
  }

  .config-table td::before {
    content: attr(data-label);
    display: block;
    font-weight: 600;
    color: #333;
    margin-bottom: 3px;
    font-size: 13px;
  }
}
</style>



<p class="wp-block-paragraph"><strong>Wykres poglądowy krzywych grzewczych dla różnych typów budynków:</strong></p>



<div class="heating-chart-container">
    <h2 class="chart-title">Krzywa Grzewcza &#8211; Temperatura Zasilania a Temperatura Zewnętrzna</h2>

    <div class="heating-chart-wrapper">
        <svg viewBox="0 0 700 450" class="heating-chart" xmlns="http://www.w3.org/2000/svg">

            <!-- Osie -->
            <line x1="80" y1="50" x2="80" y2="380" class="axis"/>
            <line x1="80" y1="380" x2="650" y2="380" class="axis"/>

            <!-- Opis osi X -->
            <text x="360" y="420" class="axis-label">Temperatura zewnętrzna [°C]</text>

            <!-- Opis osi Y – JESZCZE WYŻEJ -->
            <text x="25" y="210"
                  class="axis-label"
                  transform="rotate(90 25 210)">
                Temperatura zasilania [°C]
            </text>

            <!-- Skala X -->
            <g class="ticks">
                <line x1="120" y1="375" x2="120" y2="385"/>
                <text x="120" y="400">+20</text>

                <line x1="210" y1="375" x2="210" y2="385"/>
                <text x="210" y="400">+10</text>

                <line x1="300" y1="375" x2="300" y2="385"/>
                <text x="300" y="400">0</text>

                <line x1="390" y1="375" x2="390" y2="385"/>
                <text x="390" y="400">-10</text>

                <line x1="480" y1="375" x2="480" y2="385"/>
                <text x="480" y="400">-20</text>
            </g>

            <!-- Skala Y -->
            <g class="ticks">
                <line x1="75" y1="360" x2="85" y2="360"/>
                <text x="55" y="365">20</text>

                <line x1="75" y1="315" x2="85" y2="315"/>
                <text x="55" y="320">25</text>

                <line x1="75" y1="270" x2="85" y2="270"/>
                <text x="55" y="275">30</text>

                <line x1="75" y1="225" x2="85" y2="225"/>
                <text x="55" y="230">35</text>

                <line x1="75" y1="180" x2="85" y2="180"/>
                <text x="55" y="185">40</text>

                <line x1="75" y1="135" x2="85" y2="135"/>
                <text x="55" y="140">45</text>

                <line x1="75" y1="90" x2="85" y2="90"/>
                <text x="55" y="95">50</text>
            </g>

            <!-- Linie -->
            <polyline points="120,350 210,315 300,280 390,245 480,210"
                      class="line eco"/>

            <polyline points="120,325 210,285 300,245 390,205 480,165"
                      class="line modernized"/>

            <polyline points="120,300 210,255 300,210 390,165 480,120"
                      class="line old-house"/>

        </svg>
    </div>

    <div class="chart-legend">
        <div class="legend-item">
            <div class="legend-color eco"></div>
            <div class="legend-text">Dom energooszczędny</div>
        </div>
        <div class="legend-item">
            <div class="legend-color modern"></div>
            <div class="legend-text">Dom modernizowany</div>
        </div>
        <div class="legend-item">
            <div class="legend-color old"></div>
            <div class="legend-text">Dom stary</div>
        </div>
    </div>

    <p class="chart-note">
        <em>Im lepsza izolacja budynku, tym niższa temperatura zasilania potrzebna do ogrzania pomieszczeń przy tej samej temperaturze zewnętrznej.</em>
    </p>
</div>

<style>
.heating-chart-container {
    max-width: 900px;
    margin: 40px auto;
    padding: 20px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0,0,0,.1);
    border: 1px solid #e0e0e0;
}

.chart-title {
    text-align: center;
    margin-bottom: 25px;
    font-size: 22px;
    font-weight: 600;
}

.heating-chart {
    width: 100%;
    min-width: 700px;
    font-family: system-ui, sans-serif;
}

.axis {
    stroke: #444;
    stroke-width: 1.5;
}

.axis-label {
    font-size: 14px;
    fill: #444;
    font-weight: 500;
}

.ticks text {
    font-size: 12px;
    fill: #666;
}

.line {
    fill: none;
    stroke-width: 3;
    stroke-linecap: round;
}

.old-house { stroke: #c0392b; }
.modernized { stroke: #f39c12; }
.eco { stroke: #27ae60; }

.chart-legend {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 20px;
    background: #f8f9fa;
    padding: 15px;
    border-radius: 6px;
}

.legend-item {
    display: flex;
    align-items: center;
}

.legend-color {
    width: 20px;
    height: 20px;
    margin-right: 8px;
    border-radius: 3px;
}

.legend-color.eco { background: #27ae60; }
.legend-color.modern { background: #f39c12; }
.legend-color.old { background: #c0392b; }

.chart-note {
    text-align: center;
    margin-top: 15px;
    font-size: 14px;
    background: #f8f9fa;
    padding: 10px;
    border-radius: 6px;
    border-left: 4px solid #27ae60;
}
</style>



<p class="wp-block-paragraph">*Wykres ilustruje, jak dla tej samej temperatury zewnętrznej (-10°C) różne budynki wymagają innej temperatury zasilania.*</p>



<h3 class="wp-block-heading">Niezbędny element: korekta pokojowa.</h3>



<p class="wp-block-paragraph">Czysta&nbsp;<strong>krzywa pogodowa</strong>&nbsp;nie uwzględnia wewnętrznych zysków ciepła (słońce przez okna, gotowanie, obecność ludzi). Dlatego&nbsp;<strong>absolutnie kluczowym elementem jest czujnik temperatury pokojowej</strong>. Pełni on rolę&nbsp;<strong>sprzężenia zwrotnego</strong>. Jeśli z powodu nasłonecznienia temperatura w pomieszczeniu referencyjnym wzrośnie powyżej wartości zadanej, sterownik&nbsp;<strong>obniży</strong>&nbsp;krzywą (zmniejszy temperaturę zasilania), zapobiegając przegrzaniu. Działa to również w drugą stronę.</p>



<h2 class="wp-block-heading">Projektowanie ogrzewania podłogowego z myślą o automatyce pogodowej.</h2>



<p class="wp-block-paragraph">Planując <strong>system wodnego ogrzewania podłogowego</strong>, już na etapie <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">projektu</a> należy uwzględnić zastosowanie <strong>sterownika pogodowego</strong>. To nie jest jedynie &#8222;dodatek&#8221;, ale integralna część układu, która wpływa na dobór innych komponentów.</p>



<ol start="1" class="wp-block-list">
<li><strong>Dobór źródła ciepła:</strong> <strong>Regulator pogodowy</strong> jest szczególnie efektywny w połączeniu z niskotemperaturowymi źródłami ciepła, takimi jak <strong><a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompa ciepła</a></strong> (która osiąga wyższe współczynniki COP przy niższej temperaturze zasilania) czy <strong>kondensacyjny <a href="https://projekt-ogrzewania.pl/kociol-gazowy/">kocioł gazowy</a></strong>. Projektując system, należy dążyć do możliwie niskich parametrów projektowych (temperatura zasilania 35-40°C), co pozwoli w pełni wykorzystać potencjał tych urządzeń i automatyki.</li>



<li><strong>Konstrukcja <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli grzewczych</a>:</strong> Długość i układ pętli muszą zapewnić wymaganą moc grzewczą przy obliczonej, niskiej temperaturze zasilania. To często wymaga gęstszego rozstawu rur (np. co 10 cm zamiast 15 cm) w strefach o dużych stratach (przy dużych oknach, w narożach).</li>



<li><strong>Układ hydrauliczny i zawór mieszający:</strong> Projekt musi przewidywać miejsce na <strong>zestaw mieszający</strong> (zawór 2-, 3- lub 4-drogowy z siłownikiem, <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompa obiegowa</a>, zabezpieczenia). Moc pompy musi być dobrana do oporów hydraulicznych najdłuższej pętli oraz oporów samego zaworu. Należy też zdecydować o topologii sterowania: czy będzie to jeden sterownik centralny dla całego domu, czy rozbudowany system strefowy z niezależnymi krzywymi dla każdej strefy (np. skrzydło dzienne/nocne, parter/piętro).</li>



<li><strong>Rozmieszczenie czujników:</strong>&nbsp;Należy zaplanować miejsce montażu czujnika zewnętrznego oraz punkt, w którym będzie zamontowany główny czujnik pokojowy (zwykle w reprezentatywnym pomieszczeniu, np. salonie, z dala od bezpośrednich źródeł ciepła i przeciągów).</li>
</ol>



<p class="wp-block-paragraph"><strong>Pomijanie tego etapu i traktowanie automatyki jako &#8222;dokupionego później gadżetu&#8221; prowadzi do suboptymalnej pracy systemu, mniejszych oszczędności i problemów z osiągnięciem komfortu.</strong></p>



<h2 class="wp-block-heading">Wyliczenia i przykłady techniczne w praktyce.</h2>



<p class="wp-block-paragraph">Aby zobrazować działanie&nbsp;<strong>regulatora pogodowego</strong>, przeprowadźmy symulację dla przykładowego domu.</p>



<p class="wp-block-paragraph"><strong>Dane budynku:</strong>&nbsp;Dom energooszczędny o zapotrzebowaniu na moc grzewczą 40 W/m². Powierzchnia ogrzewana: 150 m². Całkowita moc potrzebna: 150 m² * 40 W/m² = 6 kW.<br>Zakładamy, że projektowa temperatura zewnętrzna to -20°C, a wewnętrzna +21°C. Zaprojektowana temperatura zasilania podłogówki to 35°C, a powrotu 28°C.</p>



<p class="wp-block-paragraph"><strong>Krzywa grzewcza:</strong>&nbsp;Przyjęto nachylenie SP=0.8. Dla uproszczenia, funkcja jest liniowa.<br>Wzór przybliżony:&nbsp;<code>T_zasilania = T_wewn - ( (T_wewn - T_zewn) / (T_wewn_proj - T_zewn_proj) ) * SP * (T_wewn_proj - T_zewn_proj)</code><br>Dla naszego przypadku upraszcza się do:&nbsp;<code>T_zasilania = 21 - ( (21 - T_zewn) / (21 - (-20)) ) * 0.8 * (21 - (-20)) = 21 - 0.8*(21 - T_zewn)</code></p>



<p class="wp-block-paragraph"><strong>Obliczenia dla wybranych temperatur zewnętrznych:</strong></p>



<div class="table-responsive-wrapper">

  <h3 class="table-title">
    Przykładowe obliczenia temperatury zasilania dla krzywej grzewczej
  </h3>

  <div class="table-scroll">
    <table class="config-table">
      <thead>
        <tr>
          <th>Temperatura zewnętrzna [°C]</th>
          <th>Obliczenia: 21 − 0.8 × (21 − T<sub>zewn</sub>)</th>
          <th>Temperatura zasilania zadana [°C]</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td data-label="Temperatura zewnętrzna"><strong>+10°C</strong> (łagodna jesień)</td>
          <td data-label="Obliczenia">21 − 0.8 × 11 = 21 − 8.8</td>
          <td data-label="Temperatura zasilania"><strong>12.2</strong></td>
        </tr>

        <tr>
          <td data-label="Temperatura zewnętrzna"><strong>0°C</strong></td>
          <td data-label="Obliczenia">21 − 0.8 × 21 = 21 − 16.8</td>
          <td data-label="Temperatura zasilania">
            <strong>4.2</strong><br>
            <small>(sterownik stosuje limit dolny, np. 25°C)</small>
          </td>
        </tr>

        <tr>
          <td data-label="Temperatura zewnętrzna"><strong>−5°C</strong></td>
          <td data-label="Obliczenia">21 − 0.8 × 26 = 21 − 20.8</td>
          <td data-label="Temperatura zasilania">
            <strong>0.2</strong><br>
            <small>(limit dolny, np. 28°C)</small>
          </td>
        </tr>

        <tr>
          <td data-label="Temperatura zewnętrzna"><strong>−10°C</strong></td>
          <td data-label="Obliczenia">21 − 0.8 × 31 = 21 − 24.8</td>
          <td data-label="Temperatura zasilania">
            <strong>−3.8</strong><br>
            <small>(limit dolny, korekcja w praktyce)</small>
          </td>
        </tr>

        <tr>
          <td data-label="Temperatura zewnętrzna"><strong>−15°C</strong></td>
          <td data-label="Obliczenia">21 − 0.8 × 36 = 21 − 28.8</td>
          <td data-label="Temperatura zasilania">
            <strong>−7.8</strong><br>
            <small>(limit, korekcja)</small>
          </td>
        </tr>

        <tr>
          <td data-label="Temperatura zewnętrzna"><strong>−20°C</strong> (projektowa)</td>
          <td data-label="Obliczenia">21 − 0.8 × 41 = 21 − 32.8</td>
          <td data-label="Temperatura zasilania">
            <strong>−11.8</strong><br>
            <small>
              Sama krzywa niewystarczająca – konieczna korekta lub inne nachylenie,
              aby osiągnąć projektowe <strong>35°C</strong>.
            </small>
          </td>
        </tr>
      </tbody>
    </table>
  </div>

</div>

<style>
.table-responsive-wrapper {
  max-width: 1000px;
  margin: 40px auto;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
}

.table-title {
  text-align: center;
  margin-bottom: 20px;
  font-size: 22px;
  font-weight: 600;
}

.table-scroll {
  overflow-x: auto;
}

.config-table {
  width: 100%;
  border-collapse: collapse;
  background: #ffffff;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  border-radius: 8px;
  overflow: hidden;
}

.config-table th,
.config-table td {
  padding: 14px 16px;
  text-align: left;
  vertical-align: top;
}

.config-table thead {
  background: #f4f6f8;
}

.config-table th {
  font-weight: 600;
  font-size: 14px;
  color: #333;
}

.config-table tbody tr {
  border-top: 1px solid #e5e5e5;
}

.config-table td {
  font-size: 14px;
  color: #444;
}

.config-table small {
  color: #777;
  font-size: 12px;
}

/* 📱 Widok mobilny – karty */
@media (max-width: 768px) {
  .config-table thead {
    display: none;
  }

  .config-table,
  .config-table tbody,
  .config-table tr,
  .config-table td {
    display: block;
    width: 100%;
  }

  .config-table tr {
    margin-bottom: 20px;
    background: #f9fafb;
    border-radius: 8px;
    padding: 10px;
  }

  .config-table td {
    padding: 8px 10px;
    border: none;
  }

  .config-table td::before {
    content: attr(data-label);
    display: block;
    font-weight: 600;
    color: #333;
    margin-bottom: 4px;
    font-size: 13px;
  }
}
</style>



<p class="wp-block-paragraph"><strong>Wnioski z obliczeń:</strong></p>



<ul class="wp-block-list">
<li>Powyższe wyliczenia pokazują, że teoretyczna krzywa daje nieracjonalnie niskie wartości. W praktyce, przy konfiguracji, instalator ustawia krzywę tak, by dla temperatury projektowej (-20°C) dawała temperaturę projektową zasilania (35°C). Wymaga to&nbsp;<strong>przesunięcia</strong>&nbsp;całej krzywej w górę.</li>



<li>To właśnie dlatego konfiguracja na sucho, bez znajomości budynku, jest niemożliwa. Potrzebne są&nbsp;<strong>korekty ręczne</strong>&nbsp;lub zastosowanie funkcji auto-adaptacji, którą oferują zaawansowane sterowniki (uczą się one, jak budynek reaguje, i same korygują krzywą).</li>
</ul>



<h2 class="wp-block-heading">Zaawansowane funkcje nowoczesnych sterowników.</h2>



<p class="wp-block-paragraph">Najnowsze&nbsp;<strong>regulatory pogodowe</strong>&nbsp;to zaawansowane komputery przemysłowe. Oto ich kluczowe funkcje:</p>



<ul class="wp-block-list">
<li><strong>Sterowanie strefowe (multikrzywe):</strong>&nbsp;Jeden sterownik może obsługiwać 2, 3 lub więcej niezależnych obiegów grzewczych (stref), każdy z własną krzywą grzewczą. Idealne dla domów z częścią dzienną i nocną, czy z ogrzewaniem podłogowym i grzejnikowym.</li>



<li><strong>Algorytm adaptacyjnego czasu nagrzewania (Adaptive Control):</strong>&nbsp;Sterownik nieustannie analizuje, jak szybko budynek się nagrzewa i wychładza. Dzięki temu precyzyjnie oblicza, kiedy należy włączyć ogrzewanie przed np. porannym wzrostem żądanej temperatury, aby cel został osiągnięty dokładnie o określonej godzinie, bez zbędnego wcześniejszego marnowania energii.</li>



<li><strong>Moduł komunikacji i integracji:</strong>&nbsp;Wbudowany moduł&nbsp;<strong>Wi-Fi, Ethernet lub GSM</strong>&nbsp;umożliwia pełną kontrolę z poziomu smartfona, integrację z systemami&nbsp;<strong>smart home</strong>&nbsp;(np. KNX, Modbus) oraz zdalny serwis przez instalatora.</li>



<li><strong>Zarządzanie pompą ciepła:</strong>&nbsp;Specjalistyczne sterowniki mogą bezpośrednio komunikować się z pompą ciepła, optymalizując jej pracę i unikając zbędnych załączeń (tzw. optymalizacja śladu węglowego).</li>



<li><strong>Monitoring i logowanie danych:</strong>&nbsp;Możliwość śledzenia historii temperatur, zużycia energii i działania systemu w celu dalszej optymalizacji.</li>
</ul>



<h2 class="wp-block-heading">FAQ – najczęściej zadawane pytania.</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1767869687745"><strong class="schema-faq-question"><strong>Czym różni się sterownik pogodowy od zwykłego termostatu?</strong></strong> <p class="schema-faq-answer">Sterownik pogodowy reaguje na temperaturę zewnętrzną i działa z wyprzedzeniem, a termostat pokojowy reaguje dopiero na spadek lub wzrost temperatury wewnątrz pomieszczenia.</p> </div> <div class="schema-faq-section" id="faq-question-1767869700125"><strong class="schema-faq-question"><strong>Czy sterownik (regulator) pogodowy jest konieczny przy ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Nie jest obowiązkowy, ale w praktyce to kluczowy element zapewniający stabilny komfort, ochronę instalacji i niższe koszty eksploatacji.</p> </div> <div class="schema-faq-section" id="faq-question-1767869735075"><strong class="schema-faq-question"><strong>Co to jest krzywa grzewcza i dlaczego jest tak ważna?</strong></strong> <p class="schema-faq-answer">Krzywa grzewcza określa zależność między temperaturą zewnętrzną a temperaturą zasilania instalacji. Jej prawidłowe ustawienie decyduje o efektywności całego systemu.</p> </div> <div class="schema-faq-section" id="faq-question-1767869743915"><strong class="schema-faq-question"><strong>Czy jeden sterownik pogodowy może obsługiwać kilka stref grzewczych?</strong></strong> <p class="schema-faq-answer">Tak, nowoczesne sterowniki umożliwiają sterowanie wieloma obiegami, z osobnymi krzywymi grzewczymi dla każdej strefy domu.</p> </div> <div class="schema-faq-section" id="faq-question-1767869756239"><strong class="schema-faq-question"><strong>Czy regulator pogodowy współpracuje z pompą ciepła?</strong></strong> <p class="schema-faq-answer">Tak, i właśnie w takim połączeniu osiąga najwyższą efektywność, ponieważ umożliwia pracę instalacji na możliwie niskich temperaturach zasilania.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie.</h2>



<p class="wp-block-paragraph"><strong>Podsumowując</strong>,&nbsp;<strong>sterownik (regulator) pogodowy</strong>&nbsp;nie jest luksusem, ale&nbsp;<strong>niezbędnym elementem nowoczesnego, efektywnego i komfortowego wodnego ogrzewania podłogowego</strong>. Jego prawidłowy dobór, profesjonalny montaż i precyzyjna konfiguracja to inwestycja, która zwraca się przez lata w postaci stabilnego mikroklimatu, bezobsługowej pracy i znacząco obniżonych rachunków za energię. To technologia, która pozwala systemowi grzewczemu &#8222;myśleć&#8221; i działać w perfekcyjnej harmonii z otaczającym nas środowiskiem.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="vw5BAcDfj0"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=8eASP44XyY#?secret=vw5BAcDfj0" data-secret="vw5BAcDfj0" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">Sterownik (regulator) pogodowy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Historia ogrzewania podłogowego – od starożytności do dziś.</title>
		<link>https://projekt-ogrzewania.pl/historia-ogrzewania-podlogowego-od-starozytnosci-do-dzis/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Tue, 04 Mar 2025 09:28:38 +0000</pubDate>
				<category><![CDATA[Architektura]]></category>
		<category><![CDATA[Ciekawostki historyczne]]></category>
		<category><![CDATA[Ekologia i energia]]></category>
		<category><![CDATA[Historia techniki]]></category>
		<category><![CDATA[Inżynieria]]></category>
		<category><![CDATA[Nowoczesne budownictwo]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Rozwój technologii]]></category>
		<category><![CDATA[Starożytność]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[ciekawostki]]></category>
		<category><![CDATA[historia]]></category>
		<category><![CDATA[hypokausty]]></category>
		<category><![CDATA[inżynieria]]></category>
		<category><![CDATA[korea]]></category>
		<category><![CDATA[nowoczesne ogrzewanie]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[ondol]]></category>
		<category><![CDATA[rzym]]></category>
		<category><![CDATA[technologia]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2329</guid>

					<description><![CDATA[<p>Poznaj fascynującą historię ogrzewania podłogowego – od starożytności do dziś – ciekawostki dla pasjonatów, które zabiorą Cię w podróż przez wieki. Od rzymskich hypokaustów po nowoczesne systemy z pompami ciepła, ten artykuł odkrywa, jak technologia ta ewoluowała, oferując komfort i innowacje. Dowiedz się, dlaczego koreański ondol był tak rewolucyjny, i poznaj zaskakujące fakty, które zainspirują miłośników techniki i historii. Przygotuj się na dawkę wiedzy i ciekawostek!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/historia-ogrzewania-podlogowego-od-starozytnosci-do-dzis/">Historia ogrzewania podłogowego – od starożytności do dziś.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ogrzewanie podłogowe to rozwiązanie, które wielu z nas kojarzy z nowoczesnym komfortem, ale czy wiesz, że jego historia sięga tysięcy lat wstecz? <strong>Historia ogrzewania podłogowego – od starożytności do dziś</strong> pokazuje, jak ta technologia ewoluowała, dostosowując się do potrzeb człowieka i dostępnych materiałów. W tym artykule przyjrzymy się fascynującym początkom tego systemu, jego rozwojowi na przestrzeni wieków oraz ciekawostkom, które z pewnością zainteresują pasjonatów ogrzewania i historii techniki.</p>



<h2 class="wp-block-heading">Początki w starożytności – ciepło pod stopami sprzed wieków.</h2>



<h3 class="wp-block-heading">Rzymskie hypokausty – luksus cesarskich willi.</h3>



<p class="wp-block-paragraph">Pierwsze wzmianki o systemach przypominających dzisiejsze ogrzewanie podłogowe pochodzą ze starożytnego Rzymu. Tamtejsze <strong>hypokausty</strong> były technologicznym majstersztykiem swoich czasów. System składał się z podniesionej podłogi wspartej na małych filarach, pod którą przepływały gorące spaliny z pieca. Ciepło unosiło się do góry, ogrzewając kamienne posadzki w łaźniach i willach bogatych Rzymian. Co ciekawe, hypokausty były tak skuteczne, że niektóre z nich działały przez setki lat!</p>



<h3 class="wp-block-heading">Starożytne Chiny i Korea – ondol w służbie codzienności.</h3>



<p class="wp-block-paragraph">Równolegle na Dalekim Wschodzie rozwijał się inny system – koreański <strong>ondol</strong>, znany już od epoki brązu (około 1000 r.p.n.e.). W odróżnieniu od rzymskich hypokaustów, ondol służył nie tylko elitom, ale zwykłym ludziom. Piece umieszczone na poziomie podłogi kierowały ciepło przez kanały pod glinianą posadzką, zapewniając ogrzewanie domów i gotowanie. <em>To jeden z najstarszych przykładów wielofunkcyjnego systemu grzewczego w historii!</em></p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-medium"><img data-dominant-color="96908b" data-has-transparency="false" style="--dominant-color: #96908b;" fetchpriority="high" decoding="async" width="300" height="300" data-id="2336" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Rzymskie-hypokausty-–-luksus-cesarskich-willi-300x300.webp" alt="Czarno-biała ilustracja przedstawiająca system rzymskich hypokaustów – luksusowego ogrzewania podłogowego stosowanego w cesarskich willach i łaźniach. Przekrój budowli ukazuje podniesioną kamienną podłogę wspartą na filarach, pod którą przepływa gorące powietrze z pieca. Wnętrze zdobią marmurowe ściany, kolumny i klasyczne detale architektoniczne, a postacie w togach obserwują system ogrzewania." class="wp-image-2336 not-transparent" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Rzymskie-hypokausty-–-luksus-cesarskich-willi-300x300.webp 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Rzymskie-hypokausty-–-luksus-cesarskich-willi-150x150.webp 150w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Rzymskie-hypokausty-–-luksus-cesarskich-willi-768x768.webp 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Rzymskie-hypokausty-–-luksus-cesarskich-willi-600x600.webp 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Rzymskie-hypokausty-–-luksus-cesarskich-willi-100x100.webp 100w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Rzymskie-hypokausty-–-luksus-cesarskich-willi.webp 945w" sizes="(max-width: 300px) 100vw, 300px" /><figcaption class="wp-element-caption">Rzymskie hypokausty – luksus cesarskich willi.</figcaption></figure>



<figure class="wp-block-image size-medium is-style-default"><img data-dominant-color="8f8e8c" data-has-transparency="false" style="--dominant-color: #8f8e8c;" loading="lazy" decoding="async" width="300" height="300" data-id="2335" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Historia-ogrzewania-podlogowego-–-od-starozytnosci-do-dzis-300x300.webp" alt="Czarno-biały szkic przedstawiający przekrój tradycyjnego koreańskiego domu z systemem ogrzewania podłogowego ondol. Widać kanały pod glinianą posadzką, przez które przepływa ciepło z pieca umieszczonego na zewnątrz. Wewnątrz siedzą ludzie w tradycyjnych strojach, korzystający z ciepłej podłogi." class="wp-image-2335 not-transparent" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Historia-ogrzewania-podlogowego-–-od-starozytnosci-do-dzis-300x300.webp 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Historia-ogrzewania-podlogowego-–-od-starozytnosci-do-dzis-150x150.webp 150w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Historia-ogrzewania-podlogowego-–-od-starozytnosci-do-dzis-768x768.webp 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Historia-ogrzewania-podlogowego-–-od-starozytnosci-do-dzis-600x600.webp 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Historia-ogrzewania-podlogowego-–-od-starozytnosci-do-dzis-100x100.webp 100w, https://projekt-ogrzewania.pl/wp-content/uploads/2025/03/Historia-ogrzewania-podlogowego-–-od-starozytnosci-do-dzis.webp 945w" sizes="auto, (max-width: 300px) 100vw, 300px" /><figcaption class="wp-element-caption">Starożytne Chiny i Korea – ondol w służbie codzienności</figcaption></figure>
</figure>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-default"/>



<h2 class="wp-block-heading">Średniowiecze i renesans – zapomniane ciepło.</h2>



<p class="wp-block-paragraph">Po upadku Imperium Rzymskiego technologia ogrzewania podłogowego niemal zanikła w Europie. Średniowieczne zamki i domy polegały głównie na otwartych kominkach, które były mniej efektywne i bardziej dymiące. Jednak w Azji ondol pozostał w użyciu, ewoluując i dostosowując się do lokalnych warunków. W Europie dopiero w okresie renesansu zaczęto wracać do pomysłów starożytnych, choć na szerszą skalę ogrzewanie podłogowe musiało poczekać na rozwój technologii.</p>



<h2 class="wp-block-heading">Nowożytność – ciepło wraca na salony.</h2>



<h3 class="wp-block-heading">XVIII i XIX wiek – eksperymenty z rurami.</h3>



<p class="wp-block-paragraph">Wraz z rozwojem inżynierii w czasach nowożytnych pojawiły się nowe pomysły na ogrzewanie pomieszczeń. W XVIII wieku zaczęto eksperymentować z rurami, przez które przepływała gorąca woda lub para. <em>To był przełomowy moment w historii systemów grzewczych!</em> W XIX wieku brytyjski inżynier <strong>Sir John Soane</strong> wprowadził ogrzewanie podłogowe w swoich projektach, inspirując się rzymskimi hypokaustami, ale z użyciem nowoczesnych materiałów.</p>



<h3 class="wp-block-heading">Elektryczność i industrializacja – nowe możliwości.</h3>



<p class="wp-block-paragraph">Rewolucja przemysłowa przyniosła kolejne innowacje. W XX wieku, wraz z rozwojem elektryczności, pojawiły się elektryczne systemy ogrzewania podłogowego. Były one jednak drogie i dostępne głównie dla zamożnych. W tym samym czasie w krajach takich jak Szwecja czy Niemcy zaczęto udoskonalać wodne systemy grzewcze, które zyskały popularność po II wojnie światowej.</p>



<h2 class="wp-block-heading">Współczesność – ogrzewanie podłogowe na wyciągnięcie ręki.</h2>



<h3 class="wp-block-heading">Technologia XXI wieku – komfort i ekologia.</h3>



<p class="wp-block-paragraph">Dziś <strong>ogrzewanie podłogowe</strong> to synonim wygody i efektywności energetycznej. Wodne systemy z rurami PEX czy elektryczne maty grzewcze są standardem w nowoczesnym budownictwie. Co ciekawe, współczesne projekty często łączą podłogówkę z pompami ciepła, co pozwala na znaczne obniżenie rachunków za energię. Szczegóły techniczne takich instalacji znajdziesz na przykład na naszym <a href="https://projekt-ogrzewania.pl/blog/">blogu</a>, gdzie opisano m.in. <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">rozstaw rur</a> czy izolację podłogową.</p>



<h3 class="wp-block-heading">Ciekawostki dla pasjonatów.</h3>



<ul class="wp-block-list">
<li><em>Najdłuższa pętla podłogówki?</em> W nowoczesnych instalacjach może mieć nawet 100 metrów ( dla rury 16), ale wymaga odpowiedniego <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">projektowania</a>, by zachować efektywność.</li>



<li>W Korei Południowej ondol jest nadal używany w tradycyjnych domach, mimo dostępności nowoczesnych technologii.</li>



<li>Rzymskie hypokausty odkryte w Pompejach wciąż zadziwiają archeologów swoją precyzją wykonania.</li>
</ul>



<h2 class="wp-block-heading">Sekcja FAQ:</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1741077439848"><strong class="schema-faq-question"><strong>Skąd wywodzi się ogrzewanie podłogowe?</strong></strong> <p class="schema-faq-answer"><a href="https://projekt-ogrzewania.pl">Ogrzewanie podłogowe</a> ma swoje początki w starożytności – rzymskie hypokausty i koreańskie ondole były jednymi z pierwszych systemów, które wykorzystywały ciepło pod podłogą, odpowiednio w willach i domach.</p> </div> <div class="schema-faq-section" id="faq-question-1741077537347"><strong class="schema-faq-question"><strong>Co to są hypokausty i jak działały?</strong></strong> <p class="schema-faq-answer">Hypokausty to rzymskie systemy grzewcze, w których gorące spaliny przepływały pod podniesionymi posadzkami, ogrzewając je. Były popularne w łaźniach i willach elit, zapewniając komfortowe ciepło.</p> </div> <div class="schema-faq-section" id="faq-question-1741077567565"><strong class="schema-faq-question"><strong>Dlaczego koreański ondol był tak ważny w historii?</strong></strong> <p class="schema-faq-answer">Ondol, znany od epoki brązu w Korei, był innowacyjnym systemem, który kierował ciepło z pieca pod glinianą podłogę, łącząc ogrzewanie z codziennym życiem zwykłych ludzi, co czyni go unikalnym.</p> </div> <div class="schema-faq-section" id="faq-question-1741077618162"><strong class="schema-faq-question"><strong>Jak zmieniło się ogrzewanie podłogowe w XX wieku?</strong></strong> <p class="schema-faq-answer">W XX wieku pojawiły się elektryczne systemy grzewcze i udoskonalone wodne podłogówki, które zyskały popularność dzięki industrializacji i rozwojowi materiałów, takich jak <a href="https://projekt-ogrzewania.pl/rura-pex-do-ogrzewania-podlogowego/">rury PEX</a>.</p> </div> <div class="schema-faq-section" id="faq-question-1741077733583"><strong class="schema-faq-question"><strong>Czy ogrzewanie podłogowe jest ekologiczne?</strong></strong> <p class="schema-faq-answer">Współczesne systemy, zwłaszcza z <a href="https://projekt-ogrzewania.pl/category/pompa-ciepla/">pompami ciepła</a>, są energooszczędne i ekologiczne, co czyni je popularnym wyborem w nowoczesnym budownictwie, jak opisano w artykule.</p> </div> </div>



<h2 class="wp-block-heading">Przyszłość ogrzewania podłogowego – co nas czeka?</h2>



<p class="wp-block-paragraph">Patrząc na historię ogrzewania podłogowego, można śmiało powiedzieć, że ta technologia ma przed sobą świetlaną przyszłość. Innowacje, takie jak inteligentne systemy sterowania czy materiały o jeszcze lepszej przewodności cieplnej, sprawią, że <a href="https://projekt-ogrzewania.pl">podłogówka</a> stanie się jeszcze bardziej efektywna. Może w niedalekiej przyszłości zobaczymy podłogi, które same dostosują temperaturę do naszych potrzeb?</p>



<p class="wp-block-paragraph">Historia ogrzewania podłogowego – od starożytnych hypokaustów po dzisiejsze ekologiczne rozwiązania – to dowód na to, jak ludzką pomysłowość napędza chęć poprawy komfortu życia. Dla pasjonatów techniki i historii to fascynująca podróż przez wieki, pełna niespodziewanych zwrotów akcji i inspirujących odkryć. Jak myślisz, jakie jeszcze niespodzianki przyniesie nam rozwój tej technologii?</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="SuWrZYZVBa"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=sF71XKVmC1#?secret=SuWrZYZVBa" data-secret="SuWrZYZVBa" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/historia-ogrzewania-podlogowego-od-starozytnosci-do-dzis/">Historia ogrzewania podłogowego – od starożytności do dziś.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czym jest system mokry w wodnym ogrzewaniu podłogowym?</title>
		<link>https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Sun, 16 Feb 2025 13:14:37 +0000</pubDate>
				<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Ogrzewanie wodne]]></category>
		<category><![CDATA[Pompa ciepła]]></category>
		<category><![CDATA[System mokry]]></category>
		<category><![CDATA[Systemy mokre i suche]]></category>
		<category><![CDATA[Technologia budowlana]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[Technologie grzewcze]]></category>
		<category><![CDATA[betonowa wylewka]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie hydroniczne]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[równomierne ciepło]]></category>
		<category><![CDATA[system mokry]]></category>
		<category><![CDATA[wodne ogrzewanie]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2220</guid>

					<description><![CDATA[<p>Planujesz ogrzewanie podłogowe i zastanawiasz się, czy system mokry w wodnym ogrzewaniu podłogowym to dobry wybór? Ten rodzaj instalacji, polegający na zatopieniu rur grzewczych w warstwie betonu, zapewnia nie tylko równomierne rozprowadzenie ciepła, ale też wysoki komfort użytkowania. Sprawdź, jak działa ten system, jakie są jego zalety i wady, oraz w jakich sytuacjach sprawdzi się najlepiej. Dowiedz się również, czym różni się od systemu suchego i dlaczego warto rozważyć go w połączeniu z odnawialnymi źródłami energii.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">Czym jest system mokry w wodnym ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Planujesz ogrzewanie podłogowe i zastanawiasz się, <strong>czym jest system mokry w wodnym ogrzewaniu podłogowym</strong>? To jedna z najpopularniejszych metod ogrzewania, która polega na zatopieniu rur grzewczych w warstwie betonu lub wylewki cementowej. Dzięki temu ciepło jest równomiernie rozprowadzane po całej powierzchni podłogi, zapewniając komfort termiczny i oszczędność energii. </p>



<p class="wp-block-paragraph">System ten doskonale współpracuje z niskotemperaturowymi źródłami ciepła, takimi jak pompy ciepła czy kotły kondensacyjne. W artykule dowiesz się, jak działa ten system, jakie są jego zalety i wady, oraz w jakich sytuacjach sprawdzi się najlepiej. Poznasz również praktyczne przykłady zastosowania i porównanie z innymi rozwiązaniami.</p>



<h2 class="wp-block-heading">Jak działa hydroniczne ogrzewanie podłogowe z systemem mokrym?</h2>



<p class="wp-block-paragraph">Podstawą instalacji mokrej jest <strong>połączenie wody jako nośnika ciepła oraz masy termoaktywnej, która magazynuje energię</strong>. W przeciwieństwie do grzejników, które nagrzewają powietrze, ten system oddaje ciepło przez promieniowanie – podobnie jak słońce. Działa w niskich temperaturach (35–55°C), co przekłada się na oszczędność energii.</p>



<h3 class="wp-block-heading">Kluczowe elementy instalacji</h3>



<ul class="wp-block-list">
<li><strong><a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">Rury grzewcze</a></strong> – Najczęściej z tworzyw sztucznych (np. PEX) lub miedzi, układane w pętle.</li>



<li><strong>Warstwa betonowa</strong> – Pełni rolę akumulatora ciepła. Jej grubość zwykle wynosi 5–10 cm.</li>



<li><strong>Izolacja termiczna</strong> – Zapobiega ucieczce ciepła w stronę gruntu. Stosuje się <a href="https://projekt-ogrzewania.pl/produkt/plyta-styropianowa-eps-100-z-folia-przeciwwilgociowa/">styropian</a> lub piankę PIR.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/produkt/rozdzielacz-ze-stali-nierdzewnej-inox-do-ogrzewania-podlogowego-z-rotametrami/">Kolektor</a></strong> – Rozdziela wodę do poszczególnych obwodów i pozwala regulować temperaturę.</li>
</ul>



<h3 class="wp-block-heading">Proces montażu krok po kroku</h3>



<p class="wp-block-paragraph">Instalacja systemu mokrego wymaga precyzji. Przykładowo, w nowym budownictwie proces wygląda następująco:</p>



<ol class="wp-block-list">
<li>Na stropie układa się <em>izolację przeciwwilgociową i <a href="https://projekt-ogrzewania.pl/produkt/folia-do-ogrzewania-podlogowego-laminat-metalizowany-z-rastrem/">termiczną</a></em>.</li>



<li>Tworzy się siatkę wzmacniającą, na której mocuje się rury w kształcie spirali lub meandrów.</li>



<li>Całość zalewa się wylewką betonową, która schnie przez 21–28 dni.</li>



<li>Na warstwę betonu nakłada się posadzkę – np. płytki ceramiczne lub panele.</li>
</ol>



<h2 class="wp-block-heading">Dlaczego warto wybrać mokrą instalację podłogówki?</h2>



<p class="wp-block-paragraph">Główną zaletą tego rozwiązania jest <em>wysoki komfort cieplny</em>. Ponieważ ciepło jest oddawane równomiernie, <strong>nie odczuwa się stref zimna</strong>, typowych dla grzejników. Dodatkowo:</p>



<ul class="wp-block-list">
<li><strong>Niższe rachunki za ogrzewanie</strong> – Dzięki pracy z pompą ciepła możesz zmniejszyć zużycie energii nawet o 30%.</li>



<li><strong>Bezpieczeństwo dla alergików</strong> – Brak cyrkulacji powietrza ogranicza rozprzestrzenianie się kurzu.</li>



<li><strong>Trwałość</strong> – Żywotność systemu szacuje się na ponad 50 lat.</li>
</ul>



<h3 class="wp-block-heading">Przykład zastosowania w praktyce</h3>



<p class="wp-block-paragraph">W domach pasywnych, gdzie kluczowa jest <strong>energooszczędność</strong>, system mokry często łączy się z <em>odnawialnymi źródłami ciepła</em>. Przykładowo: <a href="https://projekt-ogrzewania.pl/category/pompa-ciepla/">pompa ciepła</a> ogrzewa wodę do 40°C, a betonowa wylewka powoli oddaje ciepło przez całą dobę. Dzięki temu nawet podczas mrozów temperatura w pomieszczeniach spada maksymalnie o 1–2°C.</p>



<h2 class="wp-block-heading">Wyzwania związane z mokrą instalacją podłogową</h2>



<p class="wp-block-paragraph">Choć system ma wiele plusów, nie jest idealny dla każdego. Główne wady to:</p>



<ul class="wp-block-list">
<li><strong>Wysoki koszt i czas montażu</strong> – Wymaga prac budowlanych i schnięcia betonu (nawet 4 tygodnie).</li>



<li><strong>Obciążenie konstrukcji</strong> – Warstwa betonu może ważyć 200–300 kg/m². W starszych budynkach konieczna jest opinia konstruktora.</li>



<li><strong>Trudności w modernizacji</strong> – Awaria rury oznacza kucie podłogi i dodatkowe koszty.</li>
</ul>



<h3 class="wp-block-heading">Kiedy lepiej zrezygnować z systemu mokrego?</h3>



<p class="wp-block-paragraph">Jeśli remontujesz mieszkanie w bloku z lat 70., a strop ma ograniczoną nośność, rozważ <em>suchy system ogrzewania podłogowego</em>. W przypadku domków letniskowych, które są ogrzewane okazjonalnie, lepsze może być ogrzewanie elektryczne – betonowa wylewka nagrzewa się wolno, co wydłuża czas osiągnięcia komfortowej temperatury.</p>



<h2 class="wp-block-heading">Porównanie z systemem suchym – który wybrać?</h2>



<p class="wp-block-paragraph"><strong>Sucha instalacja podłogowa</strong> wykorzystuje gotowe płyty z rowkami na rury. Choć montuje się ją szybciej (nawet w 2 dni), nie gwarantuje takiej samej <em>bezwładności cieplnej</em>. Oto różnice:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Kryterium</th><th>System mokry</th><th>System suchy</th></tr><tr><td>Czas montażu</td><td>4–6 tygodni</td><td>2–3 dni</td></tr><tr><td>Akumulacja ciepła</td><td>Wysoka (np. beton)</td><td>Niska (np. aluminium)</td></tr><tr><td>Koszt</td><td>100–150 zł/m²</td><td>120–170 zł/m²</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">Przykład optymalnego wyboru.</h3>



<p class="wp-block-paragraph">W nowoczesnym biurowcu, gdzie liczy się szybki montaż, suchy system sprawdzi się lepiej. Z kolei w domu jednorodzinnym z pompa ciepła – <strong>mokra instalacja</strong> zapewni niższe koszty eksploatacji.</p>



<h2 class="wp-block-heading">Dlaczego projekt ogrzewania jest kluczowy?</h2>



<p class="wp-block-paragraph">Warto pamiętać, że do prawidłowego i energooszczędnego działania <strong>systemu mokrego w wodnym ogrzewaniu podłogowym</strong> niezbędne jest wykonanie <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">profesjonalnego projektu ogrzewania podłogowego</a>. Projekt uwzględnia m.in. rozmieszczenie rur, moc grzewczą, rodzaj izolacji oraz parametry źródła ciepła. Dzięki temu unikniesz problemów z nierównomiernym ogrzewaniem czy nadmiernym zużyciem energii. Inwestycja w dobry projekt to gwarancja komfortu i oszczędności na lata!</p>



<h2 class="wp-block-heading">FAQ:</h2>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1739709613654"><strong class="schema-faq-question"><strong>Czy system mokry nadaje się do każdego budynku?</strong></strong> <p class="schema-faq-answer">Nie zawsze. W starszych budynkach z ograniczoną nośnością stropu lepiej sprawdzi się system suchy, który nie obciąża konstrukcji.</p> </div> <div class="schema-faq-section" id="faq-question-1739709627795"><strong class="schema-faq-question"><strong>Jak długo trwa montaż systemu mokrego?</strong></strong> <p class="schema-faq-answer">Cały proces, łącznie z schnięciem wylewki, może zająć 4–6 tygodni.</p> </div> <div class="schema-faq-section" id="faq-question-1739709648928"><strong class="schema-faq-question"><strong>Czy system mokry jest energooszczędny?</strong></strong> <p class="schema-faq-answer">Tak, zwłaszcza w połączeniu z pompą ciepła lub kotłem kondensacyjnym, ponieważ pracuje w niskich temperaturach.</p> </div> <div class="schema-faq-section" id="faq-question-1739709677782"><strong class="schema-faq-question"><strong>Jakie są koszty instalacji systemu mokrego?</strong></strong> <p class="schema-faq-answer">Koszt materiałów i montażu wynosi średnio 100–150 zł/m², w zależności od wybranych komponentów.</p> </div> <div class="schema-faq-section" id="faq-question-1739709688263"><strong class="schema-faq-question"><strong>Czy system mokry można modernizować?</strong></strong> <p class="schema-faq-answer">Modernizacja jest trudna i kosztowna, ponieważ wymaga kucia betonowej wylewki. Dlatego ważne jest dokładne zaplanowanie instalacji na etapie budowy.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie: Dla kogo jest system mokry?</h2>



<p class="wp-block-paragraph"><strong>Wodne ogrzewanie podłogowe z systemem mokrym</strong> to rozwiązanie dla osób, które:</p>



<ul class="wp-block-list">
<li>Budują dom od podstaw i mogą uwzględnić czas schnięcia wylewki.</li>



<li>Szukają <em>ekonomicznego źródła ciepła</em> współpracującego z OZE.</li>



<li>Cenią równomierną temperaturę w pomieszczeniach.</li>
</ul>



<p class="wp-block-paragraph">Pamiętaj, że kluczem do sukcesu jest profesjonalny projekt i montaż – w przeciwnym razie nawet najlepsza technologia nie spełni oczekiwań!</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="cJW6AcKZOC"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-100-m2/">Projekt ogrzewania podłogowego &#8211; do 100 m2</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 100 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-100-m2/embed/#?secret=hU5U85Nptd#?secret=cJW6AcKZOC" data-secret="cJW6AcKZOC" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-system-mokry-w-wodnym-ogrzewaniu-podlogowym/">Czym jest system mokry w wodnym ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Podgrzewane podjazdy, chodniki, parkingi i tarasy – komfort zimą, którego potrzebujesz.</title>
		<link>https://projekt-ogrzewania.pl/podgrzewane-podjazdy-chodniki-parkingi-i-tarasy-komfort-zima-ktorego-potrzebujesz/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 30 Oct 2024 17:02:53 +0000</pubDate>
				<category><![CDATA[Bezpieczeństwo zimą]]></category>
		<category><![CDATA[Chodnik]]></category>
		<category><![CDATA[Energooszczędne ogrzewanie]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort zimowy]]></category>
		<category><![CDATA[Nowoczesne technologie grzewcze]]></category>
		<category><![CDATA[Ogrzewanie powierzchni otwartych]]></category>
		<category><![CDATA[Parking]]></category>
		<category><![CDATA[Podgrzewane podjazdy]]></category>
		<category><![CDATA[Podjazd]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Projektowanie systemów grzewczych]]></category>
		<category><![CDATA[Projekty ogrzewania]]></category>
		<category><![CDATA[Systemy niskotemperaturowe]]></category>
		<category><![CDATA[Taras]]></category>
		<category><![CDATA[Tarasy i chodniki]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[bezpieczne chodniki]]></category>
		<category><![CDATA[chodnik]]></category>
		<category><![CDATA[eliminacja śniegu]]></category>
		<category><![CDATA[energooszczędność]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort zimowy]]></category>
		<category><![CDATA[nowoczesne technologie]]></category>
		<category><![CDATA[ogrzewanie powierzchni otwartych]]></category>
		<category><![CDATA[parking]]></category>
		<category><![CDATA[podgrzewane podjazdy]]></category>
		<category><![CDATA[podjazd]]></category>
		<category><![CDATA[system grzewczy]]></category>
		<category><![CDATA[taras]]></category>
		<category><![CDATA[tarasy bez lodu]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1408</guid>

					<description><![CDATA[<p>Podgrzewane podjazdy, chodniki, parkingi i tarasy to doskonałe rozwiązanie na zimowe problemy z oblodzeniem i śniegiem. Dzięki nowoczesnym technologiom można zapomnieć o ręcznym odśnieżaniu i cieszyć się bezpieczeństwem oraz wygodą przez całą zimę. Nasze systemy grzewcze zapewniają bezpieczne i suche powierzchnie, co jest szczególnie ważne w trudnych warunkach pogodowych. Dowiedz się, dlaczego warto zainwestować w podgrzewane nawierzchnie i jak poprawić komfort zimowy swojego otoczenia.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/podgrzewane-podjazdy-chodniki-parkingi-i-tarasy-komfort-zima-ktorego-potrzebujesz/">Podgrzewane podjazdy, chodniki, parkingi i tarasy – komfort zimą, którego potrzebujesz.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Zima, choć piękna i klimatyczna, może stwarzać wiele problemów, szczególnie jeśli chodzi o bezpieczeństwo na zewnętrznych nawierzchniach. Oblodzone podjazdy, parkingi i tarasy mogą stanowić poważne zagrożenie, zarówno dla domowników, jak i gości. Podgrzewane powierzchnie zewnętrzne to idealne rozwiązanie, które zapewnia nie tylko komfort, ale także oszczędność czasu i bezpieczeństwo. Poznaj wszystkie zalety i możliwości, jakie oferują podgrzewane podjazdy, chodniki oraz tarasy, i przekonaj się, że warto zainwestować w nowoczesne systemy ogrzewania powierzchni otwartych.</p>



<h2 class="wp-block-heading">Dlaczego warto zainstalować podgrzewane podjazdy i tarasy?</h2>



<p class="wp-block-paragraph">Podgrzewane powierzchnie otwarte to odpowiedź na wiele zimowych problemów, z którymi mierzymy się każdego roku. W obliczu niekorzystnych warunków pogodowych – śniegu, mrozu i lodu – wiele osób spędza godziny na odśnieżaniu swoich podjazdów, chodników czy parkingów. Taka praca nie tylko pochłania czas, ale też wymaga dużego wysiłku fizycznego, co może być szczególnie problematyczne dla osób starszych. Dzięki podgrzewanym podjazdom możemy jednak cieszyć się gładkimi, bezpiecznymi i czystymi powierzchniami przez cały sezon zimowy.</p>



<p class="wp-block-paragraph">Korzyści płynących z instalacji podgrzewanych powierzchni jest wiele. Jedną z kluczowych zalet jest <strong>bezpieczeństwo</strong>. Dzięki takiemu rozwiązaniu eliminujemy ryzyko upadku, poślizgnięcia się i innych niebezpiecznych sytuacji wynikających z oblodzonych powierzchni. Podgrzewane tarasy i podjazdy są doskonałym wyborem dla rodzin z dziećmi oraz dla osób starszych, które mogłyby szczególnie ucierpieć na skutek nieszczęśliwego upadku.</p>



<h2 class="wp-block-heading">Komfort i wygoda, która się opłaca.</h2>



<p class="wp-block-paragraph">Nie można zapominać o wygodzie, jaką daje system podgrzewanych powierzchni otwartych. Tradycyjne odśnieżanie i usuwanie lodu wymaga codziennego angażowania się w procesy, które są żmudne i męczące. System podgrzewanych podjazdów automatycznie dba o to, aby nawierzchnie były wolne od lodu i śniegu, zapewniając nam cenny czas i energię na inne, bardziej przyjemne czynności. Zamiast zmagać się z nieprzyjemnymi obowiązkami, możemy po prostu cieszyć się zimą, nie martwiąc się o niebezpieczne i śliskie nawierzchnie.</p>



<h2 class="wp-block-heading">Nowoczesne technologie na wyciągnięcie ręki.</h2>



<p class="wp-block-paragraph">Podgrzewane podjazdy i chodniki to efektywne wykorzystanie nowoczesnych technologii. Do ogrzewania powierzchni otwartych stosuje się niskotemperaturowe systemy grzewcze, w których kluczową rolę odgrywają wielowarstwowe rury, przez które przepływa roztwór wodny glikolu. Taki płyn grzewczy zapobiega zamarzaniu systemu podczas przerw w ogrzewaniu oraz przy ekstremalnych mrozach. Temperatura zasilania systemu wynosi od 30 do 55°C, co pozwala na utrzymanie nawierzchni w odpowiednim stanie przez całą zimę.</p>



<p class="wp-block-paragraph">System podgrzewania powierzchni otwartych może być łatwo dostosowany do różnych powierzchni. Można go stosować pod kostką brukową, betonem, a nawet pod powierzchniami trawiastymi, takimi jak boiska sportowe. Ważne jest jednak, aby odpowiednio dobrać materiały i zapewnić prawidłowe rozmieszczenie rur grzewczych, co pozwoli na efektywne działanie systemu oraz zapewni komfort cieplny.</p>



<h2 class="wp-block-heading">Jak działają podgrzewane powierzchnie otwarte?</h2>



<p class="wp-block-paragraph">Podgrzewane powierzchnie otwarte działają na zasadzie <strong>wymiany ciepła</strong> między czynnikiem grzewczym a nawierzchnią. System rur umieszczonych pod powierzchnią rozprowadza ciepło, które przenika przez warstwy nad rurami, podgrzewając nawierzchnię do temperatury, która pozwala na topnienie śniegu i lodu. Głównym celem jest utrzymanie temperatury powierzchni na poziomie od +1 do +5°C, co gwarantuje skuteczne zapobieganie powstawaniu oblodzenia i zalegania śniegu.</p>



<p class="wp-block-paragraph">W praktyce oznacza to, że system działa w sposób ciągły, zapewniając nam wolną od lodu powierzchnię bez konieczności angażowania się w ręczne usuwanie zanieczyszczeń. Oczywiście, taki system wymaga odpowiedniego zasilania, ale dzięki nowoczesnym rozwiązaniom technicznym oraz właściwej optymalizacji, możliwe jest <strong>zredukowanie kosztów energii</strong> do minimum.</p>



<h2 class="wp-block-heading">Zalety podgrzewanych podjazdów, chodników i tarasów</h2>



<ul class="wp-block-list">
<li><strong>Bezpieczeństwo</strong>: Eliminacja ryzyka poślizgu na oblodzonych nawierzchniach.</li>



<li><strong>Wygoda</strong>: Brak konieczności odśnieżania i ręcznego usuwania lodu.</li>



<li><strong>Efektywność</strong>: Skuteczne i energooszczędne utrzymanie nawierzchni w odpowiednim stanie.</li>



<li><strong>Estetyka</strong>: Zawsze czyste i suche powierzchnie, bez zalegającego śniegu.</li>



<li><strong>Trwałość</strong>: Nowoczesne materiały i technologie zapewniają długą żywotność instalacji.</li>
</ul>



<h2 class="wp-block-heading">Konstrukcja ogrzewania powierzchni otwartych.</h2>



<p class="wp-block-paragraph">Podstawowym elementem konstrukcji podgrzewanych powierzchni otwartych są wielowarstwowe rury, które prowadzone są pod powierzchnią, w warstwie betonu lub piasku. Aby zapewnić maksymalną efektywność systemu, rury są rozmieszczane z określoną gęstością, co pozwala na <strong>równomierne rozprowadzenie ciepła</strong>. Pod instalacją nie stosuje się izolacji cieplnej, co zwiększa straty ciepła do gruntu, ale jednocześnie zwiększa bezwładność cieplną, co jest korzystne w przypadku ciągłego działania systemu.</p>



<p class="wp-block-paragraph">Przy planowaniu instalacji istotne jest również odpowiednie rozmieszczenie <strong>listw montażowych</strong>, które służą do stabilizacji rur i zapewnienia ich odpowiedniego ułożenia. Dzięki temu system działa sprawnie i skutecznie przez wiele lat, zapewniając optymalną efektywność grzewczą.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="373" src="https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka-1024x373.jpg" alt="" class="wp-image-1410" srcset="https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka-1024x373.jpg 1024w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka-300x109.jpg 300w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka-768x280.jpg 768w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka-600x218.jpg 600w, https://projekt-ogrzewania.pl/wp-content/uploads/2024/10/Ogrzewanie-powierzchni-z-kostka.jpg 1247w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Rys. Ogrzewanie powierzchni z kostką.</figcaption></figure>



<h2 class="wp-block-heading">Gdzie warto zastosować podgrzewane powierzchnie otwarte?</h2>



<p class="wp-block-paragraph">Podgrzewane powierzchnie otwarte sprawdzają się w wielu miejscach, zarówno prywatnych, jak i publicznych. <strong>Podjazdy i chodniki</strong> to najczęstsze lokalizacje, gdzie stosowane są systemy ogrzewania, ponieważ eliminują konieczność ręcznego odśnieżania i poprawiają bezpieczeństwo. <strong>Tarasy</strong> również mogą korzystać z takich rozwiązań, dzięki czemu są wolne od lodu i można z nich bezpiecznie korzystać nawet w zimowych miesiącach.</p>



<p class="wp-block-paragraph">Systemy podgrzewania powierzchni otwartych znajdują zastosowanie także w miejscach takich jak <strong>parkingi</strong>, <strong>otwarte myjnie samochodowe</strong>, czy nawet <strong>boiska sportowe</strong>. Dzięki nim możliwe jest zapewnienie komfortu i bezpieczeństwa zarówno użytkownikom indywidualnym, jak i publicznym.</p>



<h2 class="wp-block-heading">Podsumowanie – dlaczego warto zainwestować w podgrzewane podjazdy?</h2>



<p class="wp-block-paragraph">Podgrzewane podjazdy, chodniki, parkingi i tarasy to innowacyjne rozwiązanie, które sprawdza się wszędzie tam, gdzie liczy się bezpieczeństwo, komfort oraz oszczędność czasu. Dzięki zastosowaniu nowoczesnych technologii oraz wysokiej jakości materiałów możemy cieszyć się wolnymi od śniegu i lodu powierzchniami przez cały sezon zimowy. Zainstalowanie takiego systemu to inwestycja, która szybko się zwraca, eliminując konieczność ręcznego odśnieżania oraz zapewniając długotrwałą wygodę.</p>



<p class="wp-block-paragraph">Jeśli chcesz dowiedzieć się więcej o możliwościach instalacji ogrzewania powierzchni otwartych i skorzystać z naszej oferty, odwiedź naszą stronę: <a href="https://projekt-ogrzewania.pl/produkt/projekt-podgrzewanego-podjazdu-chodnika-parkingu-tarasu/">Projekt podgrzewanego podjazdu, chodnika, parkingu oraz tarasu</a>.</p>



<p class="wp-block-paragraph">Dzięki naszym nowoczesnym rozwiązaniom zyskasz pewność, że Twój podjazd, chodnik czy taras będą bezpieczne i wygodne, niezależnie od warunków pogodowych. Zachęcamy do kontaktu i skorzystania z naszej oferty, aby zimą cieszyć się komfortem na najwyższym poziomie!</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/podgrzewane-podjazdy-chodniki-parkingi-i-tarasy-komfort-zima-ktorego-potrzebujesz/">Podgrzewane podjazdy, chodniki, parkingi i tarasy – komfort zimą, którego potrzebujesz.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rozdzielacz do podłogówki – kluczowy element systemu ogrzewania podłogowego</title>
		<link>https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 04 Oct 2024 19:27:34 +0000</pubDate>
				<category><![CDATA[Akcesoria grzewcze]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Montaż instalacji grzewczych]]></category>
		<category><![CDATA[Montaż ogrzewania]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Podłogówka]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Regulacja przepływu wody]]></category>
		<category><![CDATA[Rozdzielacz do podłogówki]]></category>
		<category><![CDATA[Rozdzielacze do podłogówki]]></category>
		<category><![CDATA[Technologia grzewcza]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[instalacja podłogowa]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[montaż rozdzielacza]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[podłogówka]]></category>
		<category><![CDATA[regulacja przepływu]]></category>
		<category><![CDATA[rozdzielacz do podłogówki]]></category>
		<category><![CDATA[zawory regulacyjne]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=1380</guid>

					<description><![CDATA[<p>Rozdzielacz do podłogówki to kluczowy element systemu ogrzewania podłogowego, zapewniający równomierne rozprowadzenie ciepłej wody do poszczególnych pętli grzewczych. Dowiedz się, jak działa rozdzielacz, jakie są jego rodzaje oraz na co zwrócić uwagę przy wyborze i montażu tego ważnego elementu instalacji. Dzięki odpowiedniej regulacji przepływów zapewnisz optymalny komfort cieplny i efektywność energetyczną w swoim domu.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">Rozdzielacz do podłogówki – kluczowy element systemu ogrzewania podłogowego</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Rozdzielacz do podłogówki to serce systemu ogrzewania podłogowego, który odpowiada za równomierne rozprowadzenie ciepłej wody do poszczególnych pętli grzewczych. Bez tego komponentu efektywne i komfortowe ogrzewanie podłogowe nie byłoby możliwe. Dlatego tak ważne jest, aby dokładnie zrozumieć, czym jest rozdzielacz, jakie pełni funkcje oraz jakie są jego rodzaje. W poniższym artykule przyjrzymy się bliżej temu elementowi instalacji, wyjaśnimy, jak działa, jakie są jego zalety oraz jak prawidłowo go zamontować i użytkować.</p>



<h2 class="wp-block-heading">Czym jest rozdzielacz do podłogówki?</h2>



<p class="wp-block-paragraph">Rozdzielacz do podłogówki to urządzenie składające się z dwóch głównych części: belki zasilającej oraz belki powrotnej. <em>Belka zasilająca</em> odpowiada za dostarczanie ciepłej wody do poszczególnych obiegów, natomiast <em>belka powrotna</em> zbiera chłodniejszą wodę po przepływie przez rurki grzewcze i kieruje ją z powrotem do źródła ciepła. Dzięki temu rozdzielacz zapewnia równomierne rozprowadzenie ciepła po całej powierzchni podłogi, co gwarantuje komfort użytkowania oraz efektywność energetyczną.</p>



<p class="wp-block-paragraph">Rozdzielacz pełni również inne istotne funkcje, takie jak <strong>regulacja przepływu, balansowanie poszczególnych obiegów oraz odpowietrzanie instalacji</strong>. Dzięki wbudowanym zaworom możliwe jest dostosowanie przepływu wody do konkretnych potrzeb, co pozwala na precyzyjne ustawienie temperatury w różnych pomieszczeniach. Dodatkowo, <strong>odpowietrznik pozwala na usunięcie powietrza z instalacji, co zapobiega ewentualnym problemom z przepływem i zapewnia płynne działanie systemu</strong>.</p>



<h2 class="wp-block-heading">Jak działa rozdzielacz do ogrzewania podłogowego?</h2>



<p class="wp-block-paragraph">Działanie rozdzielacza polega na podziale strumienia ciepłej wody dostarczanej z kotła, pompy ciepła lub innego źródła ciepła na kilka pętli grzewczych. Każda pętla grzewcza to zamknięty obieg, który prowadzi wodę przez rurki umieszczone pod posadzką. <strong>Rozdzielacz</strong>, dzięki zastosowaniu odpowiednich zaworów, <strong>umożliwia regulację przepływu wody w każdej pętli z osobna, co jest kluczowe dla zapewnienia równomiernego rozkładu temperatury w całym budynku</strong>.</p>



<p class="wp-block-paragraph">Rozdzielacz wyposażony jest w różnego rodzaju zawory, takie jak zawory regulacyjne, które pozwalają na manualne ustawienie przepływu, oraz zawory strefowe, które mogą być sterowane automatycznie. W nowoczesnych systemach ogrzewania podłogowego często stosuje się również siłowniki termiczne, które umożliwiają zdalną regulację przepływu za pomocą systemów automatyki domowej, co znacznie podnosi komfort użytkowania.</p>



<h2 class="wp-block-heading">Rodzaje rozdzielaczy do podłogówki</h2>



<p class="wp-block-paragraph">Na rynku dostępne są różne rodzaje rozdzielaczy do podłogówki, które różnią się budową, materiałem oraz stopniem zaawansowania technologicznego. Najczęściej spotykane to:</p>



<ul class="wp-block-list">
<li><strong>Rozdzielacze mosiężne</strong> – wykonane z mosiądzu, charakteryzują się dużą trwałością i odpornością na korozję. Są to jedne z najczęściej stosowanych rozdzielaczy w instalacjach domowych.</li>



<li><strong>Rozdzielacze ze stali nierdzewnej</strong> – jeszcze bardziej odporne na korozję, idealne do instalacji, które mają pracować przez wiele lat bez konieczności konserwacji. Stal nierdzewna zapewnia nie tylko długą żywotność, ale również estetyczny wygląd.</li>



<li><strong>Rozdzielacze z tworzyw sztucznych</strong> – lżejsze i tańsze od metalowych odpowiedników, jednak mniej trwałe. Stosowane głównie w mniejszych instalacjach lub tam, gdzie priorytetem jest redukcja kosztów.</li>
</ul>



<p class="wp-block-paragraph">Wybór odpowiedniego rozdzielacza zależy od specyfiki instalacji oraz budżetu, jakim dysponujemy. Warto jednak pamiętać, że rozdzielacz to element, który ma bezpośredni wpływ na efektywność i bezawaryjność całego systemu ogrzewania podłogowego, dlatego nie należy oszczędzać na jego jakości.</p>



<h2 class="wp-block-heading">Montaż i regulacja rozdzielacza do podłogówki</h2>



<p class="wp-block-paragraph">Montaż rozdzielacza do podłogówki powinien być przeprowadzony przez doświadczonego instalatora, który zna specyfikę tego typu systemów grzewczych. Kluczowym elementem montażu jest <strong>właściwe umiejscowienie rozdzielacza (<em>od tego też należy rozpocząć prace nad <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projektem ogrzewania podłogowego</a></em>) – powinien on znajdować się w centralnym punkcie instalacji, aby zapewnić równomierny rozkład ciepła</strong>. Często montuje się go w specjalnej szafce rozdzielaczowej, co ułatwia dostęp i estetyczne ukrycie całej instalacji.</p>



<p class="wp-block-paragraph">Po zamontowaniu rozdzielacza konieczna jest jego regulacja, czyli ustawienie przepływów w poszczególnych pętlach. <strong><em>Balansowanie instalacji</em> pozwala na zapewnienie równomiernego rozkładu ciepła w całym budynku, co jest kluczowe dla komfortu użytkowania oraz efektywności energetycznej</strong>. W przypadku większych instalacji warto rozważyć zastosowanie automatycznych regulatorów przepływu, które samodzielnie dostosowują pracę rozdzielacza do zmiennych warunków w pomieszczeniach.</p>



<h2 class="wp-block-heading">Zalety korzystania z rozdzielacza do podłogówki</h2>



<p class="wp-block-paragraph">Rozdzielacz do podłogówki ma wiele zalet, które czynią go nieodzownym elementem nowoczesnych systemów ogrzewania podłogowego:</p>



<ul class="wp-block-list">
<li><strong>Efektywność energetyczna</strong> – dzięki możliwości precyzyjnej regulacji przepływów, rozdzielacz pozwala na optymalne wykorzystanie energii, co przekłada się na niższe rachunki za ogrzewanie.</li>



<li><strong>Komfort cieplny</strong> – równomierny rozkład ciepła w pomieszczeniach sprawia, że podłoga jest przyjemnie ciepła, a temperatura w całym budynku jest stabilna.</li>



<li><strong>Możliwość regulacji</strong> – dzięki zastosowaniu odpowiednich zaworów, możliwe jest dostosowanie temperatury w poszczególnych pomieszczeniach do indywidualnych potrzeb użytkowników.</li>
</ul>



<h3 class="wp-block-heading">Najczęściej zadawane pytania (FAQ)</h3>



<div class="schema-faq wp-block-yoast-faq-block"><div class="schema-faq-section" id="faq-question-1728068964529"><strong class="schema-faq-question"><strong>Czy rozdzielacz do podłogówki jest niezbędny?</strong></strong> <p class="schema-faq-answer">Tak, rozdzielacz jest kluczowym elementem instalacji ogrzewania podłogowego. Bez niego niemożliwe byłoby równomierne rozprowadzenie ciepłej wody do poszczególnych pętli grzewczych.</p> </div> <div class="schema-faq-section" id="faq-question-1728068977643"><strong class="schema-faq-question"><strong>Jakie są najważniejsze kryteria wyboru rozdzielacza?</strong></strong> <p class="schema-faq-answer">Przy wyborze rozdzielacza warto zwrócić uwagę na materiał, z którego jest wykonany, ilość obiegów oraz możliwość regulacji przepływów. Ważne jest również, aby rozdzielacz był dostosowany do specyfiki instalacji.</p> </div> <div class="schema-faq-section" id="faq-question-1728068997811"><strong class="schema-faq-question"><strong>Czy można samodzielnie zamontować rozdzielacz do podłogówki?</strong></strong> <p class="schema-faq-answer">Montaż rozdzielacza wymaga odpowiedniej wiedzy i doświadczenia, dlatego zaleca się, aby przeprowadzał go profesjonalny instalator. Błędny montaż może prowadzić do nieprawidłowego działania całej instalacji.</p> </div> </div>



<p class="wp-block-paragraph">Rozdzielacze do ogrzewania podłogowego można kupić <a href="https://projekt-ogrzewania.pl/kategoria-produktu/rozdzielacze-do-ogrzewania-podlogowego/">w naszym sklepie internetowy</a>.</p>



<p class="wp-block-paragraph">Więcej artykułów na temat ogrzewania podłogowego oraz innych aspektów instalacji grzewczych znajdziesz na naszym <a href="https://projekt-ogrzewania.pl/blog/">blogu</a>.</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-projekt-ogrzewania wp-block-embed-projekt-ogrzewania"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="ylc0Sav7mG"><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Projekt instalacji ogrzewania podłogowego &#8211; podłogówki</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt instalacji ogrzewania podłogowego &#8211; podłogówki&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/embed/#?secret=yXQ5hlKPtG#?secret=ylc0Sav7mG" data-secret="ylc0Sav7mG" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">Rozdzielacz do podłogówki – kluczowy element systemu ogrzewania podłogowego</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
