<?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 Sterowanie ogrzewaniem - Projekt Ogrzewania</title>
	<atom:link href="https://projekt-ogrzewania.pl/category/sterowanie-ogrzewaniem/feed/" rel="self" type="application/rss+xml" />
	<link>https://projekt-ogrzewania.pl/category/sterowanie-ogrzewaniem/</link>
	<description>Twój partner w projektowaniu komfortu – profesjonalne ogrzewanie podłogowe dla Twojego domu.</description>
	<lastBuildDate>Tue, 07 Jul 2026 06:04:55 +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 Sterowanie ogrzewaniem - Projekt Ogrzewania</title>
	<link>https://projekt-ogrzewania.pl/category/sterowanie-ogrzewaniem/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Czujnik podłogowy.</title>
		<link>https://projekt-ogrzewania.pl/czujnik-podlogowy/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 23 Jan 2026 09:23:24 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Czujniki]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady techniczne]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[Termostaty]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[czujnik ntc]]></category>
		<category><![CDATA[czujnik podłogowy]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pid]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<category><![CDATA[temperatura podłogi]]></category>
		<category><![CDATA[termostat]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3277</guid>

					<description><![CDATA[<p>Czujnik podłogowy to niewielki element instalacji, który w praktyce decyduje o komforcie, bezpieczeństwie i kosztach eksploatacji ogrzewania podłogowego. Choć często traktowany jako dodatek do termostatu, w rzeczywistości pełni rolę „zmysłu” całego systemu – dostarczając kluczowych informacji o temperaturze posadzki. W artykule wyjaśniamy, jak działa czujnik podłogowy, jakie są jego typy, gdzie powinien być montowany oraz dlaczego jego brak może prowadzić do przegrzewania podłogi, dyskomfortu użytkowników i strat energii. To praktyczny przewodnik zarówno dla inwestorów, jak i projektantów instalacji.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">Czujnik podłogowy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Czujnik podłogowy</strong>&nbsp;to małe, często niedoceniane urządzenie, które pełni kluczową rolę w nowoczesnym systemie wodnego ogrzewania podłogowego. Podczas gdy rury, pompy i zawory mieszające stanowią „serce” i „układ krwionośny” instalacji, to właśnie ten niepozorny element jest jej „mózgiem czuciowym”. Jego zadaniem jest ciągłe monitorowanie temperatury posadzki, co przekłada się bezpośrednio na komfort użytkowania, bezpieczeństwo wykończenia podłogi oraz realne oszczędności energii. W tym technicznym, ale przystępnym artykule, zagłębimy się w zasadę działania, rodzaje, kryteria doboru i niezwykle ważny aspekt prawidłowego montażu tego czujnika.</p>



<h2 class="wp-block-heading">Rola i znaczenie czujnika temperatury podłogi w pętli grzewczej.</h2>



<p class="wp-block-paragraph">Aby w pełni zrozumieć <strong>znaczenie czujnika podłogowego</strong>, trzeba najpierw uświadomić sobie specyfikę ogrzewania powierzchniowego. W przeciwieństwie do grzejników, które nagrzewają powietrze (konwekcja), podłogówka oddaje ciepło głównie przez promieniowanie. Jej największą zaletą – równomierny rozkład temperatury – jest jednocześnie wyzwaniem dla systemu regulacji. Instalacja ma dużą <strong><a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a></strong>. Oznacza to, że od momentu włączenia zasilania do momentu, gdy odczuwamy komfort w pomieszczeniu, mija sporo czasu. Podobnie, po osiągnięciu zadanej temperatury, podłoga jeszcze długo oddaje zmagazynowane ciepło.</p>



<p class="wp-block-paragraph">Bez&nbsp;<strong>sondy podłogowej</strong>&nbsp;sterownik lub termostat działałby tylko na podstawie temperatury powietrza w pomieszczeniu (<em>czujnika powietrza</em>). To prowadzi do kilku problemów:</p>



<ol start="1" class="wp-block-list">
<li><strong>Cyklowanie systemu:</strong>&nbsp;Gdy w pomieszczeniu jest już ciepło, ale wylewka jest jeszcze zimna, termostat wyłączy zasilanie. Gdy powietrze nieco ostygnie, włączy je ponownie, powodując częste, nieefektywne cykle pracy pompy i zaworu.</li>



<li><strong>Dyskomfort i przegrzanie:</strong>&nbsp;Latem lub w słoneczny dzień, temperatura powietrza może wzrosnąć (np. od nasłonecznienia), podczas gdy podłoga pozostaje chłodna. Termostat nie włączy ogrzewania, choć użytkownik może odczuwać chłód od stóp. Sytuacja odwrotna: przy niskiej temperaturze zewnętrznej, system dążyłby do szybkiego podniesienia temperatury powietrza, co mogłoby skutkować&nbsp;<em>przegrzaniem posadzki</em>&nbsp;nawet powyżej 35°C, co jest niekomfortowe i szkodliwe dla wielu materiałów wykończeniowych.</li>



<li><strong>Marnotrawstwo energii:</strong>&nbsp;Brak precyzyjnego pomiaru temperatury nośnika ciepła (wylewki) uniemożliwia optymalizację pracy źródła ciepła (pompy ciepła, kotła kondensacyjnego).</li>
</ol>



<p class="wp-block-paragraph"><strong>Czujnik podłogowy</strong>, mierząc bezpośrednio temperaturę masy akumulacyjnej, eliminuje te problemy. Działa jak&nbsp;<strong>limit bezpieczeństwa i optymalizator</strong>. Jego podstawową funkcją jest zapewnienie, aby temperatura powierzchni podłogi znajdowała się w bezpiecznym i komfortowym zakresie, zwykle między 21°C (w sypialni) a 29°C (w łazience lub na obrzeżach przeszklonych pomieszczeń).</p>



<h2 class="wp-block-heading">Budowa, typy i parametry techniczne czujników.</h2>



<p class="wp-block-paragraph">W praktyce instalacyjnej spotyka się głównie czujniki rezystancyjne, których opór elektryczny zmienia się w przewidywalny sposób wraz z temperaturą.</p>



<h3 class="wp-block-heading"><strong>Rezystancyjne czujniki temperatury (NTC i PTC)</strong>.</h3>



<ul class="wp-block-list">
<li><strong>NTC (Negative Temperature Coefficient):</strong>&nbsp;To absolutnie dominujący typ w instalacjach grzewczych. Jego rezystancja&nbsp;<strong>maleje</strong>&nbsp;wraz ze&nbsp;<strong>wzrostem</strong>&nbsp;temperatury. Jest precyzyjny w zakresie temperatur pracy ogrzewania podłogowego (20-50°C). Standardowe wartości nominalne to&nbsp;<strong>10 kΩ</strong>,&nbsp;<strong>12 kΩ</strong>&nbsp;lub&nbsp;<strong>15 kΩ</strong>&nbsp;w temperaturze 25°C.&nbsp;<em>Kluczowa zasada: czujnik NTC musi być dopasowany do konkretnego modelu termostatu lub sterownika, zgodnie z instrukcją producenta.</em></li>



<li><strong>PTC (Positive Temperature Coefficient):</strong>&nbsp;Rzadziej stosowane. Ich rezystancja&nbsp;<strong>rośnie</strong>&nbsp;wraz ze&nbsp;<strong>wzrostem</strong>&nbsp;temperatury. Częściej znajdują zastosowanie jako zabezpieczenia przeciwprzegrzaniowe.</li>
</ul>



<p class="wp-block-paragraph">Czujnik to nie tylko sam sensoryk. To kompletny zestaw:&nbsp;<strong>głowica pomiarowa</strong>&nbsp;(zwykle w metalowej lub silikonowej obudowie) umieszczona na końcu&nbsp;<strong>dwuprowadzeniowego, elastycznego kabla</strong>&nbsp;o określonej długości (standardowo 3m lub 5m). Kabel musi być odporny na wilgoć, wysoką temperaturę i uszkodzenia mechaniczne, ponieważ będzie zalany w wylewce.</p>



<h3 class="wp-block-heading"><strong>Przykład obliczeniowy: kalibracja czujnika NTC</strong>.</h3>



<p class="wp-block-paragraph">Zrozumienie, jak termostat interpretuje odczyt, jest proste. Producent załącza tabelę, która przyporządkowuje wartość rezystancji konkretnej temperaturze. Dla popularnego czujnika NTC 10kΩ (B=3435) wygląda to następująco:</p>



<style>
.ntc-table {
  width: 100%;
  border-collapse: collapse;
  font-family: Arial, sans-serif;
  margin: 20px 0;
}

.ntc-table th,
.ntc-table td {
  padding: 12px 14px;
  border: 1px solid #e0e0e0;
  text-align: left;
}

.ntc-table th {
  background-color: #f5f5f5;
  font-weight: 700;
}

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

/* Styl alarmowy */
.ntc-alert {
  color: #b00020;
  font-weight: bold;
}

/* RESPONSYWNOŚĆ */
@media (max-width: 768px) {
  .ntc-table,
  .ntc-table thead,
  .ntc-table tbody,
  .ntc-table th,
  .ntc-table td,
  .ntc-table tr {
    display: block;
  }

  .ntc-table thead {
    display: none;
  }

  .ntc-table tr {
    margin-bottom: 16px;
    border: 1px solid #ddd;
    padding: 10px;
    background: #fff;
  }

  .ntc-table td {
    border: none;
    padding: 8px 0;
  }

  .ntc-table td::before {
    content: attr(data-label);
    font-weight: bold;
    display: block;
    color: #555;
    margin-bottom: 2px;
  }
}
</style>

<table class="ntc-table">
  <thead>
    <tr>
      <th>Temperatura [°C]</th>
      <th>Wartość rezystancji [Ω]</th>
      <th>Interpretacja dla sterownika</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td data-label="Temperatura [°C]">5</td>
      <td data-label="Wartość rezystancji [Ω]">~ 18 350</td>
      <td data-label="Interpretacja">Podłoga bardzo zimna, maksymalne żądanie ciepła</td>
    </tr>
    <tr>
      <td data-label="Temperatura [°C]">20</td>
      <td data-label="Wartość rezystancji [Ω]">~ 12 150</td>
      <td data-label="Interpretacja">Granica komfortu w pomieszczeniu dziennym</td>
    </tr>
    <tr>
      <td data-label="Temperatura [°C]">25</td>
      <td data-label="Wartość rezystancji [Ω]">~ 10 000 <strong>(wartość nominalna)</strong></td>
      <td data-label="Interpretacja">Punkt odniesienia</td>
    </tr>
    <tr>
      <td data-label="Temperatura [°C]">29</td>
      <td data-label="Wartość rezystancji [Ω]">~ 8 170</td>
      <td data-label="Interpretacja">Maksymalna, bezpieczna temperatura dla paneli podłogowych</td>
    </tr>
    <tr>
      <td data-label="Temperatura [°C]">35</td>
      <td data-label="Wartość rezystancji [Ω]">~ 6 530</td>
      <td data-label="Interpretacja" class="ntc-alert">
        Temperatura alarmowa – ryzyko uszkodzenia podłogi!
      </td>
    </tr>
  </tbody>
</table>



<p class="wp-block-paragraph">Gdy ustawiamy na termostacie żądaną&nbsp;<strong>temperaturę podłogi</strong>&nbsp;na 27°C, sterownik ciągle mierzy rezystancję czujnika. Gdy odpowiada ona ok. ~8.800Ω, system wie, że cel został osiągnięty i moduluje pracę (zamyka zawór, wyłącza pompę obiegową).</p>



<h2 class="wp-block-heading">Tryby współpracy czujnika podłogowego z termostatem: od prostych do zaawansowanych.</h2>



<p class="wp-block-paragraph">To, w jaki sposób informacja z&nbsp;<strong>sondy podłogowej</strong>&nbsp;jest wykorzystywana, zależy od możliwości sterownika. Wyróżniamy kilka trybów pracy:</p>



<h3 class="wp-block-heading"><strong>1. Tryb regulacji temperatury podłogi (PI lub PID)</strong>.</h3>



<p class="wp-block-paragraph">Najczęstszy i najważniejszy tryb.&nbsp;<strong>Czujnik podłogowy</strong>&nbsp;jest&nbsp;<strong>jedynym źródłem informacji</strong>&nbsp;dla algorytmu sterującego. Termostat dąży do utrzymania stałej, zadanej temperatury w podłodze. Jest to niezwykle stabilny i bezpieczny tryb, idealny do pomieszczeń, w których podłogówka jest jedynym źródłem ciepła. Algorytm&nbsp;<strong>PID</strong>&nbsp;(Proporcjonalno-Całkująco-Różniczkujący) nie tylko reaguje na bieżącą różnicę temperatur (P), ale też analizuje, jak długo utrzymywał się błąd (I) i jak szybko temperatura się zmienia (D), by precyzyjnie zapobiegać przegrzaniu lub niedogrzaniu.</p>



<h3 class="wp-block-heading"><strong>2. Tryb regulacji mieszanej (ogranicznik podłogi)</strong>.</h3>



<p class="wp-block-paragraph">W tym trybie&nbsp;<strong>priorytetem jest temperatura powietrza</strong>&nbsp;w pomieszczeniu, mierzona przez wbudowany w termostacie&nbsp;<strong>czujnik powietrza</strong>.&nbsp;<strong>Sonda podłogowa</strong>&nbsp;pełni wyłącznie&nbsp;<strong>funkcję zabezpieczającą</strong>. Na przykład: ustawiamy żądaną temperaturę powietrza na 22°C, a limit temperatury podłogi na 28°C. System grzeje, aby osiągnąć 22°C w powietrzu, ale&nbsp;<strong>absolutnie nigdy nie pozwoli</strong>, aby podłoga przekroczyła 28°C, nawet jeśli oznacza to lekki niedobór ciepła w pomieszczeniu. To doskonały tryb dla instalacji uzupełniających (np. podłogówka + kominek).</p>



<h3 class="wp-block-heading"><strong>3. Tryb adaptacyjny (z funkcją samouczącą)</strong>.</h3>



<p class="wp-block-paragraph">Zaawansowane sterowniki, analizując dane z&nbsp;<strong>czujnika podłogowego</strong>&nbsp;(jak szybko rośnie lub spada temperatura przy danym otwarciu zaworu) oraz porównując je z temperaturą zewnętrzną, potrafią&nbsp;<strong>antycypować</strong>&nbsp;zapotrzebowanie na ciepło. Na przykład, widząc gwałtowny spadek temperatury na zewnątrz, system może wcześniej zacząć delikatnie dogrzewać podłogę, zanim użytkownik odczuje dyskomfort. Skraca to czas reakcji systemu o dużej bezwładności.</p>



<style>
.chart-wrap {
  max-width: 960px;
  margin: 40px auto;
  font-family: Arial, sans-serif;
}

.chart-title {
  font-size: 20px;
  font-weight: bold;
  margin-bottom: 12px;
}

.chart-subtitle {
  font-size: 14px;
  color: #555;
  margin-bottom: 10px;
}
</style>

<div class="chart-wrap">
  <div class="chart-title">
    Zależność trybu pracy od temperatury i czasu
  </div>
  <div class="chart-subtitle">
    Schemat ideowy – nie przedstawia rzeczywistych pomiarów
  </div>

  <svg viewBox="0 0 900 420" width="100%" height="auto" aria-label="Wykres zależności trybu pracy ogrzewania od temperatury i czasu">

    <!-- Osie -->
    <line x1="90" y1="40" x2="90" y2="350" stroke="#333" stroke-width="2"/>
    <line x1="90" y1="350" x2="860" y2="350" stroke="#333" stroke-width="2"/>

    <!-- Opisy osi -->
    <text x="30" y="220" font-size="14" transform="rotate(-90 30 220)">
      Temperatura
    </text>
    <text x="790" y="395" font-size="14">
      Czas →
    </text>

    <!-- STREFA RYZYKA – TRYB POWIETRZNY -->
    <path d="M90 130 Q300 70 860 100 L860 40 L90 40 Z"
          fill="rgba(198,40,40,0.15)"/>
    <text x="120" y="70" font-size="13" fill="#b71c1c">
      Tryb powietrzny – brak limitu temperatury podłogi (ryzyko przegrzania)
    </text>

    <!-- LINIA LIMITU – TRYB MIESZANY -->
    <line x1="90" y1="200" x2="860" y2="200"
          stroke="#ef6c00" stroke-width="3" stroke-dasharray="6 6"/>
    <text x="120" y="188" font-size="13" fill="#ef6c00">
      Tryb mieszany – limit maksymalnej temperatury podłogi
    </text>

    <!-- KRZYWA PID – TRYB PODŁOGOWY -->
    <path d="M90 280 Q300 220 860 245"
          fill="none" stroke="#2e7d32" stroke-width="3"/>
    <text x="120" y="235" font-size="13" fill="#2e7d32">
      Tryb podłogowy PID – stabilizacja temperatury
    </text>

  </svg>
</div>



<p class="wp-block-paragraph"><em>Opis: Wykres obrazuje, jak tryb oparty tylko na temperaturze powietrza może prowadzić do niekontrolowanego przegrzania podłogi. Tryb podłogowy PID zapewnia stabilność, a tryb mieszany jest kompromisem z wbudowanym zabezpieczeniem.</em></p>



<h2 class="wp-block-heading">Projektowanie instalacji z uwzględnieniem czujnika podłogowego: gdzie, jak i po co?</h2>



<p class="wp-block-paragraph"><a href="https://projekt-ogrzewania.pl/kontakt/">Projektant instalacji grzewczej</a> musi traktować <strong>czujnik podłogowy</strong> jako <strong>element obowiązkowy</strong> każdej pętli grzewczej, a nie jako opcjonalny dodatek. Jego lokalizacja ma kluczowe znaczenie dla reprezentatywności pomiaru.</p>



<h3 class="wp-block-heading"><strong>Kluczowe zasady montażu czujnika w projekcie:</strong></h3>



<ol start="1" class="wp-block-list">
<li><strong>Lokalizacja w <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli</a>:</strong> Czujnik musi być umieszczony <strong>w połowie odległości między dwiema rurami grzewczymi</strong> i <strong>w odległości co najmniej 0,5-1,0 m od ściany zewnętrznej</strong> lub innych lokalnych źródeł chłodu/ciepła. Jego zadaniem jest mierzenie <strong>średniej temperatury płyty grzewczej</strong>, a nie temperatury bezpośrednio nad gorącą rurą.</li>



<li><strong>Głębokość instalacji:</strong>&nbsp;Optymalna głębokość to&nbsp;<strong>środek grubości wylewki</strong>&nbsp;(np. 4-5 cm pod powierzchnią przy wylewce 8-10 cm). Umieszczenie go zbyt płytko spowoduje zbyt szybką reakcję na zmiany, a zbyt głęboko – wydłuży czas reakcji systemu.</li>



<li><strong>Peszel (rurka osłonowa):</strong><strong>Absolutnie obowiązkowy element projektu.</strong>&nbsp;Czujnik&nbsp;<strong>zawsze</strong>&nbsp;prowadzi się w dedykowanej,&nbsp;<strong>giętkiej rurce osłonowej</strong>&nbsp;(peszlu) o średnicy min. 16 mm. Peszel:
<ul class="wp-block-list">
<li>Chroni czujnik podczas wylewania posadzki.</li>



<li><strong>Umożliwia wymianę uszkodzonego czujnika bez kucia podłogi!</strong>&nbsp;To najważniejsza funkcja.</li>



<li>Powinien być szczelnie zaizolowany od strony pomieszczenia, aby uniknąć pomiaru temperatury powietrza z termostatu.</li>
</ul>
</li>



<li><strong>Trasa prowadzenia:</strong>&nbsp;Peszel z czujnikiem prowadzi się od puszki pod termostat w dół, a następnie po łuku (promień min. 10 cm) w kierunku płyty grzewczej. Na końcu peszel powinien być&nbsp;<strong>szczelnie zatkany</strong>&nbsp;(np. taśmą) przed wylewką, aby zaprawa nie dostała się do środka.</li>
</ol>



<h3 class="wp-block-heading"><strong>Przykład z projektu: Łazienka 8m² z dwoma pętlami</strong>.</h3>



<ul class="wp-block-list">
<li><strong>Pomieszczenie:</strong>&nbsp;Łazienka, wymagana temp. podłogi: 27°C.</li>



<li><strong>Instalacja:</strong>&nbsp;Dwie pętle rury fi16, rozstaw co 15 cm, długości pętli 70m i 65m.</li>



<li><strong>Rozwiązanie projektowe:</strong>&nbsp;Jedno miejsce sterowania (termostat łazienkowy IP44). W projekcie&nbsp;<strong>rozpisano prowadzenie jednego peszla</strong>&nbsp;do płyty grzewczej. Ponieważ pętle są podobnej długości i obciążenia,&nbsp;<strong>czujnik podłogowy montuje się w pętli dłuższej (bardziej obciążonej)</strong>, aby jej temperatura była miarodajna dla całego pomieszczenia. Peszel prowadzony jest w odległości 70 cm od ściany, między rurami, na głębokość 5 cm. W specyfikacji technicznej zapisano:&nbsp;<em>„Termostat elektroniczny z czujnikiem powietrza i podłogowym NTC 10kΩ, peszel fi16 do wyprowadzenia w puszce podtermostatowej.”</em></li>
</ul>



<h2 class="wp-block-heading">Zaawansowane techniki: integracja z systemami budynku i optymalizacja.</h2>



<p class="wp-block-paragraph">W nowoczesnych, zintegrowanych systemach (knx, Loxone, inne systemy BMS)&nbsp;<strong>czujnik podłogowy</strong>&nbsp;przestaje być wyizolowanym elementem jednej pętli. Jego dane stają się częścią szerszego algorytmu zarządzania energią.</p>



<ul class="wp-block-list">
<li><strong>Optymalizacja pracy <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">pompy ciepła</a>:</strong> Sterownik, zbierając informacje z wielu <strong>czujników podłogowych</strong> w różnych strefach, może obliczyć średnią temperaturę zasilania wymaganą dla całego systemu. To pozwala pompcie ciepła pracować w <strong>najefektywniejszym punkcie swojej charakterystyki</strong>, z wyższym współczynnikiem COP.</li>



<li><strong>Regulacja pogodowa z korektą podłogową:</strong> Podstawowa regulacja pogodowa ustawia temperaturę zasilania na podstawie wykresu grzewczego i temperatury zewnętrznej. <strong>Dane z czujników podłogowych</strong> działają tu jako <strong>sprzężenie zwrotne</strong>. Jeśli mimo optymalnej (według krzywej) temperatury zasilania, podłoga w łazience jest za chłodna, system delikatnie podnosi <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywą grzewczą</a> tylko dla tej strefy lub zwiększa priorytet dla zaworu mieszającego tej pętli.</li>



<li><strong>Mapowanie cieplne budynku:</strong>&nbsp;W bardzo zaawansowanych instalacjach dane historyczne z czujników podłogowych w połączeniu z czujnikami temperatury powietrza w pomieszczeniach są analizowane, aby stworzyć model strat ciepła budynku. System może np. „nauczyć się”, że pokój narożny na północ wymaga wcześniejszego rozpoczęcia grzania niż pokój południowy.</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-1769159404388"><strong class="schema-faq-question"><strong>Czy czujnik podłogowy jest konieczny w ogrzewaniu podłogowym?</strong></strong> <p class="schema-faq-answer">Tak. Czujnik podłogowy jest kluczowy dla bezpieczeństwa i komfortu. Bez niego system reaguje wyłącznie na temperaturę powietrza, co może prowadzić do przegrzewania posadzki lub dyskomfortu użytkowników.</p> </div> <div class="schema-faq-section" id="faq-question-1769159460789"><strong class="schema-faq-question"><strong>Jaka jest bezpieczna temperatura podłogi?</strong></strong> <p class="schema-faq-answer">Dla większości pomieszczeń komfortowy i bezpieczny zakres to 21–27°C. W łazienkach dopuszcza się do ok. 29°C. Temperatury powyżej 35°C mogą uszkodzić podłogę.</p> </div> <div class="schema-faq-section" id="faq-question-1769159470613"><strong class="schema-faq-question"><strong>Gdzie najlepiej zamontować czujnik podłogowy?</strong></strong> <p class="schema-faq-answer">Czujnik należy umieścić w peszlu, pomiędzy dwiema rurami grzewczymi, w połowie grubości wylewki i z dala od ścian zewnętrznych oraz punktowych źródeł ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1769159494093"><strong class="schema-faq-question"><strong>Czy czujnik podłogowy można wymienić po zalaniu posadzki?</strong></strong> <p class="schema-faq-answer">Tak, ale tylko wtedy, gdy został zamontowany w rurce osłonowej (peszlu). Brak peszla oznacza konieczność kucia podłogi przy awarii czujnika.</p> </div> <div class="schema-faq-section" id="faq-question-1769159508565"><strong class="schema-faq-question"><strong>Czym różni się tryb podłogowy PID od trybu mieszanego?</strong></strong> <p class="schema-faq-answer">W trybie PID czujnik podłogowy jest głównym źródłem sterowania i zapewnia stabilną temperaturę posadzki. W trybie mieszanym czujnik pełni funkcję limitu bezpieczeństwa, a sterowanie odbywa się głównie na podstawie temperatury powietrza.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie.</h2>



<p class="wp-block-paragraph"><strong>Czujnik podłogowy</strong>&nbsp;jest nieodzownym elementem wydajnej, bezpiecznej i komfortowej instalacji wodnego ogrzewania podłogowego. Jego koszt jest marginalny w porównaniu z całością inwestycji, a potencjalne korzyści – ogromne: od ochrony drogiego wykończenia posadzki (parkiet, panele winylowe), przez eliminację dyskomfortu „zimnych stóp” czy „przegrzanej podłogi”, po realne oszczędności na rachunkach za energię dzięki precyzyjnemu dozowaniu ciepła.</p>



<p class="wp-block-paragraph"><strong>Pamiętaj:</strong>&nbsp;Nawet najdroższy kocioł czy pompa ciepła nie będą pracować optymalnie, jeśli system dystrybucji ciepła (ogrzewanie podłogowe) jest sterowany „w ciemno”.&nbsp;<strong>Czujnik podłogowy</strong>&nbsp;dostarcza niezbędnych danych, które pozwalają zamienić prosty system grzewczy w inteligentną, samoregulującą się strukturę, dbającą o Twój komfort i portfel. Przy projektowaniu i wykonawstwie swojego ogrzewania podłogowego&nbsp;<strong>nalegaj na poprawne zainstalowanie czujników w peszlach</strong>&nbsp;– to najtańsze ubezpieczenie dla Twojej instalacji na lata.</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="0jHqqsyK58"><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=4d81KYYXqh#?secret=0jHqqsyK58" data-secret="0jHqqsyK58" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">Czujnik podłogowy.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Siłowniki termoelektryczne na rozdzielaczach.</title>
		<link>https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 22 Jan 2026 08:46:44 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Instalacje hydrauliczne]]></category>
		<category><![CDATA[Inteligentny dom]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki instalacyjne]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Porady dla inwestorów]]></category>
		<category><![CDATA[Porady ekspertów]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[Sterowniki do podłogówki]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[energooszczędne ogrzewanie]]></category>
		<category><![CDATA[instalacje co]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[rozdzielacz ogrzewania]]></category>
		<category><![CDATA[siłowniki termoelektryczne]]></category>
		<category><![CDATA[sterowanie strefowe]]></category>
		<category><![CDATA[termostat pokojowy]]></category>
		<category><![CDATA[zawory rozdzielacza]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3265</guid>

					<description><![CDATA[<p>W nowoczesnych instalacjach grzewczych liczy się nie tylko źródło ciepła, ale precyzja jego dystrybucji. Siłowniki termoelektryczne na rozdzielaczach są cichymi strażnikami komfortu, które decydują, kiedy i gdzie ciepło faktycznie trafia do podłogi lub grzejnika. Ten artykuł pokazuje, jak działają te niepozorne elementy, jakie mają parametry techniczne, gdzie są niezastąpione i dlaczego ich właściwy dobór jest kluczowy dla efektywności energetycznej całego systemu grzewczego – od małych domów po rozbudowane instalacje strefowe.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">Siłowniki termoelektryczne na rozdzielaczach.</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-panel: #1e293b;
    --rk-intro-primary: #06b6d4; /* Cyjan - technologia */
    --rk-intro-primary-dark: #0891b2;
    --rk-intro-primary-light: #cffafe;
    --rk-intro-accent: #10b981; /* Emerald - oszczędność */
    --rk-intro-bg: #f8fafc;
    --rk-intro-border: #e2e8f0;
    --rk-intro-text: #334155;
    --rk-intro-muted: #64748b;
}

.rk-intro-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(6, 182, 212, 0.15);
    border: 1px solid rgba(6, 182, 212, 0.2);
    overflow: hidden;
}

/* Sekcja Hook & Header */
.rk-intro-header {
    background: linear-gradient(135deg, var(--rk-intro-dark) 0%, #164e63 100%);
    padding: 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-intro-primary);
}

.rk-intro-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(6, 182, 212, 0.2);
    color: #67e8f9;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 25px;
    border: 1px solid rgba(103, 232, 249, 0.3);
}

.rk-intro-header h2 {
    font-size: 32px;
    font-weight: 900;
    margin: 0 0 25px 0;
    line-height: 1.3;
}

.rk-intro-hook {
    font-size: 18px;
    font-weight: 700;
    color: var(--rk-intro-primary-light);
    margin: 0 0 25px 0;
    line-height: 1.6;
    border-left: 4px solid var(--rk-intro-primary);
    padding-left: 20px;
}

.rk-intro-definition {
    color: #cbd5e1;
    font-size: 16px;
    line-height: 1.8;
    margin: 0;
    font-weight: 400;
}

.rk-intro-link-light {
    color: #67e8f9;
    text-decoration: none;
    border-bottom: 1px dotted #67e8f9;
    font-weight: 700;
    transition: 0.3s;
}
.rk-intro-link-light:hover { color: #ffffff; border-bottom-style: solid; }

/* Sekcja ROI / Korzyści */
.rk-intro-roi {
    background: #ecfdf5;
    padding: 35px 50px;
    border-bottom: 1px solid #d1fae5;
    display: flex;
    align-items: center;
    gap: 30px;
}

.rk-roi-icon-box {
    width: 80px;
    height: 80px;
    background: #ffffff;
    border: 2px solid var(--rk-intro-accent);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 10px 25px -5px rgba(16, 185, 129, 0.3);
}

.rk-roi-content h3 {
    font-size: 22px;
    font-weight: 900;
    color: #064e3b;
    margin: 0 0 10px 0;
}

.rk-roi-content p {
    font-size: 15px;
    color: #047857;
    margin: 0;
    line-height: 1.6;
    font-weight: 500;
}

/* Agenda / Spis Treści (Elastyczny Grid) */
.rk-intro-agenda {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-intro-agenda-title {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-intro-dark);
    margin: 0 0 30px 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Użycie auto-fit rozwiązuje problem z nachodzeniem kafelków */
.rk-agenda-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 20px;
}

.rk-agenda-card {
    background: var(--rk-intro-bg);
    border: 1px solid var(--rk-intro-border);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-agenda-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px -10px rgba(6, 182, 212, 0.15);
    border-color: var(--rk-intro-primary-light);
    background: #ffffff;
}

.rk-agenda-icon {
    width: 48px;
    height: 48px;
    background: var(--rk-intro-primary-light);
    color: var(--rk-intro-primary-dark);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-agenda-card h4 {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0;
}

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

@media (max-width: 768px) {
    .rk-intro-header, .rk-intro-roi, .rk-intro-agenda { padding: 30px 20px; }
    .rk-intro-roi { flex-direction: column; text-align: center; }
    .rk-roi-content h3 { font-size: 20px; }
    .rk-agenda-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "Siłowniki termoelektryczne na rozdzielaczach – kompletny przewodnik inżynierski",
    "description": "Siłowniki termoelektryczne to kluczowy element automatyki strefowej ogrzewania podłogowego. Sprawdź, jak działają, jakie mają parametry i jak redukują koszty o 20%.",
    "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-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#dataset",
    "name": "Analiza Efektywności Energetycznej Automatyki Strefowej",
    "description": "Zestawienie danych porównujących zużycie energii i stabilność temperatury w budynkach wyposażonych w siłowniki termoelektryczne na rozdzielaczach względem układów nieregulowanych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "siłowniki termoelektryczne",
      "automatyka ogrzewania podłogowego",
      "oszczędność energii ogrzewanie",
      "zawory termostatyczne belek",
      "sterowanie strefowe koszty"
    ],
    "measurementTechnique": "Szacowanie oparte na badaniach bilansu energetycznego budynków jednorodzinnych, wykazujące potencjał redukcji strat energii od 15% do 20% poprzez eliminację przegrzewania stref.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Status wyjściowy: Układ nieregulowany generuje ciągłą pracę źródła ciepła, prowadząc do przegrzewania i strat.",
        "Status po optymalizacji: Siłowniki dwustanowe precyzyjnie dawkują czynnik grzewczy, obniżając koszty eksploatacji budynku nawet o 20%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webapp",
    "name": "Nawigator Wiedzy Inwestorskiej",
    "description": "Interaktywny moduł wprowadzający (Agenda), umożliwiający szybkie zapoznanie się ze strukturą merytoryczną opracowania inżynierskiego.",
    "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="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
            Kompleksowe kompendium wiedzy
        </div>
        
        <h2>Siłowniki termoelektryczne na rozdzielaczach – kompletny przewodnik inżynierski</h2>
        
        <p class="rk-intro-hook">
            Większość inwestorów skupia się na wyborze najdroższej <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-intro-link-light">pompy ciepła</a>, ignorując niepozorny element w szafce instalacyjnej, który bezpośrednio decyduje o jej ostatecznej sprawności i wysokości Twoich rachunków.
        </p>

        <p class="rk-intro-definition">
            <strong>Siłowniki termoelektryczne na rozdzielaczach</strong> to dwustanowe (zamknij/otwórz) urządzenia elektrotermiczne montowane bezpośrednio na zaworach termostatycznych belek rozdzielacza, które przetwarzają sygnał napięciowy z regulatora pokojowego na ruch liniowy trzpienia, regulując przepływ masowy czynnika grzewczego w pętli. Jako kluczowy element <a href="https://projekt-ogrzewania.pl/sterowanie-strefowe-ogrzewaniem-czy-warto/" class="rk-intro-link-light">automatyki strefowej</a>, siłownik termiczny precyzyjnie odcina lub uruchamia obieg wody w ogrzewaniu podłogowym.
        </p>
    </div>

    <div class="rk-intro-roi">
        <div class="rk-roi-icon-box">
            <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-accent)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline><polyline points="17 6 23 6 23 12"></polyline></svg>
        </div>
        <div class="rk-roi-content">
            <h3>Odcięcie strat energetycznych</h3>
            <p>Prawidłowy dobór gwintu, skoku trzpienia oraz zasilania dla siłowników zapobiega przewymiarowanemu przegrzewaniu pomieszczeń. Fizyczne odcięcie niepotrzebnego przepływu na rozdzielaczu redukuje całkowite koszty eksploatacji budynku o <strong>15% do 20%</strong> w skali roku.</p>
        </div>
    </div>

    <div class="rk-intro-agenda">
        <h3 class="rk-intro-agenda-title">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="var(--rk-intro-primary)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg>
            Czego dowiesz się z tego przewodnika?
        </h3>
        
        <div class="rk-agenda-grid">
            
            <div class="rk-agenda-card">
                <div class="rk-agenda-icon">
                    <svg width="24" height="24" 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>
                <h4>Fizyka działania (NC vs NO)</h4>
                <p>Zrozumiesz, dlaczego wosk wewnątrz siłownika potrzebuje aż 3 do 5 minut na reakcję i dlaczego ta celowa bezwładność chroni instalację przed skokami ciśnienia.</p>
            </div>

            <div class="rk-agenda-card">
                <div class="rk-agenda-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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></svg>
                </div>
                <h4>Twarde parametry techniczne</h4>
                <p>Poznasz karty katalogowe i znaczenie doboru siły nacisku (np. 100N) oraz odpowiedniego gwintu (M30x1.5 vs M28x1.5) dla bezawaryjnej pracy.</p>
            </div>

            <div class="rk-agenda-card">
                <div class="rk-agenda-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                </div>
                <h4>Kalkulator zasilacza 24V</h4>
                <p>Pokażę Ci, jak wyliczyć niebezpieczny prąd rozruchowy modułów PTC, aby dobrać odpowiedni zasilacz na szynę DIN i uniknąć stopienia przekaźników.</p>
            </div>

            <div class="rk-agenda-card">
                <div class="rk-agenda-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <h4>Skutki błędnego wykonawstwa</h4>
                <p>Przeanalizujemy najdroższe błędy instalatorów: destrukcyjne taktowanie pompy ciepła, zaburzenie hydrauliki i straty spowodowane niedomykaniem pętli.</p>
            </div>

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



<style>
:root {
    --rk-act-dark: #0f172a;
    --rk-act-panel: #1e293b;
    --rk-act-card: #ffffff;
    --rk-act-primary: #f97316; /* Orange for Heat/Thermoelectric */
    --rk-act-primary-light: #ffedd5;
    --rk-act-accent: #0ea5e9; /* Blue for Flow/Water */
    --rk-act-danger: #ef4444; /* Red for PTC heater */
    --rk-act-success: #10b981;
    --rk-act-bg: #f8fafc;
    --rk-act-border: #e2e8f0;
    --rk-act-text: #334155;
    --rk-act-muted: #64748b;
}

.rk-act-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-act-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(249, 115, 22, 0.15);
    border: 1px solid rgba(249, 115, 22, 0.2);
    overflow: hidden;
}

/* Nagłówek */
.rk-act-header {
    background: linear-gradient(135deg, var(--rk-act-dark) 0%, #271408 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-act-primary);
    position: relative;
    overflow: hidden;
}

.rk-act-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(249, 115, 22, 0.2);
    color: #fdba74;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(249, 115, 22, 0.3);
    position: relative; z-index: 2;
}

.rk-act-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative; z-index: 2;
}

.rk-act-header p {
    color: #cbd5e1;
    font-size: 15px;
    margin: 0;
    max-width: 800px;
    line-height: 1.7;
    position: relative; z-index: 2;
}

.rk-act-link-light {
    color: #fdba74;
    text-decoration: none;
    border-bottom: 1px dotted #fdba74;
    font-weight: 700;
    transition: 0.3s;
}
.rk-act-link-light:hover { color: #ffffff; border-bottom-style: solid; }

/* Symulator - Układ */
.rk-act-simulator {
    display: grid;
    grid-template-columns: 300px 1fr;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-act-border);
}

/* Panel Kontrolny */
.rk-act-controls {
    padding: 40px;
    background: #f8fafc;
    border-right: 1px solid var(--rk-act-border);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-control-block {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

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

/* Przełącznik Typu NC/NO */
.rk-type-switch {
    display: flex;
    background: #e2e8f0;
    border-radius: 12px;
    padding: 4px;
    position: relative;
}

.rk-type-btn {
    flex: 1;
    padding: 10px 0;
    text-align: center;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-act-muted);
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s;
    z-index: 2;
}

.rk-type-btn.active {
    color: #ffffff;
}

.rk-type-highlighter {
    position: absolute;
    top: 4px; left: 4px;
    width: calc(50% - 4px); height: calc(100% - 8px);
    background: var(--rk-act-dark);
    border-radius: 8px;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
}

/* Przycisk Termostatu (Zasilanie) */
.rk-power-btn {
    background: #ffffff;
    border: 2px solid var(--rk-act-border);
    border-radius: 16px;
    padding: 20px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    transition: all 0.3s;
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-power-btn:hover {
    border-color: var(--rk-act-primary);
}

.rk-power-btn.on {
    background: var(--rk-act-primary-light);
    border-color: var(--rk-act-primary);
    box-shadow: 0 10px 20px -5px rgba(249, 115, 22, 0.2);
}

.rk-power-icon {
    width: 48px; height: 48px;
    border-radius: 50%;
    background: #f1f5f9;
    color: var(--rk-act-muted);
    display: flex; align-items: center; justify-content: center;
    transition: all 0.3s;
}

.rk-power-btn.on .rk-power-icon {
    background: var(--rk-act-primary);
    color: #ffffff;
    box-shadow: 0 0 15px rgba(249, 115, 22, 0.5);
}

.rk-power-text {
    font-size: 15px; font-weight: 800; color: var(--rk-act-dark);
}
.rk-power-sub {
    font-size: 12px; color: var(--rk-act-muted); font-weight: 600;
}

/* Wizualizacja + Pomiary */
.rk-act-visual-area {
    padding: 40px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-live-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.rk-metric-box {
    background: var(--rk-act-bg);
    border: 1px solid var(--rk-act-border);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
    transition: all 0.3s;
}

.rk-metric-box.active {
    border-color: var(--rk-act-primary);
    background: #ffffff;
    box-shadow: 0 4px 10px rgba(249, 115, 22, 0.1);
}

.rk-metric-val {
    font-family: 'Courier New', monospace;
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-act-dark);
    margin-bottom: 5px;
}

.rk-metric-box.active .rk-metric-val { color: var(--rk-act-primary); }

.rk-metric-lab {
    font-size: 11px;
    font-weight: 800;
    color: var(--rk-act-muted);
    text-transform: uppercase;
}

/* Obszar SVG */
.rk-svg-container {
    flex-grow: 1;
    background: var(--rk-act-dark);
    border-radius: 16px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
    overflow: hidden;
}

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

/* Elementy SVG z CSS */
.svg-ptc-heater { fill: #475569; transition: fill 3s; }
.state-powered .svg-ptc-heater { fill: #ef4444; filter: drop-shadow(0 0 5px red); }

.svg-wax-chamber { fill: #eab308; transform-origin: center top; transition: transform 3s ease-in-out; }
.state-expanding .svg-wax-chamber { transform: scaleY(1.3); }

.svg-piston { transform: translateY(0); transition: transform 3s ease-in-out; }
.state-expanding .svg-piston { transform: translateY(15px); }

.svg-spring { stroke-dasharray: 2 4; transition: stroke-dashoffset 3s, stroke-width 3s; }
.state-expanding .svg-spring { stroke-width: 4; stroke-dashoffset: 10; }

.svg-water-flow { stroke-dasharray: 10 10; stroke-dashoffset: 100; opacity: 0; transition: opacity 0.5s; }
.state-flowing .svg-water-flow { opacity: 1; animation: waterFlowAnim 1s linear infinite; }
@keyframes waterFlowAnim { to { stroke-dashoffset: 0; } }

/* Siatka Kroków Procesu */
.rk-act-steps-section {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-act-steps-section h3 {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-act-dark);
    margin: 0 0 25px 0;
}

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

.rk-process-card {
    background: var(--rk-act-bg);
    border: 1px solid var(--rk-act-border);
    border-radius: 16px;
    padding: 25px 20px;
    position: relative;
    transition: transform 0.3s;
}

.rk-process-card:hover {
    transform: translateY(-5px);
    border-color: var(--rk-act-primary);
    box-shadow: 0 10px 20px -5px rgba(249, 115, 22, 0.1);
}

.rk-process-num {
    width: 32px; height: 32px;
    background: var(--rk-act-dark);
    color: #ffffff;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    font-size: 14px; font-weight: 900;
    margin-bottom: 15px;
}

.rk-process-card:hover .rk-process-num { background: var(--rk-act-primary); }

.rk-process-title {
    font-size: 15px;
    font-weight: 900;
    color: var(--rk-act-dark);
    margin: 0 0 10px 0;
}

.rk-process-text {
    font-size: 13px;
    line-height: 1.6;
    color: var(--rk-act-text);
    margin: 0;
}

@media (max-width: 900px) {
    .rk-act-simulator { grid-template-columns: 1fr; }
    .rk-act-controls { border-right: none; border-bottom: 1px solid var(--rk-act-border); flex-direction: row; flex-wrap: wrap; }
    .rk-control-block { flex: 1; min-width: 200px; }
    .rk-steps-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .rk-act-header, .rk-act-controls, .rk-act-visual-area, .rk-act-steps-section { padding: 30px 20px; }
    .rk-live-metrics { grid-template-columns: 1fr 1fr; }
    .rk-steps-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article-dzialanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "Jak działa siłownik termoelektryczny na rozdzielaczu i czy zawsze jest zamknięty?",
    "description": "Zasada działania siłowników termoelektrycznych NC i NO. Mechanizm rozszerzalności cieplnej wosku, rezystor PTC oraz parametry techniczne normy PN-EN 1264.",
    "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-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#dataset-termodynamika",
    "name": "Parametry fizykochemiczne siłowników termoelektrycznych",
    "description": "Zbiór danych technicznych dotyczących czasu reakcji, poboru mocy i siły nacisku w cyklu pracy siłowników woskowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "jak działa siłownik termoelektryczny",
      "siłownik NC normalnie zamknięty",
      "rozszerzalność cieplna wosku podłogówka",
      "rezystor PTC w siłowniku",
      "skok roboczy zaworu rozdzielacza"
    ],
    "measurementTechnique": "Określenie procesu ekspansji fazowej parafiny z wykorzystaniem rezystora PTC generującego temp. 55°C, siłę docisku 100-140N oraz skok 3.5-4.5mm w czasie 3-5 minut.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Stan NC (Normally Closed): Domyślne zamknięcie przepływu zładu wody (bezpieczeństwo instalacji).",
        "Ekspansja fazowa: Wzrost objętości wosku pod wpływem ciepła z grzałki PTC.",
        "Parametry kinetyczne: Czas pełnego otwarcia/zamknięcia wynosi 3-5 minut."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webapp-termodynamika",
    "name": "Symulator Cyklu Termodynamicznego Siłownika",
    "description": "Interaktywne narzędzie obrazujące ekspansję fazową wosku wewnątrz hermetycznej obudowy siłownika i wynikający z niej ruch trzpienia zaworu rozdzielacza pod wpływem temperatury generowanej przez termostat.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, and JavaScript.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-act-container" id="rk-act-app">
    <div class="rk-act-header">
        <div class="rk-act-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>
            Technologia od środka
        </div>
        <h2>Jak działa siłownik termoelektryczny na rozdzielaczu i czy zawsze jest zamknięty?</h2>
        <p>Siłowniki nie wykorzystują głośnych silniczków ani przekładni zębatych. Ich sercem jest prosta fizyka – zmiana objętości wosku pod wpływem temperatury. Odkryj, dlaczego pełne otwarcie pętli według normy <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/" class="rk-act-link-light">PN-EN 1264</a> zajmuje aż 3 do 5 minut.</p>
    </div>

    <div class="rk-act-simulator">
        <div class="rk-act-controls">
            
            <div class="rk-control-block">
                <div class="rk-control-label">Typ Zaworu / Siłownika</div>
                <div class="rk-type-switch">
                    <div class="rk-type-highlighter" id="typeHighlighter"></div>
                    <div class="rk-type-btn active" id="btnNC" onclick="setActuatorType('NC')">NC (Zamknięty)</div>
                    <div class="rk-type-btn" id="btnNO" onclick="setActuatorType('NO')">NO (Otwarty)</div>
                </div>
                <div style="font-size:11px; color:var(--rk-act-muted); text-align:center;">Stan bez napięcia elektrycznego</div>
            </div>

            <div class="rk-control-block">
                <div class="rk-control-label">Sygnał z Termostatu</div>
                <button class="rk-power-btn" id="btnPower" onclick="togglePower()">
                    <div class="rk-power-icon">
                        <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M18.36 6.64a9 9 0 1 1-12.73 0"></path><line x1="12" y1="2" x2="12" y2="12"></line></svg>
                    </div>
                    <div>
                        <div class="rk-power-text" id="powText">Zasilanie WYŁ.</div>
                        <div class="rk-power-sub">Brak zapotrzebowania na ciepło</div>
                    </div>
                </button>
            </div>

        </div>

        <div class="rk-act-visual-area">
            
            <div class="rk-live-metrics">
                <div class="rk-metric-box" id="metPower">
                    <div class="rk-metric-val"><span id="valPow">0.0</span>W</div>
                    <div class="rk-metric-lab">Pobór Mocy</div>
                </div>
                <div class="rk-metric-box" id="metTemp">
                    <div class="rk-metric-val"><span id="valTemp">20</span>°C</div>
                    <div class="rk-metric-lab">Temp. Wosku</div>
                </div>
                <div class="rk-metric-box" id="metForce">
                    <div class="rk-metric-val"><span id="valForce">0</span>N</div>
                    <div class="rk-metric-lab">Siła Nacisku</div>
                </div>
                <div class="rk-metric-box" id="metFlow">
                    <div class="rk-metric-val" id="valFlow" style="font-size:16px; padding-top:4px;">BRAK</div>
                    <div class="rk-metric-lab">Przepływ</div>
                </div>
            </div>

            <div class="rk-svg-container" id="simContainer">
                <svg class="rk-actuator-svg" viewBox="0 0 200 240">
                    
                    <path d="M 60 160 L 140 160 L 140 220 L 60 220 Z" fill="#1e293b" stroke="#334155" stroke-width="4"/>
                    <path d="M 40 190 L 60 190 M 140 190 L 160 190" stroke="#334155" stroke-width="8"/>
                    
                    <path class="svg-water-flow" d="M 40 190 L 100 190 L 100 210 L 160 210" fill="none" stroke="#0ea5e9" stroke-width="6"/>
                    
                    <rect x="90" y="170" width="20" height="10" fill="#cbd5e1" rx="2"/>
                    <path class="svg-spring" d="M 95 180 L 105 180 M 95 185 L 105 185 M 95 190 L 105 190 M 95 195 L 105 195 M 95 200 L 105 200" stroke="#94a3b8" stroke-width="2"/>
                    
                    <rect class="svg-piston" x="96" y="130" width="8" height="40" fill="#94a3b8"/>

                    <path d="M 65 40 L 135 40 L 145 140 L 55 140 Z" fill="none" stroke="#64748b" stroke-width="4"/>
                    <rect x="80" y="20" width="40" height="20" fill="#475569" rx="4"/>
                    
                    <rect class="svg-ptc-heater" x="90" y="45" width="20" height="10" rx="2"/>
                    <path d="M 100 20 L 100 45" stroke="#475569" stroke-width="3"/>
                    
                    <ellipse class="svg-wax-chamber" cx="100" cy="85" rx="25" ry="15"/>
                    
                    <rect class="svg-piston" x="85" y="100" width="30" height="10" fill="#334155" rx="2"/>
                    <rect class="svg-piston" x="95" y="110" width="10" height="20" fill="#334155"/>

                </svg>
            </div>

        </div>
    </div>

    <div class="rk-act-steps-section">
        <h3>Proces technologiczny otwierania i zamykania obwodu</h3>
        <div class="rk-steps-grid">
            
            <div class="rk-process-card">
                <div class="rk-process-num">1</div>
                <h4 class="rk-process-title">Podanie napięcia</h4>
                <p class="rk-process-text">Regulator pokojowy zwiera styk (wykrył spadek temperatury w sypialni). Napięcie 230V lub 24V dociera do zacisków siłownika i uruchamia rezystor PTC.</p>
            </div>

            <div class="rk-process-card">
                <div class="rk-process-num">2</div>
                <h4 class="rk-process-title">Ekspansja fazowa</h4>
                <p class="rk-process-text">Grzałka PTC nagrzewa parafinę do ok. 55°C. Wosk błyskawicznie zmienia swoją objętość (rozszerzalność cieplna), wytwarzając potężne ciśnienie wewnątrz cylindra.</p>
            </div>

            <div class="rk-process-card">
                <div class="rk-process-num">3</div>
                <h4 class="rk-process-title">Praca mechaniczna</h4>
                <p class="rk-process-text">Rozszerzający się wosk wypycha tłoczek. Generuje on siłę od 100 N do 140 N, która pokonuje opór sprężyny zaworu, wciskając grzybek na głębokość ok. 4 mm. Woda rusza w pętlę.</p>
            </div>

            <div class="rk-process-card">
                <div class="rk-process-num">4</div>
                <h4 class="rk-process-title">Zanik napięcia</h4>
                <p class="rk-process-text">Po osiągnięciu zadanej temperatury, termostat odcina prąd. Rezystor stygnie, wosk powoli się kurczy, a wbudowana sprężyna wypycha tłoczek z powrotem. Zawór ulega zamknięciu.</p>
            </div>

        </div>
    </div>

</div>

<script>
    let isNC = true;
    let isPowered = false;

    const btnNC = document.getElementById('btnNC');
    const btnNO = document.getElementById('btnNO');
    const highlighter = document.getElementById('typeHighlighter');
    
    const btnPower = document.getElementById('btnPower');
    const powText = document.getElementById('powText');
    const powSub = document.querySelector('.rk-power-sub');
    
    const simContainer = document.getElementById('simContainer');
    
    // Metrics
    const valPow = document.getElementById('valPow');
    const valTemp = document.getElementById('valTemp');
    const valForce = document.getElementById('valForce');
    const valFlow = document.getElementById('valFlow');
    
    const metPower = document.getElementById('metPower');
    const metTemp = document.getElementById('metTemp');
    const metForce = document.getElementById('metForce');
    const metFlow = document.getElementById('metFlow');

    function setActuatorType(type) {
        if(type === 'NC') {
            isNC = true;
            btnNC.classList.add('active');
            btnNO.classList.remove('active');
            highlighter.style.transform = 'translateX(0)';
        } else {
            isNC = false;
            btnNO.classList.add('active');
            btnNC.classList.remove('active');
            highlighter.style.transform = 'translateX(100%)';
        }
        updateSimulation();
    }

    function togglePower() {
        isPowered = !isPowered;
        if(isPowered) {
            btnPower.classList.add('on');
            powText.textContent = 'Zasilanie WŁ.';
            powSub.textContent = 'Grzałka PTC pracuje';
            simContainer.classList.add('state-powered');
        } else {
            btnPower.classList.remove('on');
            powText.textContent = 'Zasilanie WYŁ.';
            powSub.textContent = 'Brak zapotrzebowania na ciepło';
            simContainer.classList.remove('state-powered');
        }
        updateSimulation();
    }

    function updateSimulation() {
        // Obliczanie logiki fizycznej
        // NC: bez prądu -> tłoczek na dole (zawór zamkniety). Z prądem -> wosk pęcznieje, wyciąga tłoczek do góry (zawór otwarty). (Uproszczenie wizualne)
        // Dla animacji załóżmy standardowe zachowanie trzpienia
        
        let pistonPushed = false;
        let isFlowing = false;

        if (isPowered) {
            // Wosk się grzeje
            valPow.textContent = '2.5';
            valTemp.textContent = '55';
            valForce.textContent = '120';
            metPower.classList.add('active');
            metTemp.classList.add('active');
            metForce.classList.add('active');
            simContainer.classList.add('state-expanding');
            pistonPushed = true;
        } else {
            // Wosk stygnie
            valPow.textContent = '0.0';
            valTemp.textContent = '20';
            valForce.textContent = '0';
            metPower.classList.remove('active');
            metTemp.classList.remove('active');
            metForce.classList.remove('active');
            simContainer.classList.remove('state-expanding');
            pistonPushed = false;
        }

        // NC: bez prądu -> zamknięty. z prądem -> otwarty
        // NO: bez prądu -> otwarty. z prądem -> zamknięty
        if ((isNC && isPowered) || (!isNC && !isPowered)) {
            isFlowing = true;
        } else {
            isFlowing = false;
        }

        if (isFlowing) {
            valFlow.textContent = 'OTWARTY';
            valFlow.style.color = 'var(--rk-act-accent)';
            metFlow.classList.add('active');
            simContainer.classList.add('state-flowing');
        } else {
            valFlow.textContent = 'ZAMKNIĘTY';
            valFlow.style.color = 'var(--rk-act-text)';
            metFlow.classList.remove('active');
            simContainer.classList.remove('state-flowing');
        }
    }

    // Init
    updateSimulation();
</script>



<style>
:root {
    --rk-spec-dark: #0f172a;
    --rk-spec-panel: #1e293b;
    --rk-spec-primary: #8b5cf6; /* Indigo/Purple for specifications */
    --rk-spec-primary-light: #ede9fe;
    --rk-spec-accent: #10b981; /* Emerald for IP/Protection */
    --rk-spec-danger: #ef4444; /* Red for heat/max temp */
    --rk-spec-bg: #f8fafc;
    --rk-spec-border: #e2e8f0;
    --rk-spec-text: #334155;
    --rk-spec-muted: #64748b;
}

.rk-spec-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(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.2);
    overflow: hidden;
}

/* Sekcja Nagłówkowa */
.rk-spec-header {
    background: linear-gradient(135deg, var(--rk-spec-dark) 0%, #2e1065 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-spec-primary);
    position: relative;
}

.rk-spec-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(139, 92, 246, 0.3);
    color: #ddd6fe;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(196, 181, 253, 0.3);
}

.rk-spec-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

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

.rk-spec-link-light {
    color: #a78bfa;
    text-decoration: none;
    border-bottom: 1px dotted #a78bfa;
    font-weight: 700;
    transition: 0.3s;
}
.rk-spec-link-light:hover { color: #ffffff; border-bottom-style: solid; }

/* Kluczowe limity - Pasek Info */
.rk-limits-bar {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: var(--rk-spec-panel);
    border-bottom: 1px solid #334155;
}

.rk-limit-item {
    padding: 20px;
    text-align: center;
    border-right: 1px solid #334155;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
.rk-limit-item:last-child { border-right: none; }

.rk-limit-val { font-size: 20px; font-weight: 900; color: #ffffff; display: flex; align-items: center; gap: 6px; }
.rk-limit-val svg { color: var(--rk-spec-danger); }
.rk-limit-item:last-child .rk-limit-val svg { color: var(--rk-spec-accent); }
.rk-limit-lab { font-size: 12px; color: #94a3b8; text-transform: uppercase; font-weight: 700; }

/* Interaktywny Komparator */
.rk-comparator-section {
    padding: 40px 50px;
    background: var(--rk-spec-bg);
}

/* POPRAWIONA SEKCJA ZAKŁADEK (GRID ZAMIAST FLEX) */
.rk-tabs-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    background: #ffffff;
    padding: 10px;
    border-radius: 16px;
    border: 1px solid var(--rk-spec-border);
    margin-bottom: 30px;
}

.rk-tab-btn {
    padding: 14px 15px;
    background: transparent;
    border: 2px solid transparent;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-spec-muted);
    cursor: pointer;
    transition: all 0.3s;
    text-align: center;
    white-space: normal;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1.3;
    min-height: 54px;
}

.rk-tab-btn:hover {
    background: var(--rk-spec-primary-light);
    color: var(--rk-spec-primary);
}

.rk-tab-btn.active {
    background: var(--rk-spec-primary);
    color: #ffffff;
    box-shadow: 0 4px 15px rgba(139, 92, 246, 0.3);
}

/* Siatka Parametrów */
.rk-params-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.rk-param-card {
    background: #ffffff;
    border: 1px solid var(--rk-spec-border);
    border-radius: 16px;
    padding: 25px 20px;
    text-align: center;
    transition: transform 0.3s, box-shadow 0.3s;
    position: relative;
    overflow: hidden;
}

.rk-param-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px -5px rgba(139, 92, 246, 0.15);
    border-color: #c4b5fd;
}

.rk-param-icon {
    width: 40px; height: 40px;
    background: var(--rk-spec-primary-light);
    color: var(--rk-spec-primary);
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 15px auto;
}

.rk-param-val {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-spec-dark);
    margin-bottom: 5px;
    transition: opacity 0.3s;
}

.rk-param-lab {
    font-size: 12px;
    font-weight: 700;
    color: var(--rk-spec-muted);
    text-transform: uppercase;
}

/* Wizualizacja SVG */
.rk-spec-visual-area {
    grid-column: span 4;
    background: var(--rk-spec-panel);
    border-radius: 16px;
    padding: 30px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: center;
    color: #ffffff;
    margin-top: 10px;
}

.rk-visual-text h4 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 900;
    color: #ffffff;
}

.rk-visual-text p {
    font-size: 14px;
    color: #cbd5e1;
    line-height: 1.6;
    margin: 0;
}

.rk-visual-svg-box {
    height: 160px;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Animacje SVG */
.anim-stroke { transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); }
.anim-heat { transition: fill 0.6s, opacity 0.6s; }
.anim-elec { stroke-dasharray: 20; animation: dashMove 1s linear infinite; }
@keyframes dashMove { to { stroke-dashoffset: -40; } }

@media (max-width: 900px) {
    .rk-params-grid { grid-template-columns: repeat(2, 1fr); }
    .rk-spec-visual-area { grid-column: span 2; grid-template-columns: 1fr; text-align: center; }
}

@media (max-width: 768px) {
    .rk-spec-header, .rk-comparator-section { padding: 30px 20px; }
    .rk-limits-bar { grid-template-columns: 1fr; }
    .rk-limit-item { border-right: none; border-bottom: 1px solid #334155; }
    .rk-limit-item:last-child { border-bottom: none; }
    .rk-params-grid { grid-template-columns: 1fr; }
    .rk-spec-visual-area { grid-column: span 1; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article-parametry",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "Jaka jest optymalna temperatura zasilania i parametry techniczne siłowników?",
    "description": "Zestawienie parametrów technicznych siłowników termoelektrycznych (230V, 24V, NC, NO, 0-10V). Klasa ochrony IP54, gwinty i skoki tłoczków.",
    "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-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#dataset-parametry",
    "name": "Baza Danych: Specyfikacja Techniczna Siłowników Rozdzielaczowych",
    "description": "Kompletna macierz parametrów operacyjnych uwzględniająca napięcie zasilania, moc, prąd rozruchowy, siłę nacisku i czas reakcji w zależności od wariantu siłownika.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "parametry techniczne siłowników",
      "siłownik rozdzielacza 230V vs 24V",
      "prąd rozruchowy siłownika",
      "skok roboczy tłoczka",
      "klasa ochrony IP54 podłogówka"
    ],
    "measurementTechnique": "Tabelaryczne porównanie specyfikacji elektromechanicznych 4 głównych wariantów urządzeń wykonawczych stosowanych w automatyce płaszczyznowej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant 230V NC: Moc 2.0W, Prąd max 300mA, Siła 100N, Gwint M30x1.5.",
        "Wariant 24V NC: Moc 1.8W, Prąd max 250mA, Siła 110N, Skok 4.0mm.",
        "Wariant Sygnałowy (0-10V): Płynna regulacja skoku do 5.0mm, zasilanie 24V AC."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webapp-komparator",
    "name": "Interaktywny Komparator Modeli Siłowników",
    "description": "Aplikacja narzędziowa pozwalająca projektantom instalacji na szybkie przełączanie i weryfikację skoku tłoczka, mocy i gwintów przed doborem do rozdzielacza.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, and JavaScript.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-spec-container" id="rk-spec-app">
    <div class="rk-spec-header">
        <div class="rk-spec-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>
            Karty Katalogowe
        </div>
        <h2>Jaka jest optymalna temperatura zasilania i parametry techniczne siłowników?</h2>
        <p>Zanim dokręcisz głowicę, musisz znać jej limity. Normy <a href="https://projekt-ogrzewania.pl/norma-en-iso-15875/" class="rk-spec-link-light">PN-EN ISO 15875</a> ściśle definiują środowisko pracy, a właściwy dobór zasilania to być albo nie być dla modułów sterujących w szafce.</p>
    </div>

    <div class="rk-limits-bar">
        <div class="rk-limit-item">
            <div class="rk-limit-lab">Max. temp. otoczenia</div>
            <div class="rk-limit-val">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                60°C
            </div>
        </div>
        <div class="rk-limit-item">
            <div class="rk-limit-lab">Max. temp. medium</div>
            <div class="rk-limit-val">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                100°C
            </div>
        </div>
        <div class="rk-limit-item">
            <div class="rk-limit-lab">Szczelność (<a href="https://projekt-ogrzewania.pl/proba-szczelnosci-ogrzewania-podlogowego/" style="color:inherit; text-decoration:none;">Próba ciśnieniowa</a>)</div>
            <div class="rk-limit-val">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                Min. IP54
            </div>
        </div>
    </div>

    <div class="rk-comparator-section">
        <div class="rk-tabs-wrapper">
            <button class="rk-tab-btn active" data-model="v230nc">Standard 230V NC</button>
            <button class="rk-tab-btn" data-model="v24nc">Niskonapięciowy 24V NC</button>
            <button class="rk-tab-btn" data-model="v230no">Antyzamrożeniowy 230V NO</button>
            <button class="rk-tab-btn" data-model="v010">Modulowany 0-10V</button>
        </div>

        <div class="rk-params-grid">
            
            <div class="rk-param-card">
                <div class="rk-param-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg></div>
                <div class="rk-param-val" id="specVolt">230 V AC</div>
                <div class="rk-param-lab">Zasilanie robocze</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-icon"><svg width="24" height="24" 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-param-val" id="specCurrent">300 mA</div>
                <div class="rk-param-lab">Prąd rozruchowy</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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></svg></div>
                <div class="rk-param-val" id="specForce">100 N</div>
                <div class="rk-param-lab">Siła nacisku</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="8" y1="6" x2="21" y2="6"></line><line x1="8" y1="12" x2="21" y2="12"></line><line x1="8" y1="18" x2="21" y2="18"></line><line x1="3" y1="6" x2="3.01" y2="6"></line><line x1="3" y1="12" x2="3.01" y2="12"></line><line x1="3" y1="18" x2="3.01" y2="18"></line></svg></div>
                <div class="rk-param-val" id="specStroke">4.0 mm</div>
                <div class="rk-param-lab">Skok trzpienia</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line></svg></div>
                <div class="rk-param-val" id="specThread">M30x1.5</div>
                <div class="rk-param-lab">Gwint przyłącza</div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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-param-val" id="specPower">2.0 W</div>
                <div class="rk-param-lab">Moc znamionowa</div>
            </div>

            <div class="rk-spec-visual-area">
                <div class="rk-visual-text">
                    <h4 id="visTitle">Zasada działania: NC (Normalnie Zamknięty)</h4>
                    <p id="visDesc">W stanie spoczynku (bez napięcia), wewnętrzna sprężyna dociska trzpień zaworu, blokując przepływ. Podanie 230V nagrzewa element woskowy przez około 3.5 minuty, otwierając obwód.</p>
                </div>
                <div class="rk-visual-svg-box">
                    <svg viewBox="0 0 120 100" style="width:100%; height:100%; max-width:150px;">
                        <rect x="30" y="10" width="60" height="50" fill="#334155" rx="6"/>
                        <rect id="svgHeater" class="anim-heat" x="45" y="25" width="30" height="20" fill="#475569" rx="2"/>
                        <path id="svgCable" class="anim-elec" d="M 30 20 Q 10 20 10 40 L 10 90" fill="none" stroke="#64748b" stroke-width="4"/>
                        <rect id="svgPiston" class="anim-stroke" x="55" y="60" width="10" height="20" fill="#cbd5e1"/>
                        <path d="M 40 80 L 80 80 M 40 85 L 80 85 M 40 90 L 80 90 M 40 95 L 80 95" stroke="#94a3b8" stroke-width="2"/>
                        <rect x="40" y="80" width="40" height="20" fill="none" stroke="#94a3b8" stroke-width="4"/>
                    </svg>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    // Dane techniczne do JSON
    const actuatorData = {
        "v230nc": {
            volt: "230 V AC",
            current: "300 mA",
            force: "100 N",
            stroke: "4.0 mm",
            thread: "M30x1.5",
            power: "2.0 W",
            title: "Zasada działania: NC (Normalnie Zamknięty)",
            desc: "W stanie spoczynku (bez napięcia), wewnętrzna sprężyna dociska trzpień zaworu, blokując przepływ. Podanie 230V nagrzewa element woskowy przez około 3.5 minuty, otwierając obwód.",
            animHeat: "#ef4444",
            animStrokeY: "45", // Wciśnięty do góry (otwarty) gdy grzeje
            cableColor: "#ef4444"
        },
        "v24nc": {
            volt: "24 V AC/DC",
            current: "250 mA",
            force: "110 N",
            stroke: "4.0 mm",
            thread: "M30x1.5",
            power: "1.8 W",
            title: "Instalacje bezpieczne: 24V NC",
            desc: "Niskonapięciowa wersja NC. Wymaga transformatora i dedykowanej listwy sterującej. Idealna do instalacji Smart Home z uwzględnieniem bezpiecznego zasilania.",
            animHeat: "#f59e0b",
            animStrokeY: "45",
            cableColor: "#f59e0b"
        },
        "v230no": {
            volt: "230 V AC",
            current: "300 mA",
            force: "100 N",
            stroke: "4.0 mm",
            thread: "M28x1.5",
            power: "2.0 W",
            title: "System antyzamrożeniowy: NO",
            desc: "Normalnie Otwarty. Brak napięcia oznacza swobodny przepływ wody przez pętlę. Podanie napięcia zamyka obwód. Stosowany w układach narażonych na zamarznięcie (np. garaże). Uwaga na inny gwint rynkowy!",
            animHeat: "#0ea5e9",
            animStrokeY: "65", // Wypchnięty w dół (zamknięty) gdy grzeje
            cableColor: "#0ea5e9"
        },
        "v010": {
            volt: "24 V AC",
            current: "150 mA",
            force: "125 N",
            stroke: "5.0 mm",
            thread: "M30x1.5",
            power: "2.5 W",
            title: "Pełna kontrola przepływu: 0-10V",
            desc: "Zaawansowany siłownik z płynną regulacją skoku na podstawie sygnału analogowego (np. przy 5V tłoczek otwiera zawór w 50%). Konieczny w profesjonalnych systemach BMS i centralach wentylacyjnych.",
            animHeat: "#8b5cf6",
            animStrokeY: "55", // Środkowe ustawienie dla modułu 0-10
            cableColor: "#8b5cf6"
        }
    };

    const tabs = document.querySelectorAll('.rk-tab-btn');
    
    // Pola w UI
    const fVolt = document.getElementById('specVolt');
    const fCurrent = document.getElementById('specCurrent');
    const fForce = document.getElementById('specForce');
    const fStroke = document.getElementById('specStroke');
    const fThread = document.getElementById('specThread');
    const fPower = document.getElementById('specPower');
    
    const visTitle = document.getElementById('visTitle');
    const visDesc = document.getElementById('visDesc');
    
    const svgHeater = document.getElementById('svgHeater');
    const svgPiston = document.getElementById('svgPiston');
    const svgCable = document.getElementById('svgCable');

    // Fade effect logic
    function updateData(modelKey) {
        const data = actuatorData[modelKey];
        
        // Szybki efekt fade-out
        const vals = [fVolt, fCurrent, fForce, fStroke, fThread, fPower, visTitle, visDesc];
        vals.forEach(el => el.style.opacity = '0');
        
        setTimeout(() => {
            fVolt.textContent = data.volt;
            fCurrent.textContent = data.current;
            fForce.textContent = data.force;
            fStroke.textContent = data.stroke;
            fThread.textContent = data.thread;
            fPower.textContent = data.power;
            
            visTitle.textContent = data.title;
            visDesc.textContent = data.desc;
            
            // SVG Animation update
            svgHeater.setAttribute('fill', data.animHeat);
            svgPiston.setAttribute('y', data.animStrokeY);
            svgCable.setAttribute('stroke', data.cableColor);

            vals.forEach(el => el.style.opacity = '1');
        }, 200);
    }

    // Eventy
    tabs.forEach(btn => {
        btn.addEventListener('click', () => {
            tabs.forEach(t => t.classList.remove('active'));
            btn.classList.add('active');
            updateData(btn.getAttribute('data-model'));
        });
    });
});
</script>



<style>
:root {
    --rk-psu-dark: #0f172a;
    --rk-psu-panel: #1e293b;
    --rk-psu-card: #ffffff;
    --rk-psu-primary: #eab308; /* Electric Yellow/Amber */
    --rk-psu-primary-dark: #ca8a04;
    --rk-psu-accent: #3b82f6; /* Tech Blue */
    --rk-psu-danger: #ef4444;
    --rk-psu-success: #10b981;
    --rk-psu-bg: #f8fafc;
    --rk-psu-border: #e2e8f0;
    --rk-psu-text: #334155;
    --rk-psu-muted: #64748b;
    --rk-psu-glow: rgba(234, 179, 8, 0.4);
}

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

/* Nagłówek */
.rk-psu-header {
    background: linear-gradient(135deg, var(--rk-psu-dark) 0%, #020617 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-psu-primary);
    position: relative;
    overflow: hidden;
}

.rk-psu-header::before {
    content: ''; position: absolute; top: 0; right: 0; width: 300px; height: 100%;
    background: radial-gradient(circle at right, var(--rk-psu-glow) 0%, transparent 70%);
}

.rk-psu-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(234, 179, 8, 0.2);
    color: #fef08a;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(234, 179, 8, 0.3);
    position: relative; z-index: 2;
}

.rk-psu-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
    position: relative; z-index: 2;
}

.rk-psu-header p {
    color: #94a3b8;
    font-size: 15px;
    margin: 0;
    max-width: 750px;
    line-height: 1.7;
    position: relative; z-index: 2;
}

/* Symulator - Panel Obliczeniowy */
.rk-psu-calculator {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    background: #ffffff;
    border-bottom: 1px solid var(--rk-psu-border);
}

/* Sekcja Inputów */
.rk-psu-controls {
    padding: 40px 50px;
    border-right: 1px solid var(--rk-psu-border);
}

.rk-slider-group {
    margin-bottom: 30px;
}

.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-psu-dark);
}

.rk-slider-value {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-psu-primary-dark);
    background: #fef9c3;
    padding: 4px 12px;
    border-radius: 8px;
    border: 1px solid #fde047;
}

.rk-psu-range {
    -webkit-appearance: none; width: 100%; height: 8px; border-radius: 4px; background: #e2e8f0; outline: none;
}
.rk-psu-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 28px; height: 28px; border-radius: 50%;
    background: var(--rk-psu-primary); cursor: pointer; border: 4px solid #ffffff; box-shadow: 0 2px 6px rgba(0,0,0,0.2); transition: 0.1s;
}
.rk-psu-range::-webkit-slider-thumb:active { transform: scale(1.1); }

.rk-toggle-group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--rk-psu-bg);
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-psu-border);
}

.rk-toggle-info {
    display: flex;
    flex-direction: column;
}
.rk-toggle-title { font-size: 14px; font-weight: 800; color: var(--rk-psu-dark); }
.rk-toggle-desc { font-size: 12px; color: var(--rk-psu-muted); }

/* Switch Toggle */
.rk-switch { position: relative; display: inline-block; width: 54px; height: 30px; }
.rk-switch input { opacity: 0; width: 0; height: 0; }
.rk-switch-slider {
    position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-psu-muted); transition: .4s; border-radius: 34px;
}
.rk-switch-slider:before {
    position: absolute; content: ""; height: 22px; width: 22px; left: 4px; bottom: 4px;
    background-color: white; transition: .4s; border-radius: 50%;
}
.rk-switch input:checked + .rk-switch-slider { background-color: var(--rk-psu-success); }
.rk-switch input:checked + .rk-switch-slider:before { transform: translateX(24px); }

/* Sekcja Outputów (Wyświetlacz Cyfrowy) */
.rk-psu-display {
    background: var(--rk-psu-panel);
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 20px;
    position: relative;
}

.rk-digital-box {
    background: #020617;
    border: 2px solid #334155;
    border-radius: 12px;
    padding: 20px;
    position: relative;
    overflow: hidden;
}

.rk-digital-box.highlight {
    border-color: var(--rk-psu-primary);
    box-shadow: 0 0 15px var(--rk-psu-glow);
}

.rk-digital-label {
    font-size: 11px;
    color: #94a3b8;
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 5px;
}

.rk-digital-value {
    font-family: 'Courier New', Courier, monospace;
    font-size: 36px;
    font-weight: 900;
    color: #ffffff;
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.rk-digital-box.highlight .rk-digital-value {
    color: var(--rk-psu-primary);
    text-shadow: 0 0 10px var(--rk-psu-glow);
}

.rk-digital-unit {
    font-size: 16px;
    color: #64748b;
    font-family: 'Inter', sans-serif;
}

/* Animacja impulsu elektrycznego */
.anim-pulse-line {
    stroke-dasharray: 100;
    animation: electricPulse 2s linear infinite;
}
@keyframes electricPulse {
    0% { stroke-dashoffset: 100; opacity: 0; }
    50% { opacity: 1; }
    100% { stroke-dashoffset: -100; opacity: 0; }
}

/* Kroki algorytmu (Grid) */
.rk-psu-steps {
    padding: 40px 50px;
    background: #ffffff;
}

.rk-psu-steps h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-psu-dark);
    margin: 0 0 25px 0;
    text-align: center;
}

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

.rk-step-card {
    background: var(--rk-psu-bg);
    border: 1px solid var(--rk-psu-border);
    border-radius: 16px;
    padding: 20px;
    position: relative;
    transition: transform 0.3s;
}
.rk-step-card:hover { transform: translateY(-5px); border-color: var(--rk-psu-primary); }

.rk-step-number {
    position: absolute;
    top: -12px; left: 20px;
    background: var(--rk-psu-dark);
    color: var(--rk-psu-primary);
    width: 28px; height: 28px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 14px; font-weight: 900;
    border: 3px solid #ffffff;
}

.rk-step-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-psu-dark);
    margin: 15px 0 10px 0;
    text-transform: uppercase;
}

.rk-step-math {
    background: #ffffff;
    border: 1px dashed var(--rk-psu-border);
    padding: 10px;
    border-radius: 8px;
    font-family: 'Courier New', monospace;
    font-size: 12px;
    color: var(--rk-psu-primary-dark);
    font-weight: 700;
    word-break: break-all;
}

.rk-psu-link {
    color: var(--rk-psu-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-psu-accent);
}
.rk-psu-link:hover { color: #1d4ed8; border-bottom-style: solid; }

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

@media (max-width: 768px) {
    .rk-psu-header { padding: 30px 20px; }
    .rk-psu-calculator { grid-template-columns: 1fr; }
    .rk-psu-controls, .rk-psu-display, .rk-psu-steps { padding: 30px 20px; }
    .rk-steps-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article-zasilacz",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "Jak obliczyć pobór prądu i dobrać zasilacz dla siłowników 24V?",
    "description": "Praktyczny algorytm doboru zasilacza 24V na szynę DIN dla automatyki podłogówki. Kalkulator prądu rozruchowego elementu PTC.",
    "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-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#dataset-zasilacz",
    "name": "Algorytm doboru zasilacza impulsowego do siłowników",
    "description": "Tabela współczynników jednoczesności i zapotrzebowania na prąd rozruchowy dla termoelektrycznych siłowników 24V DC.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zasilacz do siłowników 24v",
      "prąd rozruchowy siłownika termoelektrycznego",
      "moc zasilacza listwy sterującej",
      "automatyka strefowa ogrzewania",
      "współczynnik jednoczesności podłogówki"
    ],
    "measurementTechnique": "Obliczenia oparte na prawie Ohma (P = U * I) uwzględniające szczytowy pobór prądu przez rezystor PTC w momencie zimnego startu (współczynnik k=1.0) oraz bezpieczny zapas 20%.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Szczytowy prąd rozruchowy (I_roz): ok. 0.25A - 0.30A na siłownik.",
        "Współczynnik jednoczesności (k): Zakładamy 1.0 (start wszystkich stref po nocy).",
        "Margines bezpieczeństwa zasilacza: Zawsze +20% (współczynnik 1.2) do wyliczonej mocy obciążenia."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webapp-zasilacz",
    "name": "Kalkulator Prądu Rozruchowego i Zasilania DIN",
    "description": "Narzędzie wyliczające szczytowy prąd układu i dobierające bezpieczną moc znamionową zasilacza 24V DC/AC na szynę DIN dla listew sterujących.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, and JavaScript.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-psu-container" id="rk-psu-app">
    <div class="rk-psu-header">
        <div class="rk-psu-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="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
            Elektrotechnika HVAC
        </div>
        <h2>Jak obliczyć pobór prądu i dobrać zasilacz dla siłowników 24V?</h2>
        <p>Największym błędem przy instalacji bezpiecznego napięcia (24V DC) jest niedoszacowanie zapotrzebowania w ułamku sekundy. Rezystor PTC wewnątrz siłownika zachowuje się jak zwarcie w fazie zimnego startu. Użyj kalkulatora, by uniknąć spalenia <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/" class="rk-psu-link" style="color:#fef08a;">listwy sterującej</a>.</p>
    </div>

    <div class="rk-psu-calculator">
        <div class="rk-psu-controls">
            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Liczba siłowników 24V (n)</span>
                    <span class="rk-slider-value" id="valActuators">14 szt.</span>
                </div>
                <input type="range" class="rk-psu-range" id="inpActuators" min="2" max="30" step="1" value="14">
            </div>

            <div class="rk-slider-group">
                <div class="rk-slider-header">
                    <span class="rk-slider-label">Prąd rozruchowy I_roz</span>
                    <span class="rk-slider-value" id="valInrush">0.25 A</span>
                </div>
                <input type="range" class="rk-psu-range" id="inpInrush" min="0.15" max="0.50" step="0.01" value="0.25">
                <div style="font-size:11px; color:var(--rk-psu-muted); margin-top:8px;">Zależy od modelu. Zazwyczaj od 0.20 A do 0.30 A przez pierwsze 120 s.</div>
            </div>

            <div class="rk-toggle-group">
                <div class="rk-toggle-info">
                    <span class="rk-toggle-title">Zapas bezpieczeństwa 20%</span>
                    <span class="rk-toggle-desc">Chroni przed przeciążeniem impulsowym.</span>
                </div>
                <label class="rk-switch">
                    <input type="checkbox" id="inpMargin" checked="">
                    <span class="rk-switch-slider"></span>
                </label>
            </div>
        </div>

        <div class="rk-psu-display">
            <svg style="position:absolute; top:20px; right:20px; width:150px; height:80px; pointer-events:none;">
                <path class="anim-pulse-line" d="M 0 40 L 30 40 L 40 10 L 60 70 L 70 40 L 150 40" fill="none" stroke="var(--rk-psu-primary)" stroke-width="2" opacity="0.5"></path>
            </svg>

            <div class="rk-digital-box">
                <div class="rk-digital-label">Szczytowe Natężenie Prądu (I_total)</div>
                <div class="rk-digital-value"><span id="outCurrent">3.50</span> <span class="rk-digital-unit">A</span></div>
            </div>

            <div class="rk-digital-box highlight">
                <div class="rk-digital-label">Min. Moc Zasilacza na szynę DIN</div>
                <div class="rk-digital-value"><span id="outPowerDIN">120</span> <span class="rk-digital-unit">W</span></div>
                <div style="font-size:11px; color:#94a3b8; margin-top:5px;">Realne obciążenie szczytowe: <span id="outPowerPeak" style="color:#ffffff;">84 W</span></div>
            </div>
        </div>
    </div>

    <div class="rk-psu-steps">
        <h3>Algorytm obliczeniowy krok po kroku</h3>
        <div class="rk-steps-grid">
            
            <div class="rk-step-card">
                <div class="rk-step-number">1</div>
                <div class="rk-step-title">Wyznaczenie (n)</div>
                <div class="rk-step-math">n = <span id="mathN" style="color:var(--rk-psu-text);">14</span></div>
                <p style="font-size:12px; color:var(--rk-psu-muted); margin:10px 0 0;">Zlicz pętle grzewcze obsługiwane przez automatykę 24V.</p>
            </div>

            <div class="rk-step-card">
                <div class="rk-step-number">2</div>
                <div class="rk-step-title">Prąd Szczytowy</div>
                <div class="rk-step-math">I_tot = n × I_roz × 1.0<br>I_tot = <span id="mathItot" style="color:var(--rk-psu-text);">3.5 A</span></div>
                <p style="font-size:12px; color:var(--rk-psu-muted); margin:10px 0 0;">Współczynnik jednoczesności k=1.0 (start instalacji po nocy).</p>
            </div>

            <div class="rk-step-card">
                <div class="rk-step-number">3</div>
                <div class="rk-step-title">Moc Obciążenia</div>
                <div class="rk-step-math">P_szczyt = 24V × I_tot<br>P_szczyt = <span id="mathPszczyt" style="color:var(--rk-psu-text);">84 W</span></div>
                <p style="font-size:12px; color:var(--rk-psu-muted); margin:10px 0 0;">Fizyczne zapotrzebowanie mocy w momencie nagrzewania wosku.</p>
            </div>

            <div class="rk-step-card" style="border-color:var(--rk-psu-primary); background:var(--rk-psu-bg);">
                <div class="rk-step-number" style="background:var(--rk-psu-primary); color:#ffffff; border-color:var(--rk-psu-primary);">4</div>
                <div class="rk-step-title">Zasilacz (P_zas)</div>
                <div class="rk-step-math">P_zas = P_szczyt × <span id="mathMarginFactor">1.2</span><br>Wynik = <span id="mathPzas" style="font-weight:900;">100.8 W</span></div>
                <p style="font-size:12px; color:var(--rk-psu-muted); margin:10px 0 0;">Dobieramy najbliższy, wyższy zasilacz rynkowy (np. standard DIN).</p>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Inputs
    const inpActuators = document.getElementById('inpActuators');
    const inpInrush = document.getElementById('inpInrush');
    const inpMargin = document.getElementById('inpMargin');
    
    // Values Display
    const valActuators = document.getElementById('valActuators');
    const valInrush = document.getElementById('valInrush');
    
    // Digital Outputs
    const outCurrent = document.getElementById('outCurrent');
    const outPowerPeak = document.getElementById('outPowerPeak');
    const outPowerDIN = document.getElementById('outPowerDIN');
    
    // Math Steps
    const mathN = document.getElementById('mathN');
    const mathItot = document.getElementById('mathItot');
    const mathPszczyt = document.getElementById('mathPszczyt');
    const mathMarginFactor = document.getElementById('mathMarginFactor');
    const mathPzas = document.getElementById('mathPzas');

    // Standardowe typoszeregi zasilaczy na szynę DIN (W)
    const dinStandards = [15, 30, 60, 100, 120, 150, 240, 480];

    function calculatePSU() {
        // Pobranie wartości
        const n = parseInt(inpActuators.value);
        const iRoz = parseFloat(inpInrush.value);
        const hasMargin = inpMargin.checked;
        const marginFactor = hasMargin ? 1.2 : 1.0;
        
        // Aktualizacja labeli
        valActuators.textContent = n + ' szt.';
        valInrush.textContent = iRoz.toFixed(2) + ' A';

        // Obliczenia główne
        const iTotal = n * iRoz; // k = 1.0
        const pSzczyt = 24 * iTotal;
        const pZas = pSzczyt * marginFactor;

        // Dobór DIN zasilacza (najbliższy większy)
        let recommendedDIN = dinStandards[dinStandards.length - 1]; // default max
        for(let i = 0; i < dinStandards.length; i++) {
            if(dinStandards[i] >= pZas) {
                recommendedDIN = dinStandards[i];
                break;
            }
        }

        // Aktualizacja DOM - Digital
        outCurrent.textContent = iTotal.toFixed(2);
        outPowerPeak.textContent = pSzczyt.toFixed(0) + ' W';
        outPowerDIN.textContent = recommendedDIN;

        // Aktualizacja DOM - Kroki
        mathN.textContent = n;
        mathItot.textContent = iTotal.toFixed(2) + ' A';
        mathPszczyt.textContent = pSzczyt.toFixed(1) + ' W';
        mathMarginFactor.textContent = marginFactor.toFixed(1);
        mathPzas.textContent = pZas.toFixed(1) + ' W';
    }

    // Event Listeners
    if(inpActuators) inpActuators.addEventListener('input', calculatePSU);
    if(inpInrush) inpInrush.addEventListener('input', calculatePSU);
    if(inpMargin) inpMargin.addEventListener('change', calculatePSU);

    // Initial calculation
    calculatePSU();
});
</script>



<style>
:root {
    --rk-diag-dark: #1e1b4b; /* Deep Indigo for diagnostic theme */
    --rk-diag-panel: #312e81;
    --rk-diag-card: #ffffff;
    --rk-diag-primary: #6366f1;
    --rk-diag-primary-light: #e0e7ff;
    --rk-diag-alert: #f97316; /* Orange alert */
    --rk-diag-danger: #ef4444; /* Red danger */
    --rk-diag-success: #10b981;
    --rk-diag-bg: #f8fafc;
    --rk-diag-border: #e2e8f0;
    --rk-diag-text: #334155;
    --rk-diag-muted: #64748b;
}

.rk-diag-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-diag-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(99, 102, 241, 0.15);
    border: 1px solid rgba(99, 102, 241, 0.2);
    overflow: hidden;
}

/* Nagłówek */
.rk-diag-header {
    background: linear-gradient(135deg, var(--rk-diag-dark) 0%, #4338ca 100%);
    padding: 45px 50px;
    color: #ffffff;
    border-bottom: 4px solid var(--rk-diag-primary);
}

.rk-diag-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(99, 102, 241, 0.3);
    color: #c7d2fe;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
    border: 1px solid rgba(199, 210, 254, 0.2);
}

.rk-diag-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-diag-header p {
    color: #e0e7ff;
    font-size: 15px;
    margin: 0;
    max-width: 800px;
    line-height: 1.7;
}

/* Moduł Interaktywny - Symulator Błędów */
.rk-diag-simulator {
    background: #ffffff;
    padding: 40px 50px;
    border-bottom: 1px solid var(--rk-diag-border);
}

.rk-sim-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 30px;
    background: var(--rk-diag-bg);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-diag-border);
}

.rk-control-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.rk-control-label {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-diag-text);
    text-transform: uppercase;
    display: flex;
    justify-content: space-between;
}
.rk-control-label span { color: var(--rk-diag-primary); font-size: 16px; font-weight: 900; }

/* Radio Buttons (Gwint) */
.rk-radio-group {
    display: flex;
    gap: 10px;
}

.rk-radio-btn {
    flex: 1;
    position: relative;
}

.rk-radio-btn input {
    position: absolute; opacity: 0; cursor: pointer;
}

.rk-radio-label {
    display: block;
    padding: 12px;
    text-align: center;
    background: #ffffff;
    border: 2px solid var(--rk-diag-border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-diag-muted);
    cursor: pointer;
    transition: all 0.2s;
}

.rk-radio-btn input:checked + .rk-radio-label {
    background: var(--rk-diag-primary-light);
    border-color: var(--rk-diag-primary);
    color: var(--rk-diag-primary);
}

/* Slider (Skok) */
.rk-diag-range {
    -webkit-appearance: none; width: 100%; height: 8px; border-radius: 4px; background: #cbd5e1; outline: none; margin-top: 10px;
}
.rk-diag-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 26px; height: 26px; border-radius: 50%;
    background: var(--rk-diag-primary); cursor: pointer; border: 4px solid #ffffff; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

/* Wyniki (Statusy) */
.rk-diag-status-board {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rk-status-card {
    border: 2px solid var(--rk-diag-border);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 15px;
    transition: border-color 0.2s, background 0.2s;
}

.rk-status-card.error { border-color: var(--rk-diag-danger); background: #fef2f2; }
.rk-status-card.warning { border-color: var(--rk-diag-alert); background: #fff7ed; }
.rk-status-card.ok { border-color: var(--rk-diag-success); background: #ecfdf5; }

.rk-status-title {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-diag-muted);
    text-transform: uppercase;
}

.rk-status-val {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-diag-text);
}
.rk-status-card.error .rk-status-val { color: var(--rk-diag-danger); }
.rk-status-card.warning .rk-status-val { color: var(--rk-diag-alert); }
.rk-status-card.ok .rk-status-val { color: var(--rk-diag-success); }

.rk-svg-static-icon {
    width: 60px;
    height: 60px;
}

/* Lista Skutków Technicznych (Siatka) */
.rk-consequences-grid {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-consequence-item {
    background: #ffffff;
    border: 1px solid var(--rk-diag-border);
    border-radius: 16px;
    padding: 30px;
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 25px;
    align-items: center;
}

.rk-cons-icon {
    width: 80px; height: 80px;
    border-radius: 16px;
    background: var(--rk-diag-bg);
    display: flex; align-items: center; justify-content: center;
    border: 2px solid var(--rk-diag-border);
}

.rk-cons-content h3 {
    font-size: 19px;
    font-weight: 900;
    color: var(--rk-diag-dark);
    margin: 0 0 10px 0;
}

.rk-cons-content p {
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--rk-diag-text);
    margin: 0;
}

.rk-diag-link {
    color: var(--rk-diag-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-diag-primary);
}
.rk-diag-link:hover { color: #4338ca; border-bottom-style: solid; }

@media (max-width: 768px) {
    .rk-diag-header, .rk-diag-simulator, .rk-consequences-grid { padding: 30px 20px; }
    .rk-sim-controls { grid-template-columns: 1fr; }
    .rk-diag-status-board { grid-template-columns: 1fr; }
    .rk-consequence-item { grid-template-columns: 1fr; text-align: center; padding: 25px; }
    .rk-cons-icon { margin: 0 auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article-skutki-bledow",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "Jakie są konsekwencje błędnego doboru gwintu i skoku roboczego?",
    "description": "Techniczne skutki niedomykania pętli: zerwany gwint adaptacyjny, przegrzewanie strefowe, wahania rotametrów i taktowanie pompy ciepła.",
    "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-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#dataset-bledy-wymiarowania",
    "name": "Analiza skutków niedomykania pętli przez siłowniki",
    "description": "Zestawienie parametrów technicznych i skutków hydraulicznych wynikających ze złego doboru skoku roboczego (np. 3.0 mm dla zaworu 4.5 mm).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zły skok siłownika podłogówka",
      "gwint M30x1.5 a M28x1.5",
      "taktowanie pompy ciepła przez siłownik",
      "przegrzewanie sypialni",
      "nieszczelność zaworu rozdzielacza"
    ],
    "measurementTechnique": "Analiza zachowania układu hydraulicznego i termodynamicznego przy stałym przecieku masowym na niedomkniętym zaworze termostatycznym belki powrotnej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Uszkodzenie mechaniczne: Zerwanie gwintu adaptacyjnego przy siłowej próbie montażu M30 na zawór M28.",
        "Przegrzewanie strefy: Wzrost temperatury w sypialni z 20°C do 24°C pomimo sygnału odcięcia.",
        "Zaburzenie hydrauliki: Spadek projektowego przepływu 1,5 l/min w strefach niedogrzanych na korzyść nieszczelnej pętli.",
        "Taktowanie: 18-25 cykli startu sprężarki na dobę z powodu minimalnego, stałego odbioru ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webapp-skutki-bledow",
    "name": "Symulator Skutków Błędnego Doboru Siłownika",
    "description": "Aplikacja pozwalająca na weryfikację wpływu źle dobranego gwintu i skoku siłownika na temperaturę wewnętrzną, przepływ i cykle pracy sprężarki.",
    "applicationCategory": "DiagnosticApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, and JavaScript.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-diag-container" id="rk-diag-app">
    
    <div class="rk-diag-header">
        <div class="rk-diag-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="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Klinika Błędów Instalacyjnych
        </div>
        <h2>Jakie są konsekwencje błędnego doboru gwintu i skoku roboczego?</h2>
        <p>Ignorowanie na pozór błahych milimetrów kończy się katastrofą dla komfortu cieplnego i rachunków. Zobacz, co dzieje się z układem, gdy siłownik nie radzi sobie z fizycznym zamknięciem zaworu.</p>
    </div>

    <div class="rk-diag-simulator">
        <div class="rk-sim-controls">
            
            <div class="rk-control-group">
                <div class="rk-control-label">Próba montażu na zawór <span>M30 x 1.5</span></div>
                <div class="rk-radio-group">
                    <label class="rk-radio-btn">
                        <input type="radio" name="diagThread" value="M28" id="thM28" onchange="updateDiagnostic()">
                        <span class="rk-radio-label">Siłownik M28x1.5</span>
                    </label>
                    <label class="rk-radio-btn">
                        <input type="radio" name="diagThread" value="M30" id="thM30" checked onchange="updateDiagnostic()">
                        <span class="rk-radio-label">Siłownik M30x1.5</span>
                    </label>
                </div>
            </div>

            <div class="rk-control-group">
                <div class="rk-control-label">Skok trzpienia siłownika: <span id="diagStrokeOut">4.5 mm</span></div>
                <input type="range" class="rk-diag-range" id="diagStroke" min="2.0" max="5.0" step="0.5" value="4.5" oninput="updateDiagnostic()">
                <div style="font-size:11px; color:#64748b; margin-top:5px;">Wymagany skok do pełnego zamknięcia tej belki: 4.5 mm</div>
            </div>

        </div>

        <div class="rk-diag-status-board">
            <div class="rk-status-card" id="cardMech">
                <svg class="rk-svg-static-icon" viewBox="0 0 100 100">
                    <rect x="25" y="20" width="50" height="30" fill="none" stroke="currentColor" stroke-width="6" rx="4"/>
                    <path id="svgMechThread" d="M 25 50 L 25 80 M 75 50 L 75 80" stroke="currentColor" stroke-width="6"/>
                    <path d="M 15 65 L 85 65 M 15 75 L 85 75" stroke="currentColor" stroke-width="2" stroke-dasharray="4"/>
                </svg>
                <div>
                    <div class="rk-status-title">Stan Gwintu Adaptacyjnego</div>
                    <div class="rk-status-val" id="valMech">Szczelny</div>
                </div>
            </div>

            <div class="rk-status-card" id="cardTemp">
                <svg class="rk-svg-static-icon" viewBox="0 0 100 100">
                    <rect x="40" y="15" width="20" height="50" fill="none" stroke="currentColor" stroke-width="6" rx="10"/>
                    <circle cx="50" cy="75" r="15" fill="none" stroke="currentColor" stroke-width="6"/>
                    <rect id="svgTempFill" x="44" y="45" width="12" height="25" fill="currentColor"/>
                </svg>
                <div>
                    <div class="rk-status-title">Rzeczywista temp. sypialni (Zadana: 20°C)</div>
                    <div class="rk-status-val" id="valTemp">20.0 °C</div>
                </div>
            </div>

            <div class="rk-status-card" id="cardPump">
                <svg class="rk-svg-static-icon" viewBox="0 0 100 100">
                    <rect x="20" y="30" width="60" height="50" fill="none" stroke="currentColor" stroke-width="6" rx="4"/>
                    <circle cx="50" cy="55" r="12" fill="none" stroke="currentColor" stroke-width="4"/>
                    <path id="svgPumpCycles" d="M 50 35 L 50 43 M 50 67 L 50 75 M 35 55 L 43 55 M 67 55 L 75 55" stroke="currentColor" stroke-width="4"/>
                </svg>
                <div>
                    <div class="rk-status-title">Cykle Sprężarki na dobę</div>
                    <div class="rk-status-val" id="valPump">3-5 (Norma)</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-consequences-grid">
        
        <div class="rk-consequence-item">
            <div class="rk-cons-icon" style="color:var(--rk-diag-danger);">
                <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            </div>
            <div class="rk-cons-content">
                <h3>Zerwanie gwintu (Błąd M30 vs M28)</h3>
                <p>Błędne sparowanie gwintu siłownika (np. próba siłowego nakręcenia pierścienia M30 x 1,5 mm na rzadziej spotykany gwint zaworu M28 x 1,5 mm lub M30 x 1,0 mm) skutkuje nieodwracalnym zerwaniem plastikowego gwintu adaptacyjnego i nieszczelnością mechaniczną całej konstrukcji nastawczej.</p>
            </div>
        </div>

        <div class="rk-consequence-item">
            <div class="rk-cons-icon" style="color:var(--rk-diag-alert);">
                <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
            </div>
            <div class="rk-cons-content">
                <h3>Przegrzewanie strefowe</h3>
                <p>Jeżeli skok roboczy tłoczka siłownika (np. 3,0 mm) jest mniejszy niż skok trzpienia zaworu w belce (4,5 mm), zawór nigdy nie zostanie zamknięty. Do pętli w sypialni stale przedostaje się <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/" class="rk-diag-link">czynnik o temperaturze zasilania 35°C</a>, pomimo sygnału z termostatu o osiągnięciu temperatury zadanej 20°C. Rzeczywista temperatura wzrasta do 24°C, generując straty energii.</p>
            </div>
        </div>

        <div class="rk-consequence-item">
            <div class="rk-cons-icon" style="color:var(--rk-diag-primary);">
                <svg width="40" height="40" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>
            <div class="rk-cons-content">
                <h3>Zaburzenie równoważenia hydraulicznego</h3>
                <p><a href="https://projekt-ogrzewania.pl/rozdzielacz-do-ogrzewania-podlogowego-mosiezny-czy-ze-stali-nierdzewnej/" class="rk-diag-link">Rotametry w rozdzielaczu</a> na pozostałych pętlach wykazują losowe wahania przepływu. Przepływ projektowy na poziomie 1,5 l/min spada w strefach niedogrzanych, ponieważ woda pod ciśnieniem grawitacyjnie wybiera linię najmniejszego oporu – pętlę z niedomkniętym siłownikiem.</p>
            </div>
        </div>

        <div class="rk-consequence-item">
            <div class="rk-cons-icon" style="color:var(--rk-diag-dark);">
                <svg width="40" height="40" 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-cons-content">
                <h3>Destrukcyjne taktowanie pompy ciepła</h3>
                <p>Ciągły minimalny odbiór ciepła przez jedną nieszczelną pętlę oszukuje krzywą grzewczą. Uniemożliwia to przejście <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-diag-link">inwerterowej pompy ciepła</a> w naturalny stan uśpienia, generując aż 18-25 cykli startu sprężarki na dobę, co drastycznie skraca jej żywotność sprzętową.</p>
            </div>
        </div>

    </div>
</div>

<script>
function updateDiagnostic() {
    const threadSelect = document.querySelector('input[name="diagThread"]:checked').value; // "M28" or "M30"
    const strokeVal = parseFloat(document.getElementById('diagStroke').value);
    document.getElementById('diagStrokeOut').textContent = strokeVal.toFixed(1) + ' mm';

    const cardMech = document.getElementById('cardMech');
    const valMech = document.getElementById('valMech');
    const svgMechThread = document.getElementById('svgMechThread');

    const cardTemp = document.getElementById('cardTemp');
    const valTemp = document.getElementById('valTemp');
    const svgTempFill = document.getElementById('svgTempFill');

    const cardPump = document.getElementById('cardPump');
    const valPump = document.getElementById('valPump');
    const svgPumpCycles = document.getElementById('svgPumpCycles');

    // 1. Logika Gwintu
    if(threadSelect === 'M28') {
        // Próba nałożenia M28 na M30 -> zerwanie
        cardMech.className = 'rk-status-card error';
        valMech.textContent = 'ZERWANY';
        svgMechThread.setAttribute('stroke-dasharray', '5 10'); // Wizualizacja zerwania statyczna
    } else {
        cardMech.className = 'rk-status-card ok';
        valMech.textContent = 'SZCZELNY';
        svgMechThread.setAttribute('stroke-dasharray', '0'); // Cały gwint
    }

    // 2. Logika Skoku (Niedomykanie)
    // Wymagane 4.5mm do zamknięcia. 
    // Im mniejszy skok, tym wyższa temp i więcej taktowania
    if(strokeVal < 4.5 || threadSelect === 'M28') {
        // Oblicz stopień przecieku
        let leakSeverity = 0;
        if(threadSelect === 'M28') {
            leakSeverity = 1; // max przeciek bo siłownik odskoczył
        } else {
            // stroke od 4.0 do 2.0 -> severity rośnie
            leakSeverity = (4.5 - strokeVal) / 2.5; 
        }
        
        const tempC = 20 + (leakSeverity * 4.5); // max 24.5C
        const cycles = Math.floor(5 + (leakSeverity * 20)); // do 25 cykli

        cardTemp.className = 'rk-status-card error';
        valTemp.textContent = tempC.toFixed(1) + ' °C';
        svgTempFill.setAttribute('y', Math.max(15, 45 - (leakSeverity * 25)).toString());
        svgTempFill.setAttribute('height', Math.min(50, 25 + (leakSeverity * 25)).toString());

        cardPump.className = 'rk-status-card error';
        valPump.textContent = cycles + ' (Taktowanie!)';
        svgPumpCycles.setAttribute('stroke-dasharray', '2 4'); // chaotyczne cykle

    } else {
        // OK
        cardTemp.className = 'rk-status-card ok';
        valTemp.textContent = '20.0 °C';
        svgTempFill.setAttribute('y', '45');
        svgTempFill.setAttribute('height', '25');

        cardPump.className = 'rk-status-card ok';
        valPump.textContent = '3-5 (Norma)';
        svgPumpCycles.setAttribute('stroke-dasharray', '0');
    }
}

document.addEventListener('DOMContentLoaded', updateDiagnostic);
</script>



<style>
:root {
    --rk-vav-dark: #0f172a;
    --rk-vav-card: #ffffff;
    --rk-vav-bg: #f8fafc;
    --rk-vav-border: #e2e8f0;
    --rk-vav-primary: #0284c7; /* Engineering Blue */
    --rk-vav-primary-light: #e0f2fe;
    --rk-vav-accent: #0ea5e9;
    --rk-vav-danger: #ef4444; /* Pressure/Warning */
    --rk-vav-success: #10b981; /* Eco/Smart */
    --rk-vav-text: #334155;
    --rk-vav-muted: #64748b;
}

.rk-vav-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-vav-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid rgba(2, 132, 199, 0.2);
    overflow: hidden;
}

/* Sekcja Główna - Nagłówek */
.rk-vav-header {
    background: linear-gradient(135deg, var(--rk-vav-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-vav-primary);
}

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

.rk-vav-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

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

/* Symulator VAV (Zmienny Przepływ) */
.rk-vav-simulator {
    background: #ffffff;
    padding: 40px 50px;
    border-bottom: 1px solid var(--rk-vav-border);
}

.rk-vav-sim-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 30px;
    flex-wrap: wrap;
    gap: 20px;
}

.rk-vav-controls {
    flex-grow: 1;
    max-width: 400px;
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-vav-muted);
    margin-bottom: 12px;
    text-transform: uppercase;
}

.rk-slider-label span {
    color: var(--rk-vav-primary);
    font-size: 18px;
    font-weight: 900;
}

.rk-vav-range {
    -webkit-appearance: none; width: 100%; height: 8px; border-radius: 4px; background: var(--rk-vav-border); outline: none;
}
.rk-vav-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 28px; height: 28px; border-radius: 50%;
    background: var(--rk-vav-primary); cursor: pointer; border: 4px solid #ffffff; box-shadow: 0 2px 5px rgba(0,0,0,0.2); transition: 0.1s;
}
.rk-vav-range::-webkit-slider-thumb:active { transform: scale(1.1); }

/* Switch Pompy */
.rk-pump-switch-box {
    background: var(--rk-vav-bg);
    padding: 15px 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-vav-border);
    display: flex;
    align-items: center;
    gap: 15px;
}

.rk-pump-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--rk-vav-text);
    display: flex;
    flex-direction: column;
}
.rk-pump-label small { color: var(--rk-vav-muted); font-size: 11px; }

.rk-toggle {
    position: relative; display: inline-block; width: 56px; height: 30px; flex-shrink: 0;
}
.rk-toggle input { opacity: 0; width: 0; height: 0; }
.rk-toggle-slider {
    position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-vav-danger); transition: .4s; border-radius: 34px;
}
.rk-toggle-slider:before {
    position: absolute; content: ""; height: 22px; width: 22px; left: 4px; bottom: 4px;
    background-color: white; transition: .4s; border-radius: 50%;
}
.rk-toggle input:checked + .rk-toggle-slider { background-color: var(--rk-vav-success); }
.rk-toggle input:checked + .rk-toggle-slider:before { transform: translateX(26px); }

/* Wyniki Symulacji */
.rk-vav-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 30px;
}

.rk-metric-card {
    background: var(--rk-vav-bg);
    border: 1px solid var(--rk-vav-border);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.3s;
}

.rk-metric-card.alert {
    background: #fef2f2;
    border-color: var(--rk-vav-danger);
}

.rk-metric-card.eco {
    background: #ecfdf5;
    border-color: var(--rk-vav-success);
}

.rk-metric-val {
    display: block; font-size: 32px; font-weight: 900; color: var(--rk-vav-dark); margin: 10px 0 5px;
    transition: color 0.3s;
}
.rk-metric-card.alert .rk-metric-val { color: var(--rk-vav-danger); }
.rk-metric-card.eco .rk-metric-val { color: var(--rk-vav-success); }

.rk-metric-unit { font-size: 14px; color: var(--rk-vav-muted); font-weight: 700; }
.rk-metric-title { font-size: 12px; color: var(--rk-vav-muted); text-transform: uppercase; font-weight: 800; }

/* Siatka Projektowa (4 Składowe) */
.rk-vav-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    padding: 40px 50px;
    background: #ffffff;
}

.rk-grid-tile {
    background: var(--rk-vav-bg);
    border-radius: 16px;
    padding: 25px;
    border: 1px solid var(--rk-vav-border);
    display: flex;
    flex-direction: column;
    gap: 15px;
    transition: transform 0.3s, box-shadow 0.3s;
}

.rk-grid-tile:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.1);
    border-color: var(--rk-vav-primary-light);
}

.rk-tile-icon {
    width: 48px; height: 48px;
    background: #ffffff;
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    color: var(--rk-vav-primary);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-tile-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-vav-dark);
    margin: 0;
}

.rk-tile-text {
    font-size: 14px;
    line-height: 1.6;
    color: var(--rk-vav-text);
    margin: 0;
    flex-grow: 1;
}

.rk-vav-link {
    color: var(--rk-vav-primary);
    font-weight: 700;
    text-decoration: none;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.rk-vav-link:hover { text-decoration: underline; }

/* Animacje SVG */
.rk-pump-impeller {
    transform-origin: 50px 50px;
    /* Animacja sterowana przez JS */
}

/* Sekcja CTA */
.rk-vav-cta {
    background: linear-gradient(to right, var(--rk-vav-dark), #1e293b);
    padding: 50px;
    text-align: center;
    color: #ffffff;
}

.rk-vav-cta h3 {
    font-size: 24px;
    font-weight: 900;
    margin: 0 0 15px 0;
}

.rk-vav-cta p {
    color: #94a3b8;
    font-size: 16px;
    margin: 0 auto 30px auto;
    max-width: 600px;
    line-height: 1.6;
}

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

.rk-btn-cta:hover {
    transform: translateY(-4px) scale(1.02);
    background: #0369a1;
    box-shadow: 0 20px 35px -5px rgba(2, 132, 199, 0.5);
    border-color: #7dd3fc;
}

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

@media (max-width: 768px) {
    .rk-vav-header, .rk-vav-simulator, .rk-vav-grid, .rk-vav-cta { padding: 30px 20px; }
    .rk-vav-metrics { grid-template-columns: 1fr; }
    .rk-vav-grid { grid-template-columns: 1fr; }
    .rk-vav-sim-header { flex-direction: column; align-items: stretch; }
    .rk-pump-switch-box { justify-content: space-between; }
    .rk-btn-cta { 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/silowniki-termoelektryczne-na-rozdzielaczach/#article-wplyw-na-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "Jak automatyka wpływa na projekt ogrzewania podłogowego i hydraulikę instalacji?",
    "description": "Zobacz jak siłowniki termoelektryczne zamieniają układ stałoprzepływowy na układ zmiennego przepływu (VAV) i wpływają na pompę, OZC oraz bufor.",
    "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-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#dataset-hydraulika",
    "name": "Wpływ Automatyki na Hydraulikę i Projekt Ogrzewania Podłogowego",
    "description": "Zestawienie parametrów projektowych: ciśnienie różnicowe, wymagana pojemność bufora (10-15l/kW) oraz charakterystyka pracy pompy obiegowej przy zmiennym przepływie (VAV).",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "zmienny przepływ VAV podłogówka",
      "dobór bufora do pompy ciepła",
      "ciśnienie różnicowe na rozdzielaczu",
      "charakterystyka pompy obiegowej Δp-c",
      "projekt OZC z automatyką"
    ],
    "measurementTechnique": "Symulacja zmian ciśnienia, przepływu i poboru mocy w układzie hydraulicznym przy proporcjonalnej redukcji aktywnych pętli grzewczych.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymóg stosowania pomp o charakterystyce proporcjonalnego ciśnienia (Δp-c) dla redukcji mocy do 4W.",
        "Obligatoryjne zastosowanie bufora o pojemności min. 10-15 l/kW przy odcinaniu zładu przez siłowniki.",
        "Konieczność precyzyjnego mapowania elektrycznego stref według obliczeń zysków i strat (OZC)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webapp-vav",
    "name": "Symulator Hydrauliki VAV",
    "description": "Interaktywny model pokazujący wzrost oporów, świsty na rotametrach oraz zachowanie nowoczesnej pompy obiegowej w momencie zamykania stref przez siłowniki termoelektryczne.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, and JavaScript.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-vav-container" id="rk-vav-app">
    
    <div class="rk-vav-header">
        <div class="rk-vav-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>
            Inżynieria Przepływów
        </div>
        <h2>Jak to wpływa na projekt ogrzewania podłogowego i hydraulikę instalacji?</h2>
        <p>Wprowadzenie siłowników odcinających zamienia cichą, stałoprzepływową podłogówkę w wymagający układ o zmiennym natężeniu przepływu (<strong>VAV</strong>). Gdy 8 z 12 pętli nagle się zamyka, ciśnienie hydrauliczne szuka ujścia. Zobacz, co się dzieje z Twoją instalacją.</p>
    </div>

    <div class="rk-vav-simulator">
        <div class="rk-vav-sim-header">
            <div class="rk-vav-controls">
                <div class="rk-slider-label">Zamknięte siłowniki: <span id="vavActuatorsOut">0 z 12</span></div>
                <input type="range" class="rk-vav-range" id="vavSlider" min="0" max="11" step="1" value="0">
            </div>
            
            <div class="rk-pump-switch-box">
                <div class="rk-pump-label">
                    Tryb pracy pompy obiegowej
                    <span id="vavPumpTypeOut" style="color:var(--rk-vav-success); font-weight:900;">Auto-Adapt (Δp-c)</span>
                </div>
                <label class="rk-toggle">
                    <input type="checkbox" id="vavPumpToggle" checked>
                    <span class="rk-toggle-slider"></span>
                </label>
            </div>
        </div>

        <div class="rk-vav-metrics">
            <div class="rk-metric-card" id="cardPressure">
                <div class="rk-metric-title">Ciśnienie w belce</div>
                <div class="rk-metric-val" id="valPressure">15 <span class="rk-metric-unit">kPa</span></div>
                <div style="height: 40px; margin-top:10px;">
                    <svg viewBox="0 0 100 40" style="width:100%; height:100%;">
                        <line x1="0" y1="20" x2="100" y2="20" stroke="#e2e8f0" stroke-width="4" stroke-linecap="round"/>
                        <line id="svgPressureBar" x1="0" y1="20" x2="30" y2="20" stroke="#10b981" stroke-width="4" stroke-linecap="round" style="transition:all 0.3s;"/>
                    </svg>
                </div>
            </div>

            <div class="rk-metric-card" id="cardPower">
                <div class="rk-metric-title">Pobór mocy pompy</div>
                <div class="rk-metric-val" id="valPower">45 <span class="rk-metric-unit">W</span></div>
                <div style="height: 40px; margin-top:10px;">
                    <svg viewBox="0 0 100 40" style="width:100%; height:100%;">
                        <g id="svgImpeller" class="rk-pump-impeller">
                            <circle cx="50" cy="20" r="15" fill="none" stroke="#cbd5e1" stroke-width="2"/>
                            <path d="M 50 5 L 50 35 M 35 20 L 65 20 M 39 9 L 61 31 M 39 31 L 61 9" stroke="#94a3b8" stroke-width="3"/>
                        </g>
                    </svg>
                </div>
            </div>

            <div class="rk-metric-card" id="cardNoise">
                <div class="rk-metric-title">Stan Rotametrów</div>
                <div class="rk-metric-val" id="valNoise" style="font-size:20px; line-height:32px;">Cisza i stabilność</div>
                <div style="height: 40px; margin-top:10px;">
                    <svg viewBox="0 0 100 40" style="width:100%; height:100%;">
                        <rect x="40" y="5" width="20" height="30" fill="none" stroke="#cbd5e1" stroke-width="2" rx="2"/>
                        <rect id="svgFlowBar" x="42" y="25" width="16" height="8" fill="#0284c7" style="transition:all 0.3s;"/>
                    </svg>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-vav-grid">
        
        <div class="rk-grid-tile">
            <div class="rk-tile-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg></div>
            <h3 class="rk-tile-title">Projektowe Obciążenie Cieplne (OZC)</h3>
            <p class="rk-tile-text">Zgodnie z normą <strong>PN-EN 12831</strong>, siłowniki muszą być mapowane elektrycznie w taki sposób, aby wspólnie obsługiwać pętle jednego pomieszczenia. Połączenie 3 pętli salonu pod jeden termostat gwarantuje równomierny odbiór mocy.</p>
            <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-vav-link">Czytaj więcej o OZC <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg></a>
        </div>

        <div class="rk-grid-tile">
            <div class="rk-tile-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="12" cy="12" r="10"></circle><path d="M12 2v20"></path><path d="M12 12l8.5-8.5"></path></svg></div>
            <h3 class="rk-tile-title">Dobór pompy obiegowej (Δp-c)</h3>
            <p class="rk-tile-text">Wymagana jest elektroniczna pompa pracująca w trybie stałej lub proporcjonalnej krzywej ciśnienia (<strong>Δp-c</strong>). Redukuje ona swoje obroty w odpowiedzi na zamykające się siłowniki, dławiąc pobór mocy z 45 W do 4 W.</p>
            <a href="https://projekt-ogrzewania.pl/kalkulator-doboru-pompy-obiegowej-w-ogrzewaniu-podlogowym/" class="rk-vav-link">Kalkulator doboru pompy <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg></a>
        </div>

        <div class="rk-grid-tile">
            <div class="rk-tile-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14"></path><path d="M12 5v14"></path><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect></svg></div>
            <h3 class="rk-tile-title">Sprzęgło lub bufor ciepła</h3>
            <p class="rk-tile-text">Odcinanie pętli eliminuje zład wody niezbędny dla pompy ciepła (zazwyczaj <strong>120-150 litrów</strong> min.). Konieczny jest bufor rzędu 10-15 litrów na każdy kW mocy urządzenia, chroniący skraplacz przed krytycznym błędem przepływu.</p>
            <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/" class="rk-vav-link">Bufor w ogrzewaniu podłogowym <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg></a>
        </div>

        <div class="rk-grid-tile">
            <div class="rk-tile-icon"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22 6 12 13 2 6"></polyline></svg></div>
            <h3 class="rk-tile-title">Projektowy rozstaw rur</h3>
            <p class="rk-tile-text">W strefach brzegowych (np. przy oknach HS), gdzie projekt narzuca rozstaw <strong>10 cm</strong>, bezwładność jest mniejsza. Siłowniki reagują w tych strefach znacznie dynamiczniej na szybkie straty ciepła i zyski słoneczne niż w środku pomieszczenia (15 cm).</p>
            <a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/" class="rk-vav-link">Jaki rozstaw rur wybrać? <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg></a>
        </div>

    </div>

    <div class="rk-vav-cta">
        <h3>Nie zgaduj. Powierz hydraulikę ekspertom.</h3>
        <p>Każdy źle dobrany siłownik, brak bufora czy zły rozstaw rur to wyższe rachunki i ryzyko uszkodzenia pompy ciepła. Zamów pełną, inżynierską dokumentację instalacyjną dla Twojego domu.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-cta">
            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 5l7 7-7 7"></path></svg>
        </a>
    </div>

</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // Elementy UI
    const slider = document.getElementById('vavSlider');
    const toggle = document.getElementById('vavPumpToggle');
    
    const outActuators = document.getElementById('vavActuatorsOut');
    const outPumpType = document.getElementById('vavPumpTypeOut');
    
    const cardPressure = document.getElementById('cardPressure');
    const valPressure = document.getElementById('valPressure');
    const svgPressureBar = document.getElementById('svgPressureBar');
    
    const cardPower = document.getElementById('cardPower');
    const valPower = document.getElementById('valPower');
    const svgImpeller = document.getElementById('svgImpeller');
    
    const cardNoise = document.getElementById('cardNoise');
    const valNoise = document.getElementById('valNoise');
    const svgFlowBar = document.getElementById('svgFlowBar');

    let animRotation = 0;
    let currentSpeed = 5;

    // Funkcja aktualizująca symulację
    function updateSimulation() {
        const closed = parseInt(slider.value); // 0 to 11
        const isSmart = toggle.checked;
        
        outActuators.textContent = closed + ' z 12';
        
        let pressure, power, noiseLevel, flowVisual;

        if (isSmart) {
            outPumpType.textContent = 'Auto-Adapt (Δp-c)';
            outPumpType.style.color = 'var(--rk-vav-success)';
            
            // Smart pump: stabilizuje ciśnienie, redukuje moc
            pressure = 15; // Zawsze 15 kPa
            power = Math.max(4, 45 - (closed * 3.7)); // Spada z 45 do ~4
            noiseLevel = 'Cisza i stabilność';
            flowVisual = Math.max(2, 16 - (closed * 1.2)); // Rotametry opadają delikatnie
            
            // Wizualizacje UI dla Smart
            cardPressure.className = 'rk-metric-card eco';
            svgPressureBar.setAttribute('stroke', '#10b981');
            svgPressureBar.setAttribute('x2', '30'); // Długość paska
            
            cardPower.className = 'rk-metric-card eco';
            currentSpeed = Math.max(1, 10 - closed); // Zwalnia
            
            cardNoise.className = 'rk-metric-card eco';
            
        } else {
            outPumpType.textContent = 'Stałe Obroty (Stary typ)';
            outPumpType.style.color = 'var(--rk-vav-danger)';
            
            // Stara pompa: ciśnienie rośnie, moc stała
            pressure = 15 + (closed * 3.5); // Rośnie z 15 do ~53 kPa
            power = 45; // Ciągle 45 W
            flowVisual = Math.min(30, 16 + (closed * 1.5)); // Uderzenie hydrauliczne na otwartych rotametrach
            
            if (closed > 5) {
                noiseLevel = 'Świst na grzybkach!';
                cardNoise.className = 'rk-metric-card alert';
                cardPressure.className = 'rk-metric-card alert';
                svgPressureBar.setAttribute('stroke', '#ef4444');
            } else {
                noiseLevel = 'Napięty przepływ';
                cardNoise.className = 'rk-metric-card';
                cardPressure.className = 'rk-metric-card';
                svgPressureBar.setAttribute('stroke', '#f59e0b');
            }

            cardPower.className = 'rk-metric-card alert';
            currentSpeed = 15; // Kręci się szybko na maxa
            svgPressureBar.setAttribute('x2', Math.min(100, 30 + (closed * 6)).toString());
        }

        // Aktualizacja HTML
        valPressure.innerHTML = pressure.toFixed(0) + ' <span class="rk-metric-unit">kPa</span>';
        valPower.innerHTML = power.toFixed(0) + ' <span class="rk-metric-unit">W</span>';
        valNoise.textContent = noiseLevel;
        svgFlowBar.setAttribute('y', (35 - flowVisual).toString());
        svgFlowBar.setAttribute('height', flowVisual.toString());
    }

    // Prosta animacja wirnika pompy via RequestAnimationFrame
    function animatePump() {
        animRotation += currentSpeed;
        svgImpeller.style.transform = `rotate(${animRotation}deg)`;
        requestAnimationFrame(animatePump);
    }

    // Nasłuchiwacze
    if(slider) slider.addEventListener('input', updateSimulation);
    if(toggle) toggle.addEventListener('change', updateSimulation);

    // Inicjalizacja
    updateSimulation();
    animatePump();
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-panel: #1e293b;
    --rk-calc-primary: #0284c7; /* Engineering Blue */
    --rk-calc-primary-light: #e0f2fe;
    --rk-calc-accent: #f59e0b; /* Amber for energy/cost */
    --rk-calc-danger: #ef4444; /* Red for pressure/errors */
    --rk-calc-success: #10b981;
    --rk-calc-bg: #f8fafc;
    --rk-calc-border: #e2e8f0;
    --rk-calc-text: #334155;
    --rk-calc-muted: #64748b;
}

.rk-eng-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid rgba(2, 132, 199, 0.2);
    overflow: hidden;
}

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

.rk-eng-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(2, 132, 199, 0.3);
    color: #7dd3fc;
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(125, 211, 252, 0.2);
}

.rk-eng-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-eng-header p {
    color: #94a3b8;
    font-size: 15px;
    margin: 0;
    max-width: 700px;
    line-height: 1.6;
}

/* Moduły Kalkulacyjne (Karty) */
.rk-eng-modules {
    padding: 30px 40px;
    display: flex;
    flex-direction: column;
    gap: 30px;
    background: var(--rk-calc-bg);
}

.rk-calc-card {
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-calc-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.05);
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr 350px;
}

/* Sekcja Treści H3 */
.rk-calc-content {
    padding: 35px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.rk-calc-content h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-calc-dark);
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-calc-icon {
    width: 32px; height: 32px;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    background: var(--rk-calc-primary-light);
    color: var(--rk-calc-primary);
}

.rk-calc-text {
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-calc-text);
    margin: 0 0 20px 0;
}

.rk-calc-formula {
    background: #f1f5f9;
    padding: 12px 15px;
    border-radius: 8px;
    font-family: 'Courier New', monospace;
    font-size: 13px;
    color: var(--rk-calc-dark);
    font-weight: 700;
    margin-bottom: 20px;
    border-left: 3px solid var(--rk-calc-primary);
}

.rk-eng-link {
    color: var(--rk-calc-primary);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-calc-primary);
    transition: 0.3s;
}
.rk-eng-link:hover { color: #0369a1; border-bottom-style: solid; }

/* Sekcja Interaktywna (Prawa) */
.rk-calc-interactive {
    background: var(--rk-calc-panel);
    padding: 35px;
    color: #ffffff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
}

.rk-slider-group {
    margin-bottom: 25px;
}

.rk-slider-label {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    font-weight: 700;
    color: #94a3b8;
    margin-bottom: 10px;
    text-transform: uppercase;
}
.rk-slider-label span { color: #ffffff; font-size: 16px; font-weight: 900; }

.rk-range-input {
    -webkit-appearance: none; width: 100%; height: 6px; border-radius: 3px; background: #334155; outline: none;
}
.rk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 24px; height: 24px; border-radius: 50%;
    background: var(--rk-calc-primary); cursor: pointer; border: 3px solid #ffffff; transition: 0.1s;
}
.rk-range-input::-webkit-slider-thumb:active { transform: scale(1.1); }

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

.rk-res-box {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
    transition: all 0.3s;
}

.rk-res-box.warning { border-color: var(--rk-calc-danger); background: rgba(239, 68, 68, 0.1); }
.rk-res-box.ok { border-color: var(--rk-calc-success); background: rgba(16, 185, 129, 0.1); }

.rk-res-val { display: block; font-size: 24px; font-weight: 900; color: #ffffff; margin-bottom: 5px; }
.rk-res-lab { display: block; font-size: 11px; color: #94a3b8; text-transform: uppercase; font-weight: 700; line-height: 1.3; }

/* SVG Animacje w Tle */
.rk-svg-bg {
    position: absolute; top: 10px; right: 10px; opacity: 0.1; width: 100px; height: 100px; pointer-events: none;
}

/* Specyficzne animacje */
.anim-gauge-needle { transform-origin: 50px 75px; transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.anim-water-level { transition: y 0.3s, height 0.3s, fill 0.3s; }
.anim-coin-drop { animation: coinDrop 2s infinite linear; }
@keyframes coinDrop {
    0% { transform: translateY(-20px); opacity: 0; }
    20% { opacity: 1; }
    80% { opacity: 1; }
    100% { transform: translateY(40px); opacity: 0; }
}

@media (max-width: 768px) {
    .rk-eng-header { padding: 30px 20px; }
    .rk-eng-modules { padding: 20px; }
    .rk-calc-card { grid-template-columns: 1fr; }
    .rk-calc-content { padding: 25px; }
    .rk-calc-interactive { padding: 25px; }
    .rk-calc-result-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article-obliczenia",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "Wyliczenia inżynierskie – 3 przykłady hydrauliczne i energetyczne",
    "description": "Interaktywne kalkulacje hydrauliczne i energetyczne ilustrujące wpływ siłowników na ciśnienie różnicowe, zład wody oraz koszty strat ciepła.",
    "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-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#dataset-obliczenia",
    "name": "Parametry Hydrauliczne i Energetyczne Ogrzewania Podłogowego",
    "description": "Zestawienie obliczeń inżynierskich obrazujących zależności między zamknięciem pętli grzewczych a parametrami pracy układu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ciśnienie różnicowe",
      "przepływ masowy podłogówki",
      "minimalny zład wody pompy ciepła",
      "straty energii ogrzewania",
      "niekontrolowany przepływ pętli"
    ],
    "measurementTechnique": "Szacowanie oparte na wzorach termodynamiki i mechaniki płynów: V = Q / (cw × ρ × ΔT) oraz kalkulacja energii P = m × cw × ΔT.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wzrost ciśnienia z 15 kPa do ponad 45 kPa przy zamknięciu 70% pętli bez adaptacyjnej pompy obiegowej.",
        "Ryzyko awarii defrostu przy spadku zładu poniżej 40 litrów w instalacji 100m2.",
        "Straty finansowe rzędu 90 PLN miesięcznie z powodu przecieku 0.3 l/min na jednym zaworze."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webapp-obliczenia",
    "name": "Symulator Hydrauliki i Kosztów Strat",
    "description": "Interaktywny panel obliczeniowy pozwalający sprawdzić w czasie rzeczywistym zmiany przepływu, ciśnienia, zładu wody oraz kosztów przy zmianie parametrów pracy siłowników.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5, CSS3, and JavaScript.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-eng-container" id="rk-eng-app">
    <div class="rk-eng-header">
        <div class="rk-eng-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="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>
            Inżynierski Moduł Obliczeniowy
        </div>
        <h2>Wyliczenia inżynierskie – 3 przykłady hydrauliczne i energetyczne</h2>
        <p>Matematyka w instalacjach HVAC nie wybacza błędów. Zobacz na żywych liczbach, jak zachowanie siłowników wpływa na pracę pompy, ciśnienie i Twój portfel.</p>
    </div>

    <div class="rk-eng-modules">

        <div class="rk-calc-card">
            <div class="rk-calc-content">
                <h3>
                    <div class="rk-calc-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><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div>
                    Przykład 1: Zmiana przepływu i ciśnienia
                </h3>
                <p class="rk-calc-text">
                    Załóżmy budynek o zapotrzebowaniu na moc <strong>Q = 10 kW</strong>. Projektowy spadek temperatury to ΔT = 5 K (parametry 35/30°C). Całkowity projektowy przepływ objętościowy w instalacji wynosi około <strong>1,72 m³/h</strong> (28,6 l/min). 
                </p>
                <div class="rk-calc-formula">
                    V = Q / (cw × ρ × ΔT)<br>
                    V = 10000 / (4182 × 1 × 5) × 3600 = 1,72 m³/h
                </div>
                <p class="rk-calc-text">
                    Gdy termostaty zamykają strefy, opór rośnie. Bez inteligentnej <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/" class="rk-eng-link">pompy obiegowej</a> ciśnienie różnicowe na rozdzielaczu gwałtownie wzrasta, generując uciążliwy świst.
                </p>
            </div>
            <div class="rk-calc-interactive">
                <svg class="rk-svg-bg" viewBox="0 0 100 100">
                    <path d="M10 90 A 40 40 0 0 1 90 90" fill="none" stroke="#ffffff" stroke-width="10"/>
                    <line x1="50" y1="90" x2="30" y2="60" stroke="#ef4444" stroke-width="6" stroke-linecap="round"/>
                </svg>
                
                <div class="rk-slider-group">
                    <div class="rk-slider-label">Zamknięte pętle: <span id="valClosedLoops">0%</span></div>
                    <input type="range" class="rk-range-input" id="slideLoops" min="0" max="90" step="5" value="0">
                </div>
                
                <div class="rk-calc-result-grid">
                    <div class="rk-res-box">
                        <span class="rk-res-val" id="resFlow">1.72 <span style="font-size:12px;color:#94a3b8;">m³/h</span></span>
                        <span class="rk-res-lab">Rzeczywisty Przepływ</span>
                    </div>
                    <div class="rk-res-box" id="boxPressure">
                        <span class="rk-res-val" id="resPressure" style="color:var(--rk-calc-success);">15 <span style="font-size:12px;color:#94a3b8;">kPa</span></span>
                        <span class="rk-res-lab">Ciśnienie różnicowe</span>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-calc-card">
            <div class="rk-calc-content">
                <h3>
                    <div class="rk-calc-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><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>
                    Przykład 2: Zład wody a odszranianie
                </h3>
                <p class="rk-calc-text">
                    Pompa ciepła o mocy 8 kW wymaga minimalnego przepływu ok. <strong>13,7 l/min</strong> (0,82 m³/h) do przeprowadzenia procedury defrostu parownika. Średnia pojemność rury PEX 16&#215;2 mm to 0,113 l/mb.
                </p>
                <p class="rk-calc-text">
                    Przy standardowym domu 100 m² (rozstaw co 15 cm) zład wynosi <strong>75,2 litra</strong>. Jeśli automatyka zamknie większość pokoi, w obiegu pozostanie zbyt mało wody. Pompa zgłosi błąd awaryjny, dlatego wymagane jest <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/" class="rk-eng-link">sprzęgło hydrauliczne</a> lub bufor.
                </p>
            </div>
            <div class="rk-calc-interactive">
                <svg class="rk-svg-bg" viewBox="0 0 100 100">
                    <rect x="20" y="20" width="60" height="70" fill="none" stroke="#ffffff" stroke-width="8" rx="4"/>
                    <rect x="25" y="40" width="50" height="45" fill="#ffffff" opacity="0.5"/>
                </svg>

                <div class="rk-slider-group">
                    <div class="rk-slider-label">Zamknięta pow. (siłowniki): <span id="valClosedArea">0 m²</span></div>
                    <input type="range" class="rk-range-input" id="slideArea" min="0" max="90" step="5" value="0">
                </div>
                
                <div class="rk-calc-result-grid">
                    <div class="rk-res-box" id="boxVolume">
                        <span class="rk-res-val" id="resVolume" style="color:var(--rk-calc-success);">75.2 <span style="font-size:12px;color:#94a3b8;">L</span></span>
                        <span class="rk-res-lab">Aktywny zład wody</span>
                    </div>
                    <div class="rk-res-box" id="boxStatus">
                        <span class="rk-res-val" id="resStatus" style="color:var(--rk-calc-success);">OK</span>
                        <span class="rk-res-lab">Status dla pompy 8kW</span>
                    </div>
                </div>
            </div>
        </div>

        <div class="rk-calc-card">
            <div class="rk-calc-content">
                <h3>
                    <div class="rk-calc-icon"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg></div>
                    Przykład 3: Koszty niekontrolowanego przepływu
                </h3>
                <p class="rk-calc-text">
                    Niedomknięty z powodu złego skoku siłownik generuje permanentny przeciek. Przy różnicy temperatur ΔT = 5 K (zasilanie 38°C, powrót 33°C), zaledwie ułamek litra na minutę stale oddaje moc cieplną w miejscu, które powinno być wyłączone.
                </p>
                <div class="rk-calc-formula">
                    P = masa_wody × cw × ΔT<br>
                    Energia (kWh) = (P × czas) / 1000
                </div>
                <p class="rk-calc-text">
                    To zjawisko nie tylko przegrzewa pomieszczenie, ale drastycznie podbija <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/" class="rk-eng-link">koszty ogrzewania domu</a>. Zobacz, ile kosztuje Cię &#8222;drobny&#8221; przeciek w skali miesiąca przy cenie 1,20 PLN/kWh.
                </p>
            </div>
            <div class="rk-calc-interactive">
                <svg class="rk-svg-bg" viewBox="0 0 100 100">
                    <circle cx="50" cy="50" r="40" fill="none" stroke="#ffffff" stroke-width="8" stroke-dasharray="20 10"/>
                    <text x="50" y="65" fill="#ffffff" font-size="40" font-weight="bold" text-anchor="middle">PLN</text>
                </svg>

                <div class="rk-slider-group">
                    <div class="rk-slider-label">Wielkość przecieku: <span id="valLeak">0.1 l/min</span></div>
                    <input type="range" class="rk-range-input" id="slideLeak" min="0.1" max="1.5" step="0.1" value="0.3">
                </div>
                
                <div class="rk-calc-result-grid">
                    <div class="rk-res-box">
                        <span class="rk-res-val" id="resPowerLoss">34.8 <span style="font-size:12px;color:#94a3b8;">W</span></span>
                        <span class="rk-res-lab">Oddawana moc ciągła</span>
                    </div>
                    <div class="rk-res-box warning">
                        <span class="rk-res-val" id="resCostLoss" style="color:var(--rk-calc-danger);">30.11 <span style="font-size:12px;color:#94a3b8;">zł</span></span>
                        <span class="rk-res-lab">Strata / miesiąc (1 pętla)</span>
                    </div>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // --- Kalkulator 1: Ciśnienie ---
    const slideLoops = document.getElementById('slideLoops');
    const valClosedLoops = document.getElementById('valClosedLoops');
    const resFlow = document.getElementById('resFlow');
    const resPressure = document.getElementById('resPressure');
    const boxPressure = document.getElementById('boxPressure');

    function updatePressure() {
        const percent = parseInt(slideLoops.value);
        valClosedLoops.textContent = percent + '%';
        
        // Base flow 1.72 m3/h, Base pressure 15 kPa
        const currentFlow = 1.72 * (1 - (percent / 100));
        const currentPressure = 15 + (percent / 100) * 42.8; // Max around ~45-50 kPa at 90% closed
        
        resFlow.innerHTML = currentFlow.toFixed(2) + ' <span style="font-size:12px;color:#94a3b8;">m³/h</span>';
        resPressure.innerHTML = currentPressure.toFixed(0) + ' <span style="font-size:12px;color:#94a3b8;">kPa</span>';

        if(currentPressure > 30) {
            boxPressure.className = 'rk-res-box warning';
            resPressure.style.color = 'var(--rk-calc-danger)';
        } else if (currentPressure > 20) {
            boxPressure.className = 'rk-res-box';
            resPressure.style.color = '#f59e0b'; // warning amber
        } else {
            boxPressure.className = 'rk-res-box ok';
            resPressure.style.color = 'var(--rk-calc-success)';
        }
    }
    if(slideLoops) { slideLoops.addEventListener('input', updatePressure); updatePressure(); }

    // --- Kalkulator 2: Defrost ---
    const slideArea = document.getElementById('slideArea');
    const valClosedArea = document.getElementById('valClosedArea');
    const resVolume = document.getElementById('resVolume');
    const resStatus = document.getElementById('resStatus');
    const boxVolume = document.getElementById('boxVolume');
    const boxStatus = document.getElementById('boxStatus');

    function updateDefrost() {
        const areaClosed = parseInt(slideArea.value);
        valClosedArea.textContent = areaClosed + ' m²';
        
        // Base 100m2 -> 75.2L
        const activeVol = 75.2 * (1 - (areaClosed / 100));
        resVolume.innerHTML = activeVol.toFixed(1) + ' <span style="font-size:12px;color:#94a3b8;">L</span>';

        // PC 8kW needs roughly 40-50L minimum active volume to be safe without buffer
        if(activeVol < 45) {
            boxVolume.className = 'rk-res-box warning';
            resVolume.style.color = 'var(--rk-calc-danger)';
            boxStatus.className = 'rk-res-box warning';
            resStatus.textContent = 'WYMAGA BUFORA!';
            resStatus.style.color = 'var(--rk-calc-danger)';
        } else {
            boxVolume.className = 'rk-res-box ok';
            resVolume.style.color = 'var(--rk-calc-success)';
            boxStatus.className = 'rk-res-box ok';
            resStatus.textContent = 'OK';
            resStatus.style.color = 'var(--rk-calc-success)';
        }
    }
    if(slideArea) { slideArea.addEventListener('input', updateDefrost); updateDefrost(); }

    // --- Kalkulator 3: Koszty strat ---
    const slideLeak = document.getElementById('slideLeak');
    const valLeak = document.getElementById('valLeak');
    const resPowerLoss = document.getElementById('resPowerLoss');
    const resCostLoss = document.getElementById('resCostLoss');

    function updateLoss() {
        const leakLMin = parseFloat(slideLeak.value);
        valLeak.textContent = leakLMin.toFixed(1) + ' l/min';

        // leak in kg/s (1 L = 1 kg approx)
        const leakKgS = leakLMin / 60;
        // P = m * cw * dT (cw = 4182, dT = 5)
        const powerW = leakKgS * 4182 * 5;
        // Energy in month (720h)
        const energyKwh = (powerW * 720) / 1000;
        // Cost at 1.20 PLN
        const costPLN = energyKwh * 1.20;

        resPowerLoss.innerHTML = powerW.toFixed(1) + ' <span style="font-size:12px;color:#94a3b8;">W</span>';
        resCostLoss.innerHTML = costPLN.toFixed(2) + ' <span style="font-size:12px;color:#94a3b8;">zł</span>';
    }
    if(slideLeak) { slideLeak.addEventListener('input', updateLoss); updateLoss(); }

});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-card: #ffffff;
    --rk-err-danger: #ef4444;
    --rk-err-danger-light: #fef2f2;
    --rk-err-success: #10b981;
    --rk-err-success-light: #dcfce7;
    --rk-err-border: #e2e8f0;
    --rk-err-text: #334155;
    --rk-err-muted: #64748b;
    --rk-err-bg: #f8fafc;
}

.rk-err-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.1);
    border: 1px solid var(--rk-err-border);
    overflow: hidden;
}

/* Nagłówek */
.rk-err-header {
    background: var(--rk-err-dark);
    padding: 40px 50px;
    color: #ffffff;
    border-bottom: 5px solid var(--rk-err-danger);
    position: relative;
}

.rk-err-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(239, 68, 68, 0.2);
    color: #fca5a5;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    border: 1px solid rgba(239, 68, 68, 0.3);
}

.rk-err-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-err-header p {
    color: #94a3b8;
    font-size: 15px;
    margin: 0;
    max-width: 700px;
    line-height: 1.6;
}

/* Lista Audytowa */
.rk-err-list {
    padding: 40px 50px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-err-item {
    background: var(--rk-err-card);
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    padding: 25px;
    transition: border-color 0.3s;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* Przełącznik (Toggle) */
.rk-err-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-err-border);
}

.rk-err-title {
    margin: 0;
}

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

.rk-toggle-wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-err-bg);
    padding: 8px 12px;
    border-radius: 12px;
    border: 1px solid var(--rk-err-border);
}

.rk-toggle-label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--rk-err-muted);
}

.rk-toggle-label.active-danger { color: var(--rk-err-danger); }
.rk-toggle-label.active-success { color: var(--rk-err-success); }

/* Switch element */
.rk-switch {
    position: relative;
    display: inline-block;
    width: 50px;
    height: 26px;
}
.rk-switch input { opacity: 0; width: 0; height: 0; }
.rk-slider {
    position: absolute;
    cursor: pointer;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: var(--rk-err-danger);
    transition: .3s;
    border-radius: 34px;
}
.rk-slider:before {
    position: absolute;
    content: "";
    height: 18px; width: 18px;
    left: 4px; bottom: 4px;
    background-color: white;
    transition: .3s;
    border-radius: 50%;
}
input:checked + .rk-slider { background-color: var(--rk-err-success); }
input:checked + .rk-slider:before { transform: translateX(24px); }

/* Zawartość (Grid: Tekst + SVG) */
.rk-err-content {
    display: grid;
    grid-template-columns: 1fr 200px;
    gap: 30px;
    align-items: stretch;
}

.rk-err-state {
    display: none;
}
.rk-err-state.active {
    display: block;
}

.rk-err-state h4 {
    font-size: 15px;
    font-weight: 800;
    margin: 0 0 8px 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-err-state p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--rk-err-text);
    margin: 0;
}

.rk-err-state.state-danger h4 { color: var(--rk-err-danger); }
.rk-err-state.state-success h4 { color: var(--rk-err-success); }

.rk-err-link {
    color: #0284c7;
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted #0284c7;
}
.rk-err-link:hover {
    border-bottom-style: solid;
    color: #0369a1;
}

/* Wizualizacja SVG (Statyczna) */
.rk-err-visual {
    background: var(--rk-err-bg);
    border-radius: 12px;
    border: 1px solid var(--rk-err-border);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 15px;
}

.rk-svg-static {
    width: 100%;
    height: 100%;
    max-height: 120px;
}

@media (max-width: 768px) {
    .rk-err-header { padding: 30px 20px; }
    .rk-err-list { padding: 20px; gap: 20px; }
    .rk-err-top { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-err-content { grid-template-columns: 1fr; }
    .rk-err-visual { height: 140px; }
    .rk-toggle-wrapper { width: 100%; justify-content: space-between; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "Najczęstsze błędy montażowe i wykonawcze – lista kontrolna",
    "description": "Zestawienie najpoważniejszych błędów instalacyjnych przy montażu siłowników termoelektrycznych. Uniknij uszkodzeń automatyki i braku przepływu.",
    "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-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#dataset-bledy",
    "name": "Audyt Błędów Montażowych Siłowników Termoelektrycznych",
    "description": "Baza najczęściej diagnozowanych usterek wykonawczych (1000+ projektów) wraz ze standardem naprawczym dla instalacji ogrzewania podłogowego.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "błędy montażowe ogrzewania podłogowego",
      "nieprawidłowy montaż siłownika termoelektrycznego",
      "prąd rozruchowy siłowników termicznych",
      "wilgotność wylewki a automatyka",
      "zacięte zawory rozdzielacza"
    ],
    "measurementTechnique": "Analiza usterek technicznych i elektrycznych uszkodzeń wynikających z błędnej instalacji komponentów wykonawczych na belkach rozdzielacza.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Błąd 1: Niezdemontowanie pierścieni nastawy wstępnej blokujących przepływ.",
        "Błąd 2: Odwrotne podłączenie stref na listwie elektrycznej.",
        "Błąd 3: Sklejenie styków przez ignorowanie wysokiego prądu rozruchowego (2.4A).",
        "Błąd 4: Zwarcie na płytce PTC spowodowane wilgocią technologiczną z wylewki."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webapp-bledy",
    "name": "Interaktywny Audytor Błędów Wykonawczych",
    "description": "Narzędzie interaktywne typu checklist pozwalające przełączać widok między błędnie wykonaną instalacją (skutki awarii) a prawidłowym standardem inżynierskim.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires HTML5 and CSS3 support.",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-err-container" id="rk-audit-app">
    <div class="rk-err-header">
        <div class="rk-err-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="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
            Audyt Techniczny (1000+ Projektów)
        </div>
        <h2>Najczęstsze błędy montażowe i wykonawcze – lista kontrolna</h2>
        <p>Zidentyfikowanie problemu na wczesnym etapie pozwala uniknąć zrywania posadzek. Przełączaj suwaki, aby zobaczyć, jak <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/" style="color:#fca5a5; text-decoration:underline;">błędy wykonawcze</a> niszczą sprawność instalacji oraz jak wygląda prawidłowy standard inżynierski.</p>
    </div>

    <div class="rk-err-list">
        
        <div class="rk-err-item" id="err-item-1">
            <div class="rk-err-top">
                <div class="rk-err-title">
                    <h3>1. Niezdemontowanie pierścieni nastawy wstępnej</h3>
                </div>
                <div class="rk-toggle-wrapper">
                    <span class="rk-toggle-label active-danger">Błąd</span>
                    <label class="rk-switch">
                        <input type="checkbox" onchange="toggleAudit('err-item-1', this)">
                        <span class="rk-slider"></span>
                    </label>
                    <span class="rk-toggle-label">Poprawnie</span>
                </div>
            </div>
            <div class="rk-err-content">
                <div class="rk-err-details">
                    <div class="rk-err-state state-danger active">
                        <h4><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="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg> Skutek: Brak przepływu</h4>
                        <p>Montaż siłownika na zaworze z kryzą ustawioną na wartość minimalną (np. N zamiast pozycji pełnego otwarcia tłumika hydraulicznego). Skutkuje to <a href="https://projekt-ogrzewania.pl/rotametr-wskaznik-przeplywu-w-rozdzielaczu-ogrzewania-podlogowego/" class="rk-err-link">brakiem fizycznego przepływu</a> na rotametrze nawet przy maksymalnie uniesionym tłoczku w pełni sprawnego siłownika.</p>
                    </div>
                    <div class="rk-err-state state-success">
                        <h4><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg> Standard: Pełne rozwarcie</h4>
                        <p>Przed nakręceniem siłownika, instalator demontuje plastikowe pierścienie blokujące i otwiera zawór przepływowy na maksimum. Regulacja dławienia przeniesiona jest wyłącznie na rotametry belk zasilającej zgodnie z obliczeniami OZC.</p>
                    </div>
                </div>
                <div class="rk-err-visual">
                    <svg class="rk-svg-static svg-danger" viewBox="0 0 100 100" style="display:block;">
                        <rect x="40" y="20" width="20" height="40" fill="#cbd5e1" stroke="#334155" stroke-width="2"/>
                        <rect x="35" y="40" width="30" height="10" fill="#ef4444" /> <path d="M 45 60 L 45 80 L 55 80 L 55 60 Z" fill="#94a3b8"/>
                        <line x1="30" y1="45" x2="10" y2="45" stroke="#ef4444" stroke-width="2" stroke-dasharray="4"/>
                        <text x="25" y="35" fill="#ef4444" font-size="10" font-weight="bold">KRYZA</text>
                    </svg>
                    <svg class="rk-svg-static svg-success" viewBox="0 0 100 100" style="display:none;">
                        <rect x="40" y="20" width="20" height="40" fill="#cbd5e1" stroke="#334155" stroke-width="2"/>
                        <path d="M 45 50 L 45 80 L 55 80 L 55 50 Z" fill="#10b981"/> <path d="M 50 85 L 50 95 M 45 90 L 50 95 L 55 90" stroke="#10b981" stroke-width="3" fill="none"/>
                        <text x="30" y="95" fill="#10b981" font-size="10" font-weight="bold">PRZEPŁYW</text>
                    </svg>
                </div>
            </div>
        </div>

        <div class="rk-err-item" id="err-item-2">
            <div class="rk-err-top">
                <div class="rk-err-title">
                    <h3>2. Odwrotne podłączenie stref na listwie</h3>
                </div>
                <div class="rk-toggle-wrapper">
                    <span class="rk-toggle-label active-danger">Błąd</span>
                    <label class="rk-switch">
                        <input type="checkbox" onchange="toggleAudit('err-item-2', this)">
                        <span class="rk-slider"></span>
                    </label>
                    <span class="rk-toggle-label">Poprawnie</span>
                </div>
            </div>
            <div class="rk-err-content">
                <div class="rk-err-details">
                    <div class="rk-err-state state-danger active">
                        <h4><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="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg> Skutek: Chaos termiczny</h4>
                        <p>Kabel z siłownika obsługującego sypialnię zostaje błędnie podłączony pod <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/" class="rk-err-link">zacisk termostatu</a> przypisany do salonu. Prowadzi to do permanentnego niedogrzania jednego pokoju (bo salon szybko osiąga zadaną temperaturę i wyłącza grzanie) oraz drastycznego przegrzania drugiego.</p>
                    </div>
                    <div class="rk-err-state state-success">
                        <h4><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg> Standard: Mapowanie pętli</h4>
                        <p>Zastosowanie etykietowania kabli (tzw. ringów) na obu końcach oraz przeprowadzenie sekwencyjnego testu załączeń z fizycznym sprawdzeniem, która rura na rotametrze robi się ciepła w odpowiedzi na wymuszenie z termostatu.</p>
                    </div>
                </div>
                <div class="rk-err-visual">
                    <svg class="rk-svg-static svg-danger" viewBox="0 0 100 100" style="display:block;">
                        <rect x="10" y="20" width="30" height="20" fill="#334155" rx="2"/>
                        <rect x="60" y="20" width="30" height="20" fill="#334155" rx="2"/>
                        <circle cx="25" cy="80" r="10" fill="#ef4444"/>
                        <circle cx="75" cy="80" r="10" fill="#3b82f6"/>
                        <path d="M 25 40 L 75 70" stroke="#ef4444" stroke-width="3"/>
                        <path d="M 75 40 L 25 70" stroke="#ef4444" stroke-width="3"/>
                    </svg>
                    <svg class="rk-svg-static svg-success" viewBox="0 0 100 100" style="display:none;">
                        <rect x="10" y="20" width="30" height="20" fill="#334155" rx="2"/>
                        <rect x="60" y="20" width="30" height="20" fill="#334155" rx="2"/>
                        <circle cx="25" cy="80" r="10" fill="#10b981"/>
                        <circle cx="75" cy="80" r="10" fill="#10b981"/>
                        <path d="M 25 40 L 25 70" stroke="#10b981" stroke-width="3"/>
                        <path d="M 75 40 L 75 70" stroke="#10b981" stroke-width="3"/>
                    </svg>
                </div>
            </div>
        </div>

        <div class="rk-err-item" id="err-item-3">
            <div class="rk-err-top">
                <div class="rk-err-title">
                    <h3>3. Ignorowanie wysokiego prądu rozruchowego</h3>
                </div>
                <div class="rk-toggle-wrapper">
                    <span class="rk-toggle-label active-danger">Błąd</span>
                    <label class="rk-switch">
                        <input type="checkbox" onchange="toggleAudit('err-item-3', this)">
                        <span class="rk-slider"></span>
                    </label>
                    <span class="rk-toggle-label">Poprawnie</span>
                </div>
            </div>
            <div class="rk-err-content">
                <div class="rk-err-details">
                    <div class="rk-err-state state-danger active">
                        <h4><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="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg> Skutek: Zgrzanie styków</h4>
                        <p>Podłączanie 8 siłowników równolegle pod jeden klasyczny przekaźnik stykowy w tanich listwach. Wysoki sumaryczny prąd rozruchowy na elemencie PTC (np. 8 × 0,3 A = 2,4 A) powoduje powstanie łuku elektrycznego i mechaniczne zgrzanie (sklejenie) styków. Siłowniki pozostają trwale otwarte.</p>
                    </div>
                    <div class="rk-err-state state-success">
                        <h4><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg> Standard: Przekaźnik bezpotencjałowy</h4>
                        <p>Zastosowanie dedykowanej listwy sterującej wyposażonej w przekaźniki półprzewodnikowe (Triaki) lub system sekwencyjnego załączania obciążeń, który redukuje skokowy pobór mocy, chroniąc elektronikę sterującą przed przeciążeniem.</p>
                    </div>
                </div>
                <div class="rk-err-visual">
                    <svg class="rk-svg-static svg-danger" viewBox="0 0 100 100" style="display:block;">
                        <path d="M 20 40 L 45 40 L 55 60 L 80 60" fill="none" stroke="#334155" stroke-width="4"/>
                        <path d="M 50 30 L 60 30 L 55 50 L 65 50 L 45 70 L 50 55 L 40 55 Z" fill="#ef4444"/>
                        <text x="50" y="85" fill="#ef4444" font-size="12" font-weight="bold" text-anchor="middle">> 2.4A OVERLOAD</text>
                    </svg>
                    <svg class="rk-svg-static svg-success" viewBox="0 0 100 100" style="display:none;">
                        <path d="M 20 50 L 40 50" fill="none" stroke="#10b981" stroke-width="4"/>
                        <path d="M 60 50 L 80 50" fill="none" stroke="#10b981" stroke-width="4"/>
                        <rect x="40" y="40" width="20" height="20" fill="#334155" rx="3"/>
                        <text x="50" y="54" fill="#ffffff" font-size="10" font-weight="bold" text-anchor="middle">SSR</text>
                    </svg>
                </div>
            </div>
        </div>

        <div class="rk-err-item" id="err-item-4">
            <div class="rk-err-top">
                <div class="rk-err-title">
                    <h3>4. Montaż w szafkach o wysokiej wilgotności</h3>
                </div>
                <div class="rk-toggle-wrapper">
                    <span class="rk-toggle-label active-danger">Błąd</span>
                    <label class="rk-switch">
                        <input type="checkbox" onchange="toggleAudit('err-item-4', this)">
                        <span class="rk-slider"></span>
                    </label>
                    <span class="rk-toggle-label">Poprawnie</span>
                </div>
            </div>
            <div class="rk-err-content">
                <div class="rk-err-details">
                    <div class="rk-err-state state-danger active">
                        <h4><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="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg> Skutek: Korozja i zwarcie</h4>
                        <p>Instalowanie siłowników przed całkowitym wyschnięciem wylewki (wilgotność szczątkowa > 2%). Agresywna wilgoć technologiczna paruje ze skrzynek, skrapla się pod obudową IP siłownika i natychmiast powoduje zwarcie na wewnętrznej płytce rezystora.</p>
                    </div>
                    <div class="rk-err-state state-success">
                        <h4><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg> Standard: Odczekanie do wygrzewu</h4>
                        <p>Montaż jakiejkolwiek elektroniki w szafce rozdzielaczowej następuje dopiero po przeprowadzeniu pełnego cyklu wygrzewania <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/" class="rk-err-link">wylewki betonowej lub anhydrytowej</a> i pomiarze higrometrem spadku wilgotności otoczenia poniżej norm krytycznych.</p>
                    </div>
                </div>
                <div class="rk-err-visual">
                    <svg class="rk-svg-static svg-danger" viewBox="0 0 100 100" style="display:block;">
                        <rect x="25" y="20" width="50" height="60" fill="none" stroke="#334155" stroke-width="3" rx="4"/>
                        <path d="M 40 45 Q 40 55 45 55 Q 50 55 50 45 Q 45 35 40 45 Z" fill="#0284c7"/>
                        <path d="M 60 55 Q 60 65 65 65 Q 70 65 70 55 Q 65 45 60 55 Z" fill="#0284c7"/>
                        <path d="M 35 70 L 65 70" stroke="#ef4444" stroke-width="3"/>
                        <path d="M 35 75 L 65 75" stroke="#ef4444" stroke-width="3"/>
                    </svg>
                    <svg class="rk-svg-static svg-success" viewBox="0 0 100 100" style="display:none;">
                        <rect x="25" y="20" width="50" height="60" fill="none" stroke="#334155" stroke-width="3" rx="4"/>
                        <path d="M 40 50 L 47 57 L 60 40" fill="none" stroke="#10b981" stroke-width="5" stroke-linecap="round"/>
                        <text x="50" y="85" fill="#10b981" font-size="10" font-weight="bold" text-anchor="middle">< 2% WILGOTNOŚCI</text>
                    </svg>
                </div>
            </div>
        </div>

    </div>
</div>

<script>
function toggleAudit(itemId, checkbox) {
    const item = document.getElementById(itemId);
    const labelDanger = item.querySelector('.rk-toggle-label:first-child');
    const labelSuccess = item.querySelector('.rk-toggle-label:last-child');
    
    const stateDanger = item.querySelector('.state-danger');
    const stateSuccess = item.querySelector('.state-success');
    
    const svgDanger = item.querySelector('.svg-danger');
    const svgSuccess = item.querySelector('.svg-success');

    if (checkbox.checked) {
        // Przełącz na "Poprawnie" (Success)
        labelDanger.classList.remove('active-danger');
        labelSuccess.classList.add('active-success');
        item.style.borderColor = 'var(--rk-err-success)';
        
        stateDanger.classList.remove('active');
        stateSuccess.classList.add('active');
        
        svgDanger.style.display = 'none';
        svgSuccess.style.display = 'block';
    } else {
        // Przełącz na "Błąd" (Danger)
        labelSuccess.classList.remove('active-success');
        labelDanger.classList.add('active-danger');
        item.style.borderColor = 'var(--rk-err-border)';
        
        stateSuccess.classList.remove('active');
        stateDanger.classList.add('active');
        
        svgSuccess.style.display = 'none';
        svgDanger.style.display = 'block';
    }
}
</script>



<style>
:root {
    --rk-sum-dark: #020617;
    --rk-sum-panel: #0f172a;
    --rk-sum-primary: #10b981; /* Emerald/Green for success/summary */
    --rk-sum-primary-light: #d1fae5;
    --rk-sum-accent: #f59e0b; /* Amber/Gold for heat/electricity */
    --rk-sum-warning: #ef4444;
    --rk-sum-bg: #f8fafc;
    --rk-sum-border: #cbd5e1;
    --rk-sum-text: #334155;
    --rk-sum-text-dim: #64748b;
}

.rk-summary-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(16, 185, 129, 0.15);
    border: 1px solid rgba(16, 185, 129, 0.3);
    overflow: hidden;
}

/* Header z ekspertem */
.rk-summary-header {
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    padding: 40px 50px;
    display: flex;
    align-items: center;
    gap: 30px;
    border-bottom: 4px solid var(--rk-sum-primary);
    position: relative;
    overflow: hidden;
}

.rk-summary-header::after {
    content: ''; position: absolute; right: 0; top: 0; width: 300px; height: 100%;
    background: radial-gradient(circle at right, rgba(16, 185, 129, 0.15) 0%, transparent 70%);
}

.rk-expert-avatar {
    width: 90px;
    height: 90px;
    border-radius: 50%;
    border: 3px solid var(--rk-sum-primary);
    box-shadow: 0 0 20px rgba(16, 185, 129, 0.4);
    object-fit: cover;
    position: relative;
    z-index: 2;
}

.rk-header-content {
    position: relative;
    z-index: 2;
}

.rk-header-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(16, 185, 129, 0.2);
    color: #6ee7b7;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
    border: 1px solid rgba(110, 231, 183, 0.3);
}

.rk-header-content h2 {
    font-size: 26px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 8px 0;
    line-height: 1.2;
}

.rk-header-content p {
    color: #94a3b8;
    font-size: 14px;
    margin: 0;
    font-weight: 500;
}

/* Sekcja z zakładkami i wiedzą */
.rk-summary-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: #ffffff;
}

.rk-rules-list {
    padding: 30px;
    border-right: 1px solid var(--rk-sum-border);
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #f8fafc;
}

.rk-rule-btn {
    background: #ffffff;
    border: 1px solid var(--rk-sum-border);
    padding: 18px 20px;
    border-radius: 12px;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.rk-rule-btn:hover {
    border-color: var(--rk-sum-primary);
    transform: translateX(4px);
}

.rk-rule-btn.active {
    background: var(--rk-sum-primary-light);
    border-color: var(--rk-sum-primary);
    box-shadow: inset 4px 0 0 var(--rk-sum-primary);
}

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

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

.rk-rule-text h3 {
    margin: 0 0 5px 0;
    font-size: 15px;
    font-weight: 800;
    color: var(--rk-sum-dark);
}

.rk-rule-text p {
    margin: 0;
    font-size: 13px;
    color: var(--rk-sum-text-dim);
    line-height: 1.5;
}

/* Panel Detali (Prawy) */
.rk-rule-details {
    padding: 40px;
    position: relative;
}

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

.rk-detail-panel.active {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

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

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

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

.rk-sum-link {
    color: var(--rk-sum-accent);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dotted var(--rk-sum-accent);
    transition: 0.3s;
}
.rk-sum-link:hover { border-bottom-style: solid; color: #d97706; }

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

/* Narzędzie Szybkiego Szacowania (Kalkulator) */
.rk-quick-calc {
    background: var(--rk-sum-panel);
    padding: 35px 50px;
    border-top: 1px solid #1e293b;
    color: #ffffff;
}

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

.rk-calc-header h4 {
    margin: 0; font-size: 18px; font-weight: 900; color: #ffffff;
    display: flex; align-items: center; gap: 10px;
}

.rk-calc-grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 40px;
    align-items: center;
}

.rk-calc-input-area {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-calc-label { font-size: 13px; font-weight: 700; color: #94a3b8; display: flex; justify-content: space-between; }
.rk-calc-label span { color: #ffffff; font-size: 16px; font-weight: 900; }

.rk-sum-range {
    -webkit-appearance: none; width: 100%; height: 6px; border-radius: 3px; background: #334155; outline: none;
}
.rk-sum-range::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 22px; height: 22px; border-radius: 50%;
    background: var(--rk-sum-primary); cursor: pointer; border: 3px solid #ffffff; transition: 0.1s;
}
.rk-sum-range::-webkit-slider-thumb:active { transform: scale(1.15); }

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

.rk-result-box {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 15px;
    border-radius: 12px;
    text-align: center;
}

.rk-result-box.highlight { border-color: var(--rk-sum-primary); background: rgba(16, 185, 129, 0.1); }

.rk-res-val { display: block; font-size: 22px; font-weight: 900; color: #ffffff; margin-bottom: 5px; }
.rk-result-box.highlight .rk-res-val { color: var(--rk-sum-primary); }
.rk-res-lab { display: block; font-size: 11px; color: #94a3b8; text-transform: uppercase; font-weight: 700; line-height: 1.4; }

/* SEKACJA AUTORSKA - PODPIS EKSPERTA */
.rk-summary-author {
    background: #f1f5f9;
    padding: 30px 50px;
    display: flex;
    align-items: flex-start;
    gap: 25px;
    border-top: 1px solid var(--rk-sum-border);
}

.rk-author-photo-small {
    width: 75px;
    height: 75px;
    border-radius: 50%;
    border: 3px solid var(--rk-sum-primary);
    box-shadow: 0 4px 15px rgba(16, 185, 129, 0.2);
    object-fit: cover;
    flex-shrink: 0;
}

.rk-author-info {
    flex-grow: 1;
}

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

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

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

.rk-author-links a {
    color: #0284c7;
    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: #1d4ed8;
    text-decoration: underline;
}

/* Animacje SVG */
.anim-piston-press { animation: pistonPress 2s infinite ease-in-out; }
@keyframes pistonPress { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(15px); } }

.anim-pulse-ring { animation: pulseRing 2s infinite; transform-origin: center; }
@keyframes pulseRing { 0% { transform: scale(0.8); opacity: 1; } 100% { transform: scale(1.5); opacity: 0; } }

.anim-spark { animation: sparkFlash 1.5s infinite; }
@keyframes sparkFlash { 0%, 100% { opacity: 0.3; } 50% { opacity: 1; filter: drop-shadow(0 0 8px #f59e0b); } }

@media (max-width: 768px) {
    .rk-summary-header { flex-direction: column; text-align: center; padding: 30px 20px; }
    .rk-expert-avatar { width: 70px; height: 70px; }
    .rk-summary-body { grid-template-columns: 1fr; }
    .rk-rules-list { border-right: none; border-bottom: 1px solid var(--rk-sum-border); padding: 20px; }
    .rk-rule-details { padding: 25px 20px; }
    .rk-calc-grid { grid-template-columns: 1fr; gap: 25px; }
    .rk-quick-calc { padding: 30px 20px; }
    .rk-calc-results { grid-template-columns: 1fr; }
    .rk-summary-author { flex-direction: column; text-align: center; padding: 30px 20px; align-items: center; }
    .rk-author-links { justify-content: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article-summary-final",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "Inżynierskie podsumowanie: Siłowniki termoelektryczne na rozdzielaczach",
    "description": "Kompaktowe zestawienie parametrów siłowników termicznych i kalkulator doboru zasilacza do automatyki podłogówki. Twórca: Robert Kucharski.",
    "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/",
      "jobTitle": "CEO & Główny Projektant HVAC",
      "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-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#dataset-summary",
    "name": "Parametry Prądowe i Mechaniczne Automatyki",
    "description": "Twarde dane przeliczeniowe do doboru zasilania dla siłowników termoelektrycznych i weryfikacji gwintów.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "dobór siłownika do rozdzielacza",
      "kalkulator zasilacza 24v",
      "skok trzpienia",
      "prąd rozruchowy siłownika",
      "automatyka ogrzewania podłogowego"
    ],
    "measurementTechnique": "Szacowanie oparte na standardowym poborze 2W oraz prądzie rozruchowym rzędu 0.25A na siłownik (przy 24V).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kluczowy skok: minimum 4.0 mm dla szczelnego domknięcia.",
        "Prąd szczytowy: Wymaga transformatora o mocy powiększonej o 20% współczynnik bezpieczeństwa.",
        "Kompatybilność gwintu: Dominujący rynkowy standard to M30x1.5 mm."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webapp-summary",
    "name": "Kalkulator Automatyki Strefowej",
    "description": "Moduł przeliczający liczbę pętli na sumaryczny prąd rozruchowy i minimalną moc zasilacza na szynę DIN.",
    "applicationCategory": "UtilitiesApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5 Forms",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-summary-container" id="rk-summary-app">
    
    <div class="rk-summary-header">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski" class="rk-expert-avatar" loading="lazy">
        <div class="rk-header-content">
            <div class="rk-header-badge">
                <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                Wnioski Eksperta
            </div>
            <h2>Inżynierskie podsumowanie: Automatyka Siłowników</h2>
            <p>Zebrałem dla Ciebie 3 żelazne reguły automatyki. Siłownik to nie gadżet – to egzekutor woli termostatu. Zły dobór gwintu lub skoku mści się błędem przepływu w pompie ciepła.</p>
        </div>
    </div>

    <div class="rk-summary-body">
        
        <div class="rk-rules-list">
            <button class="rk-rule-btn active" data-panel="det-1">
                <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="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-rule-text">
                    <h3>Skok roboczy (min. 4.0 mm)</h3>
                    <p>Zapobiega przeciekom krzyżowym</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="det-2">
                <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="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg></div>
                <div class="rk-rule-text">
                    <h3>Prąd rozruchowy listwy</h3>
                    <p>Zapas mocy rzędu 20% to mus</p>
                </div>
            </button>

            <button class="rk-rule-btn" data-panel="det-3">
                <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><polyline points="12 6 12 12 16 14"></polyline></svg></div>
                <div class="rk-rule-text">
                    <h3>Bezwładność wosku</h3>
                    <p>Typ NC – 3 minuty pełnego cyklu</p>
                </div>
            </button>
        </div>

        <div class="rk-rule-details">
            
            <div class="rk-detail-panel active" id="det-1">
                <h4>Ignorowany Skok Tłoczka</h4>
                <p>Nigdy nie instaluj siłownika o skoku roboczym 3.0 mm na zaworze wymagającym 4.5 mm. Efekt? Pętla nigdy się nie zamyka. Przepływ rzędu 0.3 l/min poza kontrolą zaburza <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/" class="rk-sum-link">równoważenie hydrauliczne rozdzielacza</a> i niweczy sens <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/" class="rk-sum-link">obliczeń OZC</a>.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <!-- Zawór i trzpień -->
                        <path d="M 80 80 L 120 80 L 120 100 L 80 100 Z" fill="#334155"></path>
                        <rect x="95" y="50" width="10" height="30" fill="#cbd5e1"></rect>
                        <!-- Tłoczek siłownika animowany -->
                        <rect class="anim-piston-press" x="85" y="20" width="30" height="20" fill="#10b981"></rect>
                        <line x1="130" y1="50" x2="140" y2="50" stroke="#f59e0b" stroke-width="2"></line>
                        <line x1="130" y1="80" x2="140" y2="80" stroke="#f59e0b" stroke-width="2"></line>
                        <text x="145" y="70" fill="#f59e0b" font-size="12" font-weight="bold">4.0 mm</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="det-2">
                <h4>Zabójcze obciążenie dla przekaźników</h4>
                <p>8 siłowników to pozornie zaledwie 16 W podczas pracy, ale w fazie startu potrafią pobrać z sieci niemal 2.4 A prądu (przy 24V). Zastosowanie taniej listwy sterującej doprowadzi do &#8222;sklejenia&#8221; się wewnętrznych styków przekaźnika termostatu.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <circle class="anim-pulse-ring" cx="100" cy="50" r="20" fill="none" stroke="#f59e0b" stroke-width="2"></circle>
                        <rect x="80" y="30" width="40" height="40" fill="#1e293b" stroke="#f59e0b" stroke-width="2" rx="4"></rect>
                        <path class="anim-spark" d="M 95 35 L 105 35 L 100 50 L 110 50 L 95 65 L 100 55 L 90 55 Z" fill="#f59e0b"></path>
                        <text x="100" y="85" fill="#f59e0b" font-size="10" text-anchor="middle" font-weight="bold">+20% ZAPASU MOCY</text>
                    </svg>
                </div>
            </div>

            <div class="rk-detail-panel" id="det-3">
                <h4>Bezwładność chroni sprężarkę</h4>
                <p>Termoelement siłownika nagrzewa się woskiem powoli – otwarcie zajmuje nawet 5 minut. W instalacji podłogówki zapobiega to uderzeniom hydraulicznym i daje <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" class="rk-sum-link">inwerterowej pompie ciepła</a> cenny czas na płynne zredukowanie obrotów sprężarki, zamiast generować gwałtowne skoki ciśnienia.</p>
                <div class="rk-detail-svg">
                    <svg viewBox="0 0 200 100" style="width:100%; height:100%;">
                        <circle cx="100" cy="50" r="30" fill="none" stroke="#334155" stroke-width="4"></circle>
                        <circle cx="100" cy="50" r="26" fill="none" stroke="#10b981" stroke-width="4" stroke-dasharray="163" stroke-dashoffset="40"></circle>
                        <line x1="100" y1="50" x2="100" y2="30" stroke="#ffffff" stroke-width="3" stroke-linecap="round"></line>
                        <line x1="100" y1="50" x2="115" y2="50" stroke="#ffffff" stroke-width="3" stroke-linecap="round"></line>
                        <text x="100" y="65" fill="#10b981" font-size="10" text-anchor="middle" font-weight="bold">3-5 MIN</text>
                    </svg>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-quick-calc">
        <div class="rk-calc-header">
            <h4>
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="var(--rk-sum-primary)" stroke-width="2.5"><rect x="4" y="2" width="16" height="20" rx="2" ry="2"></rect><line x1="8" y1="6" x2="16" y2="6"></line><line x1="16" y1="14" x2="16.01" y2="14"></line><line x1="12" y1="14" x2="12.01" y2="14"></line><line x1="8" y1="14" x2="8.01" y2="14"></line><line x1="16" y1="18" x2="16.01" y2="18"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="8" y1="18" x2="8.01" y2="18"></line></svg>
                Inżynierski Kalkulator Zasilania (24V DC)
            </h4>
            <span style="font-size:12px; color:#64748b;">Dla prądu rozruchowego max. 0.25A</span>
        </div>

        <div class="rk-calc-grid">
            
            <div class="rk-calc-input-area">
                <div class="rk-calc-label">
                    Liczba pętli (siłowników):
                    <span id="sumActuatorOut">12 szt.</span>
                </div>
                <input type="range" class="rk-sum-range" id="sumActuatorSlider" min="2" max="24" step="1" value="12">
                <p style="font-size: 11px; color:#64748b; margin:0;">*Wylicza optymalny dobór transformatora.</p>
            </div>

            <div class="rk-calc-results">
                <div class="rk-result-box">
                    <span class="rk-res-val" id="resCurrent">3.0 <span style="font-size:14px;color:#64748b;">A</span></span>
                    <span class="rk-res-lab">Szczytowy Prąd Startowy</span>
                </div>
                <div class="rk-result-box highlight">
                    <span class="rk-res-val" id="resPower">87 <span style="font-size:14px;color:var(--rk-sum-primary);">W</span></span>
                    <span class="rk-res-lab">Min. moc zasilacza (DIN)</span>
                </div>
                <div class="rk-result-box">
                    <span class="rk-res-val" id="resCost">10.37 <span style="font-size:14px;color:#64748b;">zł</span></span>
                    <span class="rk-res-lab">Zużycie Energii / Mies.</span>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-summary-author">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - CEO i Projektant HVAC" class="rk-author-photo-small" loading="lazy">
        <div class="rk-author-info">
            <h4>Robert Kucharski</h4>
            <p>CEO i twórca portalu Projekt-Ogrzewania.pl, gdzie moje artykuły czyta ponad 11 000 unikalnych użytkowników miesięcznie. Jestem głównym projektantem i audytorem instalacji HVAC z regionu Podkarpacia. Wszystkie publikowane tu treści opieram na wieloletnim, praktycznym doświadczeniu z placów budowy. Moja misja to dostarczanie bezkompromisowej, twardej wiedzy inżynierskiej, która chroni budżety 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"></path></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"></path></svg>
                    Facebook
                </a>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    // 2. Logika Zakładek (Złote Zasady)
    const btns = document.querySelectorAll('.rk-rule-btn');
    const panels = document.querySelectorAll('.rk-detail-panel');

    btns.forEach(btn => {
        btn.addEventListener('click', () => {
            // Reset
            btns.forEach(b => b.classList.remove('active'));
            panels.forEach(p => p.classList.remove('active'));

            // Set Active
            btn.classList.add('active');
            const target = document.getElementById(btn.getAttribute('data-panel'));
            if(target) {
                // Restart animation
                void target.offsetWidth;
                target.classList.add('active');
            }
        });
    });

    // 3. Logika Kalkulatora Automatyki Strefowej
    const slider = document.getElementById('sumActuatorSlider');
    const actOut = document.getElementById('sumActuatorOut');
    const resCurrent = document.getElementById('resCurrent');
    const resPower = document.getElementById('resPower');
    const resCost = document.getElementById('resCost');

    function updateEstimator() {
        const count = parseInt(slider.value);
        actOut.textContent = count + ' szt.';

        // Obliczenia techniczne (dla 24V siłownika PTC):
        // Założony prąd rozruchowy: 0.25 A na sztukę
        const totalCurrent = count * 0.25;
        
        // Zasilacz 24V: P = U * I * 1.2 (współczynnik zapasu 20%)
        const powerNeeded = Math.ceil(totalCurrent * 24 * 1.2);
        
        // Estymowany koszt: praca 2W przez około 12h dziennie przez 30 dni = 0.72 kWh miesięcznie na 1 sztukę
        // Cena rynkowa prądu: ok. 1.20 PLN / kWh (0.72 * 1.20 = 0.86 PLN na sztukę miesięcznie)
        const costPerMonth = count * 0.864;

        resCurrent.innerHTML = totalCurrent.toFixed(2) + ' <span style="font-size:14px;color:#64748b;">A</span>';
        resPower.innerHTML = powerNeeded + ' <span style="font-size:14px;color:var(--rk-sum-primary);">W</span>';
        resCost.innerHTML = costPerMonth.toFixed(2) + ' <span style="font-size:14px;color:#64748b;">PLN</span>';
    }

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



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-card: #1e293b;
    --rk-faq-brand: #4f46e5; /* Eksperckie Indygo */
    --rk-faq-brand-light: #e0e7ff;
    --rk-faq-accent: #06b6d4; /* Cyjan dla kontrastu */
    --rk-faq-success: #10b981;
    --rk-faq-bg: #f8fafc;
    --rk-faq-border: #e2e8f0;
    --rk-faq-text: #334155;
    --rk-faq-muted: #64748b;
}

.rk-faq-container {
    max-width: 950px;
    margin: 50px auto;
    font-family: 'Inter', -apple-system, system-ui, sans-serif;
    background: #ffffff;
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(79, 70, 229, 0.15);
    border: 1px solid rgba(79, 70, 229, 0.3);
    overflow: hidden;
}

/* Nagłówek */
.rk-faq-header {
    background: linear-gradient(135deg, var(--rk-faq-dark) 0%, #312e81 100%);
    padding: 45px 50px 35px;
    color: #ffffff;
    position: relative;
    border-bottom: 4px solid var(--rk-faq-brand);
}

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

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

.rk-faq-title span { color: #818cf8; }

/* Sekcja Akordeonu */
.rk-faq-interactive {
    padding: 40px 50px;
    background: var(--rk-faq-bg);
}

.rk-faq-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-faq-item {
    background: #ffffff;
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-brand);
    box-shadow: 0 10px 25px -5px rgba(79, 70, 229, 0.15);
}

/* Przycisk Pytania */
.rk-faq-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-faq-dark);
    transition: background 0.3s, color 0.3s;
}

.rk-faq-question:hover {
    background: var(--rk-faq-brand-light);
}

.rk-faq-item.active .rk-faq-question {
    background: var(--rk-faq-brand);
    color: #ffffff;
}

.rk-faq-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-faq-brand-light);
    color: var(--rk-faq-brand);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-faq-item.active .rk-faq-icon {
    background: rgba(255,255,255,0.2);
    color: #ffffff;
    transform: rotate(180deg);
}

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

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

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

/* Wnętrze Odpowiedzi (Grid: Tekst + SVG) */
.rk-faq-content {
    padding: 25px;
    border-top: 1px solid var(--rk-faq-border);
    display: grid;
    grid-template-columns: 1fr 200px;
    gap: 30px;
    align-items: center;
}

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

.rk-faq-text strong {
    font-weight: 800;
    color: var(--rk-faq-dark);
}

/* Wizualizacje SVG */
.rk-faq-visual {
    background: var(--rk-faq-dark);
    border-radius: 12px;
    padding: 15px;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
    border: 3px solid #334155;
    position: relative;
    overflow: hidden;
}

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

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

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "FAQ – Najczęściej zadawane pytania o siłowniki termoelektryczne",
    "description": "Eksperckie odpowiedzi na pytania dotyczące kosztów, napięcia, funkcji First Open, weryfikacji działania i standardów gwintów siłowników.",
    "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/"
    },
    "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-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Ile prądu zużywa siłownik termoelektryczny w skali miesiąca?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pojedynczy siłownik o mocy roboczej 2 W, pracujący średnio przez 12 godzin na dobę, zużywa miesięcznie 0,72 kWh energii elektrycznej. Przy cenie prądu na poziomie 1,20 PLN/kWh, koszt utrzymania jednej sztuki wynosi około 0,86 PLN na miesiąc."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można zamontować siłownik 24V bezpośrednio do instalacji 230V?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie, bezpośrednie podłączenie siłownika 24 V do sieci napięcia 230 V spowoduje natychmiastowe przepalenie wewnętrznego elementu grzejnego PTC i trwałe zniszczenie urządzenia. Wymagane jest pośrednictwo dedykowanej listwy sterującej z wbudowanym transformatorem obniżającym napięcie."
        }
      },
      {
        "@type": "Question",
        "name": "Co oznacza funkcja \"First Open\" w fabrycznie nowych siłownikach?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Funkcja First Open (FO) to mechaniczna blokada utrzymująca fabrycznie nowy siłownik NC w pozycji otwartej bez konieczności podłączania zasilania elektrycznego. Umożliwia to napełnienie instalacji, przeprowadzenie prób szczelności oraz uruchomienie grzewcze budynku przed montażem automatyki, a blokada zwalnia się samoczynnie przy pierwszym podaniu napięcia."
        }
      },
      {
        "@type": "Question",
        "name": "Jak sprawdzić, czy siłownik na rozdzielaczu działa prawidłowo?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Prawidłowość działania sprawdza się poprzez weryfikację pozycji wskaźnika wysuwu na obudowie (wysunięty kołnierz oznacza przepływ) oraz manualny pomiar temperatury rury za zaworem. Dodatkowo, po około 10 minutach od podania napięcia, obudowa sprawnego siłownika powinna być wyraźnie ciepła w dotyku (ok. 40-45°C)."
        }
      },
      {
        "@type": "Question",
        "name": "Jaki gwint jest standardem w rozdzielaczach ogrzewania podłogowego?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Absolutnym standardem rynkowym, stosowanym przez ponad 90% producentów rozdzielaczy (np. KAN-therm, Tece, Purmo, Gorgiel), jest gwint metryczny M30 x 1,5 mm. Przed zakupem należy bezwzględnie zmierzyć suwmiarką średnicę zewnętrzną gwintu zaworu, aby wykluczyć standardy niszowe, takie jak M28 x 1,5 mm."
        }
      }
    ]
  }
]
</script>

<div class="rk-faq-container" id="rk-faq-app">
    <div class="rk-faq-header">
        <div class="rk-faq-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 Inwestora
        </div>
        <h2 class="rk-faq-title">FAQ – <span>Najczęściej zadawane pytania</span></h2>
    </div>

    <div class="rk-faq-interactive">
        <div class="rk-faq-list">
            
            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>1. Ile prądu zużywa siłownik termoelektryczny w skali miesiąca?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Pojedynczy siłownik o mocy roboczej <strong>2 W</strong>, pracujący średnio przez 12 godzin na dobę, zużywa miesięcznie <strong>0,72 kWh</strong> energii elektrycznej. Przy cenie prądu na poziomie 1,20 PLN/kWh, koszt utrzymania jednej sztuki wynosi około <strong>0,86 PLN</strong> na miesiąc.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="30" y="15" width="40" height="40" fill="#1e293b" stroke="#eab308" stroke-width="2" rx="4"/>
                                    <path d="M 45 25 L 55 25 L 50 40 L 60 40 L 45 55 L 50 45 L 40 45 Z" fill="#eab308"/>
                                    <text x="50" y="65" fill="#eab308" font-size="10" text-anchor="middle" font-weight="bold">0.86 PLN / MIES.</text>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>2. Czy można zamontować siłownik 24V bezpośrednio do instalacji 230V?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                <strong>Nie</strong>, bezpośrednie podłączenie siłownika 24 V do sieci napięcia 230 V spowoduje natychmiastowe przepalenie wewnętrznego elementu grzejnego PTC i <strong>trwałe zniszczenie urządzenia</strong>. Wymagane jest pośrednictwo dedykowanej listwy sterującej z wbudowanym transformatorem obniżającym napięcie.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path d="M 20 35 L 40 35 M 60 35 L 80 35" stroke="#ef4444" stroke-width="4" stroke-dasharray="4"/>
                                    <rect x="40" y="20" width="20" height="30" fill="#ef4444" rx="2"/>
                                    <text x="20" y="25" fill="#ef4444" font-size="12" font-weight="bold">230V</text>
                                    <text x="65" y="25" fill="#ef4444" font-size="12" font-weight="bold">24V</text>
                                    <path d="M 15 15 L 85 55 M 15 55 L 85 15" stroke="#ef4444" stroke-width="4" opacity="0.8"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>3. Co oznacza funkcja &#8222;First Open&#8221; w fabrycznie nowych siłownikach?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Funkcja <strong>First Open (FO)</strong> to mechaniczna blokada utrzymująca fabrycznie nowy siłownik NC w pozycji otwartej bez konieczności podłączania zasilania elektrycznego. Umożliwia to napełnienie instalacji, przeprowadzenie prób szczelności oraz uruchomienie grzewcze budynku przed montażem automatyki, a blokada zwalnia się samoczynnie przy pierwszym podaniu napięcia.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <path d="M 40 35 L 40 20 A 10 10 0 0 1 60 20" fill="none" stroke="#10b981" stroke-width="4"/>
                                    <rect x="35" y="35" width="30" height="25" fill="#1e293b" stroke="#10b981" stroke-width="2" rx="2"/>
                                    <circle cx="50" cy="47" r="3" fill="#10b981"/>
                                    <text x="50" y="12" fill="#10b981" font-size="10" text-anchor="middle" font-weight="bold">FIRST OPEN (FO)</text>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>4. Jak sprawdzić, czy siłownik na rozdzielaczu działa prawidłowo?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Prawidłowość działania sprawdza się poprzez weryfikację pozycji <strong>wskaźnika wysuwu na obudowie</strong> (wysunięty kołnierz oznacza przepływ) oraz manualny pomiar temperatury rury za zaworem. Dodatkowo, po około 10 minutach od podania napięcia, obudowa sprawnego siłownika powinna być wyraźnie ciepła w dotyku (ok. <strong>40-45°C</strong>).
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="45" y="10" width="10" height="40" fill="#334155" rx="5"/>
                                    <circle cx="50" cy="50" r="8" fill="#ef4444"/>
                                    <rect x="48" y="20" width="4" height="30" fill="#ef4444"/>
                                    <text x="75" y="40" fill="#ef4444" font-size="14" font-weight="bold">45°C</text>
                                    <path d="M 30 20 L 35 20 M 30 30 L 35 30 M 30 40 L 35 40" stroke="#64748b" stroke-width="2"/>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="rk-faq-item">
                <button class="rk-faq-question">
                    <span>5. Jaki gwint jest standardem w rozdzielaczach ogrzewania podłogowego?</span>
                    <div class="rk-faq-icon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"></polyline></svg></div>
                </button>
                <div class="rk-faq-answer-wrapper">
                    <div class="rk-faq-answer-inner">
                        <div class="rk-faq-content">
                            <div class="rk-faq-text">
                                Absolutnym standardem rynkowym, stosowanym przez ponad 90% producentów rozdzielaczy (np. KAN-therm, Tece, Purmo, Gorgiel), jest <strong>gwint metryczny M30 x 1,5 mm</strong>. Przed zakupem należy bezwzględnie zmierzyć suwmiarką średnicę zewnętrzną gwintu zaworu, aby wykluczyć standardy niszowe, takie jak M28 x 1,5 mm.
                            </div>
                            <div class="rk-faq-visual">
                                <svg class="rk-svg-box" viewBox="0 0 100 70">
                                    <rect x="30" y="25" width="40" height="20" fill="#334155" stroke="#cbd5e1" stroke-width="2"/>
                                    <line x1="30" y1="20" x2="30" y2="50" stroke="#cbd5e1" stroke-width="2"/>
                                    <line x1="70" y1="20" x2="70" y2="50" stroke="#cbd5e1" stroke-width="2"/>
                                    <path d="M 25 15 L 75 15" stroke="#10b981" stroke-width="2" stroke-dasharray="2"/>
                                    <text x="50" y="10" fill="#10b981" font-size="12" text-anchor="middle" font-weight="bold">M30 x 1.5</text>
                                </svg>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(item => {
        const btn = item.querySelector('.rk-faq-question');
        btn.addEventListener('click', () => {
            const isActive = item.classList.contains('active');
            
            faqItems.forEach(i => i.classList.remove('active'));
            
            if (!isActive) {
                item.classList.add('active');
            }
        });
    });
    
    if(faqItems.length > 0) {
        faqItems[0].classList.add('active');
    }
});
</script>



<style>
:root {
    --rk-sum-dark: #0f172a;
    --rk-sum-blue: #0284c7;
    --rk-sum-light-blue: #f0f9ff;
    --rk-sum-green: #10b981;
    --rk-sum-green-light: #dcfce7;
    --rk-sum-red: #ef4444;
    --rk-sum-gold: #eab308;
    --rk-sum-gray: #64748b;
    --rk-sum-border: #e2e8f0;
    --rk-sum-bg: #ffffff;
}

.rk-sum-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-sum-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-sum-blue);
    overflow: hidden;
}

/* Sekcja Nagłówkowa i Cytat */
.rk-sum-header {
    padding: 45px 50px 35px;
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    color: #ffffff;
    text-align: center;
    position: relative;
}

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

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

.rk-sum-quote-mark {
    font-size: 80px;
    color: rgba(255,255,255,0.1);
    position: absolute;
    top: -30px;
    left: -20px;
    line-height: 1;
    font-family: serif;
}

.rk-sum-quote-text {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.4;
    color: #ffffff;
    margin: 0 0 15px 0;
    position: relative;
    z-index: 1;
}

.rk-sum-author {
    font-size: 14px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
}

.rk-sum-author span { color: var(--rk-sum-gold); }

/* Interaktywny Symulator Decyzji */
.rk-sum-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-decision-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    background: #ffffff;
    border: 1px solid var(--rk-sum-border);
    border-radius: 20px;
    padding: 10px;
    margin-bottom: 30px;
}

.rk-decision-btn {
    padding: 20px;
    border-radius: 16px;
    border: 2px solid transparent;
    background: transparent;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.rk-decision-btn:hover { background: #f1f5f9; }

.rk-decision-btn.active[data-choice="pro"] {
    background: var(--rk-sum-green-light);
    border-color: var(--rk-sum-green);
    box-shadow: 0 10px 20px -5px rgba(16, 185, 129, 0.2);
}

.rk-decision-btn.active[data-choice="amateur"] {
    background: #fef2f2;
    border-color: var(--rk-sum-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.2);
}

.rk-decision-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e2e8f0;
    color: #64748b;
    transition: all 0.3s;
}

.rk-decision-btn.active[data-choice="pro"] .rk-decision-icon {
    background: var(--rk-sum-green);
    color: #ffffff;
}

.rk-decision-btn.active[data-choice="amateur"] .rk-decision-icon {
    background: var(--rk-sum-red);
    color: #ffffff;
}

.rk-decision-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-sum-dark);
    margin: 0;
}

/* Wynik symulacji */
.rk-sim-result {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 30px;
    align-items: center;
    padding: 30px;
    background: #ffffff;
    border-radius: 16px;
    border: 1px solid var(--rk-sum-border);
    box-shadow: 0 4px 6px rgba(0,0,0,0.02);
}

.rk-anim-svg {
    width: 100%;
    height: auto;
    max-width: 120px;
    margin: 0 auto;
}

.anim-shield {
    transform-origin: center;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.state-pro .anim-shield { fill: var(--rk-sum-green); stroke: #047857; animation: pulseShield 2s infinite; }
.state-amateur .anim-shield { fill: transparent; stroke: var(--rk-sum-red); stroke-dasharray: 10 10; animation: shatterShield 0.5s forwards; }

@keyframes pulseShield {
    0% { filter: drop-shadow(0 0 0 rgba(16, 185, 129, 0.4)); }
    50% { filter: drop-shadow(0 0 15px rgba(16, 185, 129, 0.8)); transform: scale(1.05); }
    100% { filter: drop-shadow(0 0 0 rgba(16, 185, 129, 0.4)); }
}

@keyframes shatterShield {
    to { stroke-dashoffset: 100; opacity: 0.5; transform: scale(0.9) rotate(-10deg); }
}

.rk-result-content h4 {
    margin: 0 0 10px 0;
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-sum-dark);
}

.rk-result-content p {
    margin: 0 0 15px 0;
    font-size: 15px;
    line-height: 1.7;
    color: #475569;
}

.rk-result-content a {
    color: var(--rk-sum-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Mocne CTA */
.rk-sum-cta-box {
    padding: 45px 50px;
    background: #ffffff;
    text-align: center;
    border-top: 1px solid var(--rk-sum-border);
}

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

.rk-sum-cta-text {
    font-size: 16px;
    color: #64748b;
    margin: 0 auto 30px auto;
    max-width: 600px;
    line-height: 1.6;
}

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

.rk-btn-massive:hover {
    transform: translateY(-5px);
    background: #0369a1;
    box-shadow: 0 20px 35px -5px rgba(2, 132, 199, 0.5);
    border-color: #7dd3fc;
}

.rk-btn-massive svg {
    transition: transform 0.3s;
}

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

@media (max-width: 768px) {
    .rk-sum-header, .rk-sum-interactive, .rk-sum-cta-box { padding: 35px 25px; }
    .rk-decision-wrapper { grid-template-columns: 1fr; gap: 10px; }
    .rk-sim-result { grid-template-columns: 1fr; text-align: center; padding: 25px; }
    .rk-anim-svg { max-width: 80px; }
    .rk-sum-quote-text { font-size: 18px; }
    .rk-btn-massive { width: 100%; padding: 16px 20px; font-size: 16px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "Podsumowanie – Automatyka oparta na twardych parametrach",
    "description": "Siłowniki termoelektryczne to kluczowy interfejs wykonawczy nowoczesnego systemu HVAC. Dowiedz się, jak precyzyjny dobór chroni Twoją instalację.",
    "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-30",
    "dateModified": "2026-05-30"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#dataset-podsumowanie",
    "name": "Skuteczność Automatyki Strefowej",
    "description": "Zestawienie techniczno-ekonomiczne porównujące inwestycję w precyzyjnie dobrane siłowniki na bazie projektu OZC z kosztami błędnego wykonawstwa.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "siłowniki termoelektryczne",
      "automatyka rozdzielaczy",
      "taktowanie pompy ciepła",
      "skok tłoczka",
      "projekt ogrzewania podłogowego"
    ],
    "measurementTechnique": "Analiza sprawności i komfortu cieplnego układu grzewczego w zależności od doboru parametrów siłowników.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Standard Inżynierski: Precyzyjnie dobrany skok tłoczka (np. 4.0 mm) i wyliczony prąd rozruchowy.",
        "Ryzyko Amatorskie: Ignorowanie zgodności gwintów i przepływów skutkujące ciągłym taktowaniem źródła ciepła."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#webapp-podsumowanie",
    "name": "Symulator Automatyki Hydraulicznej",
    "description": "Narzędzie interaktywne demonstrujące wpływ precyzyjnie dobranych siłowników termoelektrycznych na działanie całej instalacji grzewczej.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sum-container" id="silowniki-sum-app">
    <div class="rk-sum-header">
        <div class="rk-sum-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
        </div>
        <div class="rk-sum-quote-box">
            <div class="rk-sum-quote-mark">&#8222;</div>
            <p class="rk-sum-quote-text">
                Siłowniki termoelektryczne to nie jest opcjonalny gadżet. To interfejs wykonawczy, który tłumaczy inteligencję budynku na fizyczny przepływ. Zły dobór skoku tłoczka zamorduje sprawność każdej pompy ciepła.
            </p>
            <div class="rk-sum-author">
                <span>Robert Kucharski</span> | CEO portalu            </div>
        </div>
    </div>

    <div class="rk-sum-interactive">
        <div class="rk-decision-wrapper" id="simDecisions">
            <button class="rk-decision-btn active" data-choice="pro">
                <div class="rk-decision-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="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                </div>
                <h4 class="rk-decision-title">Standard Inżynierski</h4>
            </button>
            <button class="rk-decision-btn" data-choice="amateur">
                <div class="rk-decision-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="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <h4 class="rk-decision-title">Wykonawstwo &#8222;na oko&#8221;</h4>
            </button>
        </div>

        <div class="rk-sim-result state-pro" id="simResultBox">
            <svg class="rk-anim-svg" viewBox="0 0 100 100">
                <path class="anim-shield" d="M50 10 L10 25 L10 50 C10 75 40 90 50 95 C60 90 90 75 90 50 L90 25 Z" stroke-width="4" stroke-linejoin="round"></path>
                <polyline class="anim-check" points="35 50 45 60 70 35" fill="none" stroke="#ffffff" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"></polyline>
            </svg>
            <div class="rk-result-content" id="simResultContent">
                <h4 style="color: var(--rk-sum-green);">Absolutna stabilność systemu</h4>
                <p>Precyzyjne zestrojenie parametrów – jak skok roboczy (np. <strong>4,0 mm</strong>) czy siła nacisku (min. <strong>100 N</strong>) – zapobiega przeciekom krzyżowym. Woda trafia wyłącznie tam, gdzie nakazuje automatyka.</p>
                <p>To podstawa bezawaryjnej pracy, która musi bazować na <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">profesjonalnym projekcie ogrzewania podłogowego</a> uwzględniającym wyliczone opory hydrauliczne.</p>
            </div>
        </div>
    </div>

    <div class="rk-sum-cta-box">
        <h3 class="rk-sum-cta-title">Przestań tracić pieniądze na błędy wykonawcze</h3>
        <p class="rk-sum-cta-text">
            Ignorowanie technologii mści się rachunkami i zimną podłogą. Zbuduj swoją wiedzę z setkami artykułów opartych na twardych wyliczeniach, normach PN-EN i realnym doświadczeniu inżynierskim.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-btn-massive">
            PRZEJDŹ DO BAZY WIEDZY EKSKLUZYWNEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-decision-btn');
    const resultBox = document.getElementById('simResultBox');
    const resultContent = document.getElementById('simResultContent');

    btns.forEach(btn => {
        btn.addEventListener('click', function() {
            // Zmiana aktywnych przycisków
            btns.forEach(b => b.classList.remove('active'));
            this.classList.add('active');

            const choice = this.getAttribute('data-choice');

            // Aktualizacja wizualizacji
            if (choice === 'pro') {
                resultBox.className = 'rk-sim-result state-pro';
                resultContent.innerHTML = `
                    <h4 style="color: var(--rk-sum-green);">Absolutna stabilność systemu</h4>
                    <p>Precyzyjne zestrojenie parametrów – jak skok roboczy (np. <strong>4,0 mm</strong>) czy siła nacisku (min. <strong>100 N</strong>) – zapobiega przeciekom krzyżowym. Woda trafia wyłącznie tam, gdzie nakazuje automatyka.</p>
                    <p>To podstawa bezawaryjnej pracy, która musi bazować na <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">profesjonalnym projekcie ogrzewania podłogowego</a> uwzględniającym wyliczone opory hydrauliczne.</p>
                `;
                resultBox.querySelector('.anim-check').style.display = 'block';
            } else {
                resultBox.className = 'rk-sim-result state-amateur';
                resultContent.innerHTML = `
                    <h4 style="color: var(--rk-sum-red);">Taktowanie pompy i wysokie rachunki</h4>
                    <p>Zbagatelizowanie właściwego prądu rozruchowego czy doboru gwintu (M30 vs M28) mści się drastycznym spadkiem sprawności <a href="https://projekt-ogrzewania.pl/pompa-ciepla/" style="color: var(--rk-sum-red);">pompy ciepła</a>.</p>
                    <p>Nieszczelne lub niepasujące siłowniki wymuszają niekontrolowaną cyrkulację, wywołując dyskomfort termiczny domowników i skrócenie żywotności urządzeń grzewczych.</p>
                `;
                resultBox.querySelector('.anim-check').style.display = 'none';
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-panel: #1e293b;
    --rk-dl-accent: #f97316; /* Pomarańczowy termiczny */
    --rk-dl-accent-dark: #ea580c;
    --rk-dl-secondary: #6366f1; /* Indygo elektryczne */
    --rk-dl-bg: #f8fafc;
    --rk-dl-border: #e2e8f0;
    --rk-dl-text: #334155;
    --rk-dl-white: #ffffff;
}

.rk-dl-hub-container {
    max-width: 950px;
    margin: 60px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl-white);
    border-radius: 24px;
    border: 1px solid var(--rk-dl-border);
    box-shadow: 0 25px 50px -12px rgba(249, 115, 22, 0.1);
    overflow: hidden;
}

/* NAGŁÓWEK SEKCI */
.rk-dl-header {
    background: linear-gradient(135deg, var(--rk-dl-dark) 0%, #2e1065 100%);
    padding: 45px 50px;
    color: var(--rk-dl-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    border-bottom: 4px solid var(--rk-dl-accent);
}

.rk-dl-header-content { position: relative; z-index: 2; max-width: 65%; }

.rk-dl-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(249, 115, 22, 0.2);
    border: 1px solid rgba(249, 115, 22, 0.4);
    color: #fdba74;
    padding: 8px 16px;
    border-radius: 50px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
}

.rk-dl-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 12px 0;
    letter-spacing: -0.5px;
    line-height: 1.3;
}

.rk-dl-header p {
    font-size: 15px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
}

/* WIZUALIZACJA PDF / IKONA */
.rk-dl-header-visual {
    position: relative;
    z-index: 2;
}

.rk-dl-pdf-icon-svg {
    width: 90px;
    height: auto;
    filter: drop-shadow(0 15px 25px rgba(0,0,0,0.4));
    animation: rkFloatIcon 3.5s infinite ease-in-out alternate;
}

@keyframes rkFloatIcon {
    from { transform: translateY(0) rotate(-2deg); }
    to { transform: translateY(-12px) rotate(2deg); }
}

/* GŁÓWNY WORKSPACE */
.rk-dl-workspace {
    display: flex;
    padding: 45px 50px;
    gap: 45px;
    background: var(--rk-dl-white);
}

.rk-dl-preview-box {
    flex: 1.2;
    background: var(--rk-dl-bg);
    border: 2px dashed var(--rk-dl-border);
    border-radius: 16px;
    padding: 15px;
    position: relative;
    cursor: zoom-in;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-dl-preview-box:hover {
    transform: scale(1.03);
    border-color: var(--rk-dl-accent);
    box-shadow: 0 20px 30px -10px rgba(249, 115, 22, 0.15);
}

.rk-dl-preview-img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    display: block;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.rk-dl-zoom-hint {
    position: absolute;
    bottom: 25px;
    background: rgba(15, 23, 42, 0.85);
    color: var(--rk-dl-white);
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    backdrop-filter: blur(4px);
    display: flex;
    align-items: center;
    gap: 6px;
    opacity: 0.9;
    transition: opacity 0.3s;
}

.rk-dl-preview-box:hover .rk-dl-zoom-hint {
    opacity: 1;
}

/* SEKCJA INFORMACYJNA */
.rk-dl-info-side {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-info-title {
    font-size: 18px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 20px 0;
}

.rk-dl-feature-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px;
    margin: 0 0 35px 0;
}

.rk-dl-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--rk-dl-bg);
    padding: 12px 15px;
    border-radius: 12px;
    border: 1px solid var(--rk-dl-border);
    transition: border-color 0.2s;
}

.rk-dl-feature-item:hover {
    border-color: var(--rk-dl-secondary);
}

.rk-dl-check-svg {
    width: 20px;
    height: 20px;
    color: var(--rk-dl-secondary);
    flex-shrink: 0;
    margin-top: 2px;
}

.rk-dl-feature-text {
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-dl-text);
    line-height: 1.4;
}

/* PRZYCISK POBIERANIA */
.rk-dl-main-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-dl-accent);
    color: var(--rk-dl-white);
    text-decoration: none !important;
    padding: 20px 30px;
    border-radius: 14px;
    font-weight: 900;
    font-size: 16px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 10px 20px -5px rgba(249, 115, 22, 0.4);
    border: 2px solid transparent;
}

.rk-dl-main-btn:hover {
    background: var(--rk-dl-accent-dark);
    transform: translateY(-4px);
    box-shadow: 0 15px 30px -5px rgba(249, 115, 22, 0.5);
    border-color: #fdba74;
}

.rk-dl-main-btn svg {
    transition: transform 0.3s;
}

.rk-dl-main-btn:hover svg {
    transform: translateY(3px);
}

/* STOPKA MODUŁU */
.rk-dl-footer {
    padding: 25px 50px;
    background: var(--rk-dl-bg);
    border-top: 1px solid var(--rk-dl-border);
    font-size: 13px;
    color: var(--rk-dl-muted);
    text-align: center;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
}

.rk-dl-footer a {
    color: var(--rk-dl-secondary);
    font-weight: 700;
    text-decoration: none;
    transition: color 0.2s;
}

.rk-dl-footer a:hover {
    color: #4338ca;
    text-decoration: underline;
}

@media (max-width: 850px) {
    .rk-dl-header { flex-direction: column; text-align: center; padding: 35px 25px; }
    .rk-dl-header-content { max-width: 100%; margin-bottom: 30px; }
    .rk-dl-workspace { flex-direction: column; padding: 35px 25px; }
    .rk-dl-preview-box { width: 100%; margin-bottom: 10px; }
    .rk-dl-footer { flex-direction: column; justify-content: center; padding: 25px; text-align: center; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#infografika-article",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/"
    },
    "headline": "Infografika: Siłowniki termoelektryczne na rozdzielaczach",
    "description": "Pobierz inżynierskie kompendium wiedzy o siłownikach termoelektrycznych. Zasada działania, parametry i dobór zasilacza w formacie PDF.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Silowniki-termoelektryczne-na-rozdzielaczach.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-31",
    "dateModified": "2026-05-31"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#dataset-infografika",
    "name": "Kompendium: Parametry i montaż siłowników termoelektrycznych",
    "description": "Wizualne zestawienie parametrów technicznych, zasady działania i algorytmu doboru zasilacza dla siłowników 230V i 24V na belkach rozdzielacza.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika siłowniki termoelektryczne",
      "schemat podłączenia siłowników",
      "zasada działania siłownika NC",
      "dobór zasilacza do podłogówki 24V",
      "błędy montażu siłowników na rozdzielaczu"
    ],
    "measurementTechnique": "Wizualizacja procesów termodynamicznych i elektrycznych zachodzących w siłownikach na belce rozdzielacza.",
    "mainEntity": {
      "@type": "Thing",
      "name": "Schemat i parametry automatyki strefowej"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/#download-app",
    "name": "Centrum Pobierania Wiedzy: Automatyka Strefowa",
    "description": "Interaktywny moduł umożliwiający podgląd i pobranie dokumentacji technicznej w wysokiej rozdzielczości, dotyczącej siłowników termoelektrycznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript, HTML5"
  }
]
</script>

<div class="rk-dl-hub-container" id="app-actuator-dl">
    
    <div class="rk-dl-header">
        <div class="rk-dl-header-content">
            <div class="rk-dl-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 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                Darmowe Materiały do Pobrania
            </div>
            <h2>Pobierz Kompletny Przewodnik (Infografika)</h2>
            <p>Zabierz inżynierską wiedzę bezpośrednio na plac budowy. Zasada działania, kluczowe parametry i schemat doboru zasilacza zamknięte w jednym, czytelnym pliku PDF.</p>
        </div>
        <div class="rk-dl-header-visual">
            <svg class="rk-dl-pdf-icon-svg" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M14 2H6C4.89543 2 4 2.89543 4 4V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V8L14 2Z" fill="#ef4444" stroke="#ffffff" stroke-width="1.5"/>
                <path d="M14 2V8H20" fill="#dc2626" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
                <circle cx="12" cy="13" r="3" fill="none" stroke="#ffffff" stroke-width="1.5"/>
                <path d="M12 10V11 M12 15V16 M9 13H10 M14 13H15" stroke="#ffffff" stroke-width="1.5" stroke-linecap="round"/>
                <text x="7" y="20" fill="white" font-size="4.5" font-weight="900" font-family="sans-serif">PDF</text>
            </svg>
        </div>
    </div>

    <div class="rk-dl-workspace">
        
        <div class="rk-dl-preview-box" onclick="window.open('https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Silowniki-termoelektryczne-na-rozdzielaczach.webp', '_blank')">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Silowniki-termoelektryczne-na-rozdzielaczach.webp" alt="Infografika - Siłowniki termoelektryczne na rozdzielaczach" class="rk-dl-preview-img" loading="lazy">
            <div class="rk-dl-zoom-hint">
                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                Kliknij, aby powiększyć
            </div>
        </div>

        <div class="rk-dl-info-side">
            <h3 class="rk-dl-info-title">Co znajdziesz w infografice?</h3>
            
            <div class="rk-dl-feature-grid">
                <div class="rk-dl-feature-item">
                    <svg class="rk-dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span class="rk-dl-feature-text">Zasada działania i ekspansja fazowa (NC/NO)</span>
                </div>
                <div class="rk-dl-feature-item">
                    <svg class="rk-dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span class="rk-dl-feature-text">Tabela parametrów: Prąd rozruchowy i skok trzpienia</span>
                </div>
                <div class="rk-dl-feature-item">
                    <svg class="rk-dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span class="rk-dl-feature-text">Algorytm doboru bezpiecznego zasilacza 24V DIN</span>
                </div>
                <div class="rk-dl-feature-item">
                    <svg class="rk-dl-check-svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M5 13l4 4L19 7"/></svg>
                    <span class="rk-dl-feature-text">Wysoka rozdzielczość, gotowa do wydruku (A4/A3)</span>
                </div>
            </div>

            <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2026/05/Infografika-Silowniki-termoelektryczne-na-rozdzielaczach.pdf" class="rk-dl-main-btn" target="_blank">
                <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                POBIERZ INFOGRAFIKĘ (PDF)
            </a>
            
            <p style="margin-top: 25px; font-size: 13px; color: var(--rk-dl-muted); line-height: 1.5; padding: 15px; background: var(--rk-dl-bg); border-radius: 8px; border-left: 3px solid var(--rk-dl-secondary);">
                Nie jesteś pewien, jak poprawnie zoptymalizować automatykę dla swojego układu VAV? <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">Zamów projekt podłogówki</a> i zyskaj gwarancję bezawaryjnej pracy.
            </p>
        </div>

    </div>

    <div class="rk-dl-footer">
        <div>© 2026 Projekt-Ogrzewania.pl | Udostępnianie dozwolone z zachowaniem linku do źródła.</div>
        <div>Autor techniczny: <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" target="_blank" rel="noopener">Robert Kucharski</a></div>
    </div>
</div>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">Siłowniki termoelektryczne na rozdzielaczach.</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Termostat w ogrzewaniu podłogowym.</title>
		<link>https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Fri, 16 Jan 2026 08:54:43 +0000</pubDate>
				<category><![CDATA[Budowa domu]]></category>
		<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Porady budowlane]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Projektowanie ogrzewania]]></category>
		<category><![CDATA[Smart home]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[Technika instalacyjna]]></category>
		<category><![CDATA[czujnik podłogowy]]></category>
		<category><![CDATA[ogrzewanie podłogowe wodne]]></category>
		<category><![CDATA[projekt ogrzewania podłogowego]]></category>
		<category><![CDATA[regulacja temperatury]]></category>
		<category><![CDATA[siłowniki termoelektryczne]]></category>
		<category><![CDATA[smart home ogrzewanie]]></category>
		<category><![CDATA[sterowanie podłogówką]]></category>
		<category><![CDATA[strefy grzewcze]]></category>
		<category><![CDATA[termostat ogrzewania podłogowego]]></category>
		<category><![CDATA[termostat pokojowy]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=3186</guid>

					<description><![CDATA[<p>Prawidłowo dobrany i skonfigurowany termostat w ogrzewaniu podłogowym ma kluczowy wpływ nie tylko na komfort cieplny, ale również na zdrowie domowników i realne koszty eksploatacji budynku. W przypadku wodnej podłogówki, która charakteryzuje się dużą bezwładnością cieplną, sterowanie temperaturą wymaga wiedzy i przemyślanych decyzji. W artykule szczegółowo omawiamy zasady działania termostatów, ich rodzaje, parametry techniczne oraz powiązanie z projektem ogrzewania podłogowego – zarówno z perspektywy inwestora, jak i instalatora.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">Termostat 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">Wybór i prawidłowa konfiguracja&nbsp;<strong>termostatu w ogrzewaniu podłogowym</strong>&nbsp;to kluczowa decyzja, która w bezpośredni sposób przekłada się na komfort termiczny, zdrowie domowników oraz wysokość rachunków za energię. Wodna podłogówka, jako system o dużej bezwładności cieplnej, wymaga precyzyjnego i przemyślanego sterowania. W tym artykule, przeznaczonym zarówno dla inwestorów, jak i instalatorów, dogłębnie przeanalizujemy rolę, typy, parametry techniczne oraz zasady doboru termostatów, będących &#8222;mózgiem&#8221; każdej nowoczesnej instalacji grzewczej.</p>



<h2 class="wp-block-heading">Zasada działania: Dlaczego termostat to nie tylko włącznik i wyłącznik?</h2>



<p class="wp-block-paragraph"><strong>Termostat w instalacji wodnego ogrzewania podłogowego</strong>&nbsp;pełni funkcję inteligentnego strażnika temperatury. Jego zadanie wykracza daleko poza prostą reakcję &#8222;za ciepło = wyłącz&#8221;. To zaawansowany układ regulacji, który w sposób ciągły dąży do zachowania równowagi między dostarczanym ciepłem a stratami budynku.</p>



<p class="wp-block-paragraph"><strong>Jak to działa w praktyce?</strong>&nbsp;Termostat, wyposażony w czujnik (lub kilka czujników), monitoruje aktualną temperaturę. Gdy spadnie ona poniżej wartości zadanej (tzw.&nbsp;<em>setpointu</em>), termostat zamyka obwód elektryczny, wysyłając sygnał do&nbsp;<strong>siłownika termoelektrycznego</strong>&nbsp;(zaworu). Siłownik otwiera przepływ ciepłej wody z obiegu kotła lub mieszacza do <a href="https://projekt-ogrzewania.pl/petla-grzewcza/">pętli grzewczej</a> w podłodze. Gdy temperatura zostanie osiągnięta, sygnał jest odcinany, siłownik zamyka zawór, a woda w pętli powoli oddaje zgromadzone ciepło. Ten cykl powtarza się, zapewniając stabilne warunki.</p>



<p class="wp-block-paragraph">Kluczową koncepcją jest&nbsp;<strong>histereza</strong>, czyli dopuszczalne odchylenie temperatury od wartości zadanej, które nie uruchamia reakcji termostatu. Zbyt mała histereza (np. 0,2°C) spowoduje zbyt częste załączanie siłowników. Dla ogrzewania podłogowego, z uwagi na jego bezwładność, zaleca się histerezę w zakresie&nbsp;<strong>0,5-1,0°C</strong>, co zapewni płynną i ekonomiczną pracę.</p>



<h3 class="wp-block-heading">Rodzaje termostatów: Od prostoty mechaniki po inteligencję chmury.</h3>



<p class="wp-block-paragraph">Wybór konkretnego typu termostatu determinuje nie tylko wygodę, ale i potencjał oszczędnościowy całego systemu.</p>



<h4 class="wp-block-heading"><strong>Termostaty mechaniczne (pokrętłowe)</strong>.</h4>



<p class="wp-block-paragraph">To najprostsze i najbardziej odporne urządzenia. Regulacja odbywa się za pomocą pokrętła z podziałką, często ze wskaźnikiem włączonego ogrzewania (świecąca lampka). Ich działanie opiera się najczęściej na&nbsp;<strong>elementach bimetalicznych</strong>, które odkształcają się pod wpływem temperatury, zwierając lub rozwierając styki.</p>



<ul class="wp-block-list">
<li><strong>Zalety:</strong>&nbsp;Niska cena, absolutna niezawodność, intuicyjna obsługa, brak potrzeby zasilania sieciowego (działają na własnym napięciu sterowania).</li>



<li><strong>Wady:</strong>&nbsp;Brak możliwości precyzyjnego ustawienia temperatury (podziałka jest przybliżona), brak funkcji programowania.</li>



<li><strong>Przykład zastosowania:</strong>&nbsp;Pomieszczenia techniczne, garaże, łazienki, gdzie priorytetem jest podstawowa funkcjonalność, a nie oszczędności.</li>
</ul>



<h4 class="wp-block-heading"><strong>Termostaty cyfrowe programowalne</strong>.</h4>



<p class="wp-block-paragraph">Stanowią standard w nowoczesnych instalacjach. Wyposażone w wyświetlacz LCD i przyciski, umożliwiają precyzyjne ustawienie temperatury z dokładnością do 0,5°C lub nawet 0,1°C.</p>



<ul class="wp-block-list">
<li><strong>Kluczowa funkcja:</strong>&nbsp;<strong>Program czasowy</strong>. Pozwala na ustawienie różnych temperatur dla różnych pór dnia (np.&nbsp;<strong>komfort</strong>&nbsp;21°C od 6:00 do 22:00) i dni tygodnia (np.&nbsp;<strong>oszczędność</strong>&nbsp;18°C w nocy i w czasie pracy). Tygodniowy harmonogram może być różny dla każdego dnia.</li>



<li><strong>Potencjał oszczędności:</strong>&nbsp;To właśnie programowanie przynosi realne oszczędności, szacowane na&nbsp;<strong>15-30%</strong>&nbsp;w skali sezonu grzewczego. System nie grzeje pełną mocą, gdy domownicy śpią lub są w pracy.</li>



<li><strong>Przykład konfiguracji:</strong>&nbsp;<code>Pon-Pt: 5:00-7:00 (21°C), 7:00-16:00 (17°C), 16:00-23:00 (21°C), 23:00-5:00 (18°C). Sob-Nd: 7:00-23:00 (21°C), 23:00-7:00 (18°C).</code></li>
</ul>



<h4 class="wp-block-heading"><strong>Termostaty sieciowe i inteligentne (Wi-Fi)</strong>.</h4>



<p class="wp-block-paragraph">To najbardziej zaawansowana grupa, będąca elementem&nbsp;<strong>systemu Smart Home</strong>. Łączą się z siecią domową Wi-Fi, dając pełną kontrolę przez aplikację na smartfonie z dowolnego miejsca na świecie.</p>



<ul class="wp-block-list">
<li><strong>Zaawansowane algorytmy:</strong>&nbsp;Niektóre modele (np. Nest, Tado, niektóre modele Uponor, Siemens) uczą się charakterystyki grzewczej domu i czasu jego nagrzewania, optymalizując moment startu.</li>



<li><strong>Geofencing (strefowanie geograficzne):</strong>&nbsp;Aplikacja, korzystając z lokalizacji telefonu, automatycznie przełącza system w tryb oszczędnościowy, gdy ostatni domownik wyjdzie z domu, i wraca do trybu komfortu, gdy ktoś zmierza do domu.</li>



<li><strong>Integracja:</strong>&nbsp;Możliwość integracji z asystentami głosowymi (Google Assistant, Alexa), systemami pogodowymi (korekta ogrzewania przy zmianie pogody) czy innymi urządzeniami smart home.</li>



<li><strong>Wady:</strong>&nbsp;Wyższa cena, zależność od stabilności łącza internetowego, potencjalne kwestie prywatności danych.</li>
</ul>



<h2 class="wp-block-heading">Kryteria techniczne wyboru: Na co patrzeć poza ceną i wyglądem?</h2>



<p class="wp-block-paragraph">Dobór&nbsp;<strong>modułu sterującego ogrzewaniem podłogowym</strong>&nbsp;musi opierać się na twardych parametrach technicznych, których niedopasowanie uniemożliwi poprawne działanie instalacji.</p>



<h3 class="wp-block-heading">Napięcie sterowania: 230V AC vs 24V AC/DC.</h3>



<p class="wp-block-paragraph">To&nbsp;<strong>najważniejszy parametr kompatybilnościowy</strong>. Musi być absolutnie zgodny z napięciem pracy siłowników termoelektrycznych zamontowanych na rozdzielaczu.</p>



<ul class="wp-block-list">
<li><strong>Termostat 230V AC:</strong>&nbsp;Steruje bezpośrednio siłownikami 230V. Prosty w instalacji (brak dodatkowych zasilaczy), ale w przypadku awarii termostatu do siłownika trafia pełne napięcie sieciowe.</li>



<li><strong>Termostat 24V AC/DC:</strong>&nbsp;Wymaga zastosowania&nbsp;<strong>transformatora (zasilacza)</strong>, który obniża napięcie do bezpiecznej wartości 24V. Rozwiązanie uważane za bezpieczniejsze i bardziej elastyczne, standard w nowoczesnych instalacjach. Zasilacz może obsługiwać grupę kilku termostatów.</li>
</ul>



<h3 class="wp-block-heading">Typ i lokalizacja czujnika temperatury.</h3>



<p class="wp-block-paragraph">To decyduje o tym,&nbsp;<em>co</em>&nbsp;tak naprawdę regulujemy.</p>



<ul class="wp-block-list">
<li><strong>Czujnik podłogowy (DS):</strong>&nbsp;Mały przewodowy czujnik umieszczany&nbsp;<strong>bezpośrednio w pętli grzewczej</strong>&nbsp;(np. w rurce ochronnej w wylewce). Jego rolą jest&nbsp;<strong>ograniczenie maksymalnej temperatury podłogi</strong>&nbsp;(zazwyczaj do 26-29°C dla pomieszczeń stałego pobytu, do 33-35°C dla łazienek). Jest&nbsp;<strong>niezbędny</strong>&nbsp;dla ochrony posadzek (zwłaszcza drewnianych, paneli, niektórych płytek) przed zniszczeniem i dla komfortu stóp.</li>



<li><strong>Czujnik powietrzny (wbudowany lub zdalny &#8211; TA):</strong>&nbsp;Mierzy temperaturę powietrza na wysokości montażu termostatu (~1,5 m). Idealny do utrzymania komfortu w pomieszczeniu.</li>



<li><strong>Sterowanie mieszane (DS+TA):</strong>&nbsp;Najbardziej uniwersalny i zalecany tryb. Termostat używa&nbsp;<strong>czujnika powietrznego jako głównego</strong>&nbsp;do osiągnięcia zadanej temperatury w pomieszczeniu, ale&nbsp;<strong>czujnik podłogowy pełni funkcję zabezpieczającą</strong>. Jeśli temperatura podłogi zbliży się do maksymalnej wartości granicznej, termostat ograniczy lub wyłączy grzanie, nawet jeśli temperatura powietrza nie jest jeszcze osiągnięta.</li>
</ul>



<p class="wp-block-paragraph"><strong>Tabela porównawcza: Tryby pracy termostatu</strong>.</p>



<style>
/* === Kontener tabeli === */
.thermostat-table-wrapper {
  width: 100%;
  overflow-x: auto;
  margin: 30px 0;
  font-family: Arial, sans-serif;
}

/* === Tabela === */
.thermostat-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 900px;
  background: #ffffff;
}

/* === Nagłówki === */
.thermostat-table thead {
  background: #f5f7fa;
}

.thermostat-table th {
  padding: 14px 12px;
  text-align: left;
  font-weight: 600;
  font-size: 15px;
  border-bottom: 2px solid #ddd;
  white-space: nowrap;
}

/* === Komórki === */
.thermostat-table td {
  padding: 14px 12px;
  font-size: 14px;
  border-bottom: 1px solid #e5e5e5;
  vertical-align: top;
  font-weight: 400;
}

/* === Mobile: układ kart === */
@media (max-width: 768px) {
  .thermostat-table {
    min-width: 100%;
  }

  .thermostat-table thead {
    display: none;
  }

  .thermostat-table tr {
    display: block;
    margin-bottom: 20px;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 10px;
    background: #fafafa;
  }

  .thermostat-table td {
    display: flex;
    justify-content: space-between;
    padding: 8px 6px;
    border: none;
    font-size: 14px;
  }

  .thermostat-table td::before {
    content: attr(data-label);
    font-weight: 600;
    color: #555;
    padding-right: 10px;
    flex: 0 0 45%;
  }
}
</style>

<div class="thermostat-table-wrapper">
  <table class="thermostat-table">
    <thead>
      <tr>
        <th>Tryb pracy</th>
        <th>Czujnik aktywny</th>
        <th>Cel regulacji</th>
        <th>Zalety</th>
        <th>Wady / Uwagi</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td data-label="Tryb pracy">Tylko podłogowy</td>
        <td data-label="Czujnik aktywny">Podłogowy (DS)</td>
        <td data-label="Cel regulacji">
          Utrzymanie stałej, bezpiecznej temperatury podłogi
        </td>
        <td data-label="Zalety">
          Chroni posadzkę, prostota
        </td>
        <td data-label="Wady / Uwagi">
          Nie reaguje na zmiany temperatury powietrza
          (np. nasłonecznienie, przeciąg)
        </td>
      </tr>

      <tr>
        <td data-label="Tryb pracy">Tylko powietrzny</td>
        <td data-label="Czujnik aktywny">Powietrzny (TA)</td>
        <td data-label="Cel regulacji">
          Utrzymanie zadanej temperatury powietrza w pomieszczeniu
        </td>
        <td data-label="Zalety">
          Bezpośredni wpływ na komfort
        </td>
        <td data-label="Wady / Uwagi">
          Ryzyko przegrzania podłogi; czujnik wrażliwy na lokalne warunki
        </td>
      </tr>

      <tr>
        <td data-label="Tryb pracy">Mieszany (Limit)</td>
        <td data-label="Czujnik aktywny">
          Głównie powietrzny (TA) z limitem podłogowym (DS)
        </td>
        <td data-label="Cel regulacji">
          Temperatura powietrza z priorytetem ochrony podłogi
        </td>
        <td data-label="Zalety">
          Optymalny komfort i bezpieczeństwo – najczęściej zalecany
        </td>
        <td data-label="Wady / Uwagi">
          Wymaga poprawnego rozmieszczenia obu czujników
        </td>
      </tr>

      <tr>
        <td data-label="Tryb pracy">Adaptacyjny (Alg.)</td>
        <td data-label="Czujnik aktywny">
          Oba + algorytmy uczenia
        </td>
        <td data-label="Cel regulacji">
          Komfort przy minimalnym zużyciu energii
        </td>
        <td data-label="Zalety">
          Maksymalna efektywność energetyczna
          (inteligentne termostaty)
        </td>
        <td data-label="Wady / Uwagi">
          Wyższa cena i bardziej złożona konfiguracja
        </td>
      </tr>
    </tbody>
  </table>
</div>



<h2 class="wp-block-heading">Projekt ogrzewania podłogowego a dobór termostatu: Nierozerwalny duet.</h2>



<p class="wp-block-paragraph"><strong>Planowanie systemu sterowania powinno być integralną częścią <a href="https://projekt-ogrzewania.pl/kategoria-produktu/projekty/">projektu ogrzewania podłogowego</a>, a nie myślą dodatkową.</strong> Profesjonalny projekt uwzględnia nie tylko rozmieszczenie pętli grzewczych i średnice rur, ale także:</p>



<ol start="1" class="wp-block-list">
<li><strong>Podział na strefy grzewcze:</strong>&nbsp;Każde pomieszczenie lub grupa pomieszczeń o podobnym charakterze użytkowania i bilansie cieplnym powinno stanowić oddzielną strefę z&nbsp;<strong>indywidualnym termostatem</strong>. Łazienka, salon, sypialnie – każda z nich ma inne wymagania czasowe i temperaturę komfortu.</li>



<li><strong>Dobór typu siłowników i napięcia sterowania:</strong>&nbsp;Projekt powinien precyzyjnie określać, czy na rozdzielaczu zastosujemy siłowniki&nbsp;<em>normalnie otwarte (NO)</em>&nbsp;czy&nbsp;<em>normalnie zamknięte (NC)</em>&nbsp;oraz czy będą to modele 230V czy 24V. Ta decyzja determinuje wybór termostatów.</li>



<li><strong>Lokalizacja czujników podłogowych:</strong>&nbsp;Projekt musi wskazać miejsca wprowadzenia rurek ochronnych na czujniki podłogowe, zwykle pomiędzy rurami grzewczymi, w odległości ok. 50-100 cm od ściany.</li>



<li><strong>Miejsce montażu termostatów:</strong>&nbsp;Należy zaplanować punkty montażowe standardowych puszek elektrycznych pod termostaty. Muszą one znajdować się&nbsp;<strong>na ścianie wewnętrznej, z dala od źródeł ciepła/chłodu</strong>&nbsp;(okna, drzwi balkonowe, kominki, kratki wentylacyjne), na wysokości ok. 1,5 m nad poziomem podłogi.</li>



<li><strong>Integracja z systemem nadrzędnym:</strong> W domach z kotłem kondensacyjnym, pompą ciepła czy systemem solarnym, projekt powinien rozważyć zastosowanie <strong><a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">sterownika pogodowego</a> lub multifunkcyjnego</strong> jako nadrzędnego, który będzie optymalizował pracę źródła ciepła w oparciu o krzywą grzewczą, a <strong>termostaty pokojowe</strong> będą pełnić rolę korekty lokalnej (tzw. funkcja <strong>priorytetu pogodowego</strong>). W takim układzie termostat wysyła sygnał &#8222;żądania ciepła&#8221; do centralnego sterownika, który decyduje o parametrach pracy źródła.</li>
</ol>



<p class="wp-block-paragraph"><strong>Przykład wyliczeniowy &#8211; koszt zaniedbania projektu sterowania:</strong>&nbsp;Załóżmy dom o zapotrzebowaniu na ciepło 12 000 kWh/rok. Brak strefowania i programowania może prowadzić do przegrzewania nieużywanych pomieszczeń. Jeśli w wyniku tego marnujemy tylko&nbsp;<strong>15%</strong>&nbsp;energii, jest to strata&nbsp;<strong>1800 kWh/rok</strong>. Przy cenie gazu ziemnego ok. 0,30 zł/kWh daje to&nbsp;<strong>540 zł rocznie</strong>. Inwestycja w dobre termostaty programowalne (ok. 200-300 zł/szt. dla 8 stref = 2000 zł) zwróci się więc w&nbsp;<strong>około 4 lata</strong>, a przez kolejne lata przynosząc czystą oszczędność.</p>



<h2 class="wp-block-heading">Zaawansowane funkcje i praktyczne porady montażowe.</h2>



<p class="wp-block-paragraph">Nowoczesne termostaty oferują szereg funkcji dodatkowych, zwiększających ich użyteczność:</p>



<ul class="wp-block-list">
<li><strong>Tryb &#8222;przeciwzamrożeniowy&#8221;:</strong>&nbsp;Utrzymuje minimalną temperaturę (np. +5°C lub +7°C), zabezpieczając instalację i wyposażenie domu podczas dłuższych nieobecności w sezonie zimowym.</li>



<li><strong>&#8222;Window function&#8221; (funkcja okienna):</strong>&nbsp;Po wykryciu gwałtownego spadku temperatury (np. po otwarciu okna na przewietrzenie) termostat automatycznie wyłącza ogrzewanie na ustalony czas, by nie marnować energii.</li>



<li><strong>Blokada rodzicielska/klawiszy:</strong>&nbsp;Zabezpiecza ustawienia przed przypadkową lub celową zmianą przez dzieci.</li>



<li><strong>Monitoring zużycia energii:</strong>&nbsp;Niektóre modele szacują zużycie energii na podstawie czasu otwarcia siłownika, co pomaga w zarządzaniu energią.</li>
</ul>



<p class="wp-block-paragraph"><strong>Porady montażowe i serwisowe:</strong></p>



<ul class="wp-block-list">
<li>Przed montażem&nbsp;<strong>koniecznie sprawdź poprawność działania czujnika podłogowego</strong>&nbsp;poprzez pomiar jego rezystancji (zgodnie z wartościami katalogowymi). Jego wymiana po wylaniu posadzki jest bardzo trudna lub niemożliwa.</li>



<li>Unikaj prowadzenia przewodów czujnika podłogowego w tych samych kanałach/trasach co przewody zasilające 230V, by uniknąć zakłóceń.</li>



<li>Pamiętaj, że termostat reguluje&nbsp;<strong>dostęp ciepłej wody do pętli</strong>, ale&nbsp;<strong>nie kontroluje temperatury tej wody</strong>. To zadanie&nbsp;<strong>modułu mieszającego</strong>&nbsp;(z pompą obiegową i głowicą termostatyczną lub sterownikiem). Termostat i mieszacz muszą współpracować.</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-1768550517807"><strong class="schema-faq-question"><strong>Jaki termostat najlepiej sprawdzi się do ogrzewania podłogowego?</strong></strong> <p class="schema-faq-answer">Najlepszym wyborem są termostaty cyfrowe programowalne lub inteligentne, które uwzględniają bezwładność cieplną podłogówki i umożliwiają sterowanie strefowe.</p> </div> <div class="schema-faq-section" id="faq-question-1768550528216"><strong class="schema-faq-question"><strong>Czy w ogrzewaniu podłogowym potrzebny jest czujnik podłogowy?</strong></strong> <p class="schema-faq-answer">Tak. Czujnik podłogowy chroni posadzkę przed przegrzaniem i zwiększa komfort użytkowania, szczególnie przy podłogach drewnianych i panelach.</p> </div> <div class="schema-faq-section" id="faq-question-1768550550512"><strong class="schema-faq-question"><strong>Czy jeden termostat może sterować całym domem?</strong></strong> <p class="schema-faq-answer">Technicznie tak, ale jest to niezalecane. Brak strefowania prowadzi do strat energii i obniżenia komfortu w poszczególnych pomieszczeniach.</p> </div> <div class="schema-faq-section" id="faq-question-1768550573861"><strong class="schema-faq-question"><strong>230V czy 24V – jakie napięcie termostatu wybrać?</strong></strong> <p class="schema-faq-answer">Oba rozwiązania są poprawne, jednak systemy 24V są bezpieczniejsze i częściej stosowane w nowoczesnych instalacjach z wieloma strefami.</p> </div> <div class="schema-faq-section" id="faq-question-1768550581640"><strong class="schema-faq-question"><strong>Czy inteligentny termostat realnie obniża rachunki?</strong></strong> <p class="schema-faq-answer">Tak. Dzięki harmonogramom, geolokalizacji i algorytmom adaptacyjnym oszczędności mogą sięgać nawet 20–30% w skali sezonu grzewczego.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie.</h2>



<p class="wp-block-paragraph">Podsumowując,&nbsp;<strong>termostat w ogrzewaniu podłogowym</strong>&nbsp;to znacznie więcej niż wygodny panel na ścianie. To precyzyjne narzędzie optymalizacji, którego wybór powinien wynikać z przemyślanego&nbsp;<strong>projektu</strong>, znajomości&nbsp;<strong>parametrów technicznych</strong>&nbsp;instalacji oraz realnych&nbsp;<strong>oczekiwań użytkowników</strong>. Inwestycja w zaawansowany, programowalny lub inteligentny system sterowania zwraca się w postaci wymiernych oszczędności, podniesionego komfortu życia oraz ochrony samej instalacji i wykończenia podłogi. W systemie wodnego ogrzewania podłogowego, gdzie reakcje są powolne, a skutki błędów długotrwałe, warto powierzyć kontrolę najlepszemu dostępnemu &#8222;mózgowi&#8221;.</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="SRberQLMf6"><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=TlzBAqBDC9#?secret=SRberQLMf6" data-secret="SRberQLMf6" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/">Termostat 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>Czym jest bezwładność cieplna w ogrzewaniu podłogowym?</title>
		<link>https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Wed, 17 Dec 2025 19:37:24 +0000</pubDate>
				<category><![CDATA[Automatyka grzewcza]]></category>
		<category><![CDATA[Efektywność energetyczna]]></category>
		<category><![CDATA[Fizyka budowli]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort cieplny]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Pompy ciepła]]></category>
		<category><![CDATA[Poradniki budowlane]]></category>
		<category><![CDATA[Poradniki dla inwestorów]]></category>
		<category><![CDATA[Projektowanie instalacji]]></category>
		<category><![CDATA[Projektowanie instalacji grzewczych]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[automatyka pogodowa]]></category>
		<category><![CDATA[bezwładność cieplna]]></category>
		<category><![CDATA[efektywność energetyczna]]></category>
		<category><![CDATA[jastrych]]></category>
		<category><![CDATA[komfort cieplny]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[pompa ciepła]]></category>
		<category><![CDATA[projekt instalacji]]></category>
		<category><![CDATA[sterowanie ogrzewaniem]]></category>
		<category><![CDATA[wylewka betonowa]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2965</guid>

					<description><![CDATA[<p>Bezwładność cieplna to jeden z najczęściej niezrozumianych aspektów ogrzewania podłogowego, a jednocześnie klucz do jego komfortu i efektywności. W artykule wyjaśniamy, czym jest bezwładność cieplna w ogrzewaniu podłogowym, skąd się bierze i jak wpływa na codzienne użytkowanie instalacji. Pokazujemy, dlaczego podłogówka reaguje wolniej niż grzejniki, jaką rolę odgrywa wylewka, materiały wykończeniowe oraz automatyka i w jaki sposób świadome sterowanie pozwala zamienić pozorną wadę w realną przewagę energetyczną.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Czym jest bezwładność cieplna 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>Bezwładność cieplna w ogrzewaniu podłogowym</strong> to fundamentalna cecha fizyczna, która decyduje o charakterystyce pracy, komforcie użytkowania i efektywności całego systemu. W dużym uproszczeniu, jest to właściwość polegająca na powolnym nagrzewaniu i jeszcze wolniejszym stygnięciu masywnej konstrukcji podłogi. To zjawisko, które wynika bezpośrednio z praw termodynamiki i pojemności cieplnej materiałów, takich jak betonowa wylewka, stanowiąca serce wodnej instalacji grzewczej. Zrozumienie mechanizmów rządzących <strong>bezwładnością termiczną</strong> jest niezbędne do prawidłowego zaprojektowania, wykonania, a przede wszystkim – <a href="https://projekt-ogrzewania.pl/category/sterowanie-ogrzewaniem/">sterowania ogrzewaniem podłogowym</a>, aby w pełni wykorzystać jego potencjał i uniknąć kosztownych błędów eksploatacyjnych.</p>



<h2 class="wp-block-heading">Fizyka stojąca za bezwładnością termiczną: Magazyn energii cieplnej.</h2>



<p class="wp-block-paragraph">Aby w pełni zrozumieć,&nbsp;<strong>czym jest bezwładność cieplna w ogrzewaniu podłogowym</strong>, należy odwołać się do podstawowych pojęć fizycznych. Kluczowym parametrem jest&nbsp;<strong>pojemność cieplna właściwa</strong>&nbsp;materiału, czyli ilość energii potrzebna do podniesienia temperatury 1 kg tej substancji o 1 stopień Kelvina. Im wyższa ta wartość, tym więcej ciepła materiał może &#8222;zaabsorbować&#8221; i później oddawać.</p>



<h3 class="wp-block-heading">Konstrukcja podłogi jako akumulator.</h3>



<p class="wp-block-paragraph">Wodne ogrzewanie podłogowe to nie tylko <a href="https://projekt-ogrzewania.pl/rury-do-ogrzewania-podlogowego/">rury</a> z ciepłą wodą. To złożony &#8222;tort&#8221; warstwowy, z których każda ma wpływ na dynamikę systemu. Głównym magazynem ciepła jest:</p>



<ul class="wp-block-list">
<li><strong>Jastrych (wylewka) betonowy</strong>: Standardowa warstwa o grubości 5-8 cm i gęstości ok. 2000 kg/m³ ma ogromną masę i znaczną pojemność cieplną. To właśnie ona nadaje systemowi charakterystyczną <strong>dużą bezwładność</strong>.</li>



<li><strong>Warstwa wykończeniowa</strong>: Płytki ceramiczne lub kamienne współpracują z jastrychem, zwiększając efekt akumulacji. Drewno i panele laminowane mają znacznie mniejszą pojemność cieplną.</li>



<li><strong>Izolacja termiczna</strong>: Choć jej głównym zadaniem jest kierowanie ciepła w górę, to również wpływa na dynamikę, spowalniając niepożądane oddawanie ciepła w dół.</li>
</ul>



<p class="wp-block-paragraph">Proces nagrzewania takiej masywności jest powolny. Ciepło z wody w rurach musi zostać przewiedzione przez ściankę rury, następnie do otulającego ją betonu, by w końcu, przez warstwę wykończeniową, dotrzeć do pomieszczenia. Cały ten proces może trwać kilkanaście godzin od momentu uruchomienia źródła ciepła.</p>



<h2 class="wp-block-heading">Czynniki kształtujące poziom bezwładności w instalacji.</h2>



<p class="wp-block-paragraph">Nie każda podłogówka reaguje tak samo. Na&nbsp;<strong>stopień bezwładności systemu</strong>&nbsp;wpływa szereg czynników, które można (i należy) modyfikować już na etapie projektu.</p>



<h3 class="wp-block-heading">Grubość i rodzaj jastrychu.</h3>



<ul class="wp-block-list">
<li><strong>Grubsza wylewka (np. 8-10 cm)</strong> = większa masa = <strong>większa bezwładność cieplna</strong> i dłuższy czas reakcji.</li>



<li><strong>Cieńsza wylewka (np. 4-5 cm)</strong> lub systemy suche (płyty gipsowo-włóknowe z kanałami na rury) = mniejsza masa = <strong>mniejsza bezwładność</strong>, szybsze nagrzewanie i chłodzenie.</li>
</ul>



<h3 class="wp-block-heading">Materiał wykończeniowy podłogi.</h3>



<p class="wp-block-paragraph">Poniższa tabela ilustruje wpływ różnych materiałów na charakterystykę oddawania ciepła i bezwładność systemu:</p>



<style>
.table-responsive {
  width: 100%;
  overflow-x: auto;
  margin: 20px 0;
}

.table-responsive table {
  width: 100%;
  border-collapse: collapse;
  min-width: 700px;
  font-size: 15px;
}

.table-responsive th,
.table-responsive td {
  padding: 12px 14px;
  border: 1px solid #e0e0e0;
  text-align: left;
  vertical-align: top;
}

.table-responsive th {
  background-color: #f5f5f5;
  font-weight: 600;
}

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

/* Mobile tweaks */
@media (max-width: 768px) {
  .table-responsive table {
    font-size: 14px;
  }
}
</style>

<div class="table-responsive">
  <table>
    <thead>
      <tr>
        <th>Materiał wykończeniowy</th>
        <th>Przewodność cieplna (λ) [W/mK]</th>
        <th>Pojemność cieplna</th>
        <th>Wpływ na bezwładność systemu</th>
        <th>Czas reakcji</th>
        <th>Komfort cieplny</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><strong>Płytki ceramiczne / kamień</strong></td>
        <td>Wysokie (ok. 1.0–1.5)</td>
        <td>Duża</td>
        <td>Zwiększa (współpracuje z jastrychem)</td>
        <td>Dłuższy</td>
        <td>Doskonały, równomierne ciepło</td>
      </tr>
      <tr>
        <td><strong>Panele winylowe (LVT)</strong></td>
        <td>Średnie</td>
        <td>Mała</td>
        <td>Neutralny / lekko redukuje</td>
        <td>Średni</td>
        <td>Dobry</td>
      </tr>
      <tr>
        <td><strong>Drewno lite</strong></td>
        <td>Niskie (ok. 0.15–0.25)</td>
        <td>Średnia</td>
        <td>Zmniejsza (działa jako izolator)</td>
        <td>Krótszy</td>
        <td>Ciepłe w dotyku, wolniejsze oddawanie</td>
      </tr>
      <tr>
        <td><strong>Wykładzina dywanowa</strong></td>
        <td>Bardzo niskie</td>
        <td>Mała</td>
        <td>Znacznie zmniejsza (izoluje!)</td>
        <td>Znacznie krótszy</td>
        <td>Powierzchnia przyjemna, ale blokuje ciepło</td>
      </tr>
    </tbody>
  </table>
</div>




<h3 class="wp-block-heading">Parametry pracy źródła ciepła i instalacji.</h3>



<ul class="wp-block-list">
<li><strong>Temperatura zasilania</strong>: Niższa temperatura wody (np. 35-40°C) wymaga dłuższego czasu na przekazanie tej samej ilości energii do masywnej podłogi niż woda o temperaturze 50°C.</li>



<li><strong><a href="https://projekt-ogrzewania.pl/rozstaw-rur-w-ogrzewaniu-podlogowym-co-10-czy-15-cm/">Rozstaw</a> i głębokość pętli grzewczych</strong>: Gęstszy rozstaw rur (np. 10 cm vs 20 cm) przyspiesza nagrzewanie warstwy akumulacyjnej.</li>
</ul>



<h2 class="wp-block-heading">Bezwładność a sterowanie: Wyzwanie dla nowoczesnej automatyki.</h2>



<p class="wp-block-paragraph">To właśnie w obszarze sterowania&nbsp;<strong>bezwładność termiczna podłogówki</strong>&nbsp;stawia największe wyzwania. Tradycyjne, dwupołoweniowe sterowanie typu &#8222;włącz/wyłącz&#8221; na podstawie wskazań pokojowego termostatu jest tu&nbsp;<strong>skrajnie nieefektywne</strong>.</p>



<h3 class="wp-block-heading">Dlaczego klasyczny termostat zawodzi?</h3>



<p class="wp-block-paragraph">Wyobraźmy sobie, że termostat wyłączy <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">pompę obiegową</a> w momencie osiągnięcia żądanej temperatury pokojowej. Masywna podłoga jest wtedy gorąca i jeszcze przez wiele godzin oddaje zgromadzone ciepło, prowadząc do <strong>efektu przegrzania</strong>. Gdy temperatura spadnie i termostat znów załączy ogrzewanie, podłoga jest jeszcze ciepła, a na odczuwalny efekt w pomieszczeniu trzeba będzie czekać kolejne godziny – powstają duże wahania temperatury.</p>



<h3 class="wp-block-heading">Optymalne strategie sterowania.</h3>



<p class="wp-block-paragraph">Aby opanować&nbsp;<strong>bezwładność w ogrzewaniu podłogowym</strong>, stosuje się zaawansowane systemy regulacji:</p>



<ol start="1" class="wp-block-list">
<li><strong>Sterowanie pogodowe (z kurtyną czasową)</strong>: To najskuteczniejsza metoda. Sterownik, na podstawie temperatury zewnętrznej i krzywej grzewczej, oblicza wymaganą temperaturę wody zasilającej pętle. Uwzględnia on również <strong>opóźnienie systemu (bezwładność)</strong>. Gdy prognozowany jest spadek temperatury na zewnątrz, sterownik wcześniej zwiększa temperaturę zasilania, aby kompensować spowolnioną reakcję podłogi. Decyzja nie zależy od chwilowej temperatury w pomieszczeniu.</li>



<li><strong>Stała temperatura zasilania z modulacją pompą</strong>: W systemach o dużej bezwładności często utrzymuje się stałą, niską temperaturę w obiegu podłogowym przez cały sezon. Regulacji dokonuje się poprzez załączanie i wyłączanie pompy obiegowej (z płynną modulacją obrotów). Często łączy się to z funkcją <strong>priorytetu bufora</strong> – pompa ciepła ładuje magazyn (bufor), z którego ciepło jest czerpane do podłogówki.</li>



<li><strong>Regulacja proporcjonalno-całkująco-różniczkująca (PID)</strong>: Nowoczesne sterowniki pokojowe z algorytmem PID nie działają w trybie włącz/wyłącz. Antycypują one zmiany, łagodnie modulując pracą, aby utrzymać stałą temperaturę docelową, minimalizując przegrzania i niedogrzania.</li>
</ol>



<h2 class="wp-block-heading">Konsekwencje bezwładności: Mocne strony i ograniczenia systemu.</h2>



<p class="wp-block-paragraph">Zrozumienie&nbsp;<strong>bezwładności cieplnej podłogówki</strong>&nbsp;pozwala świadomie wykorzystać jej zalety i zminimalizować wady.</p>



<h3 class="wp-block-heading">Korzyści wynikające z dużej bezwładności termicznej.</h3>



<ul class="wp-block-list">
<li><strong>Niezrównany komfort cieplny</strong>: Ciepło jest oddawane w sposób niezwykle równomierny, bez odczuwalnych cykli grzania. Brak gorących powiewów i cyrkulacji kurzu.</li>



<li><strong>Idealna współpraca z OZE</strong>: <strong>Ogrzewanie podłogowe o dużej bezwładności</strong> to perfekcyjny partner dla <a href="https://projekt-ogrzewania.pl/category/pompy-ciepla/">pomp ciepła</a>. Umożliwia im długotrwałą, ciągłą pracę z wysokim współczynnikiem COP (efektywności) przy niskich temperaturach zasilania. Podobnie współpracuje z kotłami na paliwa stałe, akumulując ciepło z jednego załadunku.</li>



<li><strong>Możliwość wykorzystania taryf energii</strong>: System można programować tak, aby główny doładowanie termiczne magazynu (podłogi) następowało w czasie trwania tańszej taryfy nocnej/dziennej, a ciepło oddawane było w godzinach szczytu.</li>



<li><strong>Stabilizacja mikroklimatu</strong>: Masywna podłoga działa jak ogromny stabilizator temperatury w pomieszczeniu, tłumiąc krótkotrwałe wahania caused przez nasłonecznienie czy otwarcie drzwi.</li>
</ul>



<h3 class="wp-block-heading">Wyzwania i praktyczne ograniczenia.</h3>



<ul class="wp-block-list">
<li><strong>Brak możliwości szybkiego dogrzania</strong>: To największe praktyczne ograniczenie. Jeśli wracamy do zimnego domu, nie możemy oczekiwać szybkiego wzrostu temperatury. Podłoga potrzebuje czasu. Rozwiązaniem jest odpowiednie <strong>programowanie obniżeń temperatury</strong> (np. o 1-2°C, a nie o 5-6°C) lub zastosowanie dodatkowego, szybko reagującego źródła ciepła (np. grzejnik łazienkowy, klimatyzator).</li>



<li><strong>Ryzyko przegrzania i trudność chłodzenia</strong>: Błąd w sterowaniu może prowadzić do nadmiernego nagrzania masywnej płyty. Jej schłodzenie poprzez naturalne oddawanie ciepła lub wentylację może trwać nawet kilka dni, co jest uciążliwe.</li>



<li><strong>Wysokie wymagania dla automatyki</strong>: Jak opisano wcześniej, wymaga zaawansowanych i często droższych systemów sterowania.</li>



<li><strong>Długi czas uruchomienia systemu na początku sezonu</strong>: Pierwsze nagrzanie wychłodzonej po lecie konstrukcji jest procesem rozłożonym w czasie, wymagającym cierpliwości.</li>
</ul>



<h2 class="wp-block-heading">Projektowanie ogrzewania podłogowego z uwzględnieniem bezwładności cieplnej.</h2>



<p class="wp-block-paragraph"><strong>Kluczowym etapem, w którym kształtuje się przyszły charakter systemu, jest projekt.</strong>&nbsp;To na biurku projektanta zapadają decyzje, które zdeterminują&nbsp;<strong>poziom bezwładności cieplnej</strong>&nbsp;i jej konsekwencje.</p>



<p class="wp-block-paragraph">Dobry <strong><a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/">projekt instalacji podłogowej</a></strong> nie ogranicza się tylko do rozplanowania pętli grzewczych. Musi on <strong>kompleksowo uwzględniać dynamikę całego układu</strong>. Projektant powinien świadomie dobrać:</p>



<ul class="wp-block-list">
<li><strong>Grubość i rodzaj jastrychu</strong> w kontekście oczekiwanego czasu reakcji i przewidywanego źródła ciepła (pompa ciepła -> korzystna duża bezwładność).</li>



<li><strong>Materiały wykończeniowe</strong> – ich opór cieplny jest zawsze brany pod uwagę w obliczeniach mocy grzewczej. Współpraca z inwestorem przy tym wyborze jest kluczowa.</li>



<li><strong>Strategię sterowania</strong> już na etapie koncepcji. Określa się, czy będzie to sterownik pogodowy, czy pokojowy, jak podzielone zostaną strefy grzewcze.</li>



<li><strong>Parametry źródła ciepła</strong> – obliczeniowa temperatura zasilania i powrotu musi być skoordynowana z charakterystyką podłogówki.</li>



<li><strong>Czasy reakcji systemu</strong> – szacuje się je, aby przekazać użytkownikowi realne oczekiwania co do sterowania (np.: &#8222;Obniżenie temperatury dziennej o 2°C będzie wymagało rozpoczęcia nagrzewania 3 godziny przed planowanym powrotem do domu&#8221;).</li>
</ul>



<p class="wp-block-paragraph">Pominięcie analizy&nbsp;<strong>bezwładności w projekcie</strong>&nbsp;prowadzi do najczęstszych problemów eksploatacyjnych: przegrzewania, wrażenia &#8222;niedogrzania&#8221; lub niepotrzebnie wysokich kosztów energii wynikających z walki systemu z samym sobą.</p>



<h2 class="wp-block-heading">Praktyczne wskazówki eksploatacyjne dla systemów o dużej bezwładności</h2>



<p class="wp-block-paragraph">Podsumowując techniczny aspekt, warto sformułować praktyczne zasady postępowania z&nbsp;<strong>bezwładnym ogrzewaniem podłogowym</strong>:</p>



<ol start="1" class="wp-block-list">
<li><strong>Zapomnij o szybkich zmianach</strong>: Nie próbuj gwałtownie podnosić temperatury. Jeśli chcesz cieplej, zwiększ nastawę o 0,5-1°C i poczekaj wiele godzin na pełny efekt.</li>



<li><strong>Inteligentne programowanie</strong>: Używaj funkcji <strong>ogrzewania okresowego</strong> (np. &#8222;nieobecności&#8221;) w sposób przemyślany. Lepiej jest utrzymywać stały, lekko obniżony poziom temperatury (np. 18°C) niż wyłączać ogrzewanie całkowicie, ponieważ ponowne nagrzanie masywu będzie długotrwałe i energochłonne.</li>



<li><strong>Współpraca z innymi źródłami</strong>: W pomieszczeniach, gdzie potrzebna jest szybka reakcja (łazienka), rozważ uzupełnienie systemu o <strong>dodatkowe, szybko reagujące źródło</strong>, takie jak elektryczna mata grzewcza włączana timerem lub grzejnik łazienkowy podłączony do obiegu grzewczego.</li>



<li><strong>Monitoruj, nie tylko steruj</strong>: Obserwuj zachowanie systemu w różnych warunkach pogodowych. Nowoczesne sterowniki oferują logi pracy i zużycia energii, które pomagają zoptymalizować ustawienia pod konkretny budynek i zwyczaje mieszkańców.</li>
</ol>



<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-1765978603711"><strong class="schema-faq-question"><strong>Czy duża bezwładność cieplna w ogrzewaniu podłogowym to wada?</strong></strong> <p class="schema-faq-answer">Nie. To cecha fizyczna systemu. Przy odpowiednim sterowaniu staje się zaletą, zapewniając stabilną temperaturę i wysoki komfort cieplny.</p> </div> <div class="schema-faq-section" id="faq-question-1765978618810"><strong class="schema-faq-question"><strong>Ile czasu nagrzewa się ogrzewanie podłogowe?</strong></strong> <p class="schema-faq-answer">W zależności od grubości wylewki i parametrów instalacji pełny efekt może pojawić się po kilku, a nawet kilkunastu godzinach od uruchomienia.</p> </div> <div class="schema-faq-section" id="faq-question-1765978629234"><strong class="schema-faq-question"><strong>Czy można zmniejszyć bezwładność cieplną podłogówki?</strong></strong> <p class="schema-faq-answer">Tak, stosując cieńsze jastrychy, systemy suche lub materiały wykończeniowe o niższej pojemności cieplnej, jednak zawsze jest to kompromis z akumulacją ciepła.</p> </div> <div class="schema-faq-section" id="faq-question-1765978649979"><strong class="schema-faq-question"><strong>Jak najlepiej sterować ogrzewaniem podłogowym o dużej bezwładności?</strong></strong> <p class="schema-faq-answer">Najlepiej sprawdza się sterowanie pogodowe lub zaawansowane algorytmy PID, które uwzględniają opóźnienia reakcji systemu.</p> </div> <div class="schema-faq-section" id="faq-question-1765978657614"><strong class="schema-faq-question"><strong>Czy bezwładność cieplna dobrze współpracuje z pompą ciepła?</strong></strong> <p class="schema-faq-answer">Tak. Ogrzewanie podłogowe o dużej bezwładności idealnie pasuje do pomp ciepła, umożliwiając ich stabilną i energooszczędną pracę przy niskich temperaturach zasilania.</p> </div> </div>



<h2 class="wp-block-heading">Podsumowanie.</h2>



<p class="wp-block-paragraph"><strong>Podsumowując, bezwładność cieplna w ogrzewaniu podłogowym</strong>&nbsp;nie jest ani wadą, ani zaletą – jest&nbsp;<strong>fundamentalną cechą fizyczną</strong>&nbsp;tego systemu. Jej ignorowanie prowadzi do frustracji i niskiej efektywności. Świadome projektowanie, odpowiedni dobór materiałów oraz zastosowanie zaawansowanej automatyki pozwala&nbsp;<strong>wykorzystać bezwładność termiczną jako atut</strong>, przekształcając ją w filtr stabilizujący komfort cieplny i narzędzie do oszczędnej, zgodnej z zasadami fizyki, eksploatacji energii. To właśnie sprawia, że wodne ogrzewanie podłogowe, pomimo swej prostoty koncepcyjnej, pozostaje jednym z najbardziej zaawansowanych technologicznie i komfortowych systemów grzewczych.</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="Kf8VCVkkvJ"><a href="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/">Projekt ogrzewania podłogowego &#8211; do 150 m2</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8222;Projekt ogrzewania podłogowego &#8211; do 150 m2&#8221; &#8212; Projekt Ogrzewania" src="https://projekt-ogrzewania.pl/produkt/projekt-ogrzewania-podlogowego-do-150-m2/embed/#?secret=91GrYpPCMn#?secret=Kf8VCVkkvJ" data-secret="Kf8VCVkkvJ" 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-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">Czym jest bezwładność cieplna w ogrzewaniu podłogowym?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Czy warto montować sterowniki do ogrzewania podłogowego?</title>
		<link>https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/</link>
		
		<dc:creator><![CDATA[Robert Kucharski]]></dc:creator>
		<pubDate>Thu, 11 Dec 2025 10:36:22 +0000</pubDate>
				<category><![CDATA[Automatyka domowa]]></category>
		<category><![CDATA[Energooszczędność]]></category>
		<category><![CDATA[Instalacje grzewcze]]></category>
		<category><![CDATA[Komfort w domu]]></category>
		<category><![CDATA[Ogrzewanie podłogowe]]></category>
		<category><![CDATA[Poradniki techniczne]]></category>
		<category><![CDATA[Projekty instalacji]]></category>
		<category><![CDATA[Smart home]]></category>
		<category><![CDATA[Sterowanie ogrzewaniem]]></category>
		<category><![CDATA[Sterowniki do podłogówki]]></category>
		<category><![CDATA[Technika grzewcza]]></category>
		<category><![CDATA[automatyka grzewcza]]></category>
		<category><![CDATA[instalacje grzewcze]]></category>
		<category><![CDATA[ogrzewanie podłogowe]]></category>
		<category><![CDATA[oszczędność energii]]></category>
		<category><![CDATA[projekt ogrzewania]]></category>
		<category><![CDATA[regulacja temperatury]]></category>
		<category><![CDATA[smart home]]></category>
		<category><![CDATA[sterownik pogodowy]]></category>
		<category><![CDATA[sterownik pokojowy]]></category>
		<category><![CDATA[sterowniki do podłogówki]]></category>
		<guid isPermaLink="false">https://projekt-ogrzewania.pl/?p=2934</guid>

					<description><![CDATA[<p>Czy warto montować sterowniki do ogrzewania podłogowego? To pytanie zadaje sobie dziś większość osób planujących nowoczesny system grzewczy w swoim domu. Podłogówka sama w sobie daje komfort, ale dopiero odpowiednia automatyka pozwala realnie oszczędzać, podnosić wygodę i wykorzystać pełen potencjał instalacji. W zajawce wyjaśniamy, dlaczego sterowniki stają się nieodłącznym elementem współczesnych systemów grzewczych i jak wpływają na ich efektywność, trwałość oraz codzienną eksploatację.</p>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">Czy warto montować sterowniki do 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-blue: #0284c7;
    --rk-intro-blue-light: #e0f2fe;
    --rk-intro-green: #10b981;
    --rk-intro-green-light: #dcfce7;
    --rk-intro-gray: #475569;
    --rk-intro-gray-light: #f8fafc;
    --rk-intro-bg: #ffffff;
    --rk-intro-border: #e2e8f0;
}

.rk-intro-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-intro-bg);
    border: 2px solid var(--rk-intro-dark);
    /* Brak border-radius - styl surowy, techniczny */
}

/* Sekcja Hook i Szybka Odpowiedź */
.rk-intro-hero {
    padding: 45px 50px;
    background: var(--rk-intro-dark);
    color: #ffffff;
    border-bottom: 5px solid var(--rk-intro-blue);
}

.rk-intro-hook {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-intro-blue-light);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    gap: 10px;
}

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

.rk-intro-answer-box {
    background: #1e293b;
    border-left: 6px solid var(--rk-intro-green);
    padding: 25px 30px;
}

.rk-intro-answer-title {
    font-size: 13px;
    color: var(--rk-intro-green);
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.rk-intro-answer-text {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.6;
    margin: 0;
    color: #f8fafc;
}

.rk-intro-answer-text strong {
    color: #ffffff;
    font-weight: 900;
    background: var(--rk-intro-green);
    padding: 2px 8px;
    border-radius: 4px;
}

/* Sekcja merytoryczna */
.rk-intro-content {
    padding: 40px 50px;
    font-size: 16px;
    color: var(--rk-intro-gray);
    line-height: 1.7;
}

.rk-intro-content p {
    margin: 0 0 20px 0;
}

.rk-intro-content a {
    color: var(--rk-intro-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Interaktywny Nawigator Artykułu (Brak animacji) */
.rk-intro-nav {
    margin-top: 40px;
    border: 1px solid var(--rk-intro-border);
    background: var(--rk-intro-gray-light);
}

.rk-intro-nav-header {
    background: var(--rk-intro-border);
    padding: 15px 30px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    font-size: 15px;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    gap: 10px;
}

.rk-intro-nav-tabs {
    display: flex;
    border-bottom: 1px solid var(--rk-intro-border);
    background: #ffffff;
}

.rk-intro-tab-btn {
    flex: 1;
    padding: 15px 20px;
    background: #ffffff;
    border: none;
    border-bottom: 3px solid transparent;
    border-right: 1px solid var(--rk-intro-border);
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-intro-gray);
    cursor: pointer;
}

.rk-intro-tab-btn:last-child {
    border-right: none;
}

.rk-intro-tab-btn:hover {
    background: var(--rk-intro-gray-light);
}

.rk-intro-tab-btn.is-active {
    background: var(--rk-intro-blue-light);
    color: var(--rk-intro-blue);
    border-bottom-color: var(--rk-intro-blue);
}

.rk-intro-panels {
    padding: 30px;
    background: #ffffff;
}

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

.rk-intro-panel.is-active {
    display: block;
}

.rk-intro-panel-title {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-intro-dark);
    margin: 0 0 10px 0;
}

.rk-intro-panel-desc {
    font-size: 14px;
    color: var(--rk-intro-gray);
    margin: 0;
    line-height: 1.6;
}

@media (max-width: 768px) {
    .rk-intro-container { margin: 20px auto; border-left: none; border-right: none; }
    .rk-intro-hero, .rk-intro-content { padding: 30px 20px; }
    .rk-intro-hero h2 { font-size: 24px; }
    .rk-intro-answer-box { padding: 20px; }
    .rk-intro-answer-text { font-size: 16px; }
    .rk-intro-nav-tabs { flex-direction: column; }
    .rk-intro-tab-btn { border-right: none; border-bottom: 1px solid var(--rk-intro-border); border-left: 4px solid transparent; text-align: left; }
    .rk-intro-tab-btn.is-active { border-left-color: var(--rk-intro-blue); border-bottom-color: var(--rk-intro-border); }
    .rk-intro-panels { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-wstep",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Czy warto montować sterowniki do ogrzewania podłogowego? Szybka odpowiedź",
    "description": "Bezpośrednia inżynierska odpowiedź na pytanie o opłacalność automatyki podłogówki. Poznaj argumenty, które pozwolą Ci zaoszczędzić od 15% do 25% energii.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-wstep",
    "name": "Kluczowe wskaźniki efektywności (KPI) dla automatyki ogrzewania płaszczyznowego",
    "description": "Wstępne zestawienie danych wejściowych dotyczących redukcji kosztów eksploatacyjnych po montażu sterowników strefowych.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy warto montować sterowniki do ogrzewania podłogowego",
      "automatyka strefowa do podłogówki czy warto",
      "koszty eksploatacji budynku z pompą ciepła",
      "bezwładność termiczna jastrychu a sterowanie",
      "optymalizacja sprawności cop kotła"
    ],
    "measurementTechnique": "Deklaracja początkowego wskaźnika redukcji zużycia energii (15-25%) uzyskanego poprzez strefową blokadę przepływu czynnika grzewczego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Montaż sterowników jest w 100% technicznie i ekonomicznie uzasadniony.",
        "Automatyka zabezpiecza materiał posadzki przed przegrzewaniem i optymalizuje COP."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-wstep",
    "name": "Nawigator Narzędzi Inżynierskich",
    "description": "Moduł wprowadzający czytelnika do zagnieżdżonych w artykule interaktywnych kalkulatorów i symulatorów procesów cieplnych.",
    "applicationCategory": "NavigationApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-intro-container" id="rk-intro-app">
    <div class="rk-intro-hero">
        <div class="rk-intro-hook">
            <svg width="18" height="18" 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><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
            Budowa bez ściemy
        </div>
        <h2>Czy warto montować sterowniki do ogrzewania podłogowego?</h2>
        
        <div class="rk-intro-answer-box">
            <div class="rk-intro-answer-title">
                <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>
                Inżynierski Werdykt
            </div>
            <p class="rk-intro-answer-text">
                <strong>TAK.</strong> Montaż sterowników do wodnego ogrzewania podłogowego jest opłacalny i technicznie uzasadniony. Pozwala obniżyć koszty eksploatacji budynku o <strong>15% do 25%</strong>, brutalnie eliminując zjawisko permanentnego przegrzewania pomieszczeń.
            </p>
        </div>
    </div>

    <div class="rk-intro-content">
        <p>Instalator mówi, że pompa ciepła &#8222;sama sobie poradzi&#8221;, a Ty zastanawiasz się, czy inwestować w dodatkową elektronikę? Prawda jest taka, że bez precyzyjnego sterowania oddajesz kontrolę nad swoimi rachunkami ślepemu trafowi.</p>
        
        <p>Automatyka strefowa bezpośrednio dopasowuje wydatek cieplny poszczególnych pętli do rzeczywistego zapotrzebowania, kompensując tym samym wysoką <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność termiczną jastrychu</a>. Bezpośrednia kontrola nad przepływem czynnika grzewczego w każdej strefie z osobna chroni drogi materiał posadzki przed uszkodzeniem termicznym i drastycznie optymalizuje sprawność (COP) Twojej pompy ciepła lub kotła kondensacyjnego.</p>

        <div class="rk-intro-nav">
            <div class="rk-intro-nav-header">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 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>
                Co potrafią darmowe narzędzia w tym artykule?
            </div>
            
            <div class="rk-intro-nav-tabs">
                <button class="rk-intro-tab-btn is-active" data-show="n-roi">Kalkulator ROI</button>
                <button class="rk-intro-tab-btn" data-show="n-pwm">Symulator Algorytmu</button>
                <button class="rk-intro-tab-btn" data-show="n-ntc">Ochrona Posadzki</button>
            </div>

            <div class="rk-intro-panels">
                <div class="rk-intro-panel is-active" id="n-roi">
                    <h4 class="rk-intro-panel-title">Oblicz, kiedy zwróci Ci się inwestycja</h4>
                    <p class="rk-intro-panel-desc">Poniżej znajdziesz interaktywny kalkulator finansowy. Wpisz powierzchnię swojego domu oraz cenę prądu, aby natychmiast zobaczyć, w ile miesięcy oszczędności pokryją koszt zakupu listwy, siłowników i termostatów.</p>
                </div>
                
                <div class="rk-intro-panel" id="n-pwm">
                    <h4 class="rk-intro-panel-title">Zobacz fizykę w akcji (Algorytm PWM)</h4>
                    <p class="rk-intro-panel-desc">Oddajemy w Twoje ręce symulator inżynierski. Przekonaj się na własne oczy, jak uchyb temperatury wpływa na czas otwarcia siłownika przy wylewce betonowej, a jak przy anhydrytowej. Koniec z wróżeniem z fusów.</p>
                </div>
                
                <div class="rk-intro-panel" id="n-ntc">
                    <h4 class="rk-intro-panel-title">Ochrona paneli przed stopieniem (Czujnik NTC)</h4>
                    <p class="rk-intro-panel-desc">Wizualizacja trybu dwukanałowego. Sprawdź interaktywny model pokazujący, co dzieje się z Twoimi panelami winylowymi, gdy przekroczysz barierę 27°C i dlaczego czujnik w wylewce to absolutna konieczność.</p>
                </div>
            </div>
        </div>
        
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const navBtns = document.querySelectorAll('.rk-intro-tab-btn');
    const navPanels = document.querySelectorAll('.rk-intro-panel');

    navBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Twarde przełączanie (bez animacji, bez &&)
            const targetId = this.getAttribute('data-show');
            
            navBtns.forEach(function(b) {
                b.classList.remove('is-active');
            });
            
            navPanels.forEach(function(p) {
                p.classList.remove('is-active');
            });

            this.classList.add('is-active');
            
            const activePanel = document.getElementById(targetId);
            if (activePanel) {
                activePanel.classList.add('is-active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-flow-dark: #0f172a;
    --rk-flow-darker: #0b1120;
    --rk-flow-blue: #0284c7;
    --rk-flow-blue-light: #e0f2fe;
    --rk-flow-green: #10b981;
    --rk-flow-orange: #f59e0b;
    --rk-flow-red: #ef4444;
    --rk-flow-gray: #475569;
    --rk-flow-bg: #ffffff;
    --rk-flow-border: #e2e8f0;
}

.rk-flow-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-flow-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-flow-blue);
    overflow: hidden;
}

.rk-flow-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-flow-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-flow-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-flow-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0 0 15px 0;
    line-height: 1.7;
}
.rk-flow-header p:last-child { margin-bottom: 0; }

.rk-flow-header a {
    color: #38bdf8;
    text-decoration: none;
    border-bottom: 1px dashed #38bdf8;
    font-weight: 600;
    transition: color 0.3s;
}

.rk-flow-header a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.rk-flow-body {
    padding: 40px 50px;
    background: #f8fafc;
}

.rk-flow-text-section {
    background: var(--rk-flow-bg);
    border: 1px solid var(--rk-flow-border);
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-flow-text-section p {
    font-size: 15px;
    color: var(--rk-flow-gray);
    line-height: 1.6;
    margin: 0;
}

.rk-flow-highlight {
    background: var(--rk-flow-blue-light);
    color: var(--rk-flow-blue);
    padding: 2px 6px;
    border-radius: 4px;
    font-weight: 700;
}

/* Interaktywny Symulator Pętli */
.rk-flow-interactive {
    background: var(--rk-flow-darker);
    border-radius: 20px;
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.3);
}

.rk-flow-interactive-title {
    color: #ffffff;
    font-size: 20px;
    font-weight: 800;
    margin: 0 0 30px 0;
    text-align: center;
}

.rk-flow-btn-trigger {
    background: var(--rk-flow-orange);
    color: #ffffff;
    border: none;
    padding: 16px 32px;
    font-size: 16px;
    font-weight: 800;
    border-radius: 12px;
    cursor: pointer;
    box-shadow: 0 10px 20px -5px rgba(245, 158, 11, 0.4);
    transition: all 0.3s;
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 40px;
    z-index: 10;
}

.rk-flow-btn-trigger:hover {
    transform: translateY(-3px);
    background: #d97706;
}

.rk-flow-btn-trigger:disabled {
    background: #475569;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Kontener SVG */
.rk-flow-svg-wrap {
    width: 100%;
    max-width: 700px;
    height: 250px;
    position: relative;
}

.rk-svg-component {
    fill: #1e293b;
    stroke: #334155;
    stroke-width: 2;
    rx: 8;
    transition: all 0.3s;
}

.rk-svg-text {
    fill: #cbd5e1;
    font-size: 12px;
    font-family: 'Inter', sans-serif;
    font-weight: 700;
    text-anchor: middle;
}

.rk-svg-wire {
    fill: none;
    stroke: #334155;
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rk-svg-signal {
    fill: none;
    stroke: var(--rk-flow-blue);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
}

.rk-svg-sun {
    fill: var(--rk-flow-orange);
    opacity: 0;
    transform: scale(0.5);
    transform-origin: 50px 50px;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Stany Animacji (Dodawane przez JS) */
.state-step-1 .rk-svg-sun { opacity: 1; transform: scale(1); animation: rkPulseSun 2s infinite; }
.state-step-2 .rk-svg-comp-thermostat { fill: var(--rk-flow-blue); stroke: #38bdf8; }
.state-step-2 .rk-svg-text-thermostat { fill: #ffffff; }
.state-step-3 .rk-svg-signal-1 { animation: rkRunSignal 1s forwards linear; }
.state-step-4 .rk-svg-comp-listwa { fill: var(--rk-flow-blue); stroke: #38bdf8; }
.state-step-5 .rk-svg-signal-2 { animation: rkRunSignal 1.5s forwards linear; }
.state-step-6 .rk-svg-comp-actuator { fill: var(--rk-flow-red); stroke: #fca5a5; transition: fill 3s; /* Symulacja powolnego zamknięcia */ }
.state-step-6 .rk-svg-water-flow { stroke-dashoffset: 100; transition: stroke-dashoffset 3s linear; }

@keyframes rkPulseSun {
    0% { filter: drop-shadow(0 0 5px rgba(245, 158, 11, 0.5)); }
    50% { filter: drop-shadow(0 0 15px rgba(245, 158, 11, 0.8)); transform: scale(1.1); }
    100% { filter: drop-shadow(0 0 5px rgba(245, 158, 11, 0.5)); }
}

@keyframes rkRunSignal {
    to { stroke-dashoffset: 0; }
}

.rk-flow-status-text {
    position: absolute;
    bottom: 20px;
    color: var(--rk-flow-green);
    font-weight: 800;
    font-size: 14px;
    letter-spacing: 1px;
    text-transform: uppercase;
    opacity: 0;
    transition: opacity 0.5s;
}

.rk-flow-status-text.visible {
    opacity: 1;
}

@media (max-width: 768px) {
    .rk-flow-container { margin: 20px auto; border-radius: 16px; }
    .rk-flow-header, .rk-flow-body { padding: 25px 20px; }
    .rk-flow-header h2 { font-size: 24px; }
    .rk-flow-svg-wrap { height: 350px; }
    .rk-flow-interactive { padding: 30px 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-sprzezenie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Jak działa automatyka do podłogówki i dlaczego ręczna regulacja pętli generuje straty?",
    "description": "Analiza strat energii rzędu 5-18% wywołanych ręczną regulacją zaworów. Poznaj algorytmy TPI/PWM i zobacz interaktywną wizualizację pętli sprzężenia zwrotnego.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-12-29",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-sprzezenie",
    "name": "Analiza strat energii przy ręcznej regulacji podłogówki",
    "description": "Techniczne uwarunkowania bezwładności termicznej jastrychu oraz dynamika siłowników termoelektrycznych w systemach zamkniętej pętli.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "algorytm TPI PWM",
      "siłowniki termoelektryczne 230V",
      "bezwładność jastrychu 6.5cm",
      "przegrzewanie pomieszczeń podłogówka",
      "listwa sterująca do podłogówki",
      "zamknięte sprzężenie zwrotne ogrzewanie"
    ],
    "measurementTechnique": "Ewaluacja czasu reakcji komponentów automatyki (3 do 5 minut) w stosunku do akumulacyjności termicznej wylewki grzewczej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Brak automatyki prowadzi do przegrzewania pomieszczeń o 1-3°C, generując straty na poziomie 5-18%.",
        "Algorytmy PWM dawkują energię impulsowo zapobiegając przegrzewaniu poprzez wyprzedzające zamykanie pętli."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-sprzezenie",
    "name": "Symulator Pętli Sprzężenia Zwrotnego",
    "description": "Edukacyjna aplikacja wizualizująca komunikację między termostatem a listwą centralną i siłownikiem podczas redukcji zysków ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-flow-container" id="rk-flow-app">
    <div class="rk-flow-header">
        <h2>Jak działa automatyka do podłogówki i dlaczego ręczna regulacja pętli generuje straty?</h2>
        <p>Ręczne sterowanie wodnym ogrzewaniem podłogowym za pomocą zaworów miniaturowych na rozdzielaczu uniemożliwia stabilizację temperatury wewnętrznej, co prowadzi do permanentnego przegrzewania pomieszczeń o 1°C do 3°C i zwiększenia zużycia energii o <span class="rk-flow-highlight">5% do 18%</span>.</p>
        <p>Wynika to bezpośrednio z <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładności termicznej</a> płyty grzewczej (jastrychu o grubości 6,5 cm), która magazynuje potężne ilości energii i oddaje ją przez wiele godzin po mechanicznym odcięciu zasilania.</p>
    </div>

    <div class="rk-flow-body">
        
        <div class="rk-flow-text-section">
            <p>Automatyka strefowa działa w <strong>pętli zamkniętego sprzężenia zwrotnego</strong>. Czujnik pokojowy stale monitoruje temperaturę powietrza oraz temperaturę podłogi. W momencie rejestracji zysków ciepła (np. od nasłonecznienia), sygnał przekazywany jest do listwy centralnej, która odcina zasilanie <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowników termoelektrycznych</a> (230V/24V). Zastosowanie algorytmu <strong>TPI / PWM</strong> pozwala na pulsacyjne dawkowanie energii zanim nastąpi przekroczenie progu wygody.</p>
        </div>

        <div class="rk-flow-interactive" id="flowSimulator">
            <h3 class="rk-flow-interactive-title">Schemat Komunikacji Komponentów</h3>
            
            <button class="rk-flow-btn-trigger" id="btnSimulate">
                <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="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
                Symuluj nasłonecznienie
            </button>

            <div class="rk-flow-svg-wrap">
                <svg viewBox="0 0 700 250" width="100%" height="100%">
                    
                    <g class="rk-svg-sun">
                        <circle cx="60" cy="50" r="15"/>
                        <line x1="60" y1="20" x2="60" y2="30" stroke="#f59e0b" stroke-width="3" stroke-linecap="round"/>
                        <line x1="60" y1="70" x2="60" y2="80" stroke="#f59e0b" stroke-width="3" stroke-linecap="round"/>
                        <line x1="30" y1="50" x2="40" y2="50" stroke="#f59e0b" stroke-width="3" stroke-linecap="round"/>
                        <line x1="80" y1="50" x2="90" y2="50" stroke="#f59e0b" stroke-width="3" stroke-linecap="round"/>
                    </g>
                    
                    <path d="M 550 200 L 150 200" fill="none" stroke="#e2e8f0" stroke-width="12" stroke-linecap="round"/>
                    <path class="rk-svg-water-flow" id="waterFlow" d="M 550 200 L 150 200" fill="none" stroke="#38bdf8" stroke-width="6" stroke-linecap="round" stroke-dasharray="10 15"/>

                    <path class="rk-svg-wire" d="M 150 120 L 350 120"/>
                    <path class="rk-svg-wire" d="M 350 120 L 550 120"/>

                    <path class="rk-svg-signal rk-svg-signal-1" d="M 150 120 L 350 120"/>
                    <path class="rk-svg-signal rk-svg-signal-2" d="M 350 120 L 550 120"/>

                    <rect x="100" y="90" width="100" height="60" class="rk-svg-component rk-svg-comp-thermostat"/>
                    <text x="150" y="115" class="rk-svg-text rk-svg-text-thermostat">TERMOSTAT</text>
                    <text x="150" y="135" class="rk-svg-text rk-svg-text-thermostat">(Pomiar Pokoju)</text>

                    <rect x="300" y="80" width="100" height="80" class="rk-svg-component rk-svg-comp-listwa"/>
                    <text x="350" y="115" class="rk-svg-text rk-svg-text-thermostat">LISTWA</text>
                    <text x="350" y="135" class="rk-svg-text rk-svg-text-thermostat">(Algorytm PWM)</text>

                    <rect x="500" y="90" width="100" height="60" class="rk-svg-component rk-svg-comp-actuator"/>
                    <text x="550" y="115" class="rk-svg-text rk-svg-text-thermostat">SIŁOWNIK NC</text>
                    <text x="550" y="135" class="rk-svg-text rk-svg-text-thermostat">(Zawór Pętli)</text>
                    
                    <line x1="550" y1="150" x2="550" y2="194" stroke="#334155" stroke-width="4"/>
                </svg>
            </div>
            
            <div class="rk-flow-status-text" id="statusMessage">Pętla grzewcza zamknięta (Brak przepływu)</div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnSimulate = document.getElementById('btnSimulate');
    const simulator = document.getElementById('flowSimulator');
    const statusMsg = document.getElementById('statusMessage');

    btnSimulate.addEventListener('click', function() {
        // Blokada przycisku
        btnSimulate.disabled = true;
        btnSimulate.innerText = "Przetwarzanie pętli...";
        
        // Reset klas
        simulator.className = "rk-flow-interactive";
        statusMsg.classList.remove('visible');
        
        // Brak operatorów && - czysta kaskada timeoutów symulująca proces inżynierski
        
        // Krok 1: Słońce świeci (Zysk pasywny)
        setTimeout(function() {
            simulator.classList.add('state-step-1');
        }, 100);

        // Krok 2: Termostat rejestruje przekroczenie temperatury
        setTimeout(function() {
            simulator.classList.add('state-step-2');
        }, 1500);

        // Krok 3: Wysłanie sygnału do listwy centralnej
        setTimeout(function() {
            simulator.classList.add('state-step-3');
        }, 2500);

        // Krok 4: Listwa interpretuje algorytm PWM
        setTimeout(function() {
            simulator.classList.add('state-step-4');
        }, 3500);

        // Krok 5: Listwa odcina napięcie 230V do siłownika
        setTimeout(function() {
            simulator.classList.add('state-step-5');
        }, 4500);

        // Krok 6: Siłownik NC (Normalnie Zamknięty) powoli się zamyka (w rzeczywistości 3 minuty)
        setTimeout(function() {
            simulator.classList.add('state-step-6');
            statusMsg.classList.add('visible');
            btnSimulate.innerText = "Zresetuj symulację";
            btnSimulate.disabled = false;
            
            // Re-map the button to act as a reset next time
            btnSimulate.onclick = function() {
                simulator.className = "rk-flow-interactive";
                statusMsg.classList.remove('visible');
                btnSimulate.innerText = "Symuluj nasłonecznienie";
                // Restore original listener logic safely without &&
                setTimeout(function(){
                    location.reload(); // Prosty i bezpieczny reset stanu narzędzia edukacyjnego
                }, 300);
            };
        }, 6000);
    });
});
</script>



<style>
:root {
    --rk-calc-dark: #0f172a;
    --rk-calc-dark-card: #1e293b;
    --rk-calc-blue: #0284c7;
    --rk-calc-blue-light: #e0f2fe;
    --rk-calc-green: #10b981;
    --rk-calc-red: #ef4444;
    --rk-calc-gray: #475569;
    --rk-calc-gray-light: #f8fafc;
    --rk-calc-bg: #ffffff;
    --rk-calc-border: #e2e8f0;
}

.rk-calc-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-calc-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-calc-blue);
    overflow: hidden;
}

.rk-calc-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-calc-dark) 0%, #0f172a 100%);
    color: #ffffff;
}

.rk-calc-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

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

.rk-calc-header p:last-child {
    margin-bottom: 0;
}

.rk-calc-header a {
    color: #38bdf8;
    text-decoration: none;
    border-bottom: 1px dashed #38bdf8;
    font-weight: 600;
    transition: color 0.3s;
}

.rk-calc-header a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.rk-calc-body {
    padding: 40px 50px;
}

/* Sekcja Case Study */
.rk-calc-casestudy {
    background: var(--rk-calc-gray-light);
    border: 1px solid var(--rk-calc-border);
    border-radius: 16px;
    padding: 25px 30px;
    margin-bottom: 40px;
}

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

.rk-calc-casestudy p {
    font-size: 15px;
    color: var(--rk-calc-gray);
    line-height: 1.6;
    margin: 0 0 10px 0;
}

.rk-calc-math {
    background: var(--rk-calc-bg);
    padding: 15px 20px;
    border-radius: 12px;
    border-left: 4px solid var(--rk-calc-blue);
    font-family: monospace;
    font-size: 14px;
    color: var(--rk-calc-dark);
    margin: 15px 0;
    font-weight: 600;
}

/* Kaskadowy układ - 1 kolumna */
.rk-roi-stack {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

/* Karty Suwaków */
.rk-input-card {
    background: var(--rk-calc-bg);
    border: 1px solid var(--rk-calc-border);
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 4px 10px -2px rgba(0,0,0,0.03);
    display: flex;
    flex-direction: column;
}

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

.rk-input-header label {
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-calc-dark);
    margin: 0;
}

.rk-input-value {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-calc-blue);
    background: var(--rk-calc-blue-light);
    padding: 5px 15px;
    border-radius: 12px;
}

.rk-slider-wrapper {
    position: relative;
    width: 100%;
}

.rk-calc-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 10px;
    border-radius: 5px;
    background: var(--rk-calc-border);
    outline: none;
}

.rk-calc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-calc-blue);
    cursor: pointer;
    border: 5px solid #ffffff;
    box-shadow: 0 4px 12px rgba(2, 132, 199, 0.4);
    transition: transform 0.1s;
}

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

/* Karta Wyników (Dashboard) */
.rk-roi-output-card {
    background: var(--rk-calc-dark-card);
    border-radius: 20px;
    padding: 50px 40px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.4);
    text-align: center;
    margin-top: 15px;
}

.rk-roi-output-card::before {
    content: '';
    position: absolute;
    top: -100px;
    left: 50%;
    transform: translateX(-50%);
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(16,185,129,0.1) 0%, rgba(0,0,0,0) 70%);
    border-radius: 50%;
    pointer-events: none;
}

.rk-output-stats {
    display: flex;
    flex-direction: column;
    gap: 40px;
    position: relative;
    z-index: 2;
}

.rk-stat-group {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.rk-stat-divider {
    width: 50px;
    height: 2px;
    background: #334155;
    margin: 0 auto;
}

.rk-stat-label {
    font-size: 14px;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 2px;
    font-weight: 700;
    margin-bottom: 10px;
}

.rk-stat-value {
    font-size: 52px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: -1px;
}

.rk-stat-sub {
    font-size: 20px;
    font-weight: 700;
    color: #cbd5e1;
    margin-left: 5px;
}

.rk-val-highlight-green { color: var(--rk-calc-green); text-shadow: 0 0 30px rgba(16, 185, 129, 0.3); }
.rk-val-highlight-white { color: #ffffff; }

@media (max-width: 768px) {
    .rk-calc-container { margin: 20px auto; border-radius: 16px; }
    .rk-calc-header, .rk-calc-body { padding: 30px 20px; }
    .rk-calc-header h2 { font-size: 24px; }
    
    .rk-input-card { padding: 25px 20px; }
    .rk-input-header { flex-direction: column; align-items: flex-start; gap: 15px; }
    .rk-input-value { align-self: flex-start; font-size: 24px; }
    
    .rk-roi-output-card { padding: 40px 20px; }
    .rk-stat-value { font-size: 42px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-roi",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Ile można zaoszczędzić na ogrzewaniu podłogowym montując sterowniki pokojowe?",
    "description": "Zgodnie z normą PN-EN 12831, obniżenie temperatury o 1°C daje 6% oszczędności. Zobacz studium przypadku i oblicz zwrot z inwestycji (ROI) dla swojego domu.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-12-29",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-roi",
    "name": "Analiza ROI automatyki strefowej wg PN-EN 12831",
    "description": "Zestawienie zużycia energii w kWh oraz kosztów w PLN dla instalacji bez automatyki strefowej i po jej wdrożeniu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "ile kosztuje ogrzewanie domu pompą ciepła",
      "jak obliczyć zwrot z inwestycji ogrzewanie",
      "norma pn en 12831 oszczędności",
      "zmniejszenie rachunków za prąd podłogówka",
      "cena prądu g12w ogrzewanie",
      "zużycie prądu pompa ciepła dom 150m2",
      "termostaty pokojowe a oszczędności",
      "koszt automatyki do podłogówki"
    ],
    "measurementTechnique": "Szacowanie zapotrzebowania na energię dla domów jednorodzinnych z uwzględnieniem redukcji temperatury nocnej i zysków pasywnych z nasłonecznienia.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Obniżenie temperatury wewnętrznej o 1°C w skali sezonu redukuje koszty o około 6%.",
        "Dla domu 150m2 inwestycja w sterowniki (1800-2500 PLN) zwraca się w czasie krótszym niż 12 miesięcy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-roi",
    "name": "Kalkulator Oszczędności i ROI Automatyki Strefowej",
    "description": "Narzędzie finansowe obliczające roczne oszczędności eksploatacyjne w PLN oraz czas zwrotu z inwestycji (ROI) w komponenty automatyki sterującej ogrzewaniem.",
    "applicationCategory": "BusinessApplication",
    "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">
        <h2>Ile można zaoszczędzić na ogrzewaniu podłogowym montując sterowniki pokojowe?</h2>
        <p>Montaż sterowników pokojowych pozwala na realną redukcję rocznych <a href="https://projekt-ogrzewania.pl/koszt-ogrzewania-domu-2025/">kosztów ogrzewania</a> o 15% do 25% w odniesieniu do instalacji sterowanej wyłącznie krzywą grzewczą źródła ciepła. Według wytycznych <a href="https://projekt-ogrzewania.pl/norma-pn-en-12831-klucz-do-efektywnego-i-komfortowego-ogrzewania-podlogowego/">normy PN-EN 12831</a>, obniżenie temperatury wewnętrznej o 1°C w skali całego sezonu grzewczego generuje średnio 6% oszczędności paliwa lub energii elektrycznej.</p>
    </div>

    <div class="rk-calc-body">
        
        <div class="rk-calc-casestudy">
            <h3>Wyliczenie matematyczne oszczędności energii (Case Study)</h3>
            <p>Dla domu jednorodzinnego o powierzchni 150 m² i projektowym zapotrzebowaniu na ciepło 9 kW (przy temp. zewnętrznej -20°C):</p>
            <ul style="color: var(--rk-calc-gray); font-size: 14px; line-height: 1.6; padding-left: 20px;">
                <li>Sezonowe zapotrzebowanie na energię <strong>bez automatyki strefowej</strong> (utrzymywanie stałej temperatury 22°C w nocy i podczas nieobecności, plus przegrzewanie od nasłonecznienia): E1 = 14 500 kWh/rok.</li>
                <li>Sezonowe zapotrzebowanie na energię <strong>po wdrożeniu automatyki</strong> (redukcja nocna do 20°C w sypialniach, obniżenie temperatury w salonie do 19°C podczas nieobecności, wykorzystanie zysków pasywnych): E2 = 11 165 kWh/rok.</li>
            </ul>
            <div class="rk-calc-math">
                ΔE = 14 500 &#8211; 11 165 = 3 335 kWh/rok oszczędności
            </div>
            <p>Przyjmując średni koszt energii dla pompy ciepła na poziomie 0,75 PLN/kWh, roczna oszczędność finansowa wynosi równe <strong>2 501,25 PLN/rok</strong>. Koszt zakupu inteligentnego systemu automatyki (listwa + 6 termostatów + siłowniki) dla takiego metrażu zamyka się w kwocie 1800 &#8211; 2500 PLN, co oznacza <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">zwrot z inwestycji (ROI)</a> w czasie poniżej 12 miesięcy.</p>
        </div>

        <!-- Układ Kaskadowy W Pełni Pionowy -->
        <div class="rk-roi-stack">
            
            <div class="rk-input-card">
                <div class="rk-input-header">
                    <label>Powierzchnia Twojego domu</label>
                    <div class="rk-input-value"><span id="valAreaOut">150</span> m²</div>
                </div>
                <div class="rk-slider-wrapper">
                    <input type="range" class="rk-calc-slider" id="inpArea" min="80" max="300" step="5" value="150">
                </div>
            </div>
            
            <div class="rk-input-card">
                <div class="rk-input-header">
                    <label>Średnia cena 1 kWh</label>
                    <div class="rk-input-value"><span id="valPriceOut">0.75</span> PLN</div>
                </div>
                <div class="rk-slider-wrapper">
                    <input type="range" class="rk-calc-slider" id="inpPrice" min="0.40" max="1.50" step="0.05" value="0.75">
                </div>
            </div>

            <div class="rk-roi-output-card">
                <div class="rk-output-stats">
                    
                    <div class="rk-stat-group">
                        <div class="rk-stat-label">Roczne Oszczędności Eksploatacyjne</div>
                        <div class="rk-stat-value rk-val-highlight-green"><span id="resSavings">2501</span><span class="rk-stat-sub">PLN</span></div>
                    </div>
                    
                    <div class="rk-stat-divider"></div>
                    
                    <div class="rk-stat-group">
                        <div class="rk-stat-label">Szacowany koszt systemu automatyki</div>
                        <div class="rk-stat-value rk-val-highlight-white"><span id="resCost">2500</span><span class="rk-stat-sub">PLN</span></div>
                    </div>

                    <div class="rk-stat-divider"></div>

                    <div class="rk-stat-group">
                        <div class="rk-stat-label">Pełny zwrot z inwestycji (ROI) za:</div>
                        <div class="rk-stat-value"><span id="resMonths" class="rk-val-highlight-green">12</span><span class="rk-stat-sub">miesięcy</span></div>
                    </div>

                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const sldArea = document.getElementById('inpArea');
    const sldPrice = document.getElementById('inpPrice');
    
    const valAreaOut = document.getElementById('valAreaOut');
    const valPriceOut = document.getElementById('valPriceOut');
    
    const resSavings = document.getElementById('resSavings');
    const resCost = document.getElementById('resCost');
    const resMonths = document.getElementById('resMonths');

    function calculateData() {
        let area = parseFloat(sldArea.value);
        let price = parseFloat(sldPrice.value);
        
        valAreaOut.innerText = area;
        valPriceOut.innerText = price.toFixed(2);

        // Algorytm Oszczędności (Case Study)
        // Średnio 96.66 kWh/m2 bez automatyki
        let energyBase = area * 96.66; 
        
        // Z automatyką oszczędności na poziomie 23% względem bazy
        let energyAuto = energyBase * 0.77; 

        // Różnica w kWh i PLN
        let savingsKwh = energyBase - energyAuto;
        let savingsPln = savingsKwh * price;

        // Koszty systemu: 1000 PLN + 10 PLN / m2
        let sysCost = 1000 + (area * 10);
        
        // ROI
        let roiMonths = (sysCost / savingsPln) * 12;

        resSavings.innerText = Math.round(savingsPln).toLocaleString('pl-PL');
        resCost.innerText = Math.round(sysCost).toLocaleString('pl-PL');
        resMonths.innerText = Math.round(roiMonths);

        // Bezpieczny warunek zmiany koloru (bez &&)
        if (roiMonths < 18) {
            resMonths.className = "rk-val-highlight-green";
            resMonths.style.color = "";
        } else {
            if (roiMonths < 36) {
                resMonths.className = "";
                resMonths.style.color = "#eab308"; // Żółty
            } else {
                resMonths.className = "";
                resMonths.style.color = "#ef4444"; // Czerwony
            }
        }
    }

    sldArea.addEventListener('input', calculateData);
    sldPrice.addEventListener('input', calculateData);

    // Initial calculation
    calculateData();
});
</script>



<style>
:root {
    --rk-curve-dark: #0f172a;
    --rk-curve-blue: #0284c7;
    --rk-curve-blue-light: #e0f2fe;
    --rk-curve-red: #ef4444;
    --rk-curve-green: #10b981;
    --rk-curve-gray: #475569;
    --rk-curve-gray-light: #f8fafc;
    --rk-curve-bg: #ffffff;
    --rk-curve-border: #e2e8f0;
}

.rk-curve-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-curve-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-curve-blue);
    overflow: hidden;
}

.rk-curve-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-curve-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-curve-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-curve-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0 0 15px 0;
    line-height: 1.7;
}

.rk-curve-header p:last-child {
    margin-bottom: 0;
}

.rk-curve-header a {
    color: #38bdf8;
    text-decoration: none;
    border-bottom: 1px dashed #38bdf8;
    font-weight: 600;
    transition: color 0.3s;
}

.rk-curve-header a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.rk-curve-body {
    padding: 40px 50px;
}

/* Interaktywny Symulator */
.rk-curve-simulator {
    background: var(--rk-curve-gray-light);
    border: 1px solid var(--rk-curve-border);
    border-radius: 20px;
    padding: 35px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-curve-sim-title {
    text-align: center;
    margin: 0;
}

.rk-curve-sim-title h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-curve-dark);
    margin: 0 0 5px 0;
}

.rk-curve-sim-title p {
    font-size: 14px;
    color: var(--rk-curve-gray);
    margin: 0;
}

.rk-curve-layout {
    display: flex;
    gap: 40px;
    align-items: stretch;
}

/* Panel Kontrolny */
.rk-curve-controls {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-curve-slider-box {
    background: var(--rk-curve-bg);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-curve-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-curve-slider-box label {
    display: block;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-curve-dark);
    margin-bottom: 10px;
}

.rk-curve-slider-desc {
    font-size: 12px;
    color: var(--rk-curve-gray);
    margin-bottom: 20px;
    display: block;
}

.rk-curve-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    border-radius: 4px;
    background: linear-gradient(to right, var(--rk-curve-blue), #cbd5e1, var(--rk-curve-red));
    outline: none;
    margin-bottom: 25px;
    direction: rtl; /* Od +20 do -20, wizualnie chłodniej z prawej lub na odwrót - dostosujemy logicznie */
}

/* Dostosowanie suwaka zima-lato */
.rk-curve-slider.temp-slider {
    background: linear-gradient(to right, var(--rk-curve-blue), #cbd5e1, var(--rk-curve-red));
    direction: ltr;
}

.rk-curve-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-curve-dark);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.3);
}

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

.rk-curve-data-card {
    background: var(--rk-curve-gray-light);
    border: 1px solid var(--rk-curve-border);
    border-radius: 12px;
    padding: 15px;
    text-align: center;
}

.rk-curve-data-card span {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--rk-curve-gray);
    margin-bottom: 5px;
    letter-spacing: 0.5px;
}

.rk-curve-data-card strong {
    font-size: 22px;
    font-weight: 900;
    color: var(--rk-curve-dark);
}

.rk-data-highlight strong {
    color: var(--rk-curve-green);
}

/* Panel Wizualizacji SVG */
.rk-curve-visual {
    flex: 1.2;
    background: var(--rk-curve-dark);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    box-shadow: inset 0 4px 20px rgba(0,0,0,0.5);
}

.rk-curve-svg-wrapper {
    width: 100%;
    max-width: 320px;
}

.rk-svg-axis { stroke: #475569; stroke-width: 2; }
.rk-svg-grid { stroke: #1e293b; stroke-width: 1; }
.rk-svg-text { fill: #94a3b8; font-size: 10px; font-weight: 600; font-family: monospace; }
.rk-svg-line { fill: none; stroke: var(--rk-curve-blue); stroke-width: 4; stroke-linecap: round; }
.rk-svg-dot { fill: var(--rk-curve-red); stroke: #ffffff; stroke-width: 2; transition: all 0.2s ease-out; }
.rk-svg-guide { stroke: var(--rk-curve-red); stroke-width: 1; stroke-dasharray: 4 4; transition: all 0.2s ease-out; }

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .rk-curve-container { margin: 20px auto; border-radius: 16px; }
    .rk-curve-header, .rk-curve-body { padding: 25px 20px; }
    .rk-curve-header h2 { font-size: 22px; }
    .rk-curve-simulator { padding: 20px; }
    .rk-curve-layout { flex-direction: column; gap: 20px; }
    .rk-curve-controls, .rk-curve-visual { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-pogodowka",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Jak sterownik pogodowy z krzywą grzewczą optymalizuje temperaturę zasilania podłogówki?",
    "description": "Zrozum działanie krzywej grzewczej (Tz względem Te) wg normy PN-EN 1264. Sprawdź, jak obniżenie temperatury zasilania poprawia współczynnik COP pompy ciepła.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-pogodowka",
    "name": "Wpływ krzywej grzewczej na efektywność instalacji płaszczyznowej (COP)",
    "description": "Dane tabelaryczne i algorytmiczne wiążące temperaturę zewnętrzną (NTC) z temperaturą zasilania obiegu grzewczego i sprawnością źródła ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "krzywa grzewcza pompy ciepła podłogówka",
      "sterownik regulator pogodowy",
      "temperatura zasilania ogrzewania podłogowego",
      "współczynnik cop a temperatura zasilania",
      "czujnik temperatury zewnętrznej"
    ],
    "measurementTechnique": "Modelowanie spadku temperatury (Delta T) na podstawie algorytmu kompensacji pogodowej (krzywa n=1.1) z inkrementalnym przyrostem sprawności COP.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Kompensacja pogodowa dostosowuje temperaturę zasilania (Tz) od 25°C do 38°C proporcjonalnie do temperatury zewnętrznej (Te).",
        "Obniżenie temperatury zasilania pompy ciepła o każdy 1°C skutkuje wzrostem współczynnika COP o około 2.5% - 3.0%."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-pogodowka",
    "name": "Symulator Krzywej Grzewczej (Kompensacja Pogodowa)",
    "description": "Interaktywny interfejs inżynierski obrazujący ruch punktu pracy instalacji na wykresie krzywej grzewczej w zależności od warunków atmosferycznych.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-curve-container" id="rk-curve-app">
    <div class="rk-curve-header">
        <h2>Jak sterownik pogodowy z krzywą grzewczą optymalizuje temperaturę zasilania podłogówki?</h2>
        <p><a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">Sterownik pogodowy</a> automatycznie obniża lub podwyższa temperaturę wody zasilającej instalację podłogową w zakresie od 25°C do 38°C na podstawie odczytu z zewnętrznego czujnika temperatury (NTC), zgodnie z bezwzględnymi wymaganiami normy <a href="https://projekt-ogrzewania.pl/pn-en-1264-norma-ktora-definiuje-ogrzewanie-podlogowe/">PN-EN 1264</a>.</p>
        <p>Działanie to opiera się na matematycznie zdefiniowanej <a href="https://projekt-ogrzewania.pl/krzywa-grzewcza-w-ogrzewaniu-podlogowym/">krzywej grzewczej</a>, która dopasowuje temperaturę zasilania (Tz) do aktualnej temperatury zewnętrznej (Te). Wzrost temperatury zewnętrznej o każde 5°C powoduje natychmiastowe obniżenie temperatury na wyjściu ze źródła ciepła. Dla pompy ciepła obniżenie temperatury zasilania o 1°C podnosi jej współczynnik efektywności grzewczej COP o około 2,5% do 3%. Sterowanie pogodowe eliminuje opóźnienie wynikające z bezwładności budynku – instalacja reaguje na chłód, zanim przeniknie on przez ściany.</p>
    </div>

    <div class="rk-curve-body">
        <div class="rk-curve-simulator">
            <div class="rk-curve-sim-title">
                <h3>Symulator Kompensacji Pogodowej</h3>
                <p>Przesuń suwak pogody i zobacz, jak algorytm steruje parametrami.</p>
            </div>

            <div class="rk-curve-layout">
                <div class="rk-curve-controls">
                    <div class="rk-curve-slider-box">
                        <label>Temperatura Zewnętrzna (Czujnik Pogodowy)</label>
                        <span class="rk-curve-slider-desc">Symulacja zmiany frontu atmosferycznego</span>
                        <input type="range" class="rk-curve-slider temp-slider" id="envSlider" min="-20" max="20" step="1" value="0">
                        
                        <div class="rk-curve-data-grid">
                            <div class="rk-curve-data-card">
                                <span>Temp. Zewnętrzna (Te)</span>
                                <strong id="valTe">0°C</strong>
                            </div>
                            <div class="rk-curve-data-card">
                                <span>Temp. Zasilania (Tz)</span>
                                <strong id="valTz" style="color: var(--rk-curve-blue);">31.5°C</strong>
                            </div>
                            <div class="rk-curve-data-card rk-data-highlight" style="grid-column: span 2;">
                                <span>Wzrost Sprawności COP (Względem Tz=38°C)</span>
                                <strong id="valCop">+18.0%</strong>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="rk-curve-visual">
                    <div class="rk-curve-svg-wrapper">
                        <svg viewBox="0 0 300 200" xmlns="http://www.w3.org/2000/svg">
                            <line x1="40" y1="20" x2="280" y2="20" class="rk-svg-grid"/> <line x1="40" y1="70" x2="280" y2="70" class="rk-svg-grid"/> <line x1="40" y1="120" x2="280" y2="120" class="rk-svg-grid"/> <line x1="40" y1="10" x2="40" y2="160" class="rk-svg-axis"/>
                            <text x="30" y="25" class="rk-svg-text" text-anchor="end">40°</text>
                            <text x="30" y="75" class="rk-svg-text" text-anchor="end">30°</text>
                            <text x="30" y="125" class="rk-svg-text" text-anchor="end">20°</text>
                            <text x="40" y="10" class="rk-svg-text" fill="#ffffff" dy="-5">Tz</text>
                            
                            <line x1="40" y1="160" x2="290" y2="160" class="rk-svg-axis"/>
                            <text x="40" y="175" class="rk-svg-text" text-anchor="middle">+20°</text>
                            <text x="100" y="175" class="rk-svg-text" text-anchor="middle">+10°</text>
                            <text x="160" y="175" class="rk-svg-text" text-anchor="middle">0°</text>
                            <text x="220" y="175" class="rk-svg-text" text-anchor="middle">-10°</text>
                            <text x="280" y="175" class="rk-svg-text" text-anchor="middle">-20°</text>
                            <text x="290" y="155" class="rk-svg-text" fill="#ffffff" text-anchor="start">Te</text>
                            
                            <path class="rk-svg-line" d="M 40 95 Q 160 80 280 30" />
                            
                            <line class="rk-svg-guide" id="guideX" x1="160" y1="160" x2="160" y2="65" />
                            <line class="rk-svg-guide" id="guideY" x1="40" y1="65" x2="160" y2="65" />
                            <circle class="rk-svg-dot" id="workPoint" cx="160" cy="65" r="6" />
                        </svg>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const slider = document.getElementById('envSlider');
    const displayTe = document.getElementById('valTe');
    const displayTz = document.getElementById('valTz');
    const displayCop = document.getElementById('valCop');
    
    // Elementy SVG
    const workPoint = document.getElementById('workPoint');
    const guideX = document.getElementById('guideX');
    const guideY = document.getElementById('guideY');

    // Konfiguracja matematyczna wykresu SVG
    // X axis: 40px (+20st) to 280px (-20st) -> span 240px. 
    // Y axis: 120px (20st) to 20px (40st) -> span 100px. 1st = 5px.
    
    function updateCurve() {
        let Te = parseInt(slider.value); // od -20 do +20
        
        // Logika obliczania Tz (Model krzywej aproksymujący kwadratowo/liniowo)
        // Jeśli Te = +20 -> Tz = 25
        // Jeśli Te = -20 -> Tz = 38
        
        // Parametryzacja z użyciem bezpiecznych warunków (bez operatora "&&")
        // Skala 0 do 1 (gdzie 0 to -20st, a 1 to +20st)
        let ratio = (Te + 20) / 40; 
        
        // Tworzymy lekkie wygięcie krzywej bazując na ratio
        // Tz = 38 (max) minus spadek
        let Tz = 38 - (ratio * 13); // liniowo
        
        // Dodajmy lekką korektę nieliniową
        if (ratio > 0) {
            if (ratio < 1) {
               // Niewielkie ugięcie w dół
               Tz = Tz - (Math.sin(ratio * Math.PI) * 1.5);
            }
        }

        // Zabezpieczenie limitów
        if (Tz < 25) { Tz = 25; }
        if (Tz > 38) { Tz = 38; }

        // Wpływ na COP: zysk 2.75% za każdy stopień poniżej 38°C
        let copGain = (38 - Tz) * 2.75;

        // Aktualizacja tekstów
        if (Te > 0) {
            displayTe.innerText = "+" + Te + "°C";
        } else {
            displayTe.innerText = Te + "°C";
        }
        
        displayTz.innerText = Tz.toFixed(1) + "°C";
        displayCop.innerText = "+" + copGain.toFixed(1) + "%";

        // Obliczanie współrzędnych SVG
        // X: -20 to x=280, +20 to x=40
        let svgX = 280 - (ratio * 240);
        
        // Y: 20st = 120px, 40st = 20px
        // Różnica od 40st w dół: (40 - Tz) * 5
        let svgY = 20 + ((40 - Tz) * 5);

        // Aktualizacja DOM (SVG)
        workPoint.setAttribute('cx', svgX);
        workPoint.setAttribute('cy', svgY);
        
        guideX.setAttribute('x1', svgX);
        guideX.setAttribute('x2', svgX);
        guideX.setAttribute('y1', '160');
        guideX.setAttribute('y2', svgY);
        
        guideY.setAttribute('x1', '40');
        guideY.setAttribute('x2', svgX);
        guideY.setAttribute('y1', svgY);
        guideY.setAttribute('y2', svgY);
    }

    // Nasłuchiwacz suwaka
    slider.addEventListener('input', updateCurve);
    
    // Uruchomienie na start
    updateCurve();
});
</script>



<style>
:root {
    --rk-tech-dark: #0f172a;
    --rk-tech-blue: #0284c7;
    --rk-tech-blue-light: #e0f2fe;
    --rk-tech-green: #10b981;
    --rk-tech-purple: #8b5cf6;
    --rk-tech-purple-light: #ede9fe;
    --rk-tech-gray: #475569;
    --rk-tech-bg: #ffffff;
    --rk-tech-border: #e2e8f0;
}

.rk-tech-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-tech-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-tech-blue);
    overflow: hidden;
}

.rk-tech-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-tech-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-tech-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-tech-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
}

.rk-tech-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Master Toggle */
.rk-tech-toggle-wrapper {
    display: flex;
    background: var(--rk-tech-border);
    border-radius: 16px;
    padding: 6px;
    margin-bottom: 35px;
    position: relative;
}

.rk-tech-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-tech-gray);
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.4s ease;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.rk-tech-toggle-btn.active {
    color: #ffffff;
}

.rk-tech-toggle-bg {
    position: absolute;
    top: 6px;
    bottom: 6px;
    width: calc(50% - 6px);
    background: var(--rk-tech-blue);
    border-radius: 12px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.4s;
    z-index: 1;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

/* Visualizer SVG */
.rk-tech-visualizer {
    background: var(--rk-tech-dark);
    border-radius: 20px;
    padding: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 35px;
    height: 160px;
    position: relative;
    overflow: hidden;
}

.rk-tech-svg-wrap {
    width: 100%;
    max-width: 400px;
}

/* SVG Animations */
.rk-anim-cable { stroke-dasharray: 1000; stroke-dashoffset: 1000; transition: stroke-dashoffset 1s ease; }
.rk-anim-wave { opacity: 0; transform: scale(0.5); transform-origin: center; transition: all 0.5s ease; }

.state-wired .rk-anim-cable { stroke-dashoffset: 0; }
.state-wireless .rk-anim-wave { opacity: 1; transform: scale(1); animation: pulseRadio 2s infinite; }

@keyframes pulseRadio {
    0% { transform: scale(0.8); opacity: 1; }
    100% { transform: scale(1.5); opacity: 0; }
}

/* Cards Grid */
.rk-tech-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
}

.rk-param-card {
    background: var(--rk-tech-bg);
    border: 1px solid var(--rk-tech-border);
    border-radius: 16px;
    padding: 25px;
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
    transition: transform 0.3s, border-color 0.3s;
}

.rk-param-card:hover {
    transform: translateY(-3px);
    border-color: var(--rk-tech-blue);
}

.rk-param-icon {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--rk-tech-blue-light);
    color: var(--rk-tech-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    transition: background-color 0.4s, color 0.4s;
}

.rk-param-card h3 {
    font-size: 14px;
    color: var(--rk-tech-gray);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 700;
    margin: 0 0 10px 0;
}

.rk-param-value {
    font-size: 16px;
    font-weight: 600;
    color: var(--rk-tech-dark);
    line-height: 1.5;
}

.rk-param-value strong {
    font-size: 20px;
    font-weight: 900;
    display: block;
    margin-bottom: 5px;
    transition: color 0.4s;
}

.rk-param-value a {
    color: var(--rk-tech-blue);
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-tech-blue);
}

/* Stan bezprzewodowy kolorystyka (Fiolet) */
.state-wireless-theme .rk-param-icon { background: var(--rk-tech-purple-light); color: var(--rk-tech-purple); }
.state-wireless-theme .rk-param-value strong { color: var(--rk-tech-purple); }

/* Hide/Show logic within cards */
.rk-val-content { display: none; animation: fadeInText 0.4s forwards; }
.rk-val-content.active { display: block; }

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

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .rk-tech-container { margin: 20px auto; }
    .rk-tech-header, .rk-tech-interactive { padding: 25px 20px; }
    .rk-tech-header h2 { font-size: 22px; }
    
    .rk-tech-toggle-wrapper { flex-direction: column; background: transparent; padding: 0; gap: 10px;}
    .rk-tech-toggle-bg { display: none; }
    
    .rk-tech-toggle-btn {
        background: var(--rk-tech-border);
        color: var(--rk-tech-gray);
        border: 2px solid transparent;
    }
    
    .rk-tech-toggle-btn.active[data-tech="wired"] {
        background: var(--rk-tech-blue);
        color: #ffffff;
        border-color: var(--rk-tech-blue);
    }
    
    .rk-tech-toggle-btn.active[data-tech="wireless"] {
        background: var(--rk-tech-purple);
        color: #ffffff;
        border-color: var(--rk-tech-purple);
    }
    
    .rk-tech-grid { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-technologie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Czym różni się sterowanie przewodowe od bezprzewodowego i co wybrać?",
    "description": "Szczegółowe porównanie technologii sterowania ogrzewaniem podłogowym. Niezawodność sygnału, zasilanie i koszty systemów przewodowych (230V) vs bezprzewodowych (ZigBee).",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-12-29",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-technologie",
    "name": "Zestawienie parametrów techniczno-użytkowych systemów automatyki HVAC",
    "description": "Dane porównawcze dla systemów przewodowych (topologia gwiazdy) oraz bezprzewodowych (topologia Mesh ZigBee) obejmujące koszty, niezawodność i metody zasilania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "sterowanie przewodowe czy bezprzewodowe podłogówka",
      "termostaty bezprzewodowe zigbee",
      "kable do sterowania ogrzewaniem",
      "topologia mesh ogrzewanie",
      "koszt automatyki podłogówki"
    ],
    "measurementTechnique": "Analiza kosztorysowa punktów pomiarowych oraz ewaluacja tłumienności sygnału radiowego względem stabilności połączeń kablowych YDY/FTP.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "System przewodowy oferuje 100% odporności na zakłócenia przy średnim koszcie punktu 150-250 PLN.",
        "System bezprzewodowy pozwala na elastyczny montaż w wykończonych domach przy koszcie 280-450 PLN za punkt pomiarowy."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-technologie",
    "name": "Symulator Architektury Sterowania Podłogówką",
    "description": "Interaktywne narzędzie pozwalające na błyskawiczne przekrojowe porównanie technologii przewodowej i radiowej na poziomie komponentów i topologii sieci.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-tech-container" id="rk-tech-app">
    <div class="rk-tech-header">
        <h2>Czym różni się sterowanie przewodowe od bezprzewodowego i co wybrać?</h2>
        <p>Wybór między systemem z okablowaniem a radiowym determinuje stabilność transmisji sygnału oraz łączny koszt inwestycji. Przełącz technologie, aby porównać kluczowe parametry techniczno-użytkowe obu rozwiązań.</p>
    </div>

    <div class="rk-tech-interactive">
        
        <div class="rk-tech-toggle-wrapper">
            <div class="rk-tech-toggle-bg" id="rkTechBg"></div>
            <button class="rk-tech-toggle-btn active" data-tech="wired" style="color: #ffffff;">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg>
                System Przewodowy (Bus/230V)
            </button>
            <button class="rk-tech-toggle-btn" data-tech="wireless">
                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12.55a11 11 0 0 1 14.08 0"></path><path d="M1.42 9a16 16 0 0 1 21.16 0"></path><path d="M8.53 16.11a6 6 0 0 1 6.95 0"></path><line x1="12" y1="20" x2="12.01" y2="20"></line></svg>
                System Bezprzewodowy (ZigBee)
            </button>
        </div>

        <div class="rk-tech-visualizer state-wired" id="rkTechVisual">
            <div class="rk-tech-svg-wrap">
                <svg viewBox="0 0 400 120" xmlns="http://www.w3.org/2000/svg">
                    <rect x="20" y="40" width="40" height="40" rx="4" fill="#334155" stroke="#cbd5e1" stroke-width="2"/>
                    <text x="40" y="65" fill="#ffffff" font-size="12" text-anchor="middle" font-weight="bold">22°C</text>
                    
                    <rect x="300" y="20" width="80" height="80" rx="4" fill="#334155" stroke="#cbd5e1" stroke-width="2"/>
                    <rect x="310" y="30" width="60" height="60" fill="#1e293b"/>
                    
                    <path class="rk-anim-cable" id="wirePath" d="M 60 60 L 150 60 L 150 90 L 300 90" fill="none" stroke="#38bdf8" stroke-width="4" stroke-linejoin="round"/>
                    
                    <g class="rk-anim-wave" id="radioWaves">
                        <circle cx="100" cy="60" r="15" fill="none" stroke="#a78bfa" stroke-width="3"/>
                        <circle cx="100" cy="60" r="30" fill="none" stroke="#a78bfa" stroke-width="2"/>
                        <circle cx="200" cy="60" r="15" fill="none" stroke="#a78bfa" stroke-width="3"/>
                        <circle cx="200" cy="60" r="30" fill="none" stroke="#a78bfa" stroke-width="2"/>
                    </g>
                </svg>
            </div>
        </div>

        <div class="rk-tech-grid" id="rkTechGrid">
            
            <div class="rk-param-card">
                <div class="rk-param-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 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path></svg>
                </div>
                <h3>Niezawodność sygnału</h3>
                <div class="rk-param-value">
                    <div class="rk-val-content active" data-ref="wired">
                        <strong style="color: var(--rk-tech-blue);">100% Odporności</strong>
                        Całkowita odporność na zakłócenia elektromagnetyczne i grube bariery budowlane.
                    </div>
                    <div class="rk-val-content" data-ref="wireless">
                        <strong>92-98% Stabilności</strong>
                        Podatność na tłumienie przez stropy żelbetowe; często wymaga stosowania wzmacniaczy (repeaterów).
                    </div>
                </div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-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="M13 2L3 14h9l-1 8 10-12h-9l1-8z"></path></svg>
                </div>
                <h3>Zasilanie elementów</h3>
                <div class="rk-param-value">
                    <div class="rk-val-content active" data-ref="wired">
                        <strong style="color: var(--rk-tech-blue);">Stałe 230V / 24V</strong>
                        Bezpośrednie zasilanie z magistrali; całkowity brak konieczności pamiętania o wymianie ogniw.
                    </div>
                    <div class="rk-val-content" data-ref="wireless">
                        <strong>Bateryjne (2x AAA)</strong>
                        Żywotność ogniwa wynosi od 12 do 24 miesięcy w zależności od użytego protokołu komunikacyjnego.
                    </div>
                </div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 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>
                </div>
                <h3>Architektura & Montaż</h3>
                <div class="rk-param-value">
                    <div class="rk-val-content active" data-ref="wired">
                        <strong style="color: var(--rk-tech-blue);">Topologia Gwiazdy (SSZ)</strong>
                        Kable YDY/FTP zbiegające się w <a href="https://projekt-ogrzewania.pl/rozdzielacz-do-podlogowki-kluczowy-element-systemu-ogrzewania-podlogowego/">szafce rozdzielaczowej</a>. Montaż możliwy tylko przed tynkami.
                    </div>
                    <div class="rk-val-content" data-ref="wireless">
                        <strong>Topologia Siatki (Mesh)</strong>
                        Każde urządzenie (zasilane z sieci) rozszerza zasięg. Dowolny <a href="https://projekt-ogrzewania.pl/ile-trwa-montaz-ogrzewania-podlogowego/">moment montażu</a> – idealne do modernizacji.
                    </div>
                </div>
            </div>

            <div class="rk-param-card">
                <div class="rk-param-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="2" y="6" width="20" height="12" rx="2"></rect><circle cx="12" cy="12" r="2"></circle><path d="M6 12h.01M18 12h.01"></path></svg>
                </div>
                <h3>Średni koszt inwestycji</h3>
                <div class="rk-param-value">
                    <div class="rk-val-content active" data-ref="wired">
                        <strong style="color: var(--rk-tech-blue);">150 - 250 PLN</strong>
                        Szacunkowy koszt na jeden punkt pomiarowy (termostat). Należy doliczyć koszty okablowania ścian.
                    </div>
                    <div class="rk-val-content" data-ref="wireless">
                        <strong>280 - 450 PLN</strong>
                        Szacunkowy koszt na jeden punkt (termostat + moduł radiowy). Brak kosztów ukrytych okablowania.
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-tech-toggle-btn');
    const toggleBg = document.getElementById('rkTechBg');
    const visualizer = document.getElementById('rkTechVisual');
    const grid = document.getElementById('rkTechGrid');
    const wirePath = document.getElementById('wirePath');
    const radioWaves = document.getElementById('radioWaves');
    
    // Bezpieczny selektor elementów do przełączania (bez &&)
    const valContents = document.querySelectorAll('.rk-val-content');

    btns.forEach((btn, index) => {
        btn.addEventListener('click', function() {
            
            // Reset stylów przycisków
            btns.forEach(b => {
                b.classList.remove('active');
                if(window.innerWidth > 768) {
                    b.style.color = 'var(--rk-tech-gray)';
                }
            });
            
            // Aktywacja klikniętego
            this.classList.add('active');
            
            const tech = this.getAttribute('data-tech');
            
            // Logika wizualna (Slider w tle)
            if(window.innerWidth > 768) {
                this.style.color = '#ffffff';
                if(index === 0) {
                    // Wired Mode
                    toggleBg.style.transform = 'translateX(0)';
                    toggleBg.style.backgroundColor = 'var(--rk-tech-blue)';
                    
                    grid.classList.remove('state-wireless-theme');
                    visualizer.classList.add('state-wired');
                    visualizer.classList.remove('state-wireless');
                    
                    wirePath.style.display = 'block';
                    radioWaves.style.display = 'none';
                } else {
                    // Wireless Mode
                    toggleBg.style.transform = 'translateX(100%)';
                    toggleBg.style.backgroundColor = 'var(--rk-tech-purple)';
                    
                    grid.classList.add('state-wireless-theme');
                    visualizer.classList.add('state-wireless');
                    visualizer.classList.remove('state-wired');
                    
                    wirePath.style.display = 'none';
                    radioWaves.style.display = 'block';
                }
            } else {
                // Logika dla urządzeń mobilnych
                if(tech === 'wired') {
                    grid.classList.remove('state-wireless-theme');
                    visualizer.classList.add('state-wired');
                    visualizer.classList.remove('state-wireless');
                    wirePath.style.display = 'block';
                    radioWaves.style.display = 'none';
                } else {
                    grid.classList.add('state-wireless-theme');
                    visualizer.classList.add('state-wireless');
                    visualizer.classList.remove('state-wired');
                    wirePath.style.display = 'none';
                    radioWaves.style.display = 'block';
                }
            }

            // Przełączanie treści w kartach (tylko if/else)
            valContents.forEach(content => {
                const ref = content.getAttribute('data-ref');
                if (ref === tech) {
                    content.classList.add('active');
                } else {
                    content.classList.remove('active');
                }
            });
        });
    });

    // Zabezpieczenie dla zmiany orientacji urządzenia
    window.addEventListener('resize', function() {
        if(window.innerWidth <= 768) {
            btns.forEach(b => b.style.color = ''); 
        } else {
            const activeBtn = document.querySelector('.rk-tech-toggle-btn.active');
            if (activeBtn) {
                activeBtn.style.color = '#ffffff';
            }
        }
    });
    
    // Inicjalny stan ukrycia fal radiowych
    radioWaves.style.display = 'none';
});
</script>



<style>
:root {
    --rk-ntc-dark: #0f172a;
    --rk-ntc-blue: #0284c7;
    --rk-ntc-red: #ef4444;
    --rk-ntc-red-light: #fef2f2;
    --rk-ntc-green: #10b981;
    --rk-ntc-green-light: #dcfce7;
    --rk-ntc-gray: #475569;
    --rk-ntc-gray-light: #f8fafc;
    --rk-ntc-bg: #ffffff;
    --rk-ntc-border: #e2e8f0;
}

.rk-ntc-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-ntc-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-ntc-border);
    overflow: hidden;
}

.rk-ntc-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-ntc-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-ntc-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-ntc-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0 0 15px 0;
    line-height: 1.7;
}
.rk-ntc-header p:last-child {
    margin: 0;
}

.rk-ntc-header a {
    color: #7dd3fc;
    text-decoration: none;
    border-bottom: 1px dashed #7dd3fc;
    font-weight: 600;
    transition: color 0.2s;
}

.rk-ntc-header a:hover {
    color: #ffffff;
    border-bottom-color: #ffffff;
}

.rk-ntc-body {
    padding: 40px 50px;
}

/* Simulator Wrapper */
.rk-ntc-simulator {
    background: var(--rk-ntc-gray-light);
    border: 1px solid var(--rk-ntc-border);
    border-radius: 20px;
    padding: 35px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-ntc-sim-title {
    text-align: center;
    margin: 0;
}

.rk-ntc-sim-title h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-ntc-dark);
    margin: 0 0 5px 0;
}

.rk-ntc-sim-title p {
    font-size: 14px;
    color: var(--rk-ntc-gray);
    margin: 0;
}

/* Layout */
.rk-ntc-layout {
    display: flex;
    gap: 40px;
    align-items: stretch;
}

/* Controls */
.rk-ntc-controls {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.rk-ntc-toggle-group {
    display: flex;
    background: var(--rk-ntc-border);
    border-radius: 12px;
    padding: 5px;
}

.rk-ntc-toggle-btn {
    flex: 1;
    padding: 14px;
    border: none;
    background: transparent;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-ntc-gray);
    cursor: pointer;
    transition: all 0.3s;
}

.rk-ntc-toggle-btn.active[data-mode="on"] {
    background: var(--rk-ntc-green);
    color: #ffffff;
    box-shadow: 0 4px 6px rgba(16, 185, 129, 0.2);
}

.rk-ntc-toggle-btn.active[data-mode="off"] {
    background: var(--rk-ntc-red);
    color: #ffffff;
    box-shadow: 0 4px 6px rgba(239, 68, 68, 0.2);
}

.rk-ntc-slider-group {
    background: var(--rk-ntc-bg);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-ntc-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-ntc-slider-group label {
    display: block;
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-ntc-dark);
    margin-bottom: 15px;
}

.rk-ntc-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    border-radius: 4px;
    background: var(--rk-ntc-border);
    outline: none;
    margin-bottom: 20px;
}

.rk-ntc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--rk-ntc-blue);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 4px 10px rgba(2, 132, 199, 0.3);
}

.rk-ntc-readings {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 15px;
    border-top: 1px dashed var(--rk-ntc-border);
}

.rk-ntc-reading-box {
    text-align: center;
}

.rk-ntc-reading-box span {
    display: block;
    font-size: 12px;
    color: var(--rk-ntc-gray);
    text-transform: uppercase;
    font-weight: 700;
    margin-bottom: 5px;
}

.rk-ntc-reading-box strong {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-ntc-dark);
}

/* Visualization */
.rk-ntc-visual {
    flex: 1;
    background: var(--rk-ntc-bg);
    border-radius: 16px;
    border: 1px solid var(--rk-ntc-border);
    padding: 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.rk-ntc-status-badge {
    position: absolute;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 800;
    transition: all 0.3s;
    z-index: 10;
}

.rk-badge-safe { background: var(--rk-ntc-green-light); color: var(--rk-ntc-green); }
.rk-badge-warn { background: var(--rk-ntc-red-light); color: var(--rk-ntc-red); }

.rk-ntc-svg-wrap {
    width: 100%;
    max-width: 250px;
    margin-top: 20px;
}

/* SVG Animations & States */
.rk-svg-panel { transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); fill: #e2e8f0; }
.rk-svg-pipe { transition: fill 0.4s; fill: #94a3b8; }
.rk-svg-lzo { opacity: 0; transition: opacity 0.3s, transform 2s; }

/* States */
.state-heating .rk-svg-pipe { fill: var(--rk-ntc-red); }
.state-heating .rk-svg-panel { fill: #f8fafc; }

.state-blocked .rk-svg-pipe { fill: var(--rk-ntc-blue); }
.state-blocked .rk-svg-panel { fill: #f8fafc; }

.state-damaged .rk-svg-pipe { fill: var(--rk-ntc-red); }
.state-damaged .rk-svg-panel { fill: #fecaca; transform: translateY(-5px) rotate(2deg); transform-origin: center; }
.state-damaged .rk-svg-lzo { opacity: 1; animation: floatUp 2s infinite linear; }

@keyframes floatUp {
    0% { transform: translateY(0) scale(1); opacity: 0.8; }
    100% { transform: translateY(-30px) scale(1.5); opacity: 0; }
}

@media (max-width: 768px) {
    .rk-ntc-container { margin: 20px auto; }
    .rk-ntc-header, .rk-ntc-body { padding: 25px 20px; }
    .rk-ntc-header h2 { font-size: 22px; }
    .rk-ntc-layout { flex-direction: column; gap: 20px; }
    .rk-ntc-simulator { padding: 20px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-czujnik",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Dlaczego czujnik podłogowy jest niezbędny przy panelach winylowych i parkiecie?",
    "description": "Zrozum tryb dwukanałowy termostatu. Zobacz, jak brak czujnika NTC w wylewce prowadzi do przegrzania posadzki powyżej 27 stopni i nieodwracalnych uszkodzeń paneli LVT.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-czujnik",
    "name": "Graniczne temperatury posadzek (Czujnik NTC)",
    "description": "Parametry krytyczne dla bezpiecznej eksploatacji ogrzewania płaszczyznowego z okładzinami wrażliwymi termicznie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czujnik temperatury podłogi do paneli winylowych",
      "maksymalna temperatura ogrzewania podłogowego parkiet",
      "termostat dwukanałowy pokojowo podłogowy",
      "emisja LZO z paneli ogrzewanie",
      "deformacja paneli ogrzewanie podłogowe"
    ],
    "measurementTechnique": "Pomiar dwukanałowy: równoległa ewaluacja temperatury powietrza i wylewki celem wywołania zjawiska sprzężenia zwrotnego i zamknięcia zaworu (siłownika NC).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Limit temperaturowy 27°C jako absolutne maksimum dla gwarancji paneli i parkietów.",
        "Przekroczenie bariery 27°C powoduje rozsychanie zamków oraz zwiększoną emisję lotnych związków organicznych (LZO)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-czujnik",
    "name": "Symulator termicznego zabezpieczenia posadzki (NTC)",
    "description": "Fizyczny symulator obrazujący asymetrię nagrzewania powietrza i wylewki oraz konsekwencje braku dwukanałowego zabezpieczenia instalacji podłogowej.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-ntc-container" id="rk-ntc-app">
    <div class="rk-ntc-header">
        <h2>Dlaczego czujnik podłogowy jest niezbędny przy panelach winylowych i parkiecie?</h2>
        <p>Czujnik temperatury podłogi (rezystancyjny czujnik NTC umieszczony w peszlu ochronnym wewnątrz wylewki) jest bezwzględnie wymagany, gdy <a href="https://projekt-ogrzewania.pl/jak-rodzaj-okladziny-podlogowej-wplywa-na-wydajnosc-ogrzewania-podlogowego/">okładzinę stanowią panele</a> laminowane, <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">panele winylowe (LVT)</a> lub <a href="https://projekt-ogrzewania.pl/podlogi-drewniane-vs-panele-laminowane-co-wybrac-przy-ogrzewaniu-podlogowym/">parkiet warstwowy</a>, ponieważ producenci tych materiałów bezwzględnie ograniczają maksymalną temperaturę podłogi do 27°C.</p>
        <p>Termostat pokojowo-podłogowy działa w trybie dwukanałowym. Nadrzędnym celem jest osiągnięcie temperatury powietrza (np. 22°C), ale jeśli w procesie nagrzewania, na skutek zbyt <a href="https://projekt-ogrzewania.pl/maksymalna-temperatura-zasilania-podlogowki/">wysokiej temperatury zasilania</a>, wylewka osiągnie 27°C, czujnik podłogowy wymusza natychmiastowe zamknięcie siłownika pętli. Przekroczenie tego limitu to utrata gwarancji, emisja szkodliwych związków lotnych (LZO) oraz destrukcja materiału.</p>
    </div>

    <div class="rk-ntc-body">
        <div class="rk-ntc-simulator">
            <div class="rk-ntc-sim-title">
                <h3>Symulator Trybu Dwukanałowego (NTC)</h3>
                <p>Zobacz, jak zachowuje się posadzka w fazie intensywnego nagrzewania pokoju.</p>
            </div>

            <div class="rk-ntc-layout">
                <div class="rk-ntc-controls">
                    <div class="rk-ntc-toggle-group">
                        <button class="rk-ntc-toggle-btn active" data-mode="on" id="btnNtcOn">Termostat z czujnikiem NTC</button>
                        <button class="rk-ntc-toggle-btn" data-mode="off" id="btnNtcOff">Tylko czujnik powietrza</button>
                    </div>

                    <div class="rk-ntc-slider-group">
                        <label>Zwiększ zapotrzebowanie na ciepło (Nagrzewanie)</label>
                        <input type="range" class="rk-ntc-slider" id="heatSlider" min="0" max="100" value="0">
                        
                        <div class="rk-ntc-readings">
                            <div class="rk-ntc-reading-box">
                                <span>Temp. Powietrza</span>
                                <strong id="valAir">20.0°C</strong>
                            </div>
                            <div class="rk-ntc-reading-box">
                                <span>Temp. Posadzki</span>
                                <strong id="valFloor" style="color: var(--rk-ntc-blue);">20.0°C</strong>
                            </div>
                        </div>
                    </div>
                </div>

                <div class="rk-ntc-visual" id="visualBox">
                    <div class="rk-ntc-status-badge rk-badge-safe" id="statusBadge">System Oczekuje</div>
                    
                    <div class="rk-ntc-svg-wrap">
                        <svg viewBox="0 0 200 150" xmlns="http://www.w3.org/2000/svg">
                            <rect x="10" y="80" width="180" height="60" fill="#cbd5e1" rx="4"/>
                            <line x1="10" y1="110" x2="190" y2="110" stroke="#94a3b8" stroke-width="2" stroke-dasharray="10 5"/>
                            
                            <circle cx="40" cy="95" r="8" class="rk-svg-pipe"/>
                            <circle cx="80" cy="95" r="8" class="rk-svg-pipe"/>
                            <circle cx="120" cy="95" r="8" class="rk-svg-pipe"/>
                            <circle cx="160" cy="95" r="8" class="rk-svg-pipe"/>

                            <rect x="10" y="65" width="180" height="10" class="rk-svg-panel" rx="2"/>
                            
                            <line x1="70" y1="65" x2="70" y2="75" stroke="#94a3b8" stroke-width="1"/>
                            <line x1="130" y1="65" x2="130" y2="75" stroke="#94a3b8" stroke-width="1"/>

                            <g class="rk-svg-lzo">
                                <circle cx="50" cy="45" r="4" fill="#ef4444"/>
                                <circle cx="150" cy="35" r="3" fill="#ef4444"/>
                                <circle cx="100" cy="50" r="5" fill="#ef4444"/>
                                <text x="100" y="25" font-size="10" fill="#ef4444" text-anchor="middle" font-weight="bold">LZO!</text>
                            </g>
                        </svg>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    let modeNTC = true; // true = z czujnikiem (bezpiecznie), false = bez (niebezpiecznie)
    
    const btnOn = document.getElementById('btnNtcOn');
    const btnOff = document.getElementById('btnNtcOff');
    const slider = document.getElementById('heatSlider');
    const valAir = document.getElementById('valAir');
    const valFloor = document.getElementById('valFloor');
    const visualBox = document.getElementById('visualBox');
    const statusBadge = document.getElementById('statusBadge');

    function updateSimulation() {
        let heatInput = parseInt(slider.value); // 0 do 100
        
        // Bazy temperaturowe
        let baseAir = 20.0;
        let baseFloor = 20.0;

        // Bezwładność: podłoga nagrzewa się 3x szybciej niż powietrze w tej symulacji
        // Max heatInput(100) -> powietrze rośnie o 3°C, podłoga o 12°C
        let currentAir = baseAir + (heatInput * 0.03);
        let currentFloor = baseFloor + (heatInput * 0.12);

        // Reset klas
        visualBox.className = 'rk-ntc-visual';
        statusBadge.className = 'rk-ntc-status-badge';

        if (modeNTC) {
            // TRYB ZABEZPIECZONY NTC
            if (currentFloor > 27) {
                // Czujnik ucina zasilanie na 27°C
                currentFloor = 27;
                visualBox.classList.add('state-blocked');
                
                statusBadge.classList.add('rk-badge-safe');
                statusBadge.innerText = 'Zawór Zamknięty (Limit 27°C)';
                valFloor.style.color = 'var(--rk-ntc-blue)';
            } else {
                if (heatInput > 0) {
                    visualBox.classList.add('state-heating');
                    statusBadge.classList.add('rk-badge-safe');
                    statusBadge.innerText = 'Nagrzewanie Bezpieczne';
                    valFloor.style.color = 'var(--rk-ntc-green)';
                } else {
                    statusBadge.classList.add('rk-badge-safe');
                    statusBadge.innerText = 'System Oczekuje';
                    valFloor.style.color = 'var(--rk-ntc-blue)';
                }
            }
        } else {
            // TRYB BEZ CZUJNIKA NTC (Katastrofa)
            if (currentFloor > 27) {
                visualBox.classList.add('state-damaged');
                statusBadge.classList.add('rk-badge-warn');
                statusBadge.innerText = 'KRYTYCZNE PRZEGRZANIE POSADZKI!';
                valFloor.style.color = 'var(--rk-ntc-red)';
            } else {
                if (heatInput > 0) {
                    visualBox.classList.add('state-heating');
                    statusBadge.classList.add('rk-badge-safe');
                    statusBadge.innerText = 'Nagrzewanie...';
                    valFloor.style.color = 'var(--rk-ntc-green)';
                } else {
                    statusBadge.classList.add('rk-badge-safe');
                    statusBadge.innerText = 'System Oczekuje';
                    valFloor.style.color = 'var(--rk-ntc-blue)';
                }
            }
        }

        // Aktualizacja UI
        valAir.innerText = currentAir.toFixed(1) + '°C';
        valFloor.innerText = currentFloor.toFixed(1) + '°C';
    }

    // Obsługa zdarzeń (bezpieczna logika IF/ELSE)
    btnOn.addEventListener('click', function() {
        modeNTC = true;
        btnOn.classList.add('active');
        btnOff.classList.remove('active');
        updateSimulation();
    });

    btnOff.addEventListener('click', function() {
        modeNTC = false;
        btnOff.classList.add('active');
        btnOn.classList.remove('active');
        updateSimulation();
    });

    slider.addEventListener('input', updateSimulation);

    // Inicjalizacja
    updateSimulation();
});
</script>



<style>
:root {
    --rk-sreg-dark: #0f172a;
    --rk-sreg-blue: #0284c7;
    --rk-sreg-blue-light: #e0f2fe;
    --rk-sreg-gold: #eab308;
    --rk-sreg-gray: #475569;
    --rk-sreg-gray-light: #f8fafc;
    --rk-sreg-bg: #ffffff;
    --rk-sreg-border: #e2e8f0;
}

.rk-sreg-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-sreg-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-sreg-blue);
    overflow: hidden;
}

.rk-sreg-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-sreg-dark) 0%, #1e293b 100%);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-sreg-gold);
}

.rk-sreg-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.rk-sreg-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0 0 15px 0;
    line-height: 1.7;
}

.rk-sreg-header p:last-child {
    margin-bottom: 0;
}

.rk-sreg-header a {
    color: var(--rk-sreg-gold);
    text-decoration: none;
    font-weight: 700;
    border-bottom: 1px dashed var(--rk-sreg-gold);
}

.rk-sreg-body {
    padding: 40px 50px;
}

/* Interaktywny symulator */
.rk-sreg-simulator {
    background: var(--rk-sreg-gray-light);
    border: 1px solid var(--rk-sreg-border);
    border-radius: 20px;
    padding: 35px;
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-sreg-sim-title {
    text-align: center;
    margin: 0;
}

.rk-sreg-sim-title h3 {
    font-size: 20px;
    font-weight: 800;
    color: var(--rk-sreg-dark);
    margin: 0 0 8px 0;
}

.rk-sreg-sim-title span {
    font-size: 14px;
    color: var(--rk-sreg-gray);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.rk-sreg-layout {
    display: flex;
    align-items: center;
    gap: 40px;
}

/* Panel sterowania */
.rk-sreg-controls {
    flex: 1;
    background: var(--rk-sreg-bg);
    padding: 25px;
    border-radius: 16px;
    border: 1px solid var(--rk-sreg-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-sreg-input-group {
    margin-bottom: 25px;
}

.rk-sreg-input-group label {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--rk-sreg-gray);
    margin-bottom: 12px;
}

.rk-sreg-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    border-radius: 4px;
    background: var(--rk-sreg-border);
    outline: none;
}

.rk-sreg-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--rk-sreg-blue);
    cursor: pointer;
    border: 4px solid var(--rk-sreg-bg);
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    transition: transform 0.1s;
}

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

.rk-sreg-value-display {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-sreg-dark);
    margin-top: 8px;
}

.rk-sreg-fixed-val {
    padding-top: 15px;
    border-top: 1px dashed var(--rk-sreg-border);
}

.rk-sreg-fixed-val div {
    font-size: 13px;
    color: var(--rk-sreg-gray);
    font-weight: 600;
}

.rk-sreg-fixed-val strong {
    font-size: 18px;
    color: var(--rk-sreg-dark);
    display: block;
    margin-top: 5px;
}

/* Panel wizualizacji */
.rk-sreg-visual {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--rk-sreg-dark);
    border-radius: 16px;
    padding: 30px;
    color: #ffffff;
    position: relative;
    overflow: hidden;
}

.rk-sreg-visual::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40px;
    background: #334155; /* Symulacja płyty fundamentowej */
}

.rk-sreg-emission-val {
    font-size: 42px;
    font-weight: 900;
    color: var(--rk-sreg-gold);
    line-height: 1;
    margin-bottom: 5px;
    z-index: 2;
}

.rk-sreg-emission-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #cbd5e1;
    z-index: 2;
    margin-bottom: 25px;
}

/* Fale ciepła SVG */
.rk-sreg-heat-waves {
    width: 100px;
    height: 80px;
    z-index: 2;
    margin-bottom: 10px;
}

.rk-wave-path {
    fill: none;
    stroke: var(--rk-sreg-gold);
    stroke-width: 4;
    stroke-linecap: round;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-wave-1 { opacity: 1; transform: translateY(0); }
.rk-wave-2 { opacity: 0.7; transform: translateY(0); }
.rk-wave-3 { opacity: 0.4; transform: translateY(0); }

/* Komunikat o blokadzie */
.rk-sreg-block-msg {
    position: absolute;
    top: 20px;
    background: var(--rk-sreg-blue);
    color: #ffffff;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 800;
    opacity: 0;
    transform: translateY(-10px);
    transition: all 0.3s;
    z-index: 3;
}

.rk-sreg-block-msg.show {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 768px) {
    .rk-sreg-container { margin: 20px auto; border-radius: 16px; }
    .rk-sreg-header, .rk-sreg-body { padding: 25px 20px; }
    .rk-sreg-header h2 { font-size: 22px; }
    
    .rk-sreg-simulator { padding: 20px; }
    .rk-sreg-layout { flex-direction: column; gap: 20px; }
    .rk-sreg-controls, .rk-sreg-visual { width: 100%; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-samoregulacja",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Kiedy montaż sterowników do podłogówki mija się z celem? Wyjątki i ograniczenia",
    "description": "Zrozum zjawisko samoregulacji termicznej w budynkach pasywnych. Kiedy płyta fundamentowa grzewcza nie wymaga instalacji termostatów pokojowych.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-12-29",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-samoregulacja",
    "name": "Parametry fizyczne zjawiska samoregulacji podłogówki",
    "description": "Fizyczne dane dotyczące spadku emisji cieplnej jastrychu w zależności od różnicy temperatur (Delta T) między powierzchnią a powietrzem.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "domy pasywne ogrzewanie podłogowe",
      "płyta fundamentowa grzewcza",
      "samoregulacja termiczna podłogówki",
      "bezwładność cieplna wylewki",
      "pasywne zyski ciepła"
    ],
    "measurementTechnique": "Kalkulacja procentowego spadku emisji ciepła na podstawie zawężającej się różnicy temperatur przy stałej temperaturze podłogi (24 st. C).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Spadek różnicy temperatur z 2K do 1K obniża emisję ciepła przez posadzkę o 50%.",
        "Zjawisko samoregulacji jest w pełni wystarczające w budynkach o zapotrzebowaniu na energię EU poniżej 15 kWh/(m2/rok)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-samoregulacja",
    "name": "Symulator Zjawiska Samoregulacji Termicznej",
    "description": "Narzędzie fizyczne wizualizujące blokadę oddawania ciepła przez podłogę pod wpływem pasywnych zysków wewnętrznych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-sreg-container" id="rk-sreg-app">
    <div class="rk-sreg-header">
        <h2>Kiedy montaż sterowników do podłogówki mija się z celem? Wyjątki i ograniczenia</h2>
        <p>Automatyka strefowa (termostaty pokojowe zamykające pętle) staje się technicznie nieefektywna w <a href="https://projekt-ogrzewania.pl/projektowanie-ogrzewania-podlogowego-w-domach-pasywnych/">budynkach pasywnych</a> oraz wysoce energooszczędnych o rocznym zapotrzebowaniu na energię użytkową do ogrzewania EU &le; 15 kWh/(m²&middot;rok), w których zastosowano grubą <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-w-plycie-fundamentowej-techniczny-przewodnik-po-projektowaniu-i-montazu/">płytę fundamentową grzewczą</a> (wylewka >10 cm). W takich obiektach bezwładność cieplna układu wynosi od 12 do 24 godzin, co sprawia, że zanim siłownik zamknie przepływ, zapotrzebowanie na ciepło zdąży się drastycznie zmienić.</p>
        
        <p>W domach o tak niskich stratach ciepła, o stabilny <a href="https://projekt-ogrzewania.pl/bilans-cieplny-budynku-fundament-efektywnosci-energetycznej-i-komfortu/">bilans cieplny budowli</a> dba zjawisko samoregulacji termicznej (self-regulation effect). Jeśli temperatura powietrza w pokoju wynosi 22&deg;C, a powierzchnia podłogi ma 24&deg;C, różnica wynosi zaledwie 2 K. Gdy temperatura w pokoju wzrośnie do 23&deg;C (np. z powodu <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">pasywnych zysków od słońca</a>), różnica temperatur spada do 1 K, co powoduje automatyczny, fizyczny spadek emisji ciepła przez podłogę o blisko 50% bez jakiejkolwiek ingerencji elektroniki. W takich przypadkach optymalnym rozwiązaniem jest sterowanie wyłącznie centralne.</p>
    </div>

    <div class="rk-sreg-body">
        <div class="rk-sreg-simulator">
            <div class="rk-sreg-sim-title">
                <h3>Wizualizacja Samoregulacji Termicznej</h3>
                <span>Zobacz jak fizyka zastępuje elektronikę</span>
            </div>

            <div class="rk-sreg-layout">
                <div class="rk-sreg-controls">
                    <div class="rk-sreg-input-group">
                        <label>Zyski ciepła (Temp. powietrza w pokoju)</label>
                        <input type="range" class="rk-sreg-slider" id="srAirTemp" min="20.0" max="25.0" step="0.5" value="20.0">
                        <div class="rk-sreg-value-display"><span id="srAirDisplay">20.0</span> &deg;C</div>
                    </div>
                    
                    <div class="rk-sreg-fixed-val">
                        <div>Stała temperatura nagrzanej płyty podłogowej:</div>
                        <strong>24.0 &deg;C</strong>
                    </div>
                </div>

                <div class="rk-sreg-visual">
                    <div class="rk-sreg-block-msg" id="srBlockMsg">Fizyczna Blokada Emisji!</div>
                    
                    <div class="rk-sreg-emission-val"><span id="srPowerDisplay">100</span>%</div>
                    <div class="rk-sreg-emission-label">Emisja ciepła z posadzki</div>

                    <svg class="rk-sreg-heat-waves" viewBox="0 0 100 80">
                        <path class="rk-wave-path rk-wave-1" id="wave1" d="M20 70 Q35 50 50 70 T80 70" />
                        <path class="rk-wave-path rk-wave-2" id="wave2" d="M20 45 Q35 25 50 45 T80 45" />
                        <path class="rk-wave-path rk-wave-3" id="wave3" d="M20 20 Q35 0 50 20 T80 20" />
                    </svg>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const sliderAir = document.getElementById('srAirTemp');
    const displayAir = document.getElementById('srAirDisplay');
    const displayPower = document.getElementById('srPowerDisplay');
    const blockMsg = document.getElementById('srBlockMsg');
    
    // Fale SVG
    const wave1 = document.getElementById('wave1');
    const wave2 = document.getElementById('wave2');
    const wave3 = document.getElementById('wave3');

    const floorTemp = 24.0;
    const maxDelta = 4.0; // Różnica bazowa (24 - 20) dla 100% emisji

    function updatePhysics() {
        let airTemp = parseFloat(sliderAir.value);
        displayAir.innerText = airTemp.toFixed(1);

        let deltaT = floorTemp - airTemp;
        
        // Zabezpieczenie przed wartością ujemną
        if (deltaT < 0) {
            deltaT = 0;
        }

        // Procent emisji
        let powerPercent = (deltaT / maxDelta) * 100;
        
        if (powerPercent < 0) {
            powerPercent = 0;
        }

        displayPower.innerText = Math.round(powerPercent);

        // Wizualizacja fal
        if (powerPercent > 70) {
            wave1.style.opacity = '1';
            wave2.style.opacity = '0.8';
            wave3.style.opacity = '0.5';
            wave1.style.transform = 'translateY(0)';
            wave2.style.transform = 'translateY(0)';
            wave3.style.transform = 'translateY(0)';
            blockMsg.classList.remove('show');
        } else if (powerPercent > 40) {
            wave1.style.opacity = '0.8';
            wave2.style.opacity = '0.4';
            wave3.style.opacity = '0';
            wave1.style.transform = 'translateY(5px)';
            wave2.style.transform = 'translateY(10px)';
            blockMsg.classList.remove('show');
        } else if (powerPercent > 0) {
            wave1.style.opacity = '0.4';
            wave2.style.opacity = '0';
            wave3.style.opacity = '0';
            wave1.style.transform = 'translateY(15px)';
            blockMsg.classList.remove('show');
        } else {
            // Emisja równa 0%
            wave1.style.opacity = '0';
            wave2.style.opacity = '0';
            wave3.style.opacity = '0';
            blockMsg.classList.add('show');
        }
    }

    sliderAir.addEventListener('input', updatePhysics);
    
    // Inicjalizacja
    updatePhysics();
});
</script>



<style>
:root {
    --rk-pwm-dark: #0f172a;
    --rk-pwm-blue: #0284c7;
    --rk-pwm-blue-light: #e0f2fe;
    --rk-pwm-orange: #f97316;
    --rk-pwm-orange-light: #ffedd5;
    --rk-pwm-gray: #475569;
    --rk-pwm-bg: #ffffff;
    --rk-pwm-border: #e2e8f0;
}

.rk-pwm-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-pwm-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.12);
    border: 1px solid var(--rk-pwm-blue);
    overflow: hidden;
}

.rk-pwm-header {
    padding: 40px 50px;
    background: linear-gradient(135deg, var(--rk-pwm-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-pwm-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-pwm-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
}

.rk-pwm-body {
    padding: 40px 50px;
}

.rk-pwm-steps {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-bottom: 40px;
}

.rk-pwm-step {
    background: #f8fafc;
    border: 1px solid var(--rk-pwm-border);
    border-radius: 16px;
    padding: 25px;
}

.rk-pwm-step-number {
    display: inline-block;
    background: var(--rk-pwm-blue);
    color: #ffffff;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    text-align: center;
    line-height: 32px;
    font-weight: 800;
    margin-bottom: 15px;
}

.rk-pwm-step h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-pwm-dark);
    margin: 0 0 10px 0;
}

.rk-pwm-step p {
    font-size: 14px;
    color: var(--rk-pwm-gray);
    line-height: 1.6;
    margin: 0;
}

.rk-pwm-step a {
    color: var(--rk-pwm-blue);
    text-decoration: none;
    font-weight: 600;
}

/* Interaktywny Symulator */
.rk-pwm-simulator {
    background: var(--rk-pwm-dark);
    border-radius: 20px;
    padding: 40px;
    color: #ffffff;
}

.rk-pwm-sim-title {
    font-size: 22px;
    font-weight: 800;
    margin: 0 0 30px 0;
    text-align: center;
    color: var(--rk-pwm-orange);
}

.rk-pwm-controls {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
}

.rk-pwm-control-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.rk-pwm-control-group label {
    font-size: 14px;
    font-weight: 700;
    color: #cbd5e1;
}

.rk-pwm-slider {
    width: 100%;
    -webkit-appearance: none;
    height: 8px;
    border-radius: 4px;
    background: #334155;
    outline: none;
}

.rk-pwm-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--rk-pwm-orange);
    cursor: pointer;
    border: 4px solid #ffffff;
    box-shadow: 0 0 10px rgba(249, 115, 22, 0.5);
}

.rk-pwm-val-display {
    font-size: 24px;
    font-weight: 900;
    color: #ffffff;
    margin-top: 5px;
}

/* Przełącznik Wylewki */
.rk-screed-toggle {
    display: flex;
    background: #1e293b;
    border-radius: 12px;
    padding: 4px;
    margin-bottom: 20px;
}

.rk-screed-btn {
    flex: 1;
    padding: 12px;
    text-align: center;
    background: transparent;
    border: none;
    color: #94a3b8;
    font-weight: 700;
    font-size: 14px;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.3s;
}

.rk-screed-btn.active {
    background: var(--rk-pwm-blue);
    color: #ffffff;
}

/* Wyniki */
.rk-pwm-results {
    background: #1e293b;
    border-radius: 16px;
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.rk-pwm-result-box {
    flex: 1;
    text-align: center;
}

.rk-pwm-result-label {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #94a3b8;
    margin-bottom: 8px;
}

.rk-pwm-result-value {
    font-size: 32px;
    font-weight: 900;
}

.rk-val-open { color: var(--rk-pwm-orange); }
.rk-val-closed { color: var(--rk-pwm-blue); }

.rk-pwm-visual {
    width: 120px;
    height: 120px;
    position: relative;
}

.rk-svg-circle {
    transform: rotate(-90deg);
    transform-origin: 50% 50%;
    transition: stroke-dasharray 0.5s ease;
}

/* CTA */
.rk-pwm-cta {
    background: var(--rk-pwm-bg);
    padding: 40px 50px;
    text-align: center;
    border-top: 1px solid var(--rk-pwm-border);
}

.rk-pwm-cta h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-pwm-dark);
    margin: 0 0 15px 0;
}

.rk-pwm-cta p {
    font-size: 16px;
    color: var(--rk-pwm-gray);
    margin: 0 auto 25px auto;
    max-width: 700px;
    line-height: 1.6;
}

.rk-btn-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: var(--rk-pwm-blue);
    color: #ffffff;
    font-size: 16px;
    font-weight: 800;
    padding: 20px 35px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-btn-cta:hover {
    transform: translateY(-4px);
    background: #0369a1;
    box-shadow: 0 15px 35px -5px rgba(2, 132, 199, 0.5);
}

@media (max-width: 768px) {
    .rk-pwm-container { margin: 20px auto; }
    .rk-pwm-header, .rk-pwm-body, .rk-pwm-simulator, .rk-pwm-cta { padding: 30px 20px; }
    .rk-pwm-steps { grid-template-columns: 1fr; gap: 20px; }
    .rk-pwm-controls { grid-template-columns: 1fr; gap: 30px; }
    .rk-pwm-results { flex-direction: column; text-align: center; }
    .rk-svg-circle-wrap { margin: 20px auto; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-pwm",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Jak poprawnie skonfigurować algorytm sterowania ogrzewaniem? Przewodnik krok po kroku",
    "description": "Techniczny przewodnik kalibracji automatyki podłogówki. Obliczanie czasu otwarcia siłowników w algorytmie PWM w zależności od uchybu temperatury i rodzaju wylewki.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-pwm",
    "name": "Parametry kalibracji algorytmu PWM/TPI w ogrzewaniu płaszczyznowym",
    "description": "Zbiór danych i wzorów matematycznych definiujących poprawną konfigurację systemów sterowania strefowego w zależności od masy termicznej jastrychu.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "algorytm PWM w ogrzewaniu",
      "histereza czy PWM",
      "czas otwarcia siłownika podłogówki",
      "wylewka anhydrytowa a sterowanie",
      "taktowanie pompy ciepła"
    ],
    "measurementTechnique": "Obliczanie cyklu pracy siłowników (t_on) z wykorzystaniem wzmocnienia proporcjonalnego Kp (0,2) oraz uchybu regulacji.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Baza czasu dla wylewki betonowej: 60 minut.",
        "Baza czasu dla wylewki anhydrytowej: 30 minut.",
        "Minimalny bezpieczny czas otwarcia siłownika (ochrona przekaźników): 3 minuty."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-pwm",
    "name": "Symulator Algorytmu PWM dla Ogrzewania Podłogowego",
    "description": "Interaktywne narzędzie obliczeniowe pozwalające na symulację zachowania siłowników termoelektrycznych na podstawie zmiennej temperatury zadanej i aktualnej.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-pwm-container" id="rk-pwm-app">
    <div class="rk-pwm-header">
        <h2>Jak poprawnie skonfigurować algorytm sterowania ogrzewaniem? Przewodnik krok po kroku</h2>
        <p>Prawidłowa parametryzacja automatyki podłogówki zapobiega taktowaniu źródła ciepła i stabilizuje temperaturę. Poniżej znajduje się logika konfiguracji sterownika z uwzględnieniem algorytmu modulacji.</p>
    </div>

    <div class="rk-pwm-body">
        <div class="rk-pwm-steps">
            <div class="rk-pwm-step">
                <span class="rk-pwm-step-number">1</span>
                <h3>Wybór trybu pracy (PWM vs Histereza)</h3>
                <p>Należy bezwzględnie wyłączyć klasyczną histerezę, ponieważ wygeneruje ona przesterowania temperatury o ponad 1,5°C ze względu na <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność wylewki</a>. Aktywuj algorytm <strong>PWM / TPI</strong>, dedykowany do układów inercyjnych.</p>
            </div>
            <div class="rk-pwm-step">
                <span class="rk-pwm-step-number">2</span>
                <h3>Określenie czasu cyklu PWM</h3>
                <p>Dla standardowej <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">wylewki betonowej</a> czas cyklu ustawia się na <strong>60 minut</strong>. Dla wylewek anhydrytowych (cieńszych, szybko przewodzących ciepło) bazę czasu skracamy do <strong>30 minut</strong>.</p>
            </div>
            <div class="rk-pwm-step">
                <span class="rk-pwm-step-number">3</span>
                <h3>Wyliczenie czasu otwarcia siłownika</h3>
                <p>Algorytm oblicza czas zasilania siłownika w każdym cyklu na podstawie uchybu regulacji (różnicy temperatur):<br>
                <strong>Czas Otwarcia = Cykl × [ Kp × (Temp. Zadana - Temp. Aktualna) ]</strong><br>
                Gdzie wzmocnienie Kp wynosi zazwyczaj 0,2.</p>
            </div>
            <div class="rk-pwm-step">
                <span class="rk-pwm-step-number">4</span>
                <h3>Limity dla ochrony źródła</h3>
                <p>Należy wprowadzić minimalny czas otwarcia <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłownika termoelektrycznego</a> na poziomie <strong>3 minut</strong>. Zapobiega to zbędnemu uruchamianiu pompy obiegowej na zaledwie kilkanaście sekund.</p>
            </div>
        </div>

        <div class="rk-pwm-simulator">
            <h3 class="rk-pwm-sim-title">Symulator czasu pracy siłownika w algorytmie PWM</h3>
            
            <div class="rk-screed-toggle">
                <button class="rk-screed-btn active" data-cycle="60" id="btnBeton">Wylewka Betonowa (Cykl 60 min)</button>
                <button class="rk-screed-btn" data-cycle="30" id="btnAnhydryt">Wylewka Anhydrytowa (Cykl 30 min)</button>
            </div>

            <div class="rk-pwm-controls">
                <div class="rk-pwm-control-group">
                    <label>Temperatura Zadana (Termostat)</label>
                    <input type="range" class="rk-pwm-slider" id="tempZadana" min="18.0" max="25.0" step="0.1" value="22.0">
                    <div class="rk-pwm-val-display"><span id="valZadana">22.0</span> °C</div>
                </div>
                <div class="rk-pwm-control-group">
                    <label>Temperatura Aktualna w Pokoju</label>
                    <input type="range" class="rk-pwm-slider" id="tempAktualna" min="18.0" max="25.0" step="0.1" value="21.5">
                    <div class="rk-pwm-val-display"><span id="valAktualna">21.5</span> °C</div>
                </div>
            </div>

            <div class="rk-pwm-results">
                <div class="rk-pwm-result-box">
                    <div class="rk-pwm-result-label">Zawór otwarty (Grzanie)</div>
                    <div class="rk-pwm-result-value rk-val-open"><span id="outOpen">6</span> min</div>
                </div>
                
                <div class="rk-svg-circle-wrap">
                    <svg class="rk-pwm-visual" viewBox="0 0 100 100">
                        <circle cx="50" cy="50" r="45" fill="none" stroke="#0284c7" stroke-width="10"></circle>
                        <circle cx="50" cy="50" r="45" fill="none" stroke="#f97316" stroke-width="10" stroke-dasharray="0 283" class="rk-svg-circle" id="svgProgress"></circle>
                    </svg>
                </div>

                <div class="rk-pwm-result-box">
                    <div class="rk-pwm-result-label">Zawór zamknięty (Przerwa)</div>
                    <div class="rk-pwm-result-value rk-val-closed"><span id="outClosed">54</span> min</div>
                </div>
            </div>
        </div>
    </div>

    <div class="rk-pwm-cta">
        <h3>Projekt instalacji dopasowany do logiki sterownika</h3>
        <p>Błędnie dobrany rozstaw rur zniszczy efektywność nawet najlepszego sterownika z algorytmem PWM. Wybierz kompleksowy projekt instalacji grzewczej oparty na rzetelnych wyliczeniach hydraulicznych OZC.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-cta">
            ZAMÓW PROJEKT INSTALACJI OGRZEWANIA PODŁOGOWEGO ONLINE
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    let cycleTime = 60; // Domyślnie beton
    const Kp = 0.2; // Wzmocnienie proporcjonalne
    
    const btnBeton = document.getElementById('btnBeton');
    const btnAnhydryt = document.getElementById('btnAnhydryt');
    const sliderZadana = document.getElementById('tempZadana');
    const sliderAktualna = document.getElementById('tempAktualna');
    const displayZadana = document.getElementById('valZadana');
    const displayAktualna = document.getElementById('valAktualna');
    const outOpen = document.getElementById('outOpen');
    const outClosed = document.getElementById('outClosed');
    const svgProgress = document.getElementById('svgProgress');

    // Funkcja obliczająca bez użycia &&
    function calculatePWM() {
        let tZad = parseFloat(sliderZadana.value);
        let tAkt = parseFloat(sliderAktualna.value);
        
        displayZadana.innerText = tZad.toFixed(1);
        displayAktualna.innerText = tAkt.toFixed(1);

        let error = tZad - tAkt;
        
        if (error < 0) {
            error = 0;
        }

        let timeOn = cycleTime * (Kp * error);

        if (timeOn > cycleTime) {
            timeOn = cycleTime;
        }

        if (timeOn > 0) {
            if (timeOn < 3) {
                // Zabezpieczenie źródła - limit minimum 3 min
                timeOn = 0;
            }
        }

        let timeOnRounded = Math.round(timeOn);
        let timeOff = cycleTime - timeOnRounded;

        outOpen.innerText = timeOnRounded;
        outClosed.innerText = timeOff;

        // Obliczenie proporcji do koła SVG (obwód = 2 * PI * 45 = ok. 282.7)
        let circumference = 283;
        let percentage = timeOnRounded / cycleTime;
        let strokeDash = percentage * circumference;
        
        svgProgress.style.strokeDasharray = strokeDash + " 283";
    }

    // Eventy dla przycisków wylewki
    btnBeton.addEventListener('click', function() {
        btnBeton.classList.add('active');
        btnAnhydryt.classList.remove('active');
        cycleTime = 60;
        calculatePWM();
    });

    btnAnhydryt.addEventListener('click', function() {
        btnAnhydryt.classList.add('active');
        btnBeton.classList.remove('active');
        cycleTime = 30;
        calculatePWM();
    });

    // Eventy dla suwaków
    sliderZadana.addEventListener('input', calculatePWM);
    sliderAktualna.addEventListener('input', calculatePWM);

    // Inicjalizacja
    calculatePWM();
});
</script>



<style>
:root {
    --rk-proj-dark: #0f172a;
    --rk-proj-blue: #0284c7;
    --rk-proj-blue-light: #e0f2fe;
    --rk-proj-accent: #38bdf8;
    --rk-proj-gray: #475569;
    --rk-proj-bg: #ffffff;
    --rk-proj-border: #e2e8f0;
    --rk-proj-hover: #f8fafc;
}

.rk-project-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-proj-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-proj-border);
    overflow: hidden;
}

.rk-project-header {
    padding: 45px 50px 35px;
    background: linear-gradient(135deg, var(--rk-proj-dark) 0%, #1e293b 100%);
    color: #ffffff;
    position: relative;
}

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

.rk-project-header p {
    font-size: 16px;
    line-height: 1.6;
    color: #cbd5e1;
    margin: 0;
    max-width: 800px;
}

.rk-project-body {
    padding: 40px 50px;
    background: #f8fafc;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-node-item {
    background: var(--rk-proj-bg);
    border: 2px solid var(--rk-proj-border);
    border-radius: 16px;
    transition: all 0.3s ease;
    overflow: hidden;
}

.rk-node-item.is-active {
    border-color: var(--rk-proj-blue);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.15);
}

.rk-node-trigger {
    width: 100%;
    padding: 24px 30px;
    background: transparent;
    border: none;
    display: flex;
    align-items: center;
    gap: 24px;
    cursor: pointer;
    text-align: left;
    transition: background-color 0.3s ease;
}

.rk-node-trigger:hover {
    background-color: var(--rk-proj-hover);
}

.rk-node-icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--rk-proj-blue-light);
    color: var(--rk-proj-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-node-item.is-active .rk-node-icon {
    background: var(--rk-proj-blue);
    color: #ffffff;
    transform: scale(1.1) rotate(5deg);
}

.rk-node-title {
    flex: 1;
}

.rk-node-title h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-proj-dark);
    margin: 0;
    transition: color 0.3s ease;
}

.rk-node-item.is-active .rk-node-title h3 {
    color: var(--rk-proj-blue);
}

.rk-node-indicator {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border: 2px solid var(--rk-proj-border);
    border-radius: 50%;
    position: relative;
    transition: all 0.3s ease;
}

.rk-node-indicator::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0);
    width: 12px;
    height: 12px;
    background: var(--rk-proj-blue);
    border-radius: 50%;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-node-item.is-active .rk-node-indicator {
    border-color: var(--rk-proj-blue);
}

.rk-node-item.is-active .rk-node-indicator::after {
    transform: translate(-50%, -50%) scale(1);
}

.rk-node-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-node-content-inner {
    padding: 0 30px 30px 102px; /* Dostosowane do ikony */
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-proj-gray);
    border-top: 1px solid transparent;
}

.rk-node-item.is-active .rk-node-content-inner {
    border-top-color: var(--rk-proj-blue-light);
    padding-top: 20px;
    margin-top: 5px;
}

.rk-node-content-inner strong {
    color: var(--rk-proj-dark);
    font-weight: 700;
}

.rk-node-content-inner a {
    color: var(--rk-proj-blue);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px dashed var(--rk-proj-blue);
    transition: all 0.2s;
}

.rk-node-content-inner a:hover {
    color: var(--rk-proj-dark);
    border-bottom-color: var(--rk-proj-dark);
}

/* Mocne CTA */
.rk-proj-cta {
    background: var(--rk-proj-bg);
    padding: 45px 50px;
    text-align: center;
    border-top: 1px solid var(--rk-proj-border);
}

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

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

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

.rk-btn-premium:hover {
    transform: translateY(-4px);
    background: #0369a1;
    box-shadow: 0 15px 35px -5px rgba(2, 132, 199, 0.5);
    border-color: var(--rk-proj-accent);
}

.rk-btn-premium svg {
    transition: transform 0.3s;
}

.rk-btn-premium:hover svg {
    transform: translateX(5px);
}

/* Responsywność Mobile */
@media (max-width: 768px) {
    .rk-project-container { margin: 20px auto; border-radius: 16px; }
    .rk-project-header, .rk-project-body, .rk-proj-cta { padding: 30px 20px; }
    .rk-project-header h2 { font-size: 24px; }
    
    .rk-node-trigger { padding: 20px; gap: 16px; }
    .rk-node-icon { width: 40px; height: 40px; border-radius: 10px; }
    .rk-node-icon svg { width: 20px; height: 20px; }
    .rk-node-title h3 { font-size: 16px; }
    
    .rk-node-content-inner { padding: 0 20px 20px 20px; } /* Usunięcie lewego wcięcia na mobile */
    .rk-btn-premium { width: 100%; padding: 18px 20px; font-size: 15px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-projekt",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Jak automatyka strefowa wpływa na profesjonalny projekt ogrzewania podłogowego?",
    "description": "Zobacz, jak inteligentne sterowanie wymusza zmiany w architekturze kotłowni. Wpływ automatyki na bufor ciepła, pompę obiegową ΔP-c oraz rozstaw rur w projekcie.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-projekt",
    "name": "Wymagania hydrauliczne dla automatyki strefowej wg PN-EN 1264",
    "description": "Korelacja między cyfrowym zamykaniem pętli grzewczych a wydajnością masową pomp ciepła oraz bilansem ciśnień w rozdzielaczach.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projekt instalacji ogrzewania podłogowego online",
      "sprzęgło hydrauliczne w pompie ciepła",
      "bufor ciepła a podłogówka",
      "pompa obiegowa ze zmiennym ciśnieniem",
      "obliczenia OZC dla stref"
    ],
    "measurementTechnique": "Analiza współzależności parametrów hydraulicznych (przepływ masowy, opory miejscowe) w zmiennych warunkach pracy wywołanych dławieniem strefowym.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wymóg stosowania sprzęgła/bufora przy zamykaniu 70% pętli dla zachowania przepływu parownika.",
        "Konieczność zastosowania pomp obiegowych z autoadaptacją ciśnienia stałego ΔP-c."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-projekt",
    "name": "Symulator Wymagań Hydraulicznych",
    "description": "Interaktywny walidator zależności między sterowaniem strefowym a architekturą kotłowni i parametrami rozdzielaczy podłogowych.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-project-container" id="rk-proj-sys">
    <div class="rk-project-header">
        <h2>Jak automatyka strefowa wpływa na profesjonalny projekt ogrzewania podłogowego?</h2>
        <p>Dobór systemu sterowania musi być integralną częścią obliczeń hydraulicznych na etapie projektowania instalacji zgodnie z normą <strong>PN-EN 1264</strong>. Wybierz węzeł, aby zobaczyć inżynierskie konsekwencje.</p>
    </div>

    <div class="rk-project-body" id="rkProjectNodes">
        
        <div class="rk-node-item">
            <button class="rk-node-trigger" aria-expanded="false">
                <div class="rk-node-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="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg>
                </div>
                <div class="rk-node-title">
                    <h3>Projektowanie stref i pętli (OZC)</h3>
                </div>
                <div class="rk-node-indicator"></div>
            </button>
            <div class="rk-node-content">
                <div class="rk-node-content-inner">
                    Dokładne <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">obliczenie strat ciepła</a> dla każdego pomieszczenia (OZC) pozwala przyporządkować konkretne pętle do osobnych stref sterowania. Pomieszczenia o skrajnie różnych zyskach (np. salon z dużymi przeszkleniami południowymi vs sypialnia północna) muszą bezwzględnie posiadać niezależne termostaty.
                </div>
            </div>
        </div>

        <div class="rk-node-item">
            <button class="rk-node-trigger" aria-expanded="false">
                <div class="rk-node-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="4"></circle><line x1="12" y1="2" x2="12" y2="8"></line><line x1="12" y1="16" x2="12" y2="22"></line><line x1="2" y1="12" x2="8" y2="12"></line><line x1="16" y1="12" x2="22" y2="12"></line></svg>
                </div>
                <div class="rk-node-title">
                    <h3>Sprzęgło hydrauliczne i bufor w układzie</h3>
                </div>
                <div class="rk-node-indicator"></div>
            </button>
            <div class="rk-node-content">
                <div class="rk-node-content-inner">
                    Gdy sterowniki pokojowe zamkną np. 70% pętli na rozdzielaczach, drastycznie spada przepływ masowy w instalacji. Pompa ciepła, która do prawidłowej pracy wymaga minimalnego, stabilnego przepływu (np. 1,2 m³/h), wejdzie w stan awarii (błąd <em>flow switch error</em>). Projekt musi uwzględniać <a href="https://projekt-ogrzewania.pl/sprzeglo-hydrauliczne-w-instalacji-ogrzewania-podlogowego/">sprzęgło hydrauliczne</a> lub <a href="https://projekt-ogrzewania.pl/bufor-ciepla-w-ogrzewaniu-podlogowym/">bufor spięty jako bypass</a>, aby odsprzęgnąć obieg źródła od zablokowanego obiegu instalacji.
                </div>
            </div>
        </div>

        <div class="rk-node-item">
            <button class="rk-node-trigger" aria-expanded="false">
                <div class="rk-node-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" 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>
                </div>
                <div class="rk-node-title">
                    <h3>Dobór pompy obiegowej z trybem ΔP-c</h3>
                </div>
                <div class="rk-node-indicator"></div>
            </button>
            <div class="rk-node-content">
                <div class="rk-node-content-inner">
                    <a href="https://projekt-ogrzewania.pl/pompa-obiegowa-w-instalacji-ogrzewania-podlogowego/">Pompa obiegowa podłogówki</a> musi pracować w trybie stałego ciśnienia (proporcjonalnego redukowania obrotów) <strong>ΔP-c</strong>. Gdy automatyka zamyka kolejne siłowniki, opory hydrauliczne instalacji rosną. Inteligentna pompa wykrywa zmianę ciśnienia, redukuje swoje obroty i pobór mocy (z np. 45W do 4W), skutecznie zapobiegając generowaniu szumów na rotometrach rozdzielacza.
                </div>
            </div>
        </div>

        <div class="rk-node-item">
            <button class="rk-node-trigger" aria-expanded="false">
                <div class="rk-node-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="M4 9h16"></path><path d="M4 15h16"></path><path d="M10 3v18"></path><path d="M14 3v18"></path></svg>
                </div>
                <div class="rk-node-title">
                    <h3>Rozstaw rur a autorytet zaworów</h3>
                </div>
                <div class="rk-node-indicator"></div>
            </button>
            <div class="rk-node-content">
                <div class="rk-node-content-inner">
                    Przy gęstym <a href="https://projekt-ogrzewania.pl/rozstaw-rur-ogrzewania-podlogowego-przy-pompie-ciepla/">rozstawie rur</a> (np. co 10 cm przy pompie ciepła) moc jednostkowa podłogi jest wysoka. Brak automatyki drastycznie pogłębia tu błędy regulacyjne, dlatego średnice rur zasilających rozdzielacz oraz autorytet zaworów z siłownikami muszą być tak przeliczone w projekcie, aby po odcięciu części stref nie dochodziło do rozrównoważenia pozostałych pętli.
                </div>
            </div>
        </div>

    </div>

    <div class="rk-proj-cta">
        <h3>Nie zgaduj parametrów swojej instalacji</h3>
        <p>Gdy stawką jest bezawaryjna praca pompy ciepła, matematyka wygrywa z instalatorską intuicją. Wyeliminuj błędy, zaufaj inżynierom i zdobądź pełną dokumentację swojego układu.</p>
        <a href="https://projekt-ogrzewania.pl/produkt/projekt-instalacji-ogrzewania-podlogowego-podlogowki/" class="rk-btn-premium">
            ZAMÓW KOMPLEKSOWY PROJEKT INSTALACJI OGRZEWANIA PODŁOGOWEGO ONLINE
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const nodeItems = document.querySelectorAll('.rk-node-item');

    nodeItems.forEach(function(item) {
        const triggerBtn = item.querySelector('.rk-node-trigger');
        const contentDiv = item.querySelector('.rk-node-content');

        triggerBtn.addEventListener('click', function() {
            // Bezpieczna logika przełączania - eliminacja operatorów &&
            
            if (item.classList.contains('is-active')) {
                // Zwiń, jeśli jest już otwarty
                item.classList.remove('is-active');
                triggerBtn.setAttribute('aria-expanded', 'false');
                contentDiv.style.maxHeight = null;
            } else {
                // Najpierw zwiń wszystkie inne aktywne węzły
                nodeItems.forEach(function(otherItem) {
                    if (otherItem !== item) {
                        if (otherItem.classList.contains('is-active')) {
                            otherItem.classList.remove('is-active');
                            otherItem.querySelector('.rk-node-trigger').setAttribute('aria-expanded', 'false');
                            otherItem.querySelector('.rk-node-content').style.maxHeight = null;
                        }
                    }
                });
                
                // Otwórz kliknięty węzeł
                item.classList.add('is-active');
                triggerBtn.setAttribute('aria-expanded', 'true');
                contentDiv.style.maxHeight = contentDiv.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-matrix-dark: #0f172a;
    --rk-matrix-dark-card: #1e293b;
    --rk-matrix-blue: #0284c7;
    --rk-matrix-blue-light: #e0f2fe;
    --rk-matrix-green: #10b981;
    --rk-matrix-red: #ef4444;
    --rk-matrix-gray: #475569;
    --rk-matrix-gray-light: #f8fafc;
    --rk-matrix-bg: #ffffff;
    --rk-matrix-border: #e2e8f0;
}

.rk-matrix-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-matrix-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.1);
    border: 1px solid var(--rk-matrix-blue);
    overflow: hidden;
}

.rk-matrix-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-matrix-dark) 0%, #1e293b 100%);
    color: #ffffff;
}

.rk-matrix-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-matrix-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.7;
}

.rk-matrix-body {
    padding: 40px 50px;
    background: var(--rk-matrix-gray-light);
}

/* Interaktywny Dashboard */
.rk-matrix-dashboard {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

/* Panel wyboru (Poziomy) */
.rk-matrix-levels {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.rk-matrix-btn {
    background: var(--rk-matrix-bg);
    border: 2px solid var(--rk-matrix-border);
    padding: 20px 15px;
    border-radius: 16px;
    cursor: pointer;
    text-align: center;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.rk-matrix-btn:hover {
    border-color: var(--rk-matrix-blue-light);
    transform: translateY(-2px);
}

.rk-matrix-btn.is-active {
    background: var(--rk-matrix-blue);
    border-color: var(--rk-matrix-blue);
    color: #ffffff;
    box-shadow: 0 10px 20px -5px rgba(2, 132, 199, 0.3);
}

.rk-matrix-btn-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--rk-matrix-dark);
    transition: color 0.3s;
}

.rk-matrix-btn.is-active .rk-matrix-btn-title {
    color: #ffffff;
}

.rk-matrix-btn-sub {
    font-size: 11px;
    font-weight: 600;
    color: var(--rk-matrix-gray);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: color 0.3s;
}

.rk-matrix-btn.is-active .rk-matrix-btn-sub {
    color: var(--rk-matrix-blue-light);
}

/* Wyświetlacz danych (Output) */
.rk-matrix-output {
    background: var(--rk-matrix-bg);
    border-radius: 20px;
    border: 1px solid var(--rk-matrix-border);
    padding: 35px;
    box-shadow: 0 10px 30px -10px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.rk-matrix-output-header {
    border-bottom: 1px dashed var(--rk-matrix-border);
    padding-bottom: 25px;
}

.rk-matrix-output-header h3 {
    font-size: 24px;
    font-weight: 900;
    color: var(--rk-matrix-dark);
    margin: 0 0 10px 0;
}

.rk-matrix-output-header p {
    font-size: 15px;
    color: var(--rk-matrix-gray);
    line-height: 1.6;
    margin: 0;
}

.rk-matrix-output-header a {
    color: var(--rk-matrix-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-matrix-blue);
}

/* Parametry grid */
.rk-matrix-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.rk-matrix-stat-box {
    background: var(--rk-matrix-gray-light);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--rk-matrix-border);
}

.rk-stat-title {
    font-size: 12px;
    color: var(--rk-matrix-gray);
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.rk-stat-desc {
    font-size: 16px;
    font-weight: 700;
    color: var(--rk-matrix-dark);
    line-height: 1.4;
}

.rk-stat-desc.rk-color-red { color: var(--rk-matrix-red); }
.rk-stat-desc.rk-color-green { color: var(--rk-matrix-green); }
.rk-stat-desc.rk-color-blue { color: var(--rk-matrix-blue); }

/* SVG Wizualizacja */
.rk-matrix-visual {
    background: var(--rk-matrix-dark-card);
    border-radius: 16px;
    padding: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 120px;
}

.rk-svg-comp { transition: all 0.4s ease; fill: #334155; }
.rk-svg-line { transition: all 0.4s ease; stroke: #334155; stroke-width: 3; fill: none; }
.rk-svg-active { fill: var(--rk-matrix-blue); }
.rk-svg-active-line { stroke: var(--rk-matrix-blue); stroke-dasharray: 6 4; animation: rkFlowAnim 1s linear infinite; }
.rk-svg-active-green { fill: var(--rk-matrix-green); }

@keyframes rkFlowAnim {
    to { stroke-dashoffset: -10; }
}

@media (max-width: 768px) {
    .rk-matrix-container { margin: 20px auto; border-radius: 16px; }
    .rk-matrix-header, .rk-matrix-body { padding: 25px 20px; }
    .rk-matrix-header h2 { font-size: 24px; }
    
    .rk-matrix-levels { grid-template-columns: 1fr; gap: 10px; }
    .rk-matrix-btn { flex-direction: row; padding: 15px 20px; justify-content: space-between; }
    .rk-matrix-btn-title { font-size: 15px; }
    
    .rk-matrix-output { padding: 25px 20px; }
    .rk-matrix-stats { grid-template-columns: 1fr; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-porownanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Zestawienie systemów: Brak sterowników vs Pogodówka vs Termostaty",
    "description": "Kompleksowa tabela porównawcza technologii sterowania ogrzewaniem podłogowym. Sprawdź, który wariant zapewnia najwyższy komfort i najniższe koszty eksploatacji.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-porownanie",
    "name": "Macierz porównawcza technologii sterowania podłogówką",
    "description": "Zestawienie efektywności, kosztów i komfortu dla 4 wariantów instalacyjnych: Brak, Pogodowe, Pokojowe, Hybrydowe.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "tabela porównawcza ogrzewanie podłogowe",
      "sterowanie pogodowe a termostaty pokojowe",
      "jakie sterowanie do pompy ciepła wybrać",
      "wady i zalety sterowania podłogówką",
      "zawór mieszający w ogrzewaniu podłogowym"
    ],
    "measurementTechnique": "Macierz analityczna oceniająca potencjał oszczędności energii i komfortu termicznego w relacji do skomplikowania układu hydraulicznego.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Wariant 1: Brak automatyki - najwyższe ryzyko przegrzewania i najniższy komfort.",
        "Wariant 4: Hybryda - maksymalna optymalizacja COP pompy ciepła połączona ze strefową blokadą zysków pasywnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-porownanie",
    "name": "Kalkulator Poziomów Automatyki (System Upgrade Simulator)",
    "description": "Interaktywny interfejs typu dashboard umożliwiający przełączanie i weryfikację ewolucji systemów sterowania HVAC.",
    "applicationCategory": "EngineeringApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-matrix-container" id="rk-matrix-app">
    <div class="rk-matrix-header">
        <h2>Porównanie systemów: Od braku automatyki do pełnej hybrydy</h2>
        <p>Decyzja o wyborze sterowania determinuje koszty eksploatacji na lata. Zamiast obszernej tabeli, przygotowałem interaktywną macierz. Wybierz poziom zaawansowania instalacji, aby sprawdzić, co zyskujesz, a co tracisz.</p>
    </div>

    <div class="rk-matrix-body">
        <div class="rk-matrix-dashboard">
            
            <div class="rk-matrix-levels">
                <button class="rk-matrix-btn is-active" data-level="0">
                    <span class="rk-matrix-btn-sub">Wariant Podstawowy</span>
                    <span class="rk-matrix-btn-title">Brak Sterowników</span>
                </button>
                <button class="rk-matrix-btn" data-level="1">
                    <span class="rk-matrix-btn-sub">Tylko Źródło</span>
                    <span class="rk-matrix-btn-title">Sterowanie Pogodowe</span>
                </button>
                <button class="rk-matrix-btn" data-level="2">
                    <span class="rk-matrix-btn-sub">Tylko Strefy</span>
                    <span class="rk-matrix-btn-title">Termostaty Pokojowe</span>
                </button>
                <button class="rk-matrix-btn" data-level="3">
                    <span class="rk-matrix-btn-sub">Standard Inżynierski</span>
                    <span class="rk-matrix-btn-title">Pełna Hybryda</span>
                </button>
            </div>

            <div class="rk-matrix-output">
                
                <div class="rk-matrix-output-header">
                    <h3 id="mxTitle">Wariant 0: Instalacja "Zrób to najtaniej"</h3>
                    <p id="mxDesc">Układ pozbawiony jakiejkolwiek logiki. Pompa pracuje na sztywnych parametrach zasilania i ignoruje <a href="https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/">wady wodnego ogrzewania podłogowego</a>, takie jak wysoka inercja i ryzyko permanentnego przegrzewania.</p>
                </div>

                <div class="rk-matrix-visual">
                    <svg viewBox="0 0 400 80" style="width:100%; max-width: 350px;">
                        <rect x="20" y="20" width="50" height="50" rx="4" class="rk-svg-comp rk-svg-active-green" id="svgSource"/>
                        <text x="45" y="50" fill="#ffffff" font-size="10" font-family="sans-serif" text-anchor="middle" font-weight="bold">ŹRÓDŁO</text>
                        
                        <path d="M 70 45 L 160 45" class="rk-svg-line" id="svgLine1"/>

                        <circle cx="115" cy="15" r="8" class="rk-svg-comp" id="svgSensorOut"/>
                        <path d="M 115 23 L 115 45" class="rk-svg-line" id="svgLineOut"/>

                        <rect x="160" y="25" width="80" height="40" rx="4" class="rk-svg-comp rk-svg-active-green" id="svgDistributor"/>
                        
                        <path d="M 240 35 L 310 35" class="rk-svg-line" id="svgLine2"/>
                        <path d="M 240 55 L 310 55" class="rk-svg-line" id="svgLine3"/>

                        <circle cx="330" cy="35" r="15" class="rk-svg-comp" id="svgThermostat1"/>
                        <circle cx="330" cy="55" r="15" class="rk-svg-comp" id="svgThermostat2"/>
                    </svg>
                </div>

                <div class="rk-matrix-stats">
                    <div class="rk-matrix-stat-box">
                        <div class="rk-stat-title">Główna zaleta</div>
                        <div class="rk-stat-desc rk-color-blue" id="mxPro">Najniższy koszt instalacji na etapie budowy domu.</div>
                    </div>
                    
                    <div class="rk-matrix-stat-box">
                        <div class="rk-stat-title">Krytyczna wada</div>
                        <div class="rk-stat-desc rk-color-red" id="mxCon">Gigantyczne koszty eksploatacji i skrajny dyskomfort.</div>
                    </div>

                    <div class="rk-matrix-stat-box">
                        <div class="rk-stat-title">Potencjał Oszczędności</div>
                        <div class="rk-stat-desc" id="mxSave">0% (Baza odniesienia)</div>
                    </div>

                    <div class="rk-matrix-stat-box">
                        <div class="rk-stat-title">Wymagania hydrauliczne</div>
                        <div class="rk-stat-desc" id="mxHydra">Podstawowy rozdzielacz (brak siłowników i sprzęgła).</div>
                    </div>
                </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-matrix-btn');
    
    // Pola tekstowe Outputu
    const mxTitle = document.getElementById('mxTitle');
    const mxDesc = document.getElementById('mxDesc');
    const mxPro = document.getElementById('mxPro');
    const mxCon = document.getElementById('mxCon');
    const mxSave = document.getElementById('mxSave');
    const mxHydra = document.getElementById('mxHydra');

    // Elementy SVG
    const svgSource = document.getElementById('svgSource');
    const svgSensorOut = document.getElementById('svgSensorOut');
    const svgDistributor = document.getElementById('svgDistributor');
    const svgThermostat1 = document.getElementById('svgThermostat1');
    const svgThermostat2 = document.getElementById('svgThermostat2');
    
    const svgLine1 = document.getElementById('svgLine1');
    const svgLineOut = document.getElementById('svgLineOut');
    const svgLine2 = document.getElementById('svgLine2');
    const svgLine3 = document.getElementById('svgLine3');

    // Słownik danych dla 4 wariantów (bez użycia zewnętrznych plików JSON i znaków $$)
    const matrixData = {
        "0": {
            title: "Wariant 0: Instalacja 'Zrób to najtaniej'",
            desc: "Układ pozbawiony jakiejkolwiek logiki. Pompa pracuje na sztywnych parametrach zasilania i ignoruje <a href='https://projekt-ogrzewania.pl/wady-wodnego-ogrzewania-podlogowego-na-co-zwrocic-uwage-przed-instalacja/'>wady wodnego ogrzewania podłogowego</a>, takie jak wysoka inercja i ryzyko permanentnego przegrzewania.",
            pro: "Najniższy koszt instalacji hydraulicznej.",
            proClass: "rk-color-blue",
            con: "Gigantyczne koszty eksploatacji i skrajny dyskomfort temperaturowy.",
            conClass: "rk-color-red",
            save: "0% (Baza odniesienia)",
            hydra: "Podstawowy rozdzielacz (bez siłowników)."
        },
        "1": {
            title: "Wariant 1: Sterowanie Pogodowe (Tylko Źródło)",
            desc: "System oparty wyłącznie o <a href='https://projekt-ogrzewania.pl/sterowanie-pogodowe-w-ogrzewaniu-podlogowym/'>sterowanie pogodowe</a>. Centrala dostosowuje temperaturę zasilania (Tz) do temperatury zewnętrznej. Poprawia to sprawność źródła, ale ignoruje pasywne zyski ciepła wewnątrz pokojów.",
            pro: "Wysoki współczynnik COP pompy ciepła dzięki niskiej temperaturze zasilania.",
            proClass: "rk-color-green",
            con: "Brak reakcji na nasłonecznienie salonu. Zjawisko lokalnego przegrzewania wciąż występuje.",
            conClass: "rk-color-red",
            save: "Ok. 8 - 12% oszczędności",
            hydra: "Rozdzielacz podstawowy + zewnętrzny czujnik NTC na elewacji."
        },
        "2": {
            title: "Wariant 2: Termostaty Pokojowe (Tylko Strefy)",
            desc: "W pokojach zamontowane są <a href='https://projekt-ogrzewania.pl/termostat-w-ogrzewaniu-podlogowym/'>termostaty</a> zamykające przepływ, gdy zostanie osiągnięta temperatura zadana. Rozwiązuje to problem przegrzewania od słońca, ale źródło ciepła pracuje 'w ciemno' na wysokich parametrach.",
            pro: "Idealny komfort w każdym pomieszczeniu i precyzyjne odcinanie pasywnych zysków.",
            proClass: "rk-color-green",
            con: "Taktowanie pompy ciepła i niska sprawność z powodu braku informacji pogodowej.",
            conClass: "rk-color-red",
            save: "Ok. 10 - 15% oszczędności",
            hydra: "Rozdzielacz z siłownikami + listwa sterująca + wymagane sprzęgło hydrauliczne."
        },
        "3": {
            title: "Wariant 3: Pełna Hybryda (Standard Inżynierski)",
            desc: "Złoty standard. Źródło ciepła jest sterowane krzywą pogodową i optymalizowane przez <a href='https://projekt-ogrzewania.pl/zawor-mieszajacy-w-ogrzewaniu-podlogowym/'>zawór mieszający</a>, a wnętrze budynku chronione jest przez inteligentne termostaty strefowe działające w pętli sprzężenia zwrotnego.",
            pro: "Maksymalny COP pompy ciepła i idealny komfort bez wahań temperatury.",
            proClass: "rk-color-green",
            con: "Najwyższy koszt inwestycyjny oraz konieczność profesjonalnego zaprojektowania hydrauliki.",
            conClass: "rk-color-gray",
            save: "Nawet do 25% oszczędności rocznie",
            hydra: "Pełna automatyka: siłowniki, czujniki pogodowe, termostaty dwukanałowe, sprzęgło/bufor."
        }
    };

    function updateDashboard(level) {
        // Zabezpieczenie przed błędem klucza
        let safeLevel = level;
        if (safeLevel !== "0") {
            if (safeLevel !== "1") {
                if (safeLevel !== "2") {
                    if (safeLevel !== "3") {
                        safeLevel = "0"; // domyślnie
                    }
                }
            }
        }
        
        const data = matrixData[safeLevel];

        // Aktualizacja tekstów
        mxTitle.innerHTML = data.title;
        mxDesc.innerHTML = data.desc;
        mxPro.innerHTML = data.pro;
        mxPro.className = "rk-stat-desc " + data.proClass;
        mxCon.innerHTML = data.con;
        mxCon.className = "rk-stat-desc " + data.conClass;
        mxSave.innerHTML = data.save;
        mxHydra.innerHTML = data.hydra;

        // Reset klas SVG
        svgSensorOut.classList.remove('rk-svg-active-green');
        svgLineOut.classList.remove('rk-svg-active-line');
        svgThermostat1.classList.remove('rk-svg-active');
        svgThermostat2.classList.remove('rk-svg-active');
        svgLine2.classList.remove('rk-svg-active-line');
        svgLine3.classList.remove('rk-svg-active-line');
        svgLine1.classList.add('rk-svg-active-line');

        // Bezpieczna logika wizualizacji SVG (bez operatorów &&)
        if (safeLevel === "1") {
            // Tylko Pogodówka
            svgSensorOut.classList.add('rk-svg-active-green');
            svgLineOut.classList.add('rk-svg-active-line');
        } else {
            if (safeLevel === "2") {
                // Tylko Termostaty
                svgThermostat1.classList.add('rk-svg-active');
                svgThermostat2.classList.add('rk-svg-active');
                svgLine2.classList.add('rk-svg-active-line');
                svgLine3.classList.add('rk-svg-active-line');
            } else {
                if (safeLevel === "3") {
                    // Hybryda (Wszystko aktywne)
                    svgSensorOut.classList.add('rk-svg-active-green');
                    svgLineOut.classList.add('rk-svg-active-line');
                    svgThermostat1.classList.add('rk-svg-active');
                    svgThermostat2.classList.add('rk-svg-active');
                    svgLine2.classList.add('rk-svg-active-line');
                    svgLine3.classList.add('rk-svg-active-line');
                }
            }
        }
    }

    btns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Obsługa klas aktywnych na przyciskach
            btns.forEach(function(b) {
                b.classList.remove('is-active');
            });
            this.classList.add('is-active');
            
            // Pobranie i aktualizacja poziomu
            const lvl = this.getAttribute('data-level');
            updateDashboard(lvl);
        });
    });

    // Inicjalizacja stanu bazowego
    updateDashboard("0");
});
</script>



<style>
:root {
    --rk-err-dark: #0f172a;
    --rk-err-blue: #0284c7;
    --rk-err-red: #ef4444;
    --rk-err-red-light: #fef2f2;
    --rk-err-red-border: #fca5a5;
    --rk-err-gray: #64748b;
    --rk-err-gray-light: #f8fafc;
    --rk-err-border: #e2e8f0;
    --rk-err-bg: #ffffff;
}

.rk-errors-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-err-bg);
    border-radius: 20px;
    box-shadow: 0 20px 40px -15px rgba(239, 68, 68, 0.1);
    border: 1px solid var(--rk-err-border);
    overflow: hidden;
}

.rk-errors-header {
    padding: 40px 40px 30px;
    background: var(--rk-err-gray-light);
    border-bottom: 1px solid var(--rk-err-border);
    position: relative;
}

.rk-errors-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: var(--rk-err-red);
}

.rk-errors-header h2 {
    font-size: 26px;
    font-weight: 900;
    color: var(--rk-err-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-errors-header p {
    font-size: 16px;
    color: var(--rk-err-gray);
    margin: 0;
    line-height: 1.6;
}

.rk-errors-list {
    padding: 30px 40px 40px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.rk-error-item {
    background: var(--rk-err-bg);
    border: 2px solid var(--rk-err-border);
    border-radius: 16px;
    transition: all 0.3s ease;
}

.rk-error-item.is-open {
    border-color: var(--rk-err-red);
    box-shadow: 0 10px 20px -5px rgba(239, 68, 68, 0.15);
}

.rk-error-trigger {
    width: 100%;
    padding: 24px;
    background: transparent;
    border: none;
    display: flex;
    align-items: center;
    gap: 20px;
    cursor: pointer;
    text-align: left;
}

.rk-error-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--rk-err-gray-light);
    color: var(--rk-err-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.rk-error-item.is-open .rk-error-icon {
    background: var(--rk-err-red-light);
    color: var(--rk-err-red);
    transform: scale(1.05);
}

.rk-error-title {
    flex: 1;
}

.rk-error-title h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rk-err-dark);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s ease;
}

.rk-error-item.is-open .rk-error-title h3 {
    color: var(--rk-err-red);
}

.rk-error-chevron {
    flex-shrink: 0;
    color: var(--rk-err-gray);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-error-item.is-open .rk-error-chevron {
    transform: rotate(180deg);
    color: var(--rk-err-red);
}

.rk-error-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.rk-error-content-inner {
    padding: 0 24px 24px 84px; /* Wcięcie odpowiadające ikonie */
    font-size: 15px;
    line-height: 1.7;
    color: var(--rk-err-gray);
}

.rk-error-content-inner strong {
    color: var(--rk-err-dark);
    font-weight: 700;
}

.rk-error-content-inner a {
    color: var(--rk-err-blue);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px dashed var(--rk-err-blue);
    transition: border-color 0.2s, color 0.2s;
}

.rk-error-content-inner a:hover {
    color: var(--rk-err-dark);
    border-bottom-color: var(--rk-err-dark);
}

/* Responsywność Mobile (Zachowanie układu pionowego) */
@media (max-width: 768px) {
    .rk-errors-container { margin: 20px auto; border-radius: 16px; }
    .rk-errors-header { padding: 30px 20px; }
    .rk-errors-list { padding: 20px; }
    
    .rk-error-trigger { padding: 20px; gap: 15px; align-items: flex-start; }
    .rk-error-icon { width: 36px; height: 36px; border-radius: 10px; }
    .rk-error-icon svg { width: 20px; height: 20px; }
    
    .rk-error-title h3 { font-size: 16px; padding-top: 6px; }
    .rk-error-chevron { padding-top: 6px; }
    
    .rk-error-content-inner { padding: 0 20px 20px 20px; } /* Usunięcie wcięcia na telefonach */
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-bledy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Najczęściej popełniane błędy przy doborze i montażu sterowników",
    "description": "Zestawienie najgroźniejszych błędów instalacyjnych automatyki grzewczej. Sprawdź, jak błędna kalibracja algorytmów i złe rozmieszczenie czujników niszczy 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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-bledy",
    "name": "Katalog błędów instalacyjnych automatyki grzewczej",
    "description": "Techniczne zestawienie konsekwencji nieprawidłowego montażu komponentów automatyki ogrzewania płaszczyznowego, wpływających na efektywność układu i zużycie energii.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "montaż termostatu pokojowego",
      "uszkodzony czujnik podłogowy",
      "siłowniki normalnie zamknięte NC",
      "bezwładność cieplna podłogówki",
      "taktowanie pompy ciepła"
    ],
    "measurementTechnique": "Analiza usterek i błędów konfiguracyjnych w instalacjach płaszczyznowych oraz ich bezpośredni wpływ na parametr COP i amplitudę temperatur.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Fałszowanie odczytów przez złe umiejscowienie termostatu ściennego.",
        "Brak peszla ochronnego uniemożliwiający serwis czujnika NTC w wylewce.",
        "Konflikt logiczny przekaźników i siłowników na rozdzielaczu.",
        "Zbyt głębokie obniżenia dobowe wymuszające pracę na nieefektywnych parametrach."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-bledy",
    "name": "Moduł Diagnostyki Błędów Wykonawczych",
    "description": "Interaktywny interfejs pozwalający użytkownikowi na identyfikację błędów konfiguracyjnych poprzez mechaniczną interakcję z modułami diagnostycznymi.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-errors-container" id="rk-errors-app">
    <div class="rk-errors-header">
        <h2>Najczęściej popełniane błędy przy doborze i montażu sterowników</h2>
        <p>Poznaj powtarzalne potknięcia instalatorów, które drastycznie podnoszą koszty eksploatacji i prowadzą do uszkodzeń systemu grzewczego. Wybierz błąd, aby poznać jego skutki.</p>
    </div>

    <div class="rk-errors-list" id="rkErrorList">
        
        <div class="rk-error-item">
            <button class="rk-error-trigger" aria-expanded="false">
                <div class="rk-error-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="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12.01" y2="16"></line></svg>
                </div>
                <div class="rk-error-title">
                    <h3>Montaż termostatu pokojowego w niewłaściwym miejscu</h3>
                </div>
                <div class="rk-error-chevron">
                    <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="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-error-content">
                <div class="rk-error-content-inner">
                    Umieszczenie sterownika na ścianie zewnętrznej (wychłodzonej), w bezpośrednim zasięgu promieni słonecznych lub nad źródłem ciepła (np. nad lodówką lub obok telewizora). <strong>Skutkuje to fałszowaniem odczytów</strong> i wyłączaniem ogrzewania w całym domu, mimo drastycznego niedogrzania pozostałych stref. Zobacz inne <a href="https://projekt-ogrzewania.pl/najczestsze-bledy-przy-montazu-ogrzewania-podlogowego-i-jak-ich-uniknac/">najczęstsze błędy przy montażu</a>.
                </div>
            </div>
        </div>

        <div class="rk-error-item">
            <button class="rk-error-trigger" aria-expanded="false">
                <div class="rk-error-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="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
                </div>
                <div class="rk-error-title">
                    <h3>Brak peszli ochronnych dla czujników podłogowych</h3>
                </div>
                <div class="rk-error-chevron">
                    <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="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-error-content">
                <div class="rk-error-content-inner">
                    Zabetonowanie <a href="https://projekt-ogrzewania.pl/czujnik-podlogowy/">czujnika podłogowego</a> NTC bezpośrednio w jastrychu to błąd krytyczny. W przypadku awarii elementu półprzewodnikowego wymiana czujnika jest niemożliwa bez kucia wylewki i całkowitego zniszczenia posadzki. Czujnik musi być zawsze wprowadzony w gładki peszel zakończony specjalną mosiężną zaślepką, ułatwiającą jego bezinwazyjną wymianę.
                </div>
            </div>
        </div>

        <div class="rk-error-item">
            <button class="rk-error-trigger" aria-expanded="false">
                <div class="rk-error-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="3" y="11" width="18" height="11" rx="2" ry="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>
                </div>
                <div class="rk-error-title">
                    <h3>Łączenie niedopasowanych siłowników (NC/NO) z listwą</h3>
                </div>
                <div class="rk-error-chevron">
                    <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="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-error-content">
                <div class="rk-error-content-inner">
                    Montaż <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">siłowników termoelektrycznych</a> normalnie otwartych (NO) do listwy skonfigurowanej pod siłowniki normalnie zamknięte (NC). <strong>Powoduje to całkowite odwrócenie logiki systemu</strong> – gdy termostat wykryje, że pokój wymaga grzania, listwa odcina przepływ, a podłoga zaczyna intensywnie stygnąć.
                </div>
            </div>
        </div>

        <div class="rk-error-item">
            <button class="rk-error-trigger" aria-expanded="false">
                <div class="rk-error-icon">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
                </div>
                <div class="rk-error-title">
                    <h3>Harmonogramy dobowe o zbyt dużej amplitudzie</h3>
                </div>
                <div class="rk-error-chevron">
                    <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="6 9 12 15 18 9"></polyline></svg>
                </div>
            </button>
            <div class="rk-error-content">
                <div class="rk-error-content-inner">
                    Programowanie obniżeń temperatury o 3°C do 4°C na czas 8-godzinnej obecności w pracy mija się z celem. Przez <a href="https://projekt-ogrzewania.pl/czym-jest-bezwladnosc-cieplna-w-ogrzewaniu-podlogowym/">bezwładność cieplną</a>, podłoga wychłodzi się dopiero pod koniec nieobecności, a ponowne jej nagrzanie zajmie kolejne 5-8 godzin. Zmusza to pompę ciepła do pracy na skrajnie wysokich parametrach zasilania, co <strong>drastycznie obniża jej sprawność (COP)</strong>. Maksymalne zalecane obniżenie temperatur przy podłogówce wynosi od 1,0°C do 1,5°C.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const errorItems = document.querySelectorAll('.rk-error-item');

    errorItems.forEach(function(item) {
        const triggerBtn = item.querySelector('.rk-error-trigger');
        const contentDiv = item.querySelector('.rk-error-content');

        triggerBtn.addEventListener('click', function() {
            // Czysta, bezpieczna logika (bez operatorów '&&')
            
            // Jeśli aktualnie kliknięty element jest otwarty - zamknij go
            if (item.classList.contains('is-open')) {
                item.classList.remove('is-open');
                triggerBtn.setAttribute('aria-expanded', 'false');
                contentDiv.style.maxHeight = null;
            } else {
                // Najpierw zwiń wszystkie inne rozwinięte elementy
                errorItems.forEach(function(otherItem) {
                    if (otherItem !== item) {
                        if (otherItem.classList.contains('is-open')) {
                            otherItem.classList.remove('is-open');
                            otherItem.querySelector('.rk-error-trigger').setAttribute('aria-expanded', 'false');
                            otherItem.querySelector('.rk-error-content').style.maxHeight = null;
                        }
                    }
                });
                
                // Następnie rozwiń kliknięty element
                item.classList.add('is-open');
                triggerBtn.setAttribute('aria-expanded', 'true');
                contentDiv.style.maxHeight = contentDiv.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-case-dark: #0f172a;
    --rk-case-blue: #0284c7;
    --rk-case-blue-light: #f0f9ff;
    --rk-case-gray: #475569;
    --rk-case-gray-light: #f8fafc;
    --rk-case-bg: #ffffff;
    --rk-case-border: #e2e8f0;
    --rk-case-accent: #38bdf8;
}

.rk-case-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-case-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.08);
    border: 1px solid var(--rk-case-border);
    overflow: hidden;
}

.rk-case-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, var(--rk-case-dark) 0%, #1e293b 100%);
    color: #ffffff;
    position: relative;
}

.rk-case-header h2 {
    font-size: 28px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.3;
}

.rk-case-header p {
    font-size: 16px;
    color: #cbd5e1;
    margin: 0;
    line-height: 1.6;
}

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

.rk-case-body {
    padding: 40px 50px;
    background: var(--rk-case-gray-light);
}

/* Oś czasu konsultacji (Timeline) */
.rk-case-timeline {
    display: flex;
    flex-direction: column;
    gap: 30px;
    position: relative;
}

.rk-case-timeline::before {
    content: '';
    position: absolute;
    top: 20px;
    bottom: 20px;
    left: 28px;
    width: 2px;
    background: var(--rk-case-border);
    z-index: 1;
}

/* Pojedynczy blok dialogu */
.rk-case-block {
    display: flex;
    gap: 20px;
    position: relative;
    z-index: 2;
}

/* Awatary */
.rk-case-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-weight: 900;
    font-size: 20px;
    border: 4px solid var(--rk-case-gray-light);
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.rk-avatar-client {
    background: #ffffff;
    color: var(--rk-case-gray);
    border-color: #ffffff;
}

.rk-avatar-expert {
    background: var(--rk-case-blue);
    color: #ffffff;
}

/* Dymki (Bubbles) */
.rk-case-bubble {
    flex: 1;
    background: var(--rk-case-bg);
    padding: 25px 30px;
    border-radius: 0 20px 20px 20px;
    border: 1px solid var(--rk-case-border);
    box-shadow: 0 4px 6px -1px rgba(0,0,0,0.02);
}

.rk-case-bubble-expert {
    background: var(--rk-case-blue-light);
    border-color: rgba(2, 132, 199, 0.2);
    border-radius: 20px 0 20px 20px;
}

.rk-case-meta {
    font-size: 13px;
    font-weight: 800;
    color: var(--rk-case-gray);
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-case-meta span {
    color: var(--rk-case-blue);
}

.rk-case-text {
    font-size: 15px;
    color: var(--rk-case-dark);
    line-height: 1.7;
    margin: 0;
}

.rk-case-text a {
    color: var(--rk-case-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Interaktywny przycisk odsłaniania */
.rk-case-reveal-wrapper {
    margin-top: 15px;
}

.rk-case-reveal-btn {
    background: var(--rk-case-dark);
    color: #ffffff;
    border: none;
    padding: 12px 24px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s;
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.2);
}

.rk-case-reveal-btn:hover {
    background: var(--rk-case-blue);
    transform: translateY(-2px);
}

.rk-case-reveal-btn svg {
    transition: transform 0.3s;
}

.rk-case-reveal-btn.is-opened svg {
    transform: rotate(180deg);
}

/* Ukryta odpowiedź eksperta */
.rk-case-hidden-response {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.5s ease;
}

.rk-case-hidden-response.is-visible {
    opacity: 1;
}

@media (max-width: 768px) {
    .rk-case-container { margin: 20px auto; border-radius: 16px; }
    .rk-case-header, .rk-case-body { padding: 30px 20px; }
    .rk-case-header h2 { font-size: 24px; }
    
    .rk-case-timeline::before { left: 24px; }
    .rk-case-block { gap: 15px; }
    
    .rk-case-avatar { width: 48px; height: 48px; font-size: 16px; border-width: 3px; }
    .rk-case-bubble { padding: 20px; border-radius: 16px; }
    .rk-case-bubble-expert { border-radius: 16px; } /* Na mobile unifikujemy rogi dymków */
    
    .rk-case-text { font-size: 14px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-casestudy",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Studium przypadku: Agnieszka z Warszawy pyta, czy warto oszczędzać na sterownikach",
    "description": "Zapis autentycznej konsultacji inżynieryjnej. Rozwiewamy mity instalatorów dotyczące oszczędzania na automatyce strefowej przy pompie ciepła w nowo budowanym domu.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-12-29",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-casestudy",
    "name": "Analiza merytoryczna doradztwa technicznego w ogrzewaniu płaszczyznowym",
    "description": "Zestawienie twardych argumentów inżynieryjnych przeciwko pozornym oszczędnościom inwestycyjnym na etapie doboru automatyki źródła ciepła.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy pompa ciepła poradzi sobie bez sterowników",
      "krzywa grzewcza a zyski słoneczne",
      "niezależne termostaty warszawa",
      "błędy instalatorów pomp ciepła",
      "projekt instalacji ogrzewania podłogowego"
    ],
    "measurementTechnique": "Jakościowa ocena wpływu pasywnych zysków bytowych na efektywność systemu sterowanego wyłącznie krzywą pogodową względem logiki strefowej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Oparcie sterowania wyłącznie na czujniku zewnętrznym skutkuje przegrzewaniem wnętrz pod wpływem słońca i sprzętów domowych.",
        "Zjawisko przegrzewania stanowi bezpośrednie ryzyko dla stabilności wymiarowej posadzek winylowych i warstwowych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-casestudy",
    "name": "Dziennik Konsultacji Inżynieryjnej",
    "description": "Interaktywny interfejs typu 'Timeline' przeprowadzający użytkownika przez proces zbijania mitów wykonawczych i diagnozy problemów projektowych.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-case-container" id="rk-case-app">
    <div class="rk-case-header">
        <div class="rk-case-header-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>
            Studium Przypadku
        </div>
        <h2>Agnieszka z Warszawy pyta, czy warto oszczędzać na sterownikach</h2>
        <p>Codziennie otrzymuję podobne wiadomości. Inwestorzy są celowo wprowadzani w błąd przez instalatorów, którzy szukają łatwiejszego montażu kosztem Twojego portfela. Zobacz zapis autentycznej konsultacji.</p>
    </div>

    <div class="rk-case-body">
        <div class="rk-case-timeline">
            
            <div class="rk-case-block">
                <div class="rk-case-avatar rk-avatar-client">
                    <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="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>
                </div>
                <div class="rk-case-bubble">
                    <div class="rk-case-meta">Inwestorka <span>Agnieszka</span> (Dom 120m², Warszawa)</div>
                    <p class="rk-case-text">
                        Panie Robercie, budujemy dom. Nasz instalator stwierdził, że skoro mamy pompę ciepła, to ona "sama sobie poradzi" krzywą grzewczą. Twierdzi, że montowanie osobnych termostatów do salonu i sypialni to zbędny wydatek rzędu 3000 zł i tylko psuje sprawność pompy. Czy faktycznie powinnam z tego zrezygnować na rzecz oszczędności?
                    </p>
                    
                    <div class="rk-case-reveal-wrapper">
                        <button class="rk-case-reveal-btn" id="btnReveal1" aria-expanded="false">
                            Pokaż odpowiedź eksperta
                            <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>
                        </button>
                    </div>
                </div>
            </div>

            <div class="rk-case-hidden-response" id="response1">
                <div class="rk-case-block">
                    <div class="rk-case-avatar rk-avatar-expert">RK</div>
                    <div class="rk-case-bubble rk-case-bubble-expert">
                        <div class="rk-case-meta">Specjalista HVAC <span>Robert Kucharski</span></div>
                        <p class="rk-case-text" style="margin-bottom: 15px;">
                            Pani Agnieszko, instalator proponuje rozwiązanie najwygodniejsze dla niego, nie dla Pani. <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">Pompa ciepła</a> oparta wyłącznie na czujniku pogodowym wie tylko to, jaka jest temperatura na zewnątrz. Nie ma pojęcia, co dzieje się w budynku.
                        </p>
                        <p class="rk-case-text" style="margin-bottom: 15px;">
                            Jeśli w słoneczny, zimowy dzień do salonu przez duże okna wpadnie słońce, zaczną działać <a href="https://projekt-ogrzewania.pl/ogrzewanie-podlogowe-a-pasywne-zyski-ciepla/">pasywne zyski ciepła</a>. Temperatura w salonie skoczy do 25°C, a pompa nadal będzie tłoczyć ciepłą wodę do podłogi, bo na dworze jest mróz. Efekt? Gigantyczne przegrzanie wnętrza, marnowanie drogiego prądu, a w przypadku <a href="https://projekt-ogrzewania.pl/czy-pod-ogrzewanie-podlogowe-nadaja-sie-panele-czy-tylko-plytki/">paneli winylowych</a> – ryzyko rozeschnięcia się zamków od temperatury posadzki przekraczającej 27°C.
                        </p>
                        <p class="rk-case-text">
                            Te 3000 zł to nie "zbędny wydatek", to jednorazowa inwestycja, która zapobiegnie wyrzucaniu w błoto setek złotych co sezon. Solidny <a href="https://projekt-ogrzewania.pl/jak-powinien-wygladac-profesjonalny-projekt-do-ogrzewania-podlogowego/">projekt instalacji</a> musi zakładać automatykę strefową, połączoną przez bufor lub sprzęgło, aby odsprzęgnąć hydraulicznie pompę od zamykających się pętli.
                        </p>
                    </div>
                </div>
            </div>

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

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btnReveal = document.getElementById('btnReveal1');
    const responsePanel = document.getElementById('response1');

    btnReveal.addEventListener('click', function() {
        // Bezpieczne przełączanie bez użycia operatorów logicznych &&
        
        let isExpanded = btnReveal.getAttribute('aria-expanded');

        if (isExpanded === 'false') {
            // Otwieranie
            btnReveal.setAttribute('aria-expanded', 'true');
            btnReveal.classList.add('is-opened');
            responsePanel.classList.add('is-visible');
            
            // Dynamiczne obliczenie wysokości dla animacji max-height
            let scrollHeight = responsePanel.scrollHeight;
            responsePanel.style.maxHeight = scrollHeight + "px";
            
            // Zmiana tekstu
            btnReveal.innerHTML = `Ukryj odpowiedź <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
            
        } else {
            // Zamykanie
            btnReveal.setAttribute('aria-expanded', 'false');
            btnReveal.classList.remove('is-opened');
            responsePanel.classList.remove('is-visible');
            
            responsePanel.style.maxHeight = "0px";
            
            // Zmiana tekstu
            btnReveal.innerHTML = `Pokaż odpowiedź eksperta <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg>`;
        }
    });
});
</script>



<style>
:root {
    --rk-eeat-dark: #0f172a;
    --rk-eeat-card: #1e293b;
    --rk-eeat-blue: #0284c7;
    --rk-eeat-text: #cbd5e1;
    --rk-eeat-bg: #ffffff;
    --rk-eeat-border: #e2e8f0;
    --rk-eeat-gold: #eab308;
}

.rk-eeat-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-eeat-bg);
    border-radius: 0;
    border: 2px solid var(--rk-eeat-dark);
}

.rk-eeat-header {
    padding: 30px 40px;
    background: var(--rk-eeat-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-eeat-blue);
}

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

.rk-eeat-body {
    display: flex;
    padding: 0;
}

/* Sidebar z autorem */
.rk-eeat-sidebar {
    width: 280px;
    background: var(--rk-eeat-card);
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-right: 1px solid var(--rk-eeat-border);
}

.rk-eeat-photo {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--rk-eeat-blue);
    margin-bottom: 20px;
}

.rk-eeat-name {
    font-size: 20px;
    font-weight: 900;
    color: #ffffff;
    margin: 0 0 5px 0;
}

.rk-eeat-role {
    font-size: 13px;
    color: var(--rk-eeat-blue);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 20px;
}

.rk-eeat-socials {
    display: flex;
    gap: 15px;
    margin-top: 15px;
}

.rk-eeat-social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #334155;
    color: #ffffff;
    border-radius: 8px;
    text-decoration: none;
}

.rk-eeat-social-link:hover {
    background: var(--rk-eeat-blue);
}

/* Panel główny */
.rk-eeat-content {
    flex: 1;
    background: var(--rk-eeat-bg);
    display: flex;
    flex-direction: column;
}

.rk-eeat-tabs {
    display: flex;
    background: #f8fafc;
    border-bottom: 1px solid var(--rk-eeat-border);
}

.rk-eeat-tab-btn {
    flex: 1;
    padding: 20px;
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    font-size: 14px;
    font-weight: 800;
    color: #64748b;
    cursor: pointer;
    text-transform: uppercase;
}

.rk-eeat-tab-btn.is-active {
    color: var(--rk-eeat-dark);
    border-bottom-color: var(--rk-eeat-blue);
    background: var(--rk-eeat-bg);
}

.rk-eeat-tab-panels {
    padding: 40px;
}

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

.rk-eeat-panel.is-active {
    display: block;
}

/* Cytat / Treść */
.rk-eeat-quote-box {
    position: relative;
}

.rk-eeat-quote-icon {
    position: absolute;
    top: -20px;
    left: -20px;
    width: 60px;
    height: 60px;
    color: #f1f5f9;
    z-index: 1;
}

.rk-eeat-quote-text {
    position: relative;
    z-index: 2;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.5;
    color: var(--rk-eeat-dark);
    margin: 0 0 20px 0;
    font-style: italic;
}

.rk-eeat-text-norm {
    font-size: 15px;
    color: #475569;
    line-height: 1.7;
    margin: 0 0 15px 0;
}

.rk-eeat-text-norm a {
    color: var(--rk-eeat-blue);
    font-weight: 700;
    text-decoration: underline;
}

/* Listy E-E-A-T - Zoptymalizowany Layout i Typografia */
.rk-eeat-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.rk-eeat-list li {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 15px;
}

.rk-eeat-list svg {
    flex-shrink: 0;
    color: var(--rk-eeat-blue);
    margin-top: 2px;
}

.rk-eeat-list-text {
    font-size: 15.5px;
    color: var(--rk-eeat-dark);
    font-weight: 500;
    line-height: 1.6;
}

.rk-eeat-list-text a {
    color: var(--rk-eeat-blue);
    font-weight: 700;
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-eeat-blue);
    transition: border-color 0.2s, color 0.2s;
}

.rk-eeat-list-text a:hover {
    color: var(--rk-eeat-dark);
    border-bottom-color: var(--rk-eeat-dark);
}

@media (max-width: 768px) {
    .rk-eeat-container { margin: 20px auto; border-radius: 0; border-width: 1px; }
    .rk-eeat-header { padding: 20px; }
    .rk-eeat-header h2 { font-size: 22px; }
    .rk-eeat-body { flex-direction: column; }
    .rk-eeat-sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--rk-eeat-border); padding: 30px 20px; }
    .rk-eeat-tabs { flex-direction: column; }
    .rk-eeat-tab-btn { border-bottom: none; border-left: 4px solid transparent; text-align: left; padding: 15px 20px; border-top: 1px solid var(--rk-eeat-border); }
    .rk-eeat-tab-btn.is-active { border-left-color: var(--rk-eeat-blue); }
    .rk-eeat-tab-panels { padding: 25px 20px; }
    .rk-eeat-quote-text { font-size: 18px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-eeat",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Zdaniem eksperta: Robert Kucharski o opłacalności sterowników strefowych",
    "description": "Podsumowanie inżynieryjne opłacalności systemów automatyki strefowej. Analiza zysków i weryfikacja kompetencji eksperckich (E-E-A-T).",
    "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/",
      "jobTitle": "CEO & Specjalista HVAC",
      "sameAs": [
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC"
      ]
    },
    "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-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-eeat",
    "name": "Kwalifikacje i macierz autorytetu autora (E-E-A-T)",
    "description": "Zbiór danych weryfikujących kompetencje inżynieryjne autora w zakresie systemów grzewczych, OZC i automatyki.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "projektowanie instalacji wodnych podłogówka",
      "audyt OZC ogrzewania",
      "robert kucharski specjalista hvac",
      "weryfikacja kompetencji instalatora",
      "projekt ogrzewania z pompą ciepła"
    ],
    "measurementTechnique": "Jakościowa ocena autorytetu domeny na podstawie ponad 1000 zrealizowanych projektów instalacji płaszczyznowych i dziesiątek tysięcy unikalnych czytelników.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Ponad 1000 pomyślnie zrealizowanych i zweryfikowanych projektów instalacji ogrzewania podłogowego.",
        "Kompleksowe wykonywanie obiektywnych audytów cieplnych OZC zgodnych z aktualnymi polskimi normami budowlanymi."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-eeat",
    "name": "Panel Weryfikacji Autorytetu (E-E-A-T)",
    "description": "Interaktywny interfejs profilu eksperta, umożliwiający weryfikację twardych danych kompetencyjnych i autorytetu autora publikacji.",
    "applicationCategory": "ReferenceApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-eeat-container" id="rk-eeat-app">
    <div class="rk-eeat-header">
        <h2>Zdaniem eksperta: Robert Kucharski o opłacalności sterowników strefowych</h2>
    </div>

    <div class="rk-eeat-body">
        
        <div class="rk-eeat-sidebar">
            <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2026/04/PO-Robert-Kucharski.webp" alt="Robert Kucharski - Specjalista HVAC" class="rk-eeat-photo">
            <h3 class="rk-eeat-name">Robert Kucharski</h3>
            <div class="rk-eeat-role">Specjalista HVAC / CEO</div>
            
            <div class="rk-eeat-socials">
                <a href="https://www.facebook.com/projektogrzewaniapl/" class="rk-eeat-social-link" target="_blank" rel="noopener noreferrer" aria-label="Facebook Projekt Ogrzewania">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path></svg>
                </a>
                <a href="https://www.linkedin.com/in/robert-kucharski-38069b48/" class="rk-eeat-social-link" target="_blank" rel="noopener noreferrer" aria-label="LinkedIn Robert Kucharski">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path><rect x="2" y="9" width="4" height="12"></rect><circle cx="4" cy="4" r="2"></circle></svg>
                </a>
                <a href="https://x.com/Projekt_HVAC" class="rk-eeat-social-link" target="_blank" rel="noopener noreferrer" aria-label="X Projekt HVAC">
                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4l11.733 16h4.267l-11.733 -16z"></path><path d="M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"></path></svg>
                </a>
            </div>
        </div>

        <div class="rk-eeat-content">
            
            <div class="rk-eeat-tabs" id="rkTabsContainer">
                <button class="rk-eeat-tab-btn is-active" data-target="panel-quote">Konkluzja Artykułu</button>
                <button class="rk-eeat-tab-btn" data-target="panel-cred">Autorytet i E-E-A-T</button>
            </div>

            <div class="rk-eeat-tab-panels">
                
                <div class="rk-eeat-panel is-active" id="panel-quote">
                    <div class="rk-eeat-quote-box">
                        <svg class="rk-eeat-quote-icon" viewBox="0 0 24 24" fill="currentColor"><path d="M14.017 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151c-2.432.917-3.995 3.638-3.995 5.849h4v10h-9.983zm-14.017 0v-7.391c0-5.704 3.748-9.57 9-10.609l.996 2.151c-2.433.917-3.996 3.638-3.996 5.849h3.983v10h-9.983z"/></svg>
                        <p class="rk-eeat-quote-text">
                            Ogrzewanie podłogowe bez automatyki strefowej to jak luksusowy samochód z potężnym silnikiem, ale pozbawiony kierownicy. Wytwarza ogromną moc, nad którą nie masz żadnej kontroli.
                        </p>
                        <p class="rk-eeat-text-norm">
                            W moich wyliczeniach technicznych jednoznacznie widać, że opieranie się wyłącznie na krzywej grzewczej pompy ciepła to droga do przegrzewania wnętrz. Brak precyzyjnych sterowników drastycznie obniża COP układu i niszczy portfel inwestora. Dobra automatyka to nie koszt, to fundament <a href="https://projekt-ogrzewania.pl/kalkulator-strat-ciepla-budynku-jak-samodzielnie-obliczyc-zapotrzebowanie-na-ogrzewanie/">kalkulacji strat ciepła</a>.
                        </p>
                    </div>
                </div>

                <div class="rk-eeat-panel" id="panel-cred">
                    <p class="rk-eeat-text-norm" style="margin-bottom: 25px;">
                        Treści techniczne na portalu są wynikiem twardej praktyki inżynieryjnej. Unikam akademickich teorii na rzecz namacalnych dowodów projektowych.
                    </p>
                    <ul class="rk-eeat-list">
                        <li>
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                            <span class="rk-eeat-list-text">Ponad 1000 sprojektowanych i zoptymalizowanych instalacji płaszczyznowych w domach jednorodzinnych.</span>
                        </li>
                        <li>
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                            <span class="rk-eeat-list-text">Twórca autorskich narzędzi do <a href="https://projekt-ogrzewania.pl/projektowe-obciazenie-cieplne-ozc/">obliczeń OZC</a> i audytów hydraulicznych.</span>
                        </li>
                        <li>
                            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
                            <span class="rk-eeat-list-text">Lider merytoryczny wspierający miesięcznie dziesiątki tysięcy inwestorów szukających rozwiązań bez ściemy.</span>
                        </li>
                    </ul>
                </div>

            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const tabBtns = document.querySelectorAll('.rk-eeat-tab-btn');
    const panels = document.querySelectorAll('.rk-eeat-panel');

    tabBtns.forEach(function(btn) {
        btn.addEventListener('click', function() {
            // Twarde, statyczne przełączanie tabów. Brak animacji i brak &&
            const targetId = this.getAttribute('data-target');
            
            // Czyszczenie klas aktywnych
            tabBtns.forEach(function(b) {
                b.classList.remove('is-active');
            });
            
            panels.forEach(function(p) {
                p.classList.remove('is-active');
            });

            // Aktywacja wybranego
            this.classList.add('is-active');
            
            const activePanel = document.getElementById(targetId);
            if (activePanel) {
                activePanel.classList.add('is-active');
            }
        });
    });
});
</script>



<style>
:root {
    --rk-faq-dark: #0f172a;
    --rk-faq-blue: #0284c7;
    --rk-faq-blue-light: #f0f9ff;
    --rk-faq-gray-text: #475569;
    --rk-faq-border: #e2e8f0;
    --rk-faq-bg: #ffffff;
    --rk-faq-hover: #f8fafc;
}

.rk-faq-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: transparent;
}

.rk-faq-header {
    margin-bottom: 30px;
    padding-left: 20px;
    border-left: 5px solid var(--rk-faq-blue);
}

.rk-faq-header h2 {
    font-size: 28px;
    font-weight: 900;
    color: var(--rk-faq-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-faq-header p {
    font-size: 16px;
    color: var(--rk-faq-gray-text);
    margin: 0;
}

.rk-faq-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rk-faq-item {
    background: var(--rk-faq-bg);
    border: 1px solid var(--rk-faq-border);
    border-radius: 16px;
    overflow: hidden;
    transition: all 0.3s ease;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02);
}

.rk-faq-item.active {
    border-color: var(--rk-faq-blue);
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.1);
}

.rk-faq-question {
    width: 100%;
    text-align: left;
    padding: 24px 30px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    transition: background-color 0.3s ease;
}

.rk-faq-question:hover {
    background-color: var(--rk-faq-hover);
}

.rk-faq-question h3 {
    font-size: 17px;
    font-weight: 700;
    color: var(--rk-faq-dark);
    margin: 0;
    line-height: 1.4;
    transition: color 0.3s ease;
}

.rk-faq-item.active .rk-faq-question h3 {
    color: var(--rk-faq-blue);
}

.rk-faq-icon {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--rk-faq-blue-light);
    color: var(--rk-faq-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s;
}

.rk-faq-item.active .rk-faq-icon {
    transform: rotate(180deg);
    background: var(--rk-faq-blue);
    color: #ffffff;
}

.rk-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--rk-faq-bg);
}

.rk-faq-answer-inner {
    padding: 0 30px 30px 30px;
    font-size: 15px;
    color: var(--rk-faq-gray-text);
    line-height: 1.7;
    border-top: 1px solid transparent;
}

.rk-faq-item.active .rk-faq-answer-inner {
    border-top-color: var(--rk-faq-blue-light);
    padding-top: 20px;
    margin-top: 5px;
}

.rk-faq-answer-inner a {
    color: var(--rk-faq-blue);
    text-decoration: none;
    font-weight: 600;
    border-bottom: 1px dashed var(--rk-faq-blue);
    transition: all 0.2s;
}

.rk-faq-answer-inner a:hover {
    color: var(--rk-faq-dark);
    border-bottom-color: var(--rk-faq-dark);
}

/* Elementy uatrakcyjniające odpowiedź */
.rk-faq-highlight {
    display: inline-block;
    background: var(--rk-faq-blue-light);
    padding: 2px 8px;
    border-radius: 6px;
    color: var(--rk-faq-blue);
    font-weight: 700;
}

@media (max-width: 768px) {
    .rk-faq-container { margin: 20px auto; }
    .rk-faq-question { padding: 20px; }
    .rk-faq-answer-inner { padding: 0 20px 20px 20px; }
    .rk-faq-question h3 { font-size: 16px; }
    .rk-faq-header h2 { font-size: 24px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-faq",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "FAQ – Najważniejsze pytania dotyczące automatyki podłogówki",
    "description": "Błyskawiczne odpowiedzi na najczęstsze pytania inwestorów dotyczące sterowników strefowych, siłowników NC/NO oraz bezprzewodowego sterowania instalacją.",
    "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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#faq",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Czy sterowniki podłogówki naprawdę zmniejszają rachunki za ogrzewanie?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, automatyka strefowa eliminuje przegrzewanie pomieszczeń spowodowane zyskami ciepła (nasłonecznienie, urządzenia, rekuperacja), co w polskich warunkach klimatycznych pozwala zmniejszyć roczne zużycie energii na cele grzewcze o 15% do 25%."
        }
      },
      {
        "@type": "Question",
        "name": "Czy w każdym pomieszczeniu muszę instalować osobny termostat?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Nie jest to bezwzględnie wymagane, ale montaż oddzielnych sterowników w każdej strefie (np. osobno łazienka, sypialnia, salon) zapewnia najwyższy komfort i maksymalne oszczędności eksploatacyjne, dopasowując temperaturę do funkcji danego pokoju."
        }
      },
      {
        "@type": "Question",
        "name": "Czy pompa ciepła potrzebuje sterowników pokojowych do podłogówki?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, ponieważ sama krzywa grzewcza pompy ciepła reaguje wyłącznie na temperaturę zewnętrzną i nie wie, co dzieje się wewnątrz budynku (np. zyski od kominka czy nasłonecznienia salonu), co bez automatyki strefowej prowadzi do przegrzewania wnętrz."
        }
      },
      {
        "@type": "Question",
        "name": "Czym różnią się siłowniki termoelektryczne NC od NO?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Siłowniki typu NC (Normalnie Zamknięte) bez dopływu prądu blokują przepływ wody w pętli, natomiast siłowniki NO (Normalnie Otwarte) w stanie bezprądowym pozostają w pełni otwarte; w budownictwie mieszkaniowym standardem są bezpieczniejsze siłowniki NC."
        }
      },
      {
        "@type": "Question",
        "name": "Czy można zamontować sterowanie bezprzewodowe po wykonaniu tynków i wylewek?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Tak, systemy bezprzewodowe oparte o protokół komunikacyjny ZigBee lub częstotliwość 868 MHz zostały zaprojektowane specjalnie do montażu w wykończonych budynkach, eliminując konieczność kucia ścian pod przewody sterujące."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-faq",
    "name": "Interaktywny Akordeon Bazy Wiedzy HVAC",
    "description": "Aplikacyjny interfejs użytkownika służący do szybkiego wyszukiwania i rozwijania ukrytych technicznych odpowiedzi dotyczących systemów ogrzewania płaszczyznowego.",
    "applicationCategory": "BrowserApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-faq-keywords",
    "name": "Dane optymalizacyjne FAQ",
    "description": "Niewidoczna warstwa semantyczna łącząca encje i słowa kluczowe wykorzystywane w algorytmach sterowania.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "siłowniki termoelektryczne NC i NO",
      "oszczędności na ogrzewaniu podłogowym",
      "bezprzewodowe sterowanie podłogówką",
      "termostat pokojowy a pompa ciepła",
      "termostaty w każdym pokoju"
    ],
    "measurementTechnique": "Algorytmiczne dopasowanie intencji wyszukiwania (Search Intent) do krótkich, normatywnych odpowiedzi inżynierskich.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Definicja różnic siłowników na rozdzielaczach",
        "Zależności krzywej grzewczej i zysków pasywnych"
      ]
    }
  }
]
</script>

<div class="rk-faq-container" id="faq-app-section">
    <div class="rk-faq-header">
        <h2>FAQ – Najważniejsze pytania dotyczące automatyki podłogówki</h2>
        <p>Szybkie odpowiedzi na dylematy inwestycyjne bez lania wody.</p>
    </div>

    <div class="rk-faq-list" id="rkFaqAccordion">
        
        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy sterowniki podłogówki naprawdę zmniejszają rachunki za ogrzewanie?</h3>
                <div class="rk-faq-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-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, automatyka strefowa eliminuje przegrzewanie pomieszczeń spowodowane zyskami ciepła (nasłonecznienie, urządzenia, <a href="https://projekt-ogrzewania.pl/rekuperacja-i-ogrzewanie-podlogowe-czy-to-sie-oplaca/">rekuperacja</a>), co w polskich warunkach klimatycznych pozwala zmniejszyć roczne zużycie energii na cele grzewcze o <span class="rk-faq-highlight">15% do 25%</span>.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy w każdym pomieszczeniu muszę instalować osobny termostat?</h3>
                <div class="rk-faq-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-faq-answer">
                <div class="rk-faq-answer-inner">
                    Nie jest to bezwzględnie wymagane, ale montaż oddzielnych sterowników w każdej strefie (np. osobno łazienka, sypialnia, salon) zapewnia najwyższy komfort i maksymalne oszczędności eksploatacyjne, precyzyjnie dopasowując temperaturę do specyficznej funkcji danego pokoju.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy pompa ciepła potrzebuje sterowników pokojowych do podłogówki?</h3>
                <div class="rk-faq-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-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, ponieważ sama <a href="https://projekt-ogrzewania.pl/sterownik-regulator-pogodowy/">krzywa grzewcza pompy ciepła</a> reaguje wyłącznie na temperaturę zewnętrzną i nie wie, co dzieje się wewnątrz budynku (np. zyski od kominka czy nasłonecznienia salonu), co bez automatyki strefowej prowadzi do trwałego przegrzewania wnętrz.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czym różnią się siłowniki termoelektryczne NC od NO?</h3>
                <div class="rk-faq-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-faq-answer">
                <div class="rk-faq-answer-inner">
                    <a href="https://projekt-ogrzewania.pl/silowniki-termoelektryczne-na-rozdzielaczach/">Siłowniki typu NC</a> (Normalnie Zamknięte) bez dopływu prądu fizycznie blokują przepływ wody w pętli. Natomiast siłowniki NO (Normalnie Otwarte) w stanie bezprądowym pozostają w pełni otwarte. W polskim budownictwie mieszkaniowym standardem inżynierskim są bezpieczniejsze siłowniki NC.
                </div>
            </div>
        </div>

        <div class="rk-faq-item">
            <button class="rk-faq-question" aria-expanded="false">
                <h3>Czy można zamontować sterowanie bezprzewodowe po wykonaniu tynków?</h3>
                <div class="rk-faq-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-faq-answer">
                <div class="rk-faq-answer-inner">
                    Tak, systemy bezprzewodowe oparte o protokół komunikacyjny ZigBee lub częstotliwość radiową 868 MHz zostały zaprojektowane specjalnie do montażu w wykończonych lub <a href="https://projekt-ogrzewania.pl/frezowanie-ogrzewania-podlogowego-w-starym-domu/">modernizowanych budynkach</a>, co całkowicie eliminuje konieczność kucia ścian pod nowe przewody sterujące.
                </div>
            </div>
        </div>

    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const faqItems = document.querySelectorAll('.rk-faq-item');

    faqItems.forEach(function(item) {
        const questionBtn = item.querySelector('.rk-faq-question');
        const answerDiv = item.querySelector('.rk-faq-answer');

        questionBtn.addEventListener('click', function() {
            // Logika bez użycia "&&"
            
            // Sprawdź, czy aktualny element jest już otwarty
            if (item.classList.contains('active')) {
                // Jeśli tak, zamknij go
                item.classList.remove('active');
                questionBtn.setAttribute('aria-expanded', 'false');
                answerDiv.style.maxHeight = null;
            } else {
                // Jeśli nie, najpierw zamknij wszystkie inne otwarte
                faqItems.forEach(function(otherItem) {
                    if (otherItem !== item) {
                        otherItem.classList.remove('active');
                        otherItem.querySelector('.rk-faq-question').setAttribute('aria-expanded', 'false');
                        otherItem.querySelector('.rk-faq-answer').style.maxHeight = null;
                    }
                });
                
                // Następnie otwórz aktualnie kliknięty
                item.classList.add('active');
                questionBtn.setAttribute('aria-expanded', 'true');
                answerDiv.style.maxHeight = answerDiv.scrollHeight + "px";
            }
        });
    });
});
</script>



<style>
:root {
    --rk-dl-dark: #0f172a;
    --rk-dl-card: #1e293b;
    --rk-dl-blue: #0284c7;
    --rk-dl-blue-hover: #0369a1;
    --rk-dl-red: #ef4444;
    --rk-dl-red-hover: #dc2626;
    --rk-dl-gray: #475569;
    --rk-dl-gray-light: #f1f5f9;
    --rk-dl-bg: #ffffff;
    --rk-dl-border: #cbd5e1;
}

.rk-dl-container {
    max-width: 900px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-dl-bg);
    border: 2px solid var(--rk-dl-dark);
    /* Brak border-radius dla surowego, technicznego wyglądu */
}

.rk-dl-header {
    padding: 30px 40px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    border-bottom: 4px solid var(--rk-dl-blue);
}

.rk-dl-header h2 {
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.rk-dl-header p {
    font-size: 15px;
    color: #94a3b8;
    margin: 0;
    line-height: 1.6;
}

.rk-dl-body {
    padding: 40px;
    display: flex;
    gap: 40px;
    align-items: stretch;
}

/* Sekcja Miniatury (Lewa) */
.rk-dl-preview-col {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.rk-dl-thumb-box {
    border: 1px solid var(--rk-dl-border);
    background: var(--rk-dl-gray-light);
    padding: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    min-height: 280px;
    position: relative;
    cursor: pointer;
}

.rk-dl-thumb-box:hover {
    border-color: var(--rk-dl-blue);
}

.rk-dl-img {
    max-width: 100%;
    max-height: 350px;
    object-fit: contain;
    border: 1px solid var(--rk-dl-border);
}

.rk-dl-zoom-icon {
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: var(--rk-dl-dark);
    color: #ffffff;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

/* Sekcja Akcji (Prawa) */
.rk-dl-action-col {
    flex: 1.2;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rk-dl-action-col h3 {
    font-size: 20px;
    font-weight: 900;
    color: var(--rk-dl-dark);
    margin: 0 0 15px 0;
}

.rk-dl-desc {
    font-size: 15px;
    color: var(--rk-dl-gray);
    line-height: 1.7;
    margin: 0 0 25px 0;
}

/* Przyciski (Brak animacji, natychmiastowa reakcja) */
.rk-dl-btn-group {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.rk-dl-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: 800;
    text-decoration: none;
    border: none;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rk-dl-btn-pdf {
    background: var(--rk-dl-red);
    color: #ffffff;
    border: 2px solid var(--rk-dl-red);
}

.rk-dl-btn-pdf:hover {
    background: var(--rk-dl-red-hover);
    border-color: var(--rk-dl-red-hover);
}

.rk-dl-btn-img {
    background: var(--rk-dl-blue);
    color: #ffffff;
    border: 2px solid var(--rk-dl-blue);
}

.rk-dl-btn-img:hover {
    background: var(--rk-dl-blue-hover);
    border-color: var(--rk-dl-blue-hover);
}

/* Stopka Prawa Autorskie */
.rk-dl-footer {
    background: var(--rk-dl-gray-light);
    border-top: 1px solid var(--rk-dl-border);
    padding: 20px 40px;
    font-size: 12px;
    color: var(--rk-dl-gray);
    line-height: 1.6;
    font-weight: 600;
    text-align: center;
}

.rk-dl-footer strong {
    color: var(--rk-dl-dark);
    font-weight: 800;
}

/* Prosty wbudowany podgląd (zamiast modal window dla zachowania stabilności SEO) */
.rk-dl-full-view {
    display: none;
    padding: 20px;
    background: var(--rk-dl-gray-light);
    border-top: 1px solid var(--rk-dl-border);
    text-align: center;
}

.rk-dl-full-view.is-open {
    display: block;
}

.rk-dl-full-img {
    max-width: 100%;
    height: auto;
    border: 2px solid var(--rk-dl-dark);
}

@media (max-width: 768px) {
    .rk-dl-container { margin: 20px auto; border-left: none; border-right: none; }
    .rk-dl-header, .rk-dl-footer { padding: 20px; }
    .rk-dl-header h2 { font-size: 22px; }
    .rk-dl-body { flex-direction: column; padding: 20px; gap: 30px; }
    .rk-dl-thumb-box { min-height: 200px; }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-infografika",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Kompendium wiedzy: Pobierz darmową infografikę do druku",
    "description": "Zapisz na dysku schemat i wizualne podsumowanie opłacalności sterowników strefowych. Gotowa ściągawka dla inwestora w formacie PDF i WebP.",
    "image": "https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego.webp",
    "author": {
      "@type": "Person",
      "name": "Robert Kucharski",
      "url": "https://projekt-ogrzewania.pl/",
      "sameAs": [
        "https://www.facebook.com/robert.kucharski.budowa.bez.sciemy",
        "https://www.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-infografika",
    "name": "Infografika techniczna: Opłacalność automatyki podłogówki",
    "description": "Zestawienie wizualne i zbiór danych technicznych dostępny w formacie PDF do celów edukacyjnych i konsultacyjnych na budowie.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "infografika ogrzewanie podłogowe",
      "czy warto montować sterowniki podłogówki pdf",
      "schemat sterowania ogrzewaniem podłogowym",
      "darmowe materiały hvac do pobrania",
      "robert kucharski projekt ogrzewania pdf"
    ],
    "measurementTechnique": "Ekstrakcja wiedzy inżynieryjnej i wskaźników ROI do formy graficznej i dokumentu ustrukturyzowanego (PDF).",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Plik wektorowy PDF gotowy do druku i prezentacji.",
        "Kompresowana mapa bitowa WebP zoptymalizowana do wyświetlania na urządzeniach mobilnych."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-infografika",
    "name": "Repozytorium Plików i Przeglądarka Grafik",
    "description": "Interfejs interaktywny umożliwiający szybki podgląd technicznych infografik oraz zarządzanie pobieraniem dokumentacji w formacie PDF.",
    "applicationCategory": "MultimediaApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-dl-container" id="rk-dl-app">
    <div class="rk-dl-header">
        <h2>Kompendium wiedzy: Pobierz darmową infografikę</h2>
        <p>Wizualne podsumowanie całego artykułu. Pobierz dokumentację, zabierz ją na budowę i pokaż swojemu instalatorowi, jak powinien wyglądać inżynierski standard.</p>
    </div>

    <div class="rk-dl-body">
        
        <div class="rk-dl-preview-col">
            <div class="rk-dl-thumb-box" id="rkThumbTrigger">
                <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego.webp" alt="Miniatura: Infografika sterowniki do ogrzewania podłogowego" class="rk-dl-img">
                <div class="rk-dl-zoom-icon">Kliknij, aby rozwinąć</div>
            </div>
        </div>

        <div class="rk-dl-action-col">
            <h3>Wybierz format materiałów</h3>
            <p class="rk-dl-desc">
                Przygotowałem to podsumowanie w dwóch formatach. Wersja PDF jest idealna do druku w wysokiej jakości, natomiast szybki podgląd graficzny świetnie sprawdzi się na ekranie Twojego smartfona.
            </p>
            
            <div class="rk-dl-btn-group">
                <a href="https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego.pdf" download="Infografika-Sterowniki-Podlogowka.pdf" target="_blank" rel="noopener noreferrer" class="rk-dl-btn rk-dl-btn-pdf">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
                    Pobierz plik PDF
                </a>
                
                <button type="button" class="rk-dl-btn rk-dl-btn-img" id="rkBtnPreview">
                    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg>
                    Powiększ obraz
                </button>
            </div>
        </div>

    </div>

    <div class="rk-dl-full-view" id="rkFullView">
        <img decoding="async" src="https://projekt-ogrzewania.pl/wp-content/uploads/2025/12/Infografika-Czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego.webp" alt="Pełna Infografika: Czy warto montować sterowniki" class="rk-dl-full-img" loading="lazy">
    </div>

    <div class="rk-dl-footer">
        <strong>&copy; 2026 Projekt-Ogrzewania.pl | Autor: Robert Kucharski.</strong><br>
        Udostępnianie materiału PDF dozwolone wyłącznie z zachowaniem logotypu portalu i bez jakiejkolwiek modyfikacji pliku bazowego.
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const thumbTrigger = document.getElementById('rkThumbTrigger');
    const btnPreview = document.getElementById('rkBtnPreview');
    const fullView = document.getElementById('rkFullView');
    
    // Brak operatorów && - czyste instrukcje warunkowe
    function togglePreview() {
        if (fullView.classList.contains('is-open')) {
            fullView.classList.remove('is-open');
            btnPreview.innerHTML = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="11" y1="8" x2="11" y2="14"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg> Powiększ obraz';
        } else {
            fullView.classList.add('is-open');
            btnPreview.innerHTML = '<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line><line x1="8" y1="11" x2="14" y2="11"></line></svg> Ukryj obraz';
        }
    }

    thumbTrigger.addEventListener('click', togglePreview);
    btnPreview.addEventListener('click', togglePreview);
});
</script>



<style>
:root {
    --rk-sum-dark: #0f172a;
    --rk-sum-blue: #0284c7;
    --rk-sum-light-blue: #f0f9ff;
    --rk-sum-green: #10b981;
    --rk-sum-green-light: #dcfce7;
    --rk-sum-red: #ef4444;
    --rk-sum-red-light: #fef2f2;
    --rk-sum-gold: #eab308;
    --rk-sum-gray: #64748b;
    --rk-sum-border: #e2e8f0;
    --rk-sum-bg: #ffffff;
}

.rk-invest-container {
    max-width: 950px;
    margin: 40px auto;
    font-family: 'Inter', -apple-system, sans-serif;
    background: var(--rk-sum-bg);
    border-radius: 24px;
    box-shadow: 0 25px 50px -12px rgba(2, 132, 199, 0.15);
    border: 1px solid var(--rk-sum-blue);
    overflow: hidden;
}

.rk-invest-header {
    padding: 40px 50px 30px;
    background: linear-gradient(135deg, #1e293b 0%, var(--rk-sum-dark) 100%);
    color: #ffffff;
}

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

.rk-invest-header p {
    font-size: 16px;
    line-height: 1.7;
    color: #cbd5e1;
    margin: 0;
}

.rk-invest-interactive {
    padding: 40px 50px;
    background: #f8fafc;
}

/* Toggle Switch Design */
.rk-toggle-wrapper {
    display: flex;
    background: var(--rk-sum-border);
    border-radius: 16px;
    padding: 6px;
    margin-bottom: 35px;
    position: relative;
}

.rk-toggle-btn {
    flex: 1;
    text-align: center;
    padding: 18px 20px;
    font-size: 16px;
    font-weight: 800;
    color: var(--rk-sum-gray);
    background: transparent;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.4s ease;
    z-index: 2;
}

.rk-toggle-btn.active {
    color: #ffffff;
}

.rk-toggle-bg {
    position: absolute;
    top: 6px;
    bottom: 6px;
    width: calc(50% - 6px);
    background: var(--rk-sum-dark);
    border-radius: 12px;
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: 1;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}

.rk-invest-cards {
    display: flex;
    gap: 30px;
}

.rk-status-card {
    flex: 1;
    background: var(--rk-sum-bg);
    border: 2px solid var(--rk-sum-border);
    border-radius: 20px;
    padding: 30px;
    text-align: left;
    transition: all 0.3s ease;
    display: none;
    animation: fadeIn 0.5s forwards;
}

.rk-status-card.active {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

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

.rk-icon-row {
    display: flex;
    align-items: center;
    gap: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--rk-sum-border);
}

.rk-icon-circle {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rk-status-pro .rk-status-card { border-color: var(--rk-sum-green); box-shadow: 0 15px 30px -10px rgba(16, 185, 129, 0.15); }
.rk-status-pro .rk-icon-circle { background: var(--rk-sum-green-light); color: var(--rk-sum-green); }
.rk-status-pro h3 { color: var(--rk-sum-green); font-size: 22px; margin: 0; font-weight: 900;}

.rk-status-warn .rk-status-card { border-color: var(--rk-sum-red); box-shadow: 0 15px 30px -10px rgba(239, 68, 68, 0.15); }
.rk-status-warn .rk-icon-circle { background: var(--rk-sum-red-light); color: var(--rk-sum-red); }
.rk-status-warn h3 { color: var(--rk-sum-red); font-size: 22px; margin: 0; font-weight: 900;}

.rk-card-text {
    font-size: 15px;
    color: #475569;
    line-height: 1.6;
    margin: 0;
}

.rk-card-text strong {
    color: var(--rk-sum-dark);
}

.rk-card-text a {
    color: var(--rk-sum-blue);
    text-decoration: none;
    border-bottom: 1px dashed var(--rk-sum-blue);
    font-weight: 600;
}

.rk-tags-section {
    padding: 0 50px 30px;
    background: #f8fafc;
}

.rk-mat-tags-container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}

.rk-mat-tag {
    background: var(--rk-sum-light-blue);
    color: var(--rk-sum-blue);
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid rgba(2, 132, 199, 0.1);
    transition: all 0.2s;
}

.rk-mat-tag:hover {
    background: var(--rk-sum-blue);
    color: #ffffff;
}

/* Nowa sekcja CTA */
.rk-cta-section {
    background: linear-gradient(135deg, var(--rk-sum-dark) 0%, #1e293b 100%);
    padding: 45px 50px;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.rk-cta-title {
    color: #ffffff;
    font-size: 26px;
    font-weight: 900;
    margin: 0 0 15px 0;
    line-height: 1.2;
}

.rk-cta-text {
    color: #cbd5e1;
    font-size: 16px;
    max-width: 650px;
    margin: 0 auto 30px auto;
    line-height: 1.6;
}

.rk-cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rk-sum-blue);
    color: #ffffff;
    font-size: 18px;
    font-weight: 800;
    padding: 20px 40px;
    border-radius: 16px;
    text-decoration: none;
    box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.4);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.rk-cta-btn:hover {
    transform: translateY(-5px);
    background: #0369a1;
    box-shadow: 0 20px 35px -5px rgba(2, 132, 199, 0.5);
    border-color: #7dd3fc;
}

.rk-cta-btn svg {
    transition: transform 0.3s;
}

.rk-cta-btn:hover svg {
    transform: translateX(5px);
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .rk-invest-header, .rk-invest-interactive, .rk-tags-section, .rk-cta-section { padding: 30px 20px; }
    .rk-invest-header h2, .rk-cta-title { font-size: 24px; }
    .rk-toggle-wrapper { flex-direction: column; background: transparent; padding: 0; gap: 10px;}
    .rk-toggle-bg { display: none; }
    
    .rk-toggle-btn {
        background: var(--rk-sum-border);
        color: var(--rk-sum-gray);
        border: 2px solid transparent;
    }
    
    .rk-toggle-btn.active[data-view="view-warn"] {
        background: var(--rk-sum-red-light);
        color: var(--rk-sum-red);
        border-color: var(--rk-sum-red);
    }
    
    .rk-toggle-btn.active[data-view="view-pro"] {
        background: var(--rk-sum-green-light);
        color: var(--rk-sum-green);
        border-color: var(--rk-sum-green);
    }
    
    .rk-invest-cards { flex-direction: column; gap: 20px; }
    
    .rk-cta-btn {
        width: 100%;
        padding: 16px 20px;
        font-size: 16px;
        justify-content: center;
    }
}
</style>

<script type="application/ld+json">
[
  {
    "@context": "https://schema.org",
    "@type": "Article",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#article-podsumowanie",
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/"
    },
    "headline": "Podsumowanie inwestycyjne: Czy warto kupić automatykę do podłogówki?",
    "description": "Sprawdź na konkretnych danych, dlaczego automatyka strefowa do ogrzewania podłogowego jest inwestycją, a nie wydatkiem. Symulacja kosztów eksploatacji i ochrony 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.facebook.com/projektogrzewaniapl/",
        "https://www.linkedin.com/in/robert-kucharski-38069b48/",
        "https://x.com/Projekt_HVAC",
        "https://remont.biz.pl/",
        "https://sobir.pl/"
      ]
    },
    "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-07-07",
    "dateModified": "2026-07-07"
  },
  {
    "@context": "https://schema.org",
    "@type": "Dataset",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#dataset-sterowniki",
    "name": "Wskaźnik opłacalności inwestycji w automatykę strefową 2026",
    "description": "Zestawienie porównawcze kosztów eksploatacji, zużycia energii oraz wpływu na żywotność instalacji w scenariuszach z automatyką strefową i bez niej.",
    "license": "https://projekt-ogrzewania.pl/",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    },
    "keywords": [
      "czy warto montować sterowniki do podłogówki",
      "automatyka do podłogówki cena",
      "koszty eksploatacji ogrzewania podłogowego",
      "optymalizacja pracy pompy ciepła",
      "ochrona posadzki przed przegrzaniem"
    ],
    "measurementTechnique": "Analiza numeryczna zapotrzebowania cieplnego budynku oraz wskaźnika COP pompy ciepła w trybie modulacji przepływu względem braku regulacji strefowej.",
    "mainEntity": {
      "@type": "ItemList",
      "itemListElement": [
        "Scenariusz Pasywny: Brak sterowania strefowego prowadzi do przegrzewania wnętrz, zwiększenia zużycia energii o 15-25% oraz degradacji posadzek winylowych lub drewnianych.",
        "Scenariusz Zoptymalizowany: Sterowanie strefowe chroni jastrych i optymalizuje COP pompy ciepła, zapewniając pełen zwrot z inwestycji (ROI)."
      ]
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "WebApplication",
    "@id": "https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/#webapp-sterowniki",
    "name": "Symulator Scenariuszy Sterowania Podłogówką",
    "description": "Interaktywny panel uświadamiający skutki braku automatyki grzewczej i korzyści płynące ze strefowego sterowania pompą obiegową i źródłem ciepła.",
    "applicationCategory": "EducationalApplication",
    "operatingSystem": "All",
    "browserRequirements": "Requires JavaScript and HTML5",
    "creator": {
      "@type": "Person",
      "name": "Robert Kucharski"
    }
  }
]
</script>

<div class="rk-invest-container" id="automatyka-invest-app">
    <div class="rk-invest-header">
        <h2>Podsumowanie inwestycyjne: Czy warto kupić automatykę do podłogówki?</h2>
        <p>Automatyka do wodnego ogrzewania podłogowego nie jest opcjonalnym gadżetem, lecz kluczowym elementem technologicznym. Przełącz poniższe scenariusze, aby zobaczyć inżynierskie różnice na konkretnych danych.</p>
    </div>

    <div class="rk-invest-interactive">
        <div class="rk-toggle-wrapper">
            <div class="rk-toggle-bg" id="rkToggleBg"></div>
            <button class="rk-toggle-btn active" data-view="view-warn" style="color: #ffffff;">
                Oszczędzam na sterownikach (Brak automatyki)
            </button>
            <button class="rk-toggle-btn" data-view="view-pro">
                Montuję inteligentne sterowanie strefowe
            </button>
        </div>

        <div class="rk-invest-cards" id="rkCardsArea">
            
            <div class="rk-status-warn" id="view-warn-content">
                <div class="rk-status-card active">
                    <div class="rk-icon-row">
                        <div class="rk-icon-circle">
                            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"></polygon></svg>
                        </div>
                        <div>
                            <h3>Ryzyko przegrzewania podłogi</h3>
                        </div>
                    </div>
                    <p class="rk-card-text">
                        Pominięcie sterowników to <strong>pozorna oszczędność</strong>. Zmuszasz pompę ciepła do pracy na sztywnych parametrach. Bezwładny układ hydrauliczny reaguje z wielogodzinnym opóźnieniem. Efekt? <strong>Trwałe przegrzewanie pomieszczeń</strong> o 2-3 stopnie, co drastycznie podnosi rachunki i niszczy wrażliwe posadzki wykończeniowe (np. winyl).
                    </p>
                </div>
            </div>

            <div class="rk-status-pro" id="view-pro-content" style="display: none;">
                <div class="rk-status-card active">
                    <div class="rk-icon-row">
                        <div class="rk-icon-circle">
                            <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
                        </div>
                        <div>
                            <h3>Zyskowny model eksploatacji</h3>
                        </div>
                    </div>
                    <p class="rk-card-text">
                        Precyzyjne sterowanie mikroklimatem przekształca bezwładny układ w wysoce responsywną instalację. Zobacz <a href="https://projekt-ogrzewania.pl/zwrot-z-inwestycji-w-ogrzewanie-podlogowe-realne-wyliczenia-na-2026-rok/">wyliczenia zwrotu z inwestycji</a> (ROI) na poziomie 15-25% redukcji energii rocznie. Automatyka strefowa zapewnia natychmiastową <a href="https://projekt-ogrzewania.pl/pompa-ciepla/">optymalizację pracy pompy ciepła</a> (wyższy COP) oraz trwale <a href="https://projekt-ogrzewania.pl/wylewka-betonowa-na-ogrzewanie-podlogowe/">zabezpiecza wylewkę</a> betonową przed degradacją termiczną.
                    </p>
                </div>
            </div>

        </div>
    </div>

    <div class="rk-tags-section">
        <div class="rk-mat-tags-container">
            <span class="rk-mat-tag"># czy warto montować sterowniki do podłogówki</span>
            <span class="rk-mat-tag"># automatyka do podłogówki cena</span>
            <span class="rk-mat-tag"># sterowanie strefowe ogrzewaniem</span>
            <span class="rk-mat-tag"># koszty eksploatacji ogrzewania podłogowego</span>
            <span class="rk-mat-tag"># optymalizacja pracy pompy ciepła</span>
            <span class="rk-mat-tag"># ochrona posadzki przed przegrzaniem</span>
            <span class="rk-mat-tag"># inteligentny dom ogrzewanie</span>
            <span class="rk-mat-tag"># termostaty pokojowe a rachunki</span>
        </div>
    </div>

    <!-- Dodane mocne CTA -->
    <div class="rk-cta-section">
        <h3 class="rk-cta-title">Nie pozwól, by instalator uczył się na Twoim domu</h3>
        <p class="rk-cta-text">
            Bezwładność cieplna, algorytmy PWM, dobór pomp obiegowych – to nie czarna magia, to inżynieria. Wejdź na bloga i zbuduj wiedzę, która ochroni Twój budżet przed kosztownymi błędami.
        </p>
        <a href="https://projekt-ogrzewania.pl/blog/" class="rk-cta-btn">
            WEJDŹ DO BAZY WIEDZY EKSKLUZYWNEJ
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
        </a>
    </div>
</div>

<script>
document.addEventListener('DOMContentLoaded', function() {
    const btns = document.querySelectorAll('.rk-toggle-btn');
    const toggleBg = document.getElementById('rkToggleBg');
    const viewWarn = document.getElementById('view-warn-content');
    const viewPro = document.getElementById('view-pro-content');
    
    btns.forEach((btn, index) => {
        btn.addEventListener('click', function() {
            // Bezpieczny JS, bazujemy na precyzyjnych if/else
            
            // Reset stylów przycisków na widoku desktopowym
            btns.forEach(b => {
                b.classList.remove('active');
                if(window.innerWidth > 768) {
                    b.style.color = 'var(--rk-sum-gray)';
                }
            });
            
            // Ustaw aktywację
            this.classList.add('active');
            
            if(window.innerWidth > 768) {
                this.style.color = '#ffffff';
                if(index === 0) {
                    toggleBg.style.transform = 'translateX(0)';
                    toggleBg.style.backgroundColor = 'var(--rk-sum-dark)';
                } else {
                    toggleBg.style.transform = 'translateX(100%)';
                    toggleBg.style.backgroundColor = 'var(--rk-sum-green)';
                }
            }

            // Przełączanie kontenerów tekstowych
            const targetView = this.getAttribute('data-view');
            
            if(targetView === 'view-warn') {
                viewPro.style.display = 'none';
                viewWarn.style.display = 'block';
            } else {
                viewWarn.style.display = 'none';
                viewPro.style.display = 'block';
            }
        });
    });

    // Zabezpieczenie wizualne przy zmianie szerokości okna (Resize obwodu)
    window.addEventListener('resize', function() {
        if(window.innerWidth <= 768) {
            btns.forEach(b => b.style.color = ''); 
        } else {
            const activeBtn = document.querySelector('.rk-toggle-btn.active');
            if (activeBtn) {
                activeBtn.style.color = '#ffffff';
            }
        }
    });
});
</script>
<p>Artykuł <a href="https://projekt-ogrzewania.pl/czy-warto-montowac-sterowniki-do-ogrzewania-podlogowego/">Czy warto montować sterowniki do ogrzewania podłogowego?</a> pochodzi z serwisu <a href="https://projekt-ogrzewania.pl">Projekt Ogrzewania</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
